fantastyczne_gole/notebooks/xgboost_dla_xG.ipynb
2023-12-12 15:22:01 +01:00

1221 lines
188 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Importy"
]
},
{
"cell_type": "code",
"execution_count": 164,
"metadata": {},
"outputs": [],
"source": [
"import numpy as np\n",
"import pandas as pd\n",
"import matplotlib.pyplot as plt\n",
"import seaborn as sns\n",
"from sklearn.model_selection import train_test_split, StratifiedKFold, GridSearchCV, cross_val_score\n",
"from sklearn.metrics import confusion_matrix, classification_report, roc_auc_score\n",
"from sklearn.metrics import precision_score, recall_score, accuracy_score\n",
"import time"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Wczytanie danych"
]
},
{
"cell_type": "code",
"execution_count": 165,
"metadata": {},
"outputs": [],
"source": [
"df = pd.read_csv('data4.csv')"
]
},
{
"cell_type": "code",
"execution_count": 166,
"metadata": {},
"outputs": [],
"source": [
"y = pd.DataFrame(df['isGoal'])\n",
"X = df.drop(['isGoal'], axis=1)"
]
},
{
"cell_type": "code",
"execution_count": 167,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>match_minute</th>\n",
" <th>match_second</th>\n",
" <th>position_x</th>\n",
" <th>position_y</th>\n",
" <th>play_type</th>\n",
" <th>BodyPart</th>\n",
" <th>Number_Intervening_Opponents</th>\n",
" <th>Number_Intervening_Teammates</th>\n",
" <th>Interference_on_Shooter</th>\n",
" <th>outcome</th>\n",
" <th>...</th>\n",
" <th>Interference_on_Shooter_Code</th>\n",
" <th>distance_to_goalM</th>\n",
" <th>distance_to_centerM</th>\n",
" <th>angle</th>\n",
" <th>isFoot</th>\n",
" <th>isHead</th>\n",
" <th>header_distance_to_goalM</th>\n",
" <th>High</th>\n",
" <th>Low</th>\n",
" <th>Medium</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>29</td>\n",
" <td>54</td>\n",
" <td>23.69</td>\n",
" <td>4.99</td>\n",
" <td>Open Play</td>\n",
" <td>Left</td>\n",
" <td>4</td>\n",
" <td>2</td>\n",
" <td>Medium</td>\n",
" <td>Missed</td>\n",
" <td>...</td>\n",
" <td>2</td>\n",
" <td>24.212265</td>\n",
" <td>5.001769</td>\n",
" <td>11.922004</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0.000000</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>11</td>\n",
" <td>33</td>\n",
" <td>28.93</td>\n",
" <td>-11.22</td>\n",
" <td>Open Play</td>\n",
" <td>Left</td>\n",
" <td>4</td>\n",
" <td>1</td>\n",
" <td>Low</td>\n",
" <td>Missed</td>\n",
" <td>...</td>\n",
" <td>1</td>\n",
" <td>31.039134</td>\n",
" <td>11.246462</td>\n",
" <td>21.243463</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0.000000</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>61</td>\n",
" <td>25</td>\n",
" <td>9.98</td>\n",
" <td>-5.24</td>\n",
" <td>Open Play</td>\n",
" <td>Head</td>\n",
" <td>3</td>\n",
" <td>1</td>\n",
" <td>High</td>\n",
" <td>Missed</td>\n",
" <td>...</td>\n",
" <td>3</td>\n",
" <td>11.277751</td>\n",
" <td>5.252358</td>\n",
" <td>27.757313</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>11.277751</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>73</td>\n",
" <td>45</td>\n",
" <td>4.49</td>\n",
" <td>-5.74</td>\n",
" <td>Open Play</td>\n",
" <td>Right</td>\n",
" <td>2</td>\n",
" <td>0</td>\n",
" <td>Low</td>\n",
" <td>Missed</td>\n",
" <td>...</td>\n",
" <td>1</td>\n",
" <td>7.298171</td>\n",
" <td>5.753538</td>\n",
" <td>52.031899</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0.000000</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>44</td>\n",
" <td>40</td>\n",
" <td>7.98</td>\n",
" <td>-12.97</td>\n",
" <td>Open Play</td>\n",
" <td>Right</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>Medium</td>\n",
" <td>Saved</td>\n",
" <td>...</td>\n",
" <td>2</td>\n",
" <td>15.254368</td>\n",
" <td>13.000590</td>\n",
" <td>58.457635</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0.000000</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>5 rows × 29 columns</p>\n",
"</div>"
],
"text/plain": [
" match_minute match_second position_x position_y play_type BodyPart \\\n",
"0 29 54 23.69 4.99 Open Play Left \n",
"1 11 33 28.93 -11.22 Open Play Left \n",
"2 61 25 9.98 -5.24 Open Play Head \n",
"3 73 45 4.49 -5.74 Open Play Right \n",
"4 44 40 7.98 -12.97 Open Play Right \n",
"\n",
" Number_Intervening_Opponents Number_Intervening_Teammates \\\n",
"0 4 2 \n",
"1 4 1 \n",
"2 3 1 \n",
"3 2 0 \n",
"4 1 0 \n",
"\n",
" Interference_on_Shooter outcome ... Interference_on_Shooter_Code \\\n",
"0 Medium Missed ... 2 \n",
"1 Low Missed ... 1 \n",
"2 High Missed ... 3 \n",
"3 Low Missed ... 1 \n",
"4 Medium Saved ... 2 \n",
"\n",
" distance_to_goalM distance_to_centerM angle isFoot isHead \\\n",
"0 24.212265 5.001769 11.922004 1 0 \n",
"1 31.039134 11.246462 21.243463 1 0 \n",
"2 11.277751 5.252358 27.757313 0 1 \n",
"3 7.298171 5.753538 52.031899 1 0 \n",
"4 15.254368 13.000590 58.457635 1 0 \n",
"\n",
" header_distance_to_goalM High Low Medium \n",
"0 0.000000 0 0 1 \n",
"1 0.000000 0 1 0 \n",
"2 11.277751 1 0 0 \n",
"3 0.000000 0 1 0 \n",
"4 0.000000 0 0 1 \n",
"\n",
"[5 rows x 29 columns]"
]
},
"execution_count": 167,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"X.head()"
]
},
{
"cell_type": "code",
"execution_count": 168,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>isGoal</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" isGoal\n",
"0 0\n",
"1 0\n",
"2 0\n",
"3 0\n",
"4 0"
]
},
"execution_count": 168,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"y.head()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Przygotowanie danych"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Uwzględnienie wybranych cech: \n",
"- Współrzędna x strzelającego,\n",
"- Współrzędna y strzelającego,\n",
"- Dystans do bramki,\n",
"- Kąt do bramki,\n",
"- Minuta meczu,\n",
"- Liczba przeciwników przed piłką,\n",
"- Liczba zawodników ze swojej drużyny przed piłką,\n",
"- Część ciała."
]
},
{
"cell_type": "code",
"execution_count": 169,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Index(['match_minute', 'match_second', 'position_x', 'position_y', 'play_type',\n",
" 'BodyPart', 'Number_Intervening_Opponents',\n",
" 'Number_Intervening_Teammates', 'Interference_on_Shooter', 'outcome',\n",
" 'position_xM', 'position_yM', 'position_xM_r', 'position_yM_r',\n",
" 'position_xM_std', 'position_yM_std', 'position_xM_std_r',\n",
" 'position_yM_std_r', 'BodyPartCode', 'Interference_on_Shooter_Code',\n",
" 'distance_to_goalM', 'distance_to_centerM', 'angle', 'isFoot', 'isHead',\n",
" 'header_distance_to_goalM', 'High', 'Low', 'Medium'],\n",
" dtype='object')"
]
},
"execution_count": 169,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"X.columns"
]
},
{
"cell_type": "code",
"execution_count": 170,
"metadata": {},
"outputs": [],
"source": [
"X_extracted = X[['position_x', \n",
" 'position_y',\n",
" 'distance_to_goalM', \n",
" 'angle', \n",
" 'match_minute', \n",
" 'Number_Intervening_Opponents', \n",
" 'Number_Intervening_Teammates', \n",
" 'isFoot', \n",
" 'isHead']]"
]
},
{
"cell_type": "code",
"execution_count": 171,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"C:\\Users\\s478991\\AppData\\Local\\temp\\ipykernel_3956\\2392787789.py:1: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame.\n",
"Try using .loc[row_indexer,col_indexer] = value instead\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" X_extracted['isFoot'] = X_extracted['isFoot'].astype('category')\n",
"C:\\Users\\s478991\\AppData\\Local\\temp\\ipykernel_3956\\2392787789.py:2: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame.\n",
"Try using .loc[row_indexer,col_indexer] = value instead\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" X_extracted['isHead'] = X_extracted['isHead'].astype('category')\n"
]
}
],
"source": [
"X_extracted['isFoot'] = X_extracted['isFoot'].astype('category')\n",
"X_extracted['isHead'] = X_extracted['isHead'].astype('category')"
]
},
{
"cell_type": "code",
"execution_count": 172,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>position_x</th>\n",
" <th>position_y</th>\n",
" <th>distance_to_goalM</th>\n",
" <th>angle</th>\n",
" <th>match_minute</th>\n",
" <th>Number_Intervening_Opponents</th>\n",
" <th>Number_Intervening_Teammates</th>\n",
" <th>isFoot</th>\n",
" <th>isHead</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>23.69</td>\n",
" <td>4.99</td>\n",
" <td>24.212265</td>\n",
" <td>11.922004</td>\n",
" <td>29</td>\n",
" <td>4</td>\n",
" <td>2</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>28.93</td>\n",
" <td>-11.22</td>\n",
" <td>31.039134</td>\n",
" <td>21.243463</td>\n",
" <td>11</td>\n",
" <td>4</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>9.98</td>\n",
" <td>-5.24</td>\n",
" <td>11.277751</td>\n",
" <td>27.757313</td>\n",
" <td>61</td>\n",
" <td>3</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>4.49</td>\n",
" <td>-5.74</td>\n",
" <td>7.298171</td>\n",
" <td>52.031899</td>\n",
" <td>73</td>\n",
" <td>2</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>7.98</td>\n",
" <td>-12.97</td>\n",
" <td>15.254368</td>\n",
" <td>58.457635</td>\n",
" <td>44</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" position_x position_y distance_to_goalM angle match_minute \\\n",
"0 23.69 4.99 24.212265 11.922004 29 \n",
"1 28.93 -11.22 31.039134 21.243463 11 \n",
"2 9.98 -5.24 11.277751 27.757313 61 \n",
"3 4.49 -5.74 7.298171 52.031899 73 \n",
"4 7.98 -12.97 15.254368 58.457635 44 \n",
"\n",
" Number_Intervening_Opponents Number_Intervening_Teammates isFoot isHead \n",
"0 4 2 1 0 \n",
"1 4 1 1 0 \n",
"2 3 1 0 1 \n",
"3 2 0 1 0 \n",
"4 1 0 1 0 "
]
},
"execution_count": 172,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"X_extracted.head()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Podział danych na zbiór treningowy oraz zbiór testowy"
]
},
{
"cell_type": "code",
"execution_count": 173,
"metadata": {},
"outputs": [],
"source": [
"X_train, X_test, y_train, y_test = train_test_split(X_extracted, y, test_size=0.2, random_state=1)"
]
},
{
"cell_type": "code",
"execution_count": 174,
"metadata": {},
"outputs": [],
"source": [
"cv_outer = StratifiedKFold(n_splits=5, shuffle=True, random_state=1)\n",
"cv_inner = StratifiedKFold(n_splits=5, shuffle=True, random_state=1)"
]
},
{
"cell_type": "code",
"execution_count": 175,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Oddane strzały w zbiorze danych: 7226\n",
"Gole trafione w zbiorze danych: 906\n"
]
}
],
"source": [
"count_class_0, count_class_1 = y_train.value_counts()\n",
"print ('Oddane strzały w zbiorze danych: ', count_class_0)\n",
"print ('Gole trafione w zbiorze danych: ', count_class_1)"
]
},
{
"cell_type": "code",
"execution_count": 176,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"7.975717439293598"
]
},
"execution_count": 176,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Class imbalance in training data\n",
"\n",
"scale_pos_weight = count_class_0 / count_class_1\n",
"scale_pos_weight"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Trening danych"
]
},
{
"cell_type": "code",
"execution_count": 177,
"metadata": {},
"outputs": [],
"source": [
"from xgboost import XGBClassifier"
]
},
{
"cell_type": "code",
"execution_count": 178,
"metadata": {},
"outputs": [],
"source": [
"# Define the xgboost model\n",
"xgb_model = XGBClassifier(enable_categorical=True, tree_method='hist', objective='binary:logistic')"
]
},
{
"cell_type": "code",
"execution_count": 179,
"metadata": {},
"outputs": [],
"source": [
"# Defining the hyper-parameter grid for XG Boost\n",
"param_grid_xgb = {'learning_rate': [0.01, 0.001, 0.0001],\n",
" 'max_depth': [3, 5, 7, 8, 9],\n",
" 'n_estimators': [100, 150, 200, 250, 300],\n",
" 'scale_pos_weight': [1, scale_pos_weight]}"
]
},
{
"cell_type": "code",
"execution_count": 180,
"metadata": {},
"outputs": [],
"source": [
"start_time = time.time()"
]
},
{
"cell_type": "code",
"execution_count": 181,
"metadata": {},
"outputs": [],
"source": [
"# Perform nested cross-validation with grid search\n",
"\n",
"grid_xg = GridSearchCV(xgb_model, param_grid=param_grid_xgb, cv=cv_inner, scoring='f1', n_jobs=-1)\n",
"scores_xg = cross_val_score(grid_xg, X_train, y_train, cv=cv_outer, scoring='f1', n_jobs=-1)"
]
},
{
"cell_type": "code",
"execution_count": 182,
"metadata": {},
"outputs": [],
"source": [
"# Fit the best model on the entire training set\n",
"grid_xg.fit(X_train, y_train)\n",
"best_xgb_model = grid_xg.best_estimator_"
]
},
{
"cell_type": "code",
"execution_count": 183,
"metadata": {},
"outputs": [],
"source": [
"# Stopping the timer\n",
"stop_time = time.time()\n",
"\n",
"# Training Time\n",
"xgb_training_time = stop_time - start_time"
]
},
{
"cell_type": "code",
"execution_count": 184,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Best parameters: {'learning_rate': 0.001, 'max_depth': 3, 'n_estimators': 100, 'scale_pos_weight': 7.975717439293598}\n",
"Model Training Time: 677.443 seconds\n"
]
}
],
"source": [
"# Print the best parameters and training time\n",
"print(\"Best parameters: \", grid_xg.best_params_)\n",
"print (f\"Model Training Time: {xgb_training_time:.3f} seconds\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Ewaluacja modelu"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Dane treningowe"
]
},
{
"cell_type": "code",
"execution_count": 185,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Text(0.5, 1.0, 'Confusion Matrix - Train Set')"
]
},
"execution_count": 185,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAiQAAAHHCAYAAACPy0PBAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8pXeV/AAAACXBIWXMAAA9hAAAPYQGoP6dpAABJHklEQVR4nO3deVwV9f7H8fcB5YisorKVC2Yu5JZYipSmkmho7mVZ4lY3Q80141bmUlK2mGZqtmGLZVaaSy6kqZm4ZKHmlqZFpeCKuALC/P7w57meUA/YGQ/h6/l4zONxmfme73xnlO7bz/c7cyyGYRgCAABwITdXDwAAAIBAAgAAXI5AAgAAXI5AAgAAXI5AAgAAXI5AAgAAXI5AAgAAXI5AAgAAXI5AAgAAXI5Agn+N3bt3q3Xr1vLz85PFYtG8efOc2v9vv/0mi8WipKQkp/b7b3bXXXfprrvucvUwTMGfN1C8EEhQJL/++qv+85//qFq1aipTpox8fX0VFRWlSZMm6cyZM6aeOy4uTlu3btULL7ygDz/8UI0aNTL1fNdSr169ZLFY5Ovre8n7uHv3blksFlksFr3yyitF7n///v0aPXq0UlNTnTBac40ePdp2rVfaimNQys/P1wcffKDGjRsrICBAPj4+qlGjhnr27Kl169YVub/Tp09r9OjRWrlypfMHCxQzpVw9APx7LFq0SN26dZPValXPnj1Vp04d5eTkaM2aNRoxYoS2bdumGTNmmHLuM2fOKCUlRU8//bQGDBhgyjmqVKmiM2fOqHTp0qb070ipUqV0+vRpLViwQPfdd5/dsY8//lhlypTR2bNnr6rv/fv3a8yYMapataoaNGhQ6M8tW7bsqs73T3Tu3FnVq1e3/Xzy5En1799fnTp1UufOnW37g4KC/tF5zPjzHjRokN5880116NBBPXr0UKlSpbRr1y4tXrxY1apVU5MmTYrU3+nTpzVmzBhJKpYBDHAmAgkKZd++ferevbuqVKmiFStWKCQkxHYsPj5ee/bs0aJFi0w7/6FDhyRJ/v7+pp3DYrGoTJkypvXviNVqVVRUlD755JMCgWTWrFmKjY3VF198cU3Gcvr0aZUtW1YeHh7X5HwXq1evnurVq2f7+fDhw+rfv7/q1aunhx566LKfO3v2rDw8POTmVrjCr7P/vDMyMjR16lQ98sgjBYL566+/bvs7DODSmLJBoUyYMEEnT57Uu+++axdGLqhevbqeeOIJ28/nzp3TuHHjdNNNN8lqtapq1ar673//q+zsbLvPVa1aVe3atdOaNWt0++23q0yZMqpWrZo++OADW5vRo0erSpUqkqQRI0bIYrGoatWqks5PdVz43xe7UPa/WHJysu644w75+/vL29tbNWvW1H//+1/b8cutKVixYoXuvPNOeXl5yd/fXx06dNCOHTsueb49e/aoV69e8vf3l5+fn3r37q3Tp09f/sb+zYMPPqjFixcrMzPTtm/jxo3avXu3HnzwwQLtjx49quHDh6tu3bry9vaWr6+v2rZtq82bN9varFy5UrfddpskqXfv3rYpjwvXedddd6lOnTratGmTmjVrprJly9ruy9/XkMTFxalMmTIFrj8mJkblypXT/v37C32t/8TKlStlsVj06aef6plnntENN9ygsmXLKisrq1D3RLr0n3evXr3k7e2tv/76Sx07dpS3t7cqVqyo4cOHKy8v74pj2rdvnwzDUFRUVIFjFotFgYGBdvsyMzM1ePBgVapUSVarVdWrV9dLL72k/Px82/gqVqwoSRozZoztz2306NFXcceA4o8KCQplwYIFqlatmpo2bVqo9v369dPMmTPVtWtXDRs2TOvXr1diYqJ27NihuXPn2rXds2ePunbtqr59+youLk7vvfeeevXqpYiICN1yyy3q3Lmz/P39NWTIED3wwAO655575O3tXaTxb9u2Te3atVO9evU0duxYWa1W7dmzR99///0VP/fNN9+obdu2qlatmkaPHq0zZ87ojTfeUFRUlH788ccCYei+++5TWFiYEhMT9eOPP+qdd95RYGCgXnrppUKNs3Pnznrsscf05Zdfqk+fPpLOV0dq1aqlhg0bFmi/d+9ezZs3T926dVNYWJgyMjL01ltvqXnz5tq+fbtCQ0NVu3ZtjR07VqNGjdKjjz6qO++8U5Ls/iyPHDmitm3bqnv37nrooYcuOx0yadIkrVixQnFxcUpJSZG7u7veeustLVu2TB9++KFCQ0MLdZ3OMm7cOHl4eGj48OHKzs6Wh4eHtm/f7vCeXEleXp5iYmLUuHFjvfLKK/rmm2/06quv6qabblL//v0v+7kLoXnOnDnq1q2bypYte9m2p0+fVvPmzfXXX3/pP//5jypXrqy1a9cqISFBBw4c0Ouvv66KFStq2rRp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",
"text/plain": [
"<Figure size 640x480 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Confusion Matrix for Training Data\n",
"cm_train_xg = confusion_matrix(y_train, best_xgb_model.predict(X_train))\n",
"\n",
"ax = sns.heatmap(cm_train_xg, annot=True, cmap='BuPu', fmt='g', linewidth=1.5)\n",
"\n",
"ax.set_xlabel('Predicted')\n",
"ax.set_ylabel('Actual')\n",
"ax.set_title('Confusion Matrix - Train Set')"
]
},
{
"cell_type": "code",
"execution_count": 186,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" precision recall f1-score support\n",
"\n",
" 0 0.94 0.84 0.88 7226\n",
" 1 0.30 0.56 0.39 906\n",
"\n",
" accuracy 0.81 8132\n",
" macro avg 0.62 0.70 0.64 8132\n",
"weighted avg 0.87 0.81 0.83 8132\n",
"\n"
]
}
],
"source": [
"# Classfication report for training data\n",
"print (classification_report(y_train, best_xgb_model.predict(X_train)))"
]
},
{
"cell_type": "code",
"execution_count": 187,
"metadata": {},
"outputs": [],
"source": [
"# xgb.to_graphviz(best_xgb_model, num_trees=1)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Dane testowe"
]
},
{
"cell_type": "code",
"execution_count": 188,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Text(0.5, 1.0, 'Confusion Matrix - Test Set')"
]
},
"execution_count": 188,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAiQAAAHHCAYAAACPy0PBAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8pXeV/AAAACXBIWXMAAA9hAAAPYQGoP6dpAABILElEQVR4nO3deVxUZf//8fcAMiDKprKZa7nvaRnuJne4ZG7lbVmiuZS55Jp637mXFJpbamab1q1lWZpZqSQplbhhqJmZlmml4IJIoALC+f3hz/k2oQ7oHEfx9exxHo/mnGvOuc7U1NvPdV1nLIZhGAIAAHAhN1d3AAAAgEACAABcjkACAABcjkACAABcjkACAABcjkACAABcjkACAABcjkACAABcjkACAABcjkCCW9aBAwf0wAMPyM/PTxaLRatWrXLq+X/77TdZLBYtXrzYqee9lbVq1UqtWrVydTcAFEEEElyXX375RU899ZQqV64sLy8v+fr6qmnTppozZ47OnTtn6rWjoqK0Z88evfjii3rvvffUqFEjU693I/Xu3VsWi0W+vr6X/RwPHDggi8Uii8WiGTNmFPr8R48e1aRJk5SUlOSE3ppr0qRJtnu92uasoPTFF19o0qRJBW6fl5end999V40bN1ZgYKBKliypqlWrqlevXtqyZUuhr3/27FlNmjRJGzduLPR7gVuZh6s7gFvX559/rkceeURWq1W9evVS7dq1lZ2drW+//VajR4/W3r17tWjRIlOufe7cOSUkJOi///2vBg8ebMo1KlSooHPnzqlYsWKmnN8RDw8PnT17Vp999pm6d+9ud2zp0qXy8vLS+fPnr+ncR48e1eTJk1WxYkXVr1+/wO9bv379NV3venTt2lV33XWX7XVGRoYGDhyoLl26qGvXrrb9wcHBTrneF198ofnz5xc4lAwdOlTz589Xp06d1LNnT3l4eGj//v368ssvVblyZd13332Fuv7Zs2c1efJkSaIahdsKgQTX5NChQ+rRo4cqVKiguLg4hYaG2o4NGjRIBw8e1Oeff27a9U+cOCFJ8vf3N+0aFotFXl5epp3fEavVqqZNm+r999/PF0iWLVumDh066OOPP74hfTl79qyKFy8uT0/PG3K9v6tbt67q1q1re33y5EkNHDhQdevW1eOPP37D+/N3KSkpWrBggfr3758vfM+ePdv27ykAxxiy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K6FCgmty5513atmyZfr3v/+tGjVq2D2pdfPmzfroo4/Uu3dvSVK9evUUFRWlRYsWKS0tTS1bttS2bdu0ZMkSde7cWa1bt3Zav3r06KExY8aoS5cuGjp0qM6ePavXXntNVatWtZvUOWXKFMXHx6tDhw6qUKGCjh8/rgULFuiOO+5Qs2bNrnj+6dOnq127dgoPD1ffvn1ty379/PxMfVaEm5ubnn/+eYftHnzwQU2ZMkV9+vRRkyZNtGfPHi1dujTf/+zvvPNO+fv7a+HChSpZsqR8fHzUuHFjVapUqVD9iouL04IFCzRx4kTbMuR33nlHrVq10vjx4xUTE1Oo812r+fPnq1mzZqpTp4769++vypUrKyUlRQkJCfrjjz9sz2GpWbOmWrVqpYYNGyowMFA7duzQihUr7J7227BhQ0kXn8AaGRkpd3f3K1al/vjjD9177726//771aZNG4WEhOj48eN6//33tWvXLg0bNsxWmRo9erRWr16tBx980LaMPTMzU3v27NGKFSv022+/qXTp0vL29lbNmjW1fPlyVa1aVYGBgapdu7Zq165t8qcIuJhrF/ngVvfzzz8b/fv3NypWrGh4enoaJUuWNJo2bWq8+uqrdkswc3JyjMmTJxuVKlUyihUrZpQrV84YN26cXRvDuLjs93LLMv+53PRKy34NwzDWr19v1K5d2/D09DSqVatm/O9//8u37HfDhg1Gp06djLCwMMPT09MICwszHn30UbslmZdb9msYhvHVV18ZTZs2Nby9vQ1fX1+jY8eOxo8//mjX5tL1/rms+J133jEkGYcOHbriZ2oY9st+r+RKy35HjhxphIaGGt7e3kbTpk2NhISEyy7X/fTTT42aNWsaHh4edvfZsmVLo1atWpe95t/Pk56eblSoUMG4++67jZycHLt2w4cPN9zc3IyEhISr3sO1uNKy2F9++cXo1auXERISYhQrVswoW7as8eCDDxorVqywtXnhhReMe++91/D39ze8vb2N6tWrGy+++KKRnZ1ta3PhwgVjyJAhRpkyZQyLxXLVJcDp6enGnDlzjMjISOOOO+4wihUrZpQsWdIIDw833njjDSMvL8+u/V9//WWMGzfOuOuuuwxPT0+jdOnSRpMmTYwZM2bY9WHz5s1Gw4YNDU9PT5YA47ZhMYxCzK4DAAAwAXNIAACAyxFIAACAyxFIAACAyxFIAACAyxFIAACAyxFIAACAyxFIAACAy/GkVgAATObdYLDjRgVw7vt5TjnPzYgKCQAAcLkiXSFxViIFbnX//FPVb6fOu6gnwM2jYimvG3cxC3/+d6RIBxIAAG4KFoure3DTI5AAAGA2KiQO8QkBAACXo0ICAIDZGLJxiEACAIDZGLJxiE8IAAC4HBUSAADMxpCNQwQSAADMxpCNQ3xCAADA5aiQAABgNoZsHCKQAABgNoZsHOITAgAALkeFBAAAszFk4xCBBAAAszFk4xCBBAAAs1EhcYjIBgAAXI4KCQAAZmPIxiECCQAAZiOQOMQnBAAAXI4KCQAAZnNjUqsjBBIAAMzGkI1DfEIAAMDlqJAAAGA2nkPiEBUSAADMZnFzzlZI8fHx6tixo8LCwmSxWLRq1aortn366adlsVg0e/Zsu/2pqanq2bOnfH195e/vr759+yojI8Ouze7du9W8eXN5eXmpXLlyiomJKXRfCSQAABRRmZmZqlevnubPn3/VditXrtSWLVsUFhaW71jPnj21d+9excbGas2aNYqPj9eAAQNsx9PT0/XAAw+oQoUKSkxM1PTp0zVp0iQtWrSoUH1lyAYAALO5aMimXbt2ateu3VXb/PnnnxoyZIjWrVunDh062B3bt2+f1q5dq+3bt6tRo0aSpFdffVXt27fXjBkzFBYWpqVLlyo7O1tvv/22PD09VatWLSUlJWnmzJl2wcURKiQAAJjNSUM2WVlZSk9Pt9uysrKuuVt5eXl64oknNHr0aNWqVSvf8YSEBPn7+9vCiCRFRETIzc1NW7dutbVp0aKFPD09bW0iIyO1f/9+nT59usB9IZAAAGA2i8UpW3R0tPz8/Oy26Ojoa+7Wyy+/LA8PDw0dOvSyx5OTkxUUFGS3z8PDQ4GBgUpOTra1CQ4Otmtz6fWlNgXBkA0AALeIcePGacSIEXb7rFbrNZ0rMTFRc+bM0c6dO2W5CVYBUSEBAMBsThqysVqt8vX1tduuNZB88803On78uMqXLy8PDw95eHjo8OHDGjlypCpWrChJCgkJ0fHjx+3ed+HCBaWmpiokJMTWJiUlxa7NpdeX2hQEgQQAALM5acjGmZ544gnt3r1bSUlJti0sLEyjR4/WunXrJEnh4eFKS0tTYmKi7X1xcXHKy8tT48aNbW3i4+OVk5NjaxMbG6tq1aopICCgwP1hyAYAgCIqIyNDBw8etL0+dOiQkpKSFBgYqPLly6tUqVJ27YsVK6aQkBBVq1ZNklSjRg21bdtW/fv318KFC5WTk6PBgwerR48etiXCjz32mCZPnqy+fftqzJgx+uGHHzRnzhzNmjWrUH0lkAAAYDYX/ZbNjh071Lp1a9vrS/NPoqKitHjx4gKdY+nSpRo8eLDatGkjNzc3devWTXPnzrUd9/Pz0/r16zVo0CA1bNhQpUuX1oQJEwq15FeSLIZhGIV6xy3Eu8FgV3cBuCmc+36e3evfTp13UU+Am0fFUl437FreHeY6blQA5z6//GqYooA5JAAAwOUYsgEAwGwuGrK5lRBIAAAwG4HEIT4hAADgclRIAAAw203wJNSbHYEEAACzMWTjEIEEAACzUSFxiMgGAABcjgoJAABmY8jGIQIJAABmY8jGISIbAABwOSokAACYzEKFxCECCQAAJiOQOMaQDQAAcDkqJAAAmI0CiUMEEgAATMaQjWMM2QAAAJejQgIAgMmokDhGIAEAwGQEEscIJAAAmIxA4hhzSAAAgMtRIQEAwGwUSBwikAAAYDKGbBxjyAYAALgcFRIAAExGhcQxAgkAACYjkDjGkA0AAHA5KiQAAJiMColjBBIAAMxGHnGIIRsAAOByVEgAADAZQzaOEUgAADAZgcQxAgkAACYjkDjGHBIAAOByVEgAADAbBRKHCCQAAJiMIRvHGLIBAAAuR4UEAACTUSFxjEACAIDJCCSOMWQDAABcjgoJAAAmo0LiGIEEAACzkUccYsgGAIAiKj4+Xh07dlRYWJgsFotWrVplO5aTk6MxY8aoTp068vHxUVhYmHr16qWjR4/anSM1NVU9e/aUr6+v/P391bdvX2VkZNi12b17t5o3by4vLy+VK1dOMTExhe4rgQQAAJNZLBanbIWVmZmpevXqaf78+fmOnT17Vjt37tT48eO1c+dOffLJJ9q/f78eeughu3Y9e/bU3r17FRsbqzVr1ig+Pl4DBgywHU9PT9cDDzygChUqKDExUdOnT9ekSZO0aNGiQvWVIRsAAEzmqjkk7dq1U7t27S57zM/PT7GxsXb75s2bp3vvvVdHjhxR+fLltW/fPq1du1bbt29Xo0aNJEmvvvqq2rdvrxkzZigsLExLly5Vdna23n77bXl6eqpWrVpKSkrSzJkz7YKLI1RIAAAwmbMqJFlZWUpPT7fbsrKynNbPM2fOyGKxyN/fX5KUkJAgf39/WxiRpIiICLm5uWnr1q22Ni1atJCnp6etTWRkpPbv36/Tp08X+NoEEgAAbhHR0dHy8/Oz26Kjo51y7vPnz2vMmDF69NFH5evrK0lKTk5WUFCQXTsPDw8FBgYqOTnZ1iY4ONiuzaXXl9oUBEM2AACYzUkjNuPGjdOIESPs9lmt1us+b05Ojrp37y7DMPTaa69d9/muBYEEAACTOWsOidVqdUoA+btLYeTw4cOKi4uzVUckKSQkRMePH7drf+HCBaWmpiokJMTWJiUlxa7NpdeX2hQEQzYAANymLoWRAwcO6KuvvlKpUqXsjoeHhystLU2JiYm2fXFxccrLy1Pjxo1tbeLj45WTk2NrExsbq2rVqikgIKDAfaFCgqtqevedGt4rQnfXLK/QMn7qPnyRPtu423Z80eTH9cRD99m9Z/13P6rT4AW218/1jVS75rVUt+odyr5wQaEtnrvi9QL9fLRt+ViVDQ5QSPPROpNxzvk3BZjgg3ff0ncbN+j3I4fk6WlVzTr11feZYSpXoaKtTeqpk3pz3kzt3L5FZ89mqlz5iuoR1V/NW0fY2kx8bqh+ObBfaadTVbKkrxo0aqy+zwxTqTJBl7kqbhWuWmWTkZGhgwcP2l4fOnRISUlJCgwMVGhoqB5++GHt3LlTa9asUW5urm3OR2BgoDw9PVWjRg21bdtW/fv318KFC5WTk6PBgwerR48eCgsLkyQ99thjmjx5svr27asxY8bohx9+0Jw5czRr1qxC9ZVAgqvy8bZqz89/6t1PE7R85uWXb637bq+emvg/2+us7At2xz2LueuT2O+1dfchRXUOv+r1Fk58THsOHFXZ4IKnauBmsPv7HerY7d+qWqOWcnNztXjhq/rPsKf1xrJP5OVdXJI0fcp/lZHxlybFzJGfX4C+Xv+Fpo0frVffWqa7qtWQJNW7+x716NVPgaVK6+TJ43rj1Zma+t9Rmr3oXVfeHq6TqwLJjh071Lp1a9vrS/NPoqKiNGnSJK1evVqSVL9+fbv3ff3112rVqpUkaenSpRo8eLDatGkjNzc3devWTXPnzrW19fPz0/r16zVo0CA1bNhQpUuX1oQJEwq15FcikMCB9d/9qPXf/XjVNtnZF5Ry6q8rHn9h4ReSpMc7Nr7qefo/0kx+JYtr2qIv1bZZrcJ3FnChabPsJwKOfH6K/t2htQ78tE91GjSUJP34wy4NGfVfVa9ZR5L0WJ8B+mT5/3Rg/z5bIOna4wnbOYJDw/TvJ57U5LHDdOFCjjw8it2gu0FR0apVKxmGccXjVzt2SWBgoJYtW3bVNnXr1tU333xT6P79nUsDycmTJ/X2228rISHBViYKCQlRkyZN1Lt3b5UpU8aV3UMBNW9URYc3RCst/aw2bv9Zk+evUeqZzEKdo3rlEI3r304te81QxbKlTeopcONkZl58tHbJv00QrFm7njZtWKd7m7ZQiRIlFb9hnbKzs1T37kaXPUd6+hnFrf9cNevUI4zc4vhxPcdcFki2b9+uyMhIFS9eXBEREapataqkizNz586dq5deeknr1q2zexgLbj6xm/fp07hd+u3PU6p8R2lNHtJRn84bqJZRrygvz3HyliTPYh5aEt1b/5m9Sr8nnyaQ4JaXl5enhbNjVKtufVW8s4pt/39fmK5p45/TI21byN3dQ1YvL02MnqWyd5S3e/+b82dp9ccfKOv8edWoVVdTZrx6o28BzkYecchlgWTIkCF65JFHtHDhwnzJ0TAMPf300xoyZIgSEhKuep6srKx8T6kzY1kULu+jdf8383rvwaPac+BP7VszWS0aVdHGbT8X6BxThz6k/YdS9MEX283qJnBDzXtlmg7/+oteWbjYbv+SN+YrI+MvvTR3kXz9/JUQ/7VeHP+cXnntHVX6W3B5pGdvte3YRSnJx7T07YWaPuV5TZnxKn/KRpHmsmW/u3bt0vDhwy/7BbNYLBo+fLiSkpIcnsfMp9ah8H7785ROnP5Ld5Yr+HBby3uqqmtEA/21fY7+2j5HX74+RJL0x9cv6fmn25vVVcAU816Zpq3fxStm3hsqE/R/T688+sfvWr3iA434z2Q1aNRYd1appsf7Pq0q1Wtq9ccf2J3Dzz9Ad5SvqIb3hmvclBhtS/hG+37Y/c9L4Rbiqh/Xu5W4rEISEhKibdu2qXr16pc9vm3btnyPor0cs55ah2tTNshfpfx8lHwyvcDveXTUm/K2/t/4eMNaFbRo8uOK6Dtbv/5+woxuAk5nGIbmz4zW5k1xmj7/LYWE3WF3PCvrvCTJzc3+z4Hubm4yrjK8aeTlSZJycrKd3GPcSEU9TDiDywLJqFGjNGDAACUmJqpNmza28JGSkqINGzbojTfe0IwZMxyeh+EZc/l4e9pVOyqWLaW6VcvqdPpZpZ7J1H+faq9VG5KUfDJdlcuV1ovPdtYvv59U7OZ9tveUCwlQgG9xlQsNkLubm+pWLStJ+uX3E8o8l61Df5y0u2Yp/xKSpJ9+TeY5JLhlzJsxTV/HfqlJL8+Wd3EfpZ66+O+1T4kSslq9VK5CRYXdUV5zXp6q/kNGyNfXX5vj47Rz+xZNmX5xjshPe3dr/769ql23gUqU9NWxP3/XkjcWKLRsOdWoXc+Vt4frRB5xzGWBZNCgQSpdurRmzZqlBQsWKDc3V5Lk7u6uhg0bavHixerevburuof/7+6aFbT+zWdtr2NGdZMkvbd6i4ZOW67aVcqqZ8fG8i/prWMnzuirhJ80ZcEaZef837NIxg/sYPfwtK3Lx0mSHug3R98kHrhBdwKYa83KDyVJowf1tds/8r9T9ECHTvLwKKYXXpmnt16bo4mjh+rcubMKu6O8Rj0/Vfc2aS5Jsnp567uNG/Tem6/p/PlzCixVWo3ua6r/9o6x+yVVoCiyGAVZhGyynJwcnTx58U8TpUuXVrFizlne5t1gsFPOA9zqzn0/z+71b6fOu6gnwM2jYimvG3atKqPXOuU8B6a3dcp5bkY3xYPRihUrptDQUFd3AwAAUzBk4xg/rgcAAFzupqiQAABQlLHKxjECCQAAJiOPOMaQDQAAcDkqJAAAmMzNjRKJIwQSAABMxpCNYwzZAAAAl6NCAgCAyVhl4xiBBAAAk5FHHCOQAABgMiokjjGHBAAAuBwVEgAATEaFxDECCQAAJiOPOMaQDQAAcDkqJAAAmIwhG8cIJAAAmIw84hhDNgAAwOWokAAAYDKGbBwjkAAAYDLyiGMM2QAAAJejQgIAgMkYsnGMQAIAgMnII44RSAAAMBkVEseYQwIAAFyOCgkAACajQOIYgQQAAJMxZOMYQzYAAMDlqJAAAGAyCiSOEUgAADAZQzaOMWQDAABcjgoJAAAmo0DiGIEEAACTMWTjGEM2AADA5QgkAACYzGKxOGUrrPj4eHXs2FFhYWGyWCxatWqV3XHDMDRhwgSFhobK29tbEREROnDggF2b1NRU9ezZU76+vvL391ffvn2VkZFh12b37t1q3ry5vLy8VK5cOcXExBS6rwQSAABMZrE4ZyuszMxM1atXT/Pnz7/s8ZiYGM2dO1cLFy7U1q1b5ePjo8jISJ0/f97WpmfPntq7d69iY2O1Zs0axcfHa8CAAbbj6enpeuCBB1ShQgUlJiZq+vTpmjRpkhYtWlSovjKHBAAAk7lqDkm7du3Url27yx4zDEOzZ8/W888/r06dOkmS3n33XQUHB2vVqlXq0aOH9u3bp7Vr12r79u1q1KiRJOnVV19V+/btNWPGDIWFhWnp0qXKzs7W22+/LU9PT9WqVUtJSUmaOXOmXXBxhAoJAAC3iKysLKWnp9ttWVlZ13SuQ4cOKTk5WREREbZ9fn5+aty4sRISEiRJCQkJ8vf3t4URSYqIiJCbm5u2bt1qa9OiRQt5enra2kRGRmr//v06ffp0gftDIAEAwGTOGrKJjo6Wn5+f3RYdHX1NfUpOTpYkBQcH2+0PDg62HUtOTlZQUJDdcQ8PDwUGBtq1udw5/n6NgmDIBgAAkzlryGbcuHEaMWKE3T6r1eqUc7sagQQAgFuE1Wp1WgAJCQmRJKWkpCg0NNS2PyUlRfXr17e1OX78uN37Lly4oNTUVNv7Q0JClJKSYtfm0utLbQqCIRsAAEzmqlU2V1OpUiWFhIRow4YNtn3p6enaunWrwsPDJUnh4eFKS0tTYmKirU1cXJzy8vLUuHFjW5v4+Hjl5OTY2sTGxqpatWoKCAgocH8IJAAAmMzNYnHKVlgZGRlKSkpSUlKSpIsTWZOSknTkyBFZLBYNGzZML7zwglavXq09e/aoV69eCgsLU+fOnSVJNWrUUNu2bdW/f39t27ZN3333nQYPHqwePXooLCxMkvTYY4/J09NTffv21d69e7V8+XLNmTMn39CSIwzZAABQRO3YsUOtW7e2vb4UEqKiorR48WI999xzyszM1IABA5SWlqZmzZpp7dq18vLysr1n6dKlGjx4sNq0aSM3Nzd169ZNc+fOtR338/PT+vXrNWjQIDVs2FClS5fWhAkTCrXkV5IshmEY13m/Ny3vBoNd3QXgpnDu+3l2r387df4KLYHbR8VSXo4bOckD87c45TzrB93nlPPcjKiQAABgMn5czzECCQAAJnMjjzjEpFYAAOByVEgAADAZQzaOEUgAADAZecQxhmwAAIDLUSEBAMBkFlEicYRAAgCAyVhl4xhDNgAAwOWokAAAYDJW2ThGIAEAwGTkEccYsgEAAC5HhQQAAJO5USJxiEACAIDJyCOOEUgAADAZk1odYw4JAABwOSokAACYjAKJYwQSAABMxqRWxxiyAQAALkeFBAAAk1EfcYxAAgCAyVhl4xhDNgAAwOWokAAAYDI3CiQOFSiQrF69usAnfOihh665MwAAFEUM2ThWoEDSuXPnAp3MYrEoNzf3evoDAABuQwUKJHl5eWb3AwCAIosCiWPMIQEAwGQM2Th2TYEkMzNTmzZt0pEjR5SdnW13bOjQoU7pGAAARQWTWh0rdCD5/vvv1b59e509e1aZmZkKDAzUyZMnVbx4cQUFBRFIAABAoRX6OSTDhw9Xx44ddfr0aXl7e2vLli06fPiwGjZsqBkzZpjRRwAAbmkWi8UpW1FW6ECSlJSkkSNHys3NTe7u7srKylK5cuUUExOj//znP2b0EQCAW5rFSVtRVuhAUqxYMbm5XXxbUFCQjhw5Ikny8/PT77//7tzeAQCA20Kh55A0aNBA27dvV5UqVdSyZUtNmDBBJ0+e1HvvvafatWub0UcAAG5pbkV8uMUZCl0hmTZtmkJDQyVJL774ogICAjRw4ECdOHFCixYtcnoHAQC41VksztmKskJXSBo1amT7+6CgIK1du9apHQIAALcfHowGAIDJivoKGWcodCCpVKnSVT/YX3/99bo6BABAUUMecazQgWTYsGF2r3NycvT9999r7dq1Gj16tLP6BQAAbiOFDiTPPvvsZffPnz9fO3bsuO4OAQBQ1LDKxrFCr7K5knbt2unjjz921ukAACgyWGXjmNMmta5YsUKBgYHOOp1TnPt+nqu7ANyUKpbycnUXgNsKk1odu6YHo/39gzUMQ8nJyTpx4oQWLFjg1M4BAIDbQ6GHbDp16mS3de3aVRMnTtQPP/ygAQMGmNFHAABuaW5O2gojNzdX48ePV6VKleTt7a0777xTU6dOlWEYtjaGYWjChAkKDQ2Vt7e3IiIidODAAbvzpKamqmfPnvL19ZW/v7/69u2rjIyMwn8IDhS6QjJp0iSndwIAgKLMFUM2L7/8sl577TUtWbJEtWrV0o4dO9SnTx/5+flp6NChkqSYmBjNnTtXS5YsUaVKlTR+/HhFRkbqxx9/lJfXxaHdnj176tixY4qNjVVOTo769OmjAQMGaNmyZU7tr8X4e1QqAHd3dx07dkxBQUF2+0+dOqWgoCDl5uY6tYPX4/wFV/cAuDl4/eOPHnw3gPzfCzMNXfWTU84zt3P1Ard98MEHFRwcrLfeesu2r1u3bvL29tb//vc/GYahsLAwjRw5UqNGjZIknTlzRsHBwVq8eLF69Oihffv2qWbNmtq+fbvtSe1r165V+/bt9ccffygsLMwp9yVdw5DNlfJLVlaWPD09r7tDAAAUNW4W52xZWVlKT0+327Kysi57zSZNmmjDhg36+eefJUm7du3St99+q3bt2kmSDh06pOTkZEVERNje4+fnp8aNGyshIUGSlJCQIH9/f7ufjYmIiJCbm5u2bt3q1M+owPlw7ty5ki6Wnd58802VKFHCdiw3N1fx8fGqXr3gyQ0AgNuFm5NGbKKjozV58mS7fRMnTrzsdIqxY8cqPT1d1atXl7u7u3Jzc/Xiiy+qZ8+ekqTk5GRJUnBwsN37goODbceSk5PzjYh4eHgoMDDQ1sZZChxIZs2aJelihWThwoVyd3e3HfP09FTFihW1cOFCp3YOAAD8n3HjxmnEiBF2+6xW62Xbfvjhh1q6dKmWLVumWrVqKSkpScOGDVNYWJiioqJuRHcLpcCB5NChQ5Kk1q1b65NPPlFAQIBpnQIAoChx1qRWq9V6xQDyT6NHj9bYsWPVo0cPSVKdOnV0+PBhRUdHKyoqSiEhIZKklJQUhYaG2t6XkpKi+vXrS5JCQkJ0/Phxu/NeuHBBqamptvc7S6HnkHz99deEEQAACsFZc0gK4+zZs3Jzs//fvLu7u/Ly8iRd/LHckJAQbdiwwXY8PT1dW7duVXh4uCQpPDxcaWlpSkxMtLWJi4tTXl6eGjdufI2fxuUVOpB069ZNL7/8cr79MTExeuSRR5zSKQAAcH06duyoF198UZ9//rl+++03rVy5UjNnzlSXLl0kXazaDBs2TC+88IJWr16tPXv2qFevXgoLC1Pnzp0lSTVq1FDbtm3Vv39/bdu2Td99950GDx6sHj16OHWFjXQNy37LlCmjuLg41alTx27/nj17FBERoZSUFKd28HqwtBG4iGW/QH43ctnvc5/vd8p5YjpUK3Dbv/76S+PHj9fKlSt1/PhxhYWF6dFHH9WECRNsq2INw9DEiRO1aNEipaWlqVmzZlqwYIGqVq1qO09qaqoGDx6szz77TG5uburWrZvmzp1rt7jFGQodSLy9vZWUlKRq1ew/lJ9++kkNGjTQuXPnnNrB68F/dIGLCCRAfjcykIz94mennOel9lUdN7pFFXrIpk6dOlq+fHm+/R988IFq1qzplE4BAFCUuOLR8beaQufD8ePHq2vXrvrll190//33S5I2bNigZcuWacWKFU7vIAAAKPoKHUg6duyoVatWadq0aVqxYoW8vb1Vr149xcXFKTAw0Iw+AgBwS3PBT9nccq5pBK1Dhw7q0KGDpItLhN5//32NGjVKiYmJN9Vv2QAAcDNwI5E4dM1DUvHx8YqKilJYWJheeeUV3X///dqyZYsz+wYAAG4ThaqQJCcna/HixXrrrbeUnp6u7t27KysrS6tWrWJCKwAAV0CBxLECV0g6duyoatWqaffu3Zo9e7aOHj2qV1991cy+AQBQJLjiSa23mgJXSL788ksNHTpUAwcOVJUqVczsEwAAuM0UuELy7bff6q+//lLDhg3VuHFjzZs3TydPnjSzbwAAFAluFotTtqKswIHkvvvu0xtvvKFjx47pqaee0gcffKCwsDDl5eUpNjZWf/31l5n9BADglmWxOGcrygq9ysbHx0dPPvmkvv32W+3Zs0cjR47USy+9pKCgID300ENm9BEAABRx1/Uk2mrVqikmJkZ//PGH3n//fWf1CQCAIoVJrY455aeF3N3d1blzZ9vPFQMAgP9jURFPE05wA3/rEACA21NRr244Q1H/8UAAAHALoEICAIDJqJA4RiABAMBklqK+ZtcJGLIBAAAuR4UEAACTMWTjGIEEAACTMWLjGEM2AADA5aiQAABgsqL+w3jOQCABAMBkzCFxjCEbAADgclRIAAAwGSM2jhFIAAAwmRs/rucQgQQAAJNRIXGMOSQAAMDlqJAAAGAyVtk4RiABAMBkPIfEMYZsAACAy1EhAQDAZBRIHCOQAABgMoZsHGPIBgAAuBwVEgAATEaBxDECCQAAJmM4wjE+IwAA4HJUSAAAMJmFMRuHCCQAAJiMOOIYgQQAAJOx7Ncx5pAAAACXo0ICAIDJqI84RoUEAACTWSzO2Qrrzz//1OOPP65SpUrJ29tbderU0Y4dO2zHDcPQhAkTFBoaKm9vb0VEROjAgQN250hNTVXPnj3l6+srf39/9e3bVxkZGdf7keRDIAEAoAg6ffq0mjZtqmLFiunLL7/Ujz/+qFdeeUUBAQG2NjExMZo7d64WLlyorVu3ysfHR5GRkTp//rytTc+ePbV3717FxsZqzZo1io+P14ABA5zeX4thGIbTz3qTOH/B1T0Abg5e/xic5bsB5P9emOn97/90ynkebVC2wG3Hjh2r7777Tt98881ljxuGobCwMI0cOVKjRo2SJJ05c0bBwcFavHixevTooX379qlmzZravn27GjVqJElau3at2rdvrz/++ENhYWHXf1P/HxUSAABM5uakLSsrS+np6XZbVlbWZa+5evVqNWrUSI888oiCgoLUoEEDvfHGG7bjhw4dUnJysiIiImz7/Pz81LhxYyUkJEiSEhIS5O/vbwsjkhQRESE3Nzdt3brVKZ/NJQQSAABuEdHR0fLz87PboqOjL9v2119/1WuvvaYqVapo3bp1GjhwoIYOHaolS5ZIkpKTkyVJwcHBdu8LDg62HUtOTlZQUJDdcQ8PDwUGBtraOAurbAAAMJmzntQ6btw4jRgxwm6f1Wq9bNu8vDw1atRI06ZNkyQ1aNBAP/zwgxYuXKioqCin9MeZqJAAAGAyi5M2q9UqX19fu+1KgSQ0NFQ1a9a021ejRg0dOXJEkhQSEiJJSklJsWuTkpJiOxYSEqLjx4/bHb9w4YJSU1NtbZyFQAIAQBHUtGlT7d+/327fzz//rAoVKkiSKlWqpJCQEG3YsMF2PD09XVu3blV4eLgkKTw8XGlpaUpMTLS1iYuLU15enho3buzU/jJkAwCAyVzx43rDhw9XkyZNNG3aNHXv3l3btm3TokWLtGjRIlufhg0bphdeeEFVqlRRpUqVNH78eIWFhalz586SLlZU2rZtq/79+2vhwoXKycnR4MGD1aNHD6eusJFY9gvcFlj2C+R3I5f9frLrmFPO07VeaKHar1mzRuPGjdOBAwdUqVIljRgxQv3797cdNwxDEydO1KJFi5SWlqZmzZppwYIFqlq1qq1NamqqBg8erM8++0xubm7q1q2b5s6dqxIlSjjlni4hkAC3AQIJkN+NDCQrdztnRUqXus6dt3EzYQ4JAABwOeaQAABgMn5czzECCQAAJnPBnNZbDkM2AADA5aiQAABgMjcGbRwikAAAYDKGbBxjyAYAALgcFRIAAExmYcjGIQIJAAAmY8jGMYZsAACAy1EhAQDAZKyycYxAAgCAyRiycYxAAgCAyQgkjjGHBAAAuBwVEgAATMayX8cIJAAAmMyNPOIQQzYAAMDlqJAAAGAyhmwcI5AAAGAyVtk4xpANAABwOSokAACYjCEbxwgkAACYjFU2jjFkAwAAXI5AgkJL3LFdQ555WhGtmqlerWqK2/CV3fGvYtfrqf5PqkWTxqpXq5p+2rfP7viff/6herWqXXZbv+7LG3krgNNc7/dCkn4/ckTDhg5Sq2b3qcm9d2v0iGd16uTJG3ULMJHFSX8VZQQSFNq5c2dVrVo1jXt+4hWPN2hwt4aNGHXZ4yEhodqw8Vu7beCgISpevLiaNWthZtcB01zv9+Ls2bN6esCTslgseuPtJVryv/eVk5OjIYOeVl5enpldxw1gsThnK8qYQ4JCa9a8pZo1b3nF4x0f6izpYiXkctzd3VW6TBm7fXEbvtIDbdupuI+P0/oJ3EjX+71I+n6njv75p5avWKUSJUpIkqZOe1nNw+/Rtq1bdF94E6f3GTdOEc8STkGFBC73494ftP+nferS9WFXdwVwmezsbFksFnl6etr2Wa1Wubm56fudiS7sGXBj3NSB5Pfff9eTTz551TZZWVlKT0+327Kysm5QD+EMKz9eocqV71T9Bne7uiuAy9StV1/e3t6a/cp0nTt3TmfPntUr019Wbm6uTpw44eru4Tq5WSxO2YqymzqQpKamasmSJVdtEx0dLT8/P7stOjr6BvUQ1+v8+fP68os16tyN6ghub4GBgZo+c442bfpa4fc0ULP7Gumvv9JVo2YtubFm9JZncdJWlLl0Dsnq1auvevzXX391eI5x48ZpxIgRdvusVut19Qs3Tuz6tTp37rxtfB24nTVp2kyfr/1Kp0+nyt3dQ76+vrq/RVPd0a69q7sGmM6lgaRz586yWCwyDOOKbSwOSlRWq5UAcgtb9cnHatX6fgUGBrq6K8BNIyDg4vdh65YEpaaeUqvW97u4R7huRb284QQuDSShoaFasGCBOnXqdNnjSUlJatiw4Q3uFRw5m5mpI0eO2F7/+ccf+mnfPvn5+Sk0LExn0tJ07NgxnThxXJL022+HJEmlS5e2W11z5PBhJe7YrvmvLbqxNwCYwBnfi1UrP1blyncqICBQu3Z9r5joaXq8V29VrFT5xt8QnKqoP0PEGSzG1coTJnvooYdUv359TZky5bLHd+3apQYNGlzzGvzzF66nd7iS7du2ql+fXvn2P9Spi6ZOe0mfrvxEE54fl+/4088M1sBBQ2yv586eqc8/W60vY+Pk5nZTT2e65Xn9448efDeczxnfi9kzZ2j1qpU6c+aMwsqW1SPde+iJqN4OK8W4Nv/8Xphp6y9nnHKexnf6OeU8NyOXBpJvvvlGmZmZatu27WWPZ2ZmaseOHWrZ8spr+6+G/+gCFxFIgPxuZCDZ9qtzAsm9lQkktyT+owtcRCAB8ruRgWS7kwLJPUU4kFAnBwAALsej4wEAMBvTgBwikAAAYDJW2ThGIAEAwGQslHKMOSQAAMDlqJAAAGAyCiSOEUgAADAbicQhhmwAALgNvPTSS7JYLBo2bJht3/nz5zVo0CCVKlVKJUqUULdu3ZSSkmL3viNHjqhDhw4qXry4goKCNHr0aF244PyHGRFIAAAwmcVJf12r7du36/XXX1fdunXt9g8fPlyfffaZPvroI23atElHjx5V165dbcdzc3PVoUMHZWdna/PmzVqyZIkWL16sCRMmXHNfroRAAgCAySwW52zXIiMjQz179tQbb7yhgIAA2/4zZ87orbfe0syZM3X//ferYcOGeuedd7R582Zt2bJFkrR+/Xr9+OOP+t///qf69eurXbt2mjp1qubPn6/s7GxnfDQ2BBIAAG4RWVlZSk9Pt9uysrKu+p5BgwapQ4cOioiIsNufmJionJwcu/3Vq1dX+fLllZCQIElKSEhQnTp1FBwcbGsTGRmp9PR07d2714l3RiABAMB0Fidt0dHR8vPzs9uio6OveN0PPvhAO3fuvGyb5ORkeXp6yt/f325/cHCwkpOTbW3+HkYuHb90zJlYZQMAgNmctMpm3LhxGjFihN0+q9V62ba///67nn32WcXGxsrLy8s5HTARFRIAAG4RVqtVvr6+dtuVAkliYqKOHz+uu+++Wx4eHvLw8NCmTZs0d+5ceXh4KDg4WNnZ2UpLS7N7X0pKikJCQiRJISEh+VbdXHp9qY2zEEgAADCZK1bZtGnTRnv27FFSUpJta9SokXr27Gn7+2LFimnDhg229+zfv19HjhxReHi4JCk8PFx79uzR8ePHbW1iY2Pl6+urmjVrOufD+f8YsgEAwGSu+C2bkiVLqnbt2nb7fHx8VKpUKdv+vn37asSIEQoMDJSvr6+GDBmi8PBw3XfffZKkBx54QDVr1tQTTzyhmJgYJScn6/nnn9egQYOuWJm5VgQSAABMdrM+qHXWrFlyc3NTt27dlJWVpcjISC1YsMB23N3dXWvWrNHAgQMVHh4uHx8fRUVFacqUKU7vi8UwDMPpZ71JnHf+g+SAW5LXP/7owXcDyP+9MNMPf2Q45Ty17yjhlPPcjKiQAABgtpu1RHITIZAAAGCy63ns++2CVTYAAMDlqJAAAGAyV6yyudUQSAAAMBl5xDGGbAAAgMtRIQEAwGyUSBwikAAAYDJW2TjGkA0AAHA5KiQAAJiMVTaOEUgAADAZecQxAgkAAGYjkTjEHBIAAOByVEgAADAZq2wcI5AAAGAyJrU6xpANAABwOSokAACYjAKJYwQSAADMRiJxiCEbAADgclRIAAAwGatsHCOQAABgMlbZOMaQDQAAcDkqJAAAmIwCiWMEEgAAzEYicYhAAgCAyZjU6hhzSAAAgMtRIQEAwGSssnGMQAIAgMnII44xZAMAAFyOCgkAACZjyMYxAgkAAKYjkTjCkA0AAHA5KiQAAJiMIRvHCCQAAJiMPOIYQzYAAMDlqJAAAGAyhmwcI5AAAGAyfsvGMQIJAABmI484xBwSAADgclRIAAAwGQUSxwgkAACYjEmtjjFkAwBAERQdHa177rlHJUuWVFBQkDp37qz9+/fbtTl//rwGDRqkUqVKqUSJEurWrZtSUlLs2hw5ckQdOnRQ8eLFFRQUpNGjR+vChQtO7y+BBAAAk1mc9FdhbNq0SYMGDdKWLVsUGxurnJwcPfDAA8rMzLS1GT58uD777DN99NFH2rRpk44ePaquXbvajufm5qpDhw7Kzs7W5s2btWTJEi1evFgTJkxw2mdzicUwDMPpZ71JnHd+gANuSV7/GJzluwHk/16Y6USGc750ZUpce6dPnDihoKAgbdq0SS1atNCZM2dUpkwZLVu2TA8//LAk6aefflKNGjWUkJCg++67T19++aUefPBBHT16VMHBwZKkhQsXasyYMTpx4oQ8PT2dcl8SFRIAAG4LZ86ckSQFBgZKkhITE5WTk6OIiAhbm+rVq6t8+fJKSEiQJCUkJKhOnTq2MCJJkZGRSk9P1969e53aPya1AgBgMmfNac3KylJWVpbdPqvVKqvVetX35eXladiwYWratKlq164tSUpOTpanp6f8/f3t2gYHBys5OdnW5u9h5NLxS8eciQoJAAAms1ics0VHR8vPz89ui46Odnj9QYMG6YcfftAHH3xwA+722lAhAQDgFjFu3DiNGDHCbp+j6sjgwYO1Zs0axcfH64477rDtDwkJUXZ2ttLS0uyqJCkpKQoJCbG12bZtm935Lq3CudTGWaiQAABgMmetsrFarfL19bXbrhRIDMPQ4MGDtXLlSsXFxalSpUp2xxs2bKhixYppw4YNtn379+/XkSNHFB4eLkkKDw/Xnj17dPz4cVub2NhY+fr6qmbNms79jFhlAxR9rLIB8ruRq2xOn811ynkCirsXuO0zzzyjZcuW6dNPP1W1atVs+/38/OTt7S1JGjhwoL744gstXrxYvr6+GjJkiCRp8+bNki4u+61fv77CwsIUExOj5ORkPfHEE+rXr5+mTZvmlHu6hEAC3AYIJEB+RT2QWK7weNh33nlHvXv3lnTxwWgjR47U+++/r6ysLEVGRmrBggV2wzGHDx/WwIEDtXHjRvn4+CgqKkovvfSSPDyc+wESSIDbAIEEyK+oB5JbDZNaAQAwGb9l4xiBBAAAkxX2se+3I1bZAAAAl6NCAgCAyRiycYxAAgCAycgjjjFkAwAAXI4KCQAAZqNE4hCBBAAAk7HKxjGGbAAAgMtRIQEAwGSssnGMQAIAgMnII44RSAAAMBuJxCHmkAAAAJejQgIAgMlYZeNYkQ4kN/KnpYFbCd8N4MZiUqtjDNkAAACXI5DANFlZWZo0aZKysrJc3RXgpsJ34/bj5eGcrSizGIZhuLoTKJrS09Pl5+enM2fOyNfX19XdAW4afDeA/KiQAAAAlyOQAAAAlyOQAAAAlyOQwDRWq1UTJ06U1Wp1dVeAmwrfDSA/JrUCAACXo0ICAABcjkACAABcjkACAABcjkACAABcjkAC08yfP18VK1aUl5eXGjdurG3btrm6S4BLxcfHq2PHjgoLC5PFYtGqVatc3SXgpkEggSmWL1+uESNGaOLEidq5c6fq1aunyMhIHT9+3NVdA1wmMzNT9erV0/z5813dFeCmw7JfmKJx48a65557NG/ePElSXl6eypUrpyFDhmjs2LEu7h3gehaLRStXrlTnzp1d3RXgpkCFBE6XnZ2txMRERURE2Pa5ubkpIiJCCQkJLuwZAOBmRSCB0508eVK5ubkKDg622x8cHKzk5GQX9QoAcDMjkAAAAJcjkMDpSpcuLXd3d6WkpNjtT0lJUUhIiIt6BQC4mRFI4HSenp5q2LChNmzYYNuXl5enDRs2KDw83IU9AwDcrDxc3QEUTSNGjFBUVJQaNWqke++9V7Nnz1ZmZqb69Onj6q4BLpORkaGDBw/aXh86dEhJSUkKDAxU+fLlXdgzwPVY9gvTzJs3T9OnT1dycrLq16+vuXPnqnHjxq7uFuAyGzduVOvWrfPtj4qK0uLFi298h4CbCIEEAAC4HHNIAACAyxFIAACAyxFIAACAyxFIAACAyxFIAACAyxFIAACAyxFIAACAyxFIgCKod+/e6ty5s+11q1atNGzYsBvej40bN8pisSgtLe2GXxvArYVAAtxAvXv3lsVikcVikaenp+666y5NmTJFFy5cMPW6n3zyiaZOnVqgtoQIAK7Ab9kAN1jbtm31zjvvKCsrS1988YUGDRqkYsWKady4cXbtsrOz5enp6ZRrBgYGOuU8AGAWKiTADWa1WhUSEqIKFSpo4MCBioiI0OrVq23DLC+++KLCwsJUrVo1SdLvv/+u7t27y9/fX4GBgerUqZN+++032/lyc3M1YsQI+fv7q1SpUnruuef0z1+E+OeQTVZWlsaMGaNy5crJarXqrrvu0ltvvaXffvvN9lsrAQEBslgs6t27t6SLv9gcHR2tSpUqydvbW/Xq1dOKFSvsrvPFF1+oatWq8vb2VuvWre36CQBXQyABXMzb21vZ2dmSpA0bNmj//v2KjY3VmjVrlJOTo8jISJUsWVLffPONvvvuO5UoUUJt27a1veeVV17R4sWL9fbbb+vbb79VamqqVq5cedVr9urVS++//77mzp2rffv26fXXX1eJEiVUrlw5ffzxx5Kk/fv369ixY5ozZ44kKTo6Wu+++64WLlyovXv3avjw4Xr88ce1adMmSReDU9euXdWxY0clJSWpX79+Gjt2rFkfG4CixgBww0RFRRmdOnUyDMMw8vLyjNjYWMNqtRqjRo0yoqKijODgYCMrK8vW/r333jOqVatm5OXl2fZlZWUZ3t7exrp16wzDMIzQ0FAjJibGdjwnJ8e44447bNcxDMNo2bKl8eyzzxqGYRj79+83JBmxsbGX7ePXX39tSDJOnz5t23f+/HmjePHixubNm+3a9u3b13j00UcNwzCMcePGGTVr1rQ7PmbMmHznAoDLYQ4JcIOtWbNGJUqUUE5OjvLy8vTYY49p0qRJGjRokOrUqWM3b2TXrl06ePCgSpYsaXeO8+fP65dfftGZM2d07NgxNW7c2HbMw8NDjRo1yjdsc0lSUpLc3d3VsmXLAvf54MGDOnv2rP71r3/Z7c/OzlaDBg0kSfv27bPrhySFh4cX+BoAbm8EEuAGa926tV577TV5enoqLCxMHh7/9zX08fGxa5uRkaGGDRtq6dKl+c5TpkyZa7q+t7d3od+TkZEhSfr8889VtmxZu2NWq/Wa+gEAf0cgAW4wHx8f3XXXXQVqe/fdd2v58uUKCgqSr6/vZduEhoZq69atatGihSTpwoULSkxM1N13333Z9nXq1FFeXp42bdqkiIiIfMcvVWhyc3Nt+2rWrCmr1aojR45csbJSo0YNrV692m7fli1bHN8kAIhJrcBNrWfPnipdurQ6deqkb775RocOHdLGjRs1dOhQ/fHHH5KkZ599Vi+99JJWrVqln376Sc8888xVnyFSsWJFRUVF6cknn9SqVats5/zwww8lSRUqVJDFYtGaNWt04sQJZWRkqGTJkho1apSGDx+uJUuW6JdfftHOnTv16quvasmSJZKkp59+WgcOHNDo0aO1f/9+LVu2TIsXLzb7IwJQRBBIgJtY8eLFFR8fr/Lly6tr166qUaOG+vbtq/Pnz9sqJiNHjtQTTzyhqKgohYeHq2TJkurSpctVz/vaa6/p4Ycf1jPPPKPq1aurf//+yszMlCSVLVtWkydP1tixYxUcHKzBgwdLkqZOnarx48crOjpaNWrUUNu2bfX555+rUqVKkqTy5cvr448/1qpVq1SvXj0tXLhQ06ZNM/HTAVCUWIwrzXwDAAC4QaiQAAAAlyOQAAAAlyOQAAAAlyOQAAAAlyOQAAAAlyOQAAAAlyOQAAAAlyOQAAAAlyOQAAAAlyOQAAAAlyOQAAAAlyOQAAAAl/t/Xye83agiMgYAAAAASUVORK5CYII=",
"text/plain": [
"<Figure size 640x480 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Evaluate the performance of the best model on the testing set\n",
"y_pred_xgb = best_xgb_model.predict(X_test)\n",
"\n",
"# Confusion Matrix for Testig Data\n",
"cm_test_xgb = confusion_matrix(y_test, y_pred_xgb)\n",
"\n",
"ax = sns.heatmap(cm_test_xgb, annot=True, cmap='Blues', fmt='g', linewidth=1.5)\n",
"\n",
"ax.set_xlabel('Predicted')\n",
"ax.set_ylabel('Actual')\n",
"ax.set_title('Confusion Matrix - Test Set')"
]
},
{
"cell_type": "code",
"execution_count": 189,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" precision recall f1-score support\n",
"\n",
" 0 0.93 0.84 0.88 1797\n",
" 1 0.30 0.50 0.37 236\n",
"\n",
" accuracy 0.80 2033\n",
" macro avg 0.61 0.67 0.63 2033\n",
"weighted avg 0.85 0.80 0.82 2033\n",
"\n"
]
}
],
"source": [
"# Classfication report for testing data\n",
"print (classification_report(y_test, y_pred_xgb))"
]
},
{
"cell_type": "code",
"execution_count": 191,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Zbiór danych testowych zawiera 2033 oddane strzały, gdzie 236 to strzały trafione.\n",
"Dokładność klasyfikacji, czy strzał jest bramką, czy nie, wynosi 0.80%.\n",
"klasyfikator uzyskał ROC-AUC na poziomie 0.75%.\n"
]
}
],
"source": [
"print(f'Zbiór danych testowych zawiera {len(y_test)} oddane strzały, gdzie {y_test.sum()[\"isGoal\"]} to strzały trafione.')\n",
"print(f'Dokładność klasyfikacji, czy strzał jest bramką, czy nie, wynosi {best_xgb_model.score(X_test, y_test):.2f}%.')\n",
"print(f'klasyfikator uzyskał ROC-AUC na poziomie {roc_auc_score(y_test, best_xgb_model.predict_proba(X_test)[:, 1]):.2f}%.')"
]
},
{
"cell_type": "code",
"execution_count": 192,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAwIAAAHHCAYAAAAMBu+WAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8pXeV/AAAACXBIWXMAAA9hAAAPYQGoP6dpAABbpUlEQVR4nO3de3zP9f//8ft7Z9vsiM00DHO2EVnOyrSNJCmnlUMo2pJjUbGhIsJyiD4U+aTUpyQJnxzCJ+djHx+0coocEjnNwg6v3x9+e3+9bWPWZt573a6Xyy68n6/T4/F+vc37/n4d3hbDMAwBAAAAMBWHoi4AAAAAwN1HEAAAAABMiCAAAAAAmBBBAAAAADAhggAAAABgQgQBAAAAwIQIAgAAAIAJEQQAAAAAEyIIAAAAACZEEAAAoBiYN2+eLBaLjhw5UtSlALATBAEAgF3KeuOb08/w4cMLZZsbN25UYmKizp8/XyjrN7PU1FQlJiZq7dq1RV0KYBpORV0AAAB/x5gxYxQSEmIzVrt27ULZ1saNGzV69Gj17NlTPj4+hbKN/HrmmWfUpUsXubq6FnUp+ZKamqrRo0dLklq2bFm0xQAmQRAAANi1mJgYNWjQoKjL+FsuX74sDw+Pv7UOR0dHOTo6FlBFd09mZqauXbtW1GUApsSpQQCAYm358uVq1qyZPDw8VLJkSbVt21Z79+61mee///2vevbsqUqVKsnNzU2BgYF69tlndfbsWes8iYmJGjZsmCQpJCTEehrSkSNHdOTIEVksFs2bNy/b9i0WixITE23WY7FYtG/fPnXr1k2+vr5q2rSpdfrHH3+s+vXrq0SJEvLz81OXLl107Nix2/aZ0zUCFStW1KOPPqq1a9eqQYMGKlGihOrUqWM9/WbRokWqU6eO3NzcVL9+fe3atctmnT179pSnp6cOHTqkqKgoeXh4KCgoSGPGjJFhGDbzXr58WUOGDFFwcLBcXV1VrVo1vfPOO9nms1gsio+P14IFC1SrVi25urpq1qxZKl26tCRp9OjR1uc263nLy/658bk9cOCA9aiNt7e3evXqpdTU1GzP2ccff6yGDRvK3d1dvr6+at68ub777jubefLy+gHsFUcEAAB27cKFCzpz5ozNWKlSpSRJ//znP9WjRw9FRUXp7bffVmpqqmbOnKmmTZtq165dqlixoiRp5cqVOnTokHr16qXAwEDt3btX//jHP7R3715t3rxZFotFTzzxhH7++Wd9+umnmjJlinUbpUuX1h9//HHHdT/11FMKDQ3VW2+9ZX2z/Oabb2rkyJHq1KmT+vTpoz/++EPTpk1T8+bNtWvXrnydjnTgwAF169ZNzz//vJ5++mm98847ateunWbNmqVXX31VL7zwgiRp3Lhx6tSpk5KTk+Xg8H+fE2ZkZCg6OloPPvigJkyYoBUrVighIUHp6ekaM2aMJMkwDD322GP6/vvv1bt3b9WtW1f//ve/NWzYMB0/flxTpkyxqWnNmjX6/PPPFR8fr1KlSik8PFwzZ85U//791aFDBz3xxBOSpLCwMEl52z836tSpk0JCQjRu3Djt3LlTc+bMUZkyZfT2229b5xk9erQSExPVuHFjjRkzRi4uLtqyZYvWrFmjRx55RFLeXz+A3TIAALBDc+fONSTl+GMYhnHp0iXDx8fH6Nu3r81yp06dMry9vW3GU1NTs63/008/NSQZ69evt45NnDjRkGQcPnzYZt7Dhw8bkoy5c+dmW48kIyEhwfo4ISHBkGR07drVZr4jR44Yjo6OxptvvmkzvmfPHsPJySnbeG7Px421VahQwZBkbNy40Tr273//25BklChRwvj111+t4++//74hyfj++++tYz169DAkGS+++KJ1LDMz02jbtq3h4uJi/PHHH4ZhGMbixYsNScYbb7xhU9OTTz5pWCwW48CBAzbPh4ODg7F3716bef/4449sz1WWvO6frOf22WeftZm3Q4cOhr+/v/XxL7/8Yjg4OBgdOnQwMjIybObNzMw0DOPOXj+AveLUIACAXZsxY4ZWrlxp8yNd/xT5/Pnz6tq1q86cOWP9cXR0VEREhL7//nvrOkqUKGH9+5UrV3TmzBk9+OCDkqSdO3cWSt39+vWzebxo0SJlZmaqU6dONvUGBgYqNDTUpt47UbNmTTVq1Mj6OCIiQpL08MMPq3z58tnGDx06lG0d8fHx1r9nndpz7do1rVq1SpK0bNkyOTo6asCAATbLDRkyRIZhaPny5TbjLVq0UM2aNfPcw53un5uf22bNmuns2bO6ePGiJGnx4sXKzMzUqFGjbI5+ZPUn3dnrB7BXnBoEALBrDRs2zPFi4V9++UXS9Te8OfHy8rL+/c8//9To0aO1cOFCnT592ma+CxcuFGC1/+fmOx398ssvMgxDoaGhOc7v7Oycr+3c+GZfkry9vSVJwcHBOY6fO3fOZtzBwUGVKlWyGatataokWa9H+PXXXxUUFKSSJUvazFejRg3r9Bvd3Pvt3On+ublnX19fSdd78/Ly0sGDB+Xg4HDLMHInrx/AXhEEAADFUmZmpqTr53kHBgZmm+7k9H//BXbq1EkbN27UsGHDVLduXXl6eiozM1PR0dHW9dzKzeeoZ8nIyMh1mRs/5c6q12KxaPny5Tne/cfT0/O2deQktzsJ5TZu3HRxb2G4uffbudP9UxC93cnrB7BXvIoBAMVS5cqVJUllypRRZGRkrvOdO3dOq1ev1ujRozVq1CjreNYnwjfK7Q1/1ifON3/R2M2fhN+uXsMwFBISYv3E/V6QmZmpQ4cO2dT0888/S5L1YtkKFSpo1apVunTpks1RgZ9++sk6/XZye27vZP/kVeXKlZWZmal9+/apbt26uc4j3f71A9gzrhEAABRLUVFR8vLy0ltvvaW0tLRs07Pu9JP16fHNnxYnJSVlWybrXv83v+H38vJSqVKltH79epvx9957L8/1PvHEE3J0dNTo0aOz1WIYRrZbZd5N06dPt6ll+vTpcnZ2VqtWrSRJbdq0UUZGhs18kjRlyhRZLBbFxMTcdhvu7u6Ssj+3d7J/8urxxx+Xg4ODxowZk+2IQtZ28vr6AewZRwQAAMWSl5eXZs6cqWeeeUb333+/unTpotKlS+vo0aP69ttv1aRJE02fPl1eXl5q3ry5JkyYoLS0NJUrV07fffedDh8+nG2d9evXlyS99tpr6tKli5ydndWuXTt5eHioT58+Gj9+vPr06aMGDRpo/fr11k/O86Jy5cp64403NGLECB05ckSPP/64SpYsqcOHD+urr77Sc889p6FDhxbY85NXbm5uWrFihXr06KGIiAgtX75c3377rV599VXrvf/btWunhx56SK+99pqOHDmi8PBwfffdd/r66681cOBA66frt1KiRAnVrFlTn332mapWrSo/Pz/Vrl1btWvXzvP+yasqVarotdde09ixY9WsWTM98cQTcnV11bZt2xQUFKRx48bl+fUD2LUiulsRAAB/S9btMrdt23bL+b7//nsjKirK8Pb2Ntzc3IzKlSsbPXv2NLZv326d57fffjM6dOhg+Pj4GN7e3sZTTz1lnDhxIsfbWY4dO9YoV66c4eDgYHO7ztTUVKN3796Gt7e3UbJkSaNTp07G6dOnc719aNatN2/25ZdfGk2bNjU8PDwMDw8Po3r16kZcXJyRnJycp+fj5tuHtm3bNtu8koy4uDibsaxboE6cONE61qNHD8PDw8M4ePCg8cgjjxju7u5GQECAkZCQkO22m5cuXTIGDRpkBAUFGc7OzkZoaKgxceJE6+04b7XtLBs3bjTq169vuLi42Dxved0/uT23OT03hmEYH374oVGvXj3D1dXV8PX1NVq0aGGsXLnSZp68vH4Ae2UxjLtwVRAAALA7PXv21BdffKGUlJSiLgVAIeAaAQAAAMCECAIAAACACREEAAAAABPiGgEAAADAhDgiAAAAAJgQQQAAAAAwIb5QDECOMjMzdeLECZUsWVIWi6WoywEAAHlgGIYuXbqkoKAgOTjc+jN/ggCAHJ04cULBwcFFXQYAAMiHY8eO6b777rvlPAQBADkqWbKkJOnw4cPy8/Mr4moKR1pamr777js98sgjcnZ2LupyChz92b/i3iP92b/i3qM99nfx4kUFBwdb/x+/FYIAgBxlnQ5UsmRJeXl5FXE1hSMtLU3u7u7y8vKym1/wd4L+7F9x75H+7F9x79Ge+8vLab1cLAwAAACYEEEAAAAAMCGCAAAAAGBCBAEAAADAhAgCAAAAgAkRBAAAAAATIggAAAAAJkQQAAAAAEyIIAAAAACYEEEAAAAAMCGCAAAAAGBCBAEAAADAhAgCAAAAgAkRBAAAAAATIggAAAAAJkQQAAAAAEyIIAAAAACYEEEAAAAAMCGCAAAAAGBCBAEAAADAhAgCAAAAgAkRBAAAAAATIggAAAAAJkQQAAAAAEyIIAAAAACYEEEAAAAAMCGCAAAAAGBCBAEAAADAhAgCAAAAgAkRBAAAAAATIggAAAAAJkQQAAAAAEyIIAAAAACYEEEAAAAAMCGCAAAAAGBCBAEAAADAhAgCAAAAgAkRBAAAAAATIggAAAAAJkQQAAAAAEyIIAAAAACYEEEAAAAAMCGCAAAAAGBCBAEAAADAhAgCAAAAgAkRBAAAAAATIggAAAAAJkQQAAAAAEyIIAAAAACYEEEAAAAAMCGCAAAAAGBCBAEAAADAhAgCAAAAgAkRBAAAAAATIggAAAAAJkQQAAAAAEyIIAAAAACYEEEAAAAAMCGCAAAAAGBCBAEAAADAhAgCAAAAgAkRBAAAAAATIggAAAAAJkQQAAAAAEzIqagLAHBvixi3WulOHkVdRqFwdTQ0oaFUO/HfupphKepyChz92b/i3iP92b/i3mNWf8UVRwQAAACAOzR+/HhZLBYNHDjQOnblyhXFxcXJ399fnp6e6tixo37//Xeb5Y4ePaq2bdvK3d1dZcqU0bBhw5Senn7Lbf3555+KjY2Vl5eXfHx81Lt3b6WkpPztHggCyKZly5bWF3XFihWVlJRUpPUgd+wfAADuvm3btun9999XWFiYzfigQYP0zTff6F//+pfWrVunEydO6IknnrBOz8jIUNu2bXXt2jVt3LhRH330kebNm6dRo0bdcnuxsbHau3evVq5cqaVLl2r9+vV67rnn/nYfBAHc0rZt2/L8QrPXN6X2WndOKlasKIvFooULF2abVqtWLVksFs2bN+/uFwYAQDGRkpKi2NhYzZ49W76+vtbxCxcu6IMPPtDkyZP18MMPq379+po7d642btyozZs3S5K+++477du3Tx9//LHq1q2rmJgYjR07VjNmzNC1a9dy3N7+/fu1YsUKzZkzRxEREWratKmmTZumhQsX6sSJE3+rF4IAbql06dJyd3cv6jJwB4KDgzV37lybsc2bN+vUqVPy8Cie5/oDAHC3xMXFqW3btoqMjLQZ37Fjh9LS0mzGq1evrvLly2vTpk2SpE2bNqlOnToKCAiwzhMVFaWLFy9q7969OW5v06ZN8vHxUYMGDaxjkZGRcnBw0JYtW/5WLwQBk7t8+bK6d+8uT09PlS1bVpMmTbKZfuOn5YZhKDExUeXLl5erq6uCgoI0YMAASddPJ/r11181aNAgWSwWWSzXLxg6e/asunbtqnLlysnd3V116tTRp59+arONli1basCAAXr55Zfl5+enwMBAJSYm2sxz/vx5Pf/88woICJCbm5tq166tpUuXWqf/8MMPatasmUqUKKHg4GANGDBAly9fvm3/udUtSV9++aVq1aolV1dXVaxYMdtzcysnT55U27ZtVaJECYWEhOiTTz7JduTh6NGjat++vTw9PeXl5aVOnTrZnEd48OBBtW/fXgEBAfL09NQDDzygVatW3XbbsbGxWrdunY4dO2Yd+/DDDxUbGysnJ+4PAABAfi1cuFA7d+7UuHHjsk07deqUXFxc5OPjYzMeEBCgU6dOWee5MQRkTc+alpNTp06pTJkyNmNO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P12gxQAAAAC4O+4oCMydO7ew6gAAFLL169dr4sSJ2rFjh06ePKmvvvpKjz/+uHW6YRhKSEjQ7Nmzdf78eTVp0kQzZ85UaGiodZ4///xTL774or755hs5ODioY8eOevfdd+Xp6Znrdq9cuaIhQ4Zo4cKFunr1qqKiovTee+9xxzkAKGJ/62Jhe3bkyBFZLBbt3r27qEsptiwWixYvXlzUZQD4/y5fvqzw8HDNmDEjx+kTJkzQ1KlTNWvWLG3ZskUeHh6KiorSlStXrPPExsZq7969WrlypZYuXar169frueeeu+V2Bw0apG+++Ub/+te/tG7dOp04cUJPPPFEgfYGALhzRRoEevbsKYvFovHjx9uML168uFhfhFyxYkUlJSXlef61a9fKYrHo/PnzhVZTYTh58qRiYmLu6jb/+usvJSQkqGrVqnJ1dVWpUqX01FNPae/evXe1jrtt3rx58vHxKeoycI+LiYnRG2+8oQ4dOmSbZhiGkpKS9Prrr6t9+/YKCwvT/PnzdeLECWug379/v1asWKE5c+YoIiJCTZs21bRp07Rw4UKdOHEix21euHBBH3zwgSZPnqyHH35Y9evX19y5c7Vx40Zt3ry5MNsFANxGkR8RcHNz09tvv61z584VdSkF4tq1a0VdQq4Mw1B6evpd215gYKD1wvK74erVq4qMjNSHH36oN954Qz///LOWLVum9PR0RURE8KYDuIXDhw/r1KlTioyMtI55e3srIiJCmzZtkiRt2rRJPj4+atCggXWeyMhIOTg4aMuWLTmud8eOHUpLS7NZb/Xq1VW+fHnregEARaPIg0BkZKQCAwM1bty4HKcnJiaqbt26NmNJSUmqWLGi9XHPnj31+OOP66233lJAQIB8fHw0ZswYpaena9iwYfLz89N9992X4zUOP/30kxo3biw3NzfVrl1b69ats5n+v//9TzExMfL09FRAQICeeeYZnTlzxjq9ZcuWio+P18CBA1WqVClFRUXd8XNgsVg0Z84cdejQQe7u7goNDdWSJUskXT+F6aGHHpIk+fr6ymKxqGfPnpKkzMxMjRs3TiEhISpRooTCw8P1xRdfWNebdSRh+fLlql+/vlxdXfXhhx/KYrHop59+sqlhypQpqly58h31PWDAAL388svy8/NTYGCgEhMTs/WV9Uli1qlYixYt0kMPPSR3d3eFh4dneyMwe/ZsBQcHy93dXR06dNDkyZPz/El3UlKSNm3apKVLl6pTp06qUKGCGjZsqC+//FI1atRQ7969rd99kfWaGT16tEqXLi0vLy/169fPJshl7dv4+Hh5e3urVKlSGjlypM33Z5w7d07du3eXr6+v3N3dFRMTo19++cU6PeuT+n//+9+qUaOGPD09FR0drZMnT9rUPmfOHNWoUUNubm6qXr263nvvPeu02z13a9euVa9evXThwgXrLX6z9sV7772n0NBQubm5KSAgQE8++WSenkuYz6lTpyQp23n7AQEB1mmnTp1SmTJlbKY7OTnJz8/POk9O63Vxccn27/jG9QIAisYdXSxcGBwdHfXWW2+pW7duGjBggO677758rWfNmjW67777tH79em3YsEG9e/fWxo0b1bx5c23ZskWfffaZnn/+ebVu3dpmG8OGDVNSUpJq1qypyZMnq127djp8+LD8/f11/vx5Pfzww+rTp4+mTJmiv/76S6+88oo6deqkNWvWWNfx0UcfqX///tqwYUO+n4fRo0drwoQJmjhxoqZNm6bY2Fj9+uuvCg4O1pdffqmOHTsqOTlZXl5eKlGihCRp3Lhx+vjjjzVr1iyFhoZq/fr1evrpp1W6dGm1aNHCuu7hw4frnXfeUaVKleTr66vZs2drwYIFGjt2rHWeBQsWqFu3bpJ0R30PHjxYW7Zs0aZNm9SzZ081adJErVu3zrXP1157Te+8845CQ0P12muvqWvXrjpw4ICcnJy0YcMG9evXT2+//bYee+wxrVq1SiNHjszzc/jJJ5+odevWCg8Ptxl3cHDQoEGDFBsbqx9//NEaLFevXi03NzetXbtWR44cUa9eveTv768333zTpsfevXtr69at2r59u5577jmVL19effv2lXQ9UPzyyy9asmSJvLy89Morr6hNmzbat2+fnJ2dJUmpqal655139M9//lMODg56+umnNXToUC1YsMD63I8aNUrTp09XvXr1tGvXLvXt21ceHh42d+rK7blr3LixkpKSNGrUKCUnJ0uSPD09tX37dg0YMED//Oc/1bhxY/3555/6z3/+k+vzd/XqVV29etX6+OLFi5IkVwdDjo7F88sDXR0Mmz+Lm6y+0tLScpyenp5unZZ1tDAtLc1m/szMTFksFqWlpSkjI0OGYeS4voyMjBzHb1zvjQzDyHWZvMpa9u+s415X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zXn8jRo10qRJk7Rv3z45OTkpIiLCOs3f31/VqlXT/v37JUkDBgxQ//799d133ykyMlIdO3ZUWFhYvmvZv3+/goODrSFAkmrWrCkfHx/t37/fGgQqVqxoDQGSVLZs2TzfHadv37564IEHdPz4cZUrV07z5s1Tz549c72WYcSIERo8eLD18cWLFxUcHKw3djko3dnxjvr7X2JUjuP169dXmzZtrI/T0tLUtWtXXbp0SRs2bFDp0qVvu+769evr4sWL1vVkZmYqLi5O/fv3t1l3XqSlpWnlypVq3bp1toBSHNCf/SvuPdKf/SvuPdpjf1lH9POCIADkQZ8+fRQVFWU9tWbcuHGaNGmSXnzxxULd7s2/dCwWizIzM/O0bL169RQeHq758+frkUce0d69e/Xtt9/mOr+rq6tcXV2zjV/NtCg949YXQudWd0pKig4cOGAdP3bsmPbu3Ss/Pz+VLVtWXbt21c6dO7V06VI5ODjo7NmzkiQ/Pz+5uLhIklq1aqUOHTooPj5ekjRkyBD16NFDDRs2VMOGDZWUlKTLly+rT58++f4l7ezsbDe/4POD/uxfce+R/uxfce/Rnvq7kzq5WBimsWXLFpvHmzdvVmhoqGrWrKn09HSb6WfPnlVycrJq1qxpHQsODla/fv20aNEiDRkyRLNnz85xOy4uLsrIuPWpNDVq1NCxY8d07Ngx69i+fft0/vx5m23+XX369NG8efM0d+5cRUZG2hyBuBu2b9+uevXqqV69epKkwYMHq169eho1apSOHz+uJUuW6LffflPdunVVtmxZ68/GjRut6zh48KDOnDljfdy5c2e98847GjVqlOrWravdu3drxYoV2S4gBgAAt8YRAZjG0aNHNXjwYD3//PPauXOnpk2bpkmTJik0NFTt27dX37599f7776tkyZIaPny4ypUrp/bt20uSBg4cqJiYGFWtWlXnzp3T999/rxo1auS4nYoVKyolJUWrV69WeHi43N3ds902NDIyUnXq1FFsbKySkpKUnp6uF154QS1atFCDBg0KrOdu3bpp6NChmj17tubPn19g682rli1bWu/MlJNbTcty5MiRbGNZd4ACAAD5xxEBmEb37t31119/qWHDhoqLi9NLL72k5557TpI0d+5c1a9fX48++qgaNWokwzC0bNky6+G1jIwMxcXFqUaNGoqOjlbVqlX13nvv5bidxo0bq1+/furcubNKly6tCRMmZJvHYrHo66+/lq+vr5o3b67IyEhVqlRJn332WYH27O3trY4dO8rT01OPP/54ga4bAADYN44IwDScnZ2VlJSkmTNnZpvm6+t7y0/Mp02bluu0nD71njlzZrbt3PzJdvny5fX111/nut7ExETrdxBkGThwoAYOHJjrMjk5fvy4YmNjczz/HwAAmBdBACimzp07p7Vr12rt2rW5Hr3Iiy0jWsnf378AKwMAAPcCggBgh44ePXrLi4r37dun5s2b69y5c3r77bdVrVq1u1gdAACwBwQBmMKN39ZbHAQFBWn37t23nJ7TRbYAAABZCAKAHXJyclKVKlWKugwAAGDHuGsQAAAAYEIEAQAAAMCECAIAAACACREEAAAAABMiCAAAAAAmRBAAAAAATIggAAAAAJgQQQAAAAAwIYIAAAAAYEIEAQAAAMCECAIAAACACREEAAAAABMiCAAAAAAmRBAAAAAATIggAAAAAJgQQQAAAAAwIYIAAAAAYEIEAQAAAMCECAIAAACACREEAAAAABMiCAAAAAAmRBAAAAAATIggAAAAAJgQQQAAAAAwIYIAAAAAYEIEAQAAAMCECAIAAACACREEAAAAABMiCAAAAAAmRBAAAAAATIggAAAAAJgQQQAAAAAwIYIAAAAAYEIEAQAAAMCECAIAAACACREEAAAAABMiCAAAAAAmRBAAAAAATIggAAAAAJgQQQAAAAAwIYIAAAAAYEIEAQAAAMCECAIAAACACREEAAAAABMiCAAAAAAmRBAAAAAATIggAAAAAJgQQQAAAAAwIYIAAAAAYEIEAQAAAMCECAIAAACACREEAAAAABMiCAAAAAAmRBAAAAAATIggAAAAAJgQQQAAAAAwIYIAAAAAYEIEAQAAAMCECAIAAACACREEAAAAABMiCAAAAAAmRBAAAAAATMipqAsAcG8yDEOSdOnSJTk7OxdxNYUjLS1NqampunjxYrHskf7sX3Hvkf7sX3Hv0R77u3jxoqT/+3/8VggCAHJ09uxZSVJISEgRVwIAAO7UpUuX5O3tfct5CAIAcuTn5ydJOnr06G1/kdirixcvKjg4WMeOHZOXl1dRl1Pg6M/+Ffce6c/+Ffce7bE/wzB06dIlBQUF3XZeggCAHDk4XL+EyNvb225++eWXl5dXse6R/uxfce+R/uxfce/R3vrL6wd4XCwMAAAAmBBBAAAAADAhggCAHLm6uiohIUGurq5FXUqhKe490p/9K+490p/9K+49Fvf+LEZe7i0EAAAAoFjhiAAAAABgQgQBAAAAwIQIAgAAAIAJEQQAAAAAEyIIAMjRjBkzVLFiRbm5uSkiIkJbt24t6pLyJTExURaLxeanevXq1ulXrlxRXFyc/P395enpqY4dO+r3338vwopvbf369WrXrp2CgoJksVi0ePFim+mGYWjUqFEqW7asSpQoocjISP3yyy828/z555+KjY2Vl5eXfHx81Lt3b6WkpNzFLm7tdj327Nkz2z6Njo62mede7nHcuHF64IEHVLJkSZUpU0aPP/64kpOTbebJy+vy6NGjatu2rdzd3VWmTBkNGzZM6enpd7OVHOWlv5YtW2bbh/369bOZ517tb+bMmQoLC7N+wVSjRo20fPly63R73ndZbtejPe+/nIwfP14Wi0UDBw60jhWH/ZgXBAEA2Xz22WcaPHiwEhIStHPnToWHhysqKkqnT58u6tLypVatWjp58qT154cffrBOGzRokL755hv961//0rp163TixAk98cQTRVjtrV2+fFnh4eGaMWNGjtMnTJigqVOnatasWdqyZYs8PDwUFRWlK1euWOeJjY3V3r17tXLlSi1dulTr16/Xc889d7dauK3b9ShJ0dHRNvv0008/tZl+L/e4bt06xcXFafPmzVq5cqXS0tL0yCOP6PLly9Z5bve6zMjIUNu2bXXt2jVt3LhRH330kebNm6dRo0YVRUs28tKfJPXt29dmH06YMME67V7u77777tP48eO1Y8cObd++XQ8//LDat2+vvXv3SrLvfZfldj1K9rv/brZt2za9//77CgsLsxkvDvsxTwwAuEnDhg2NuLg46+OMjAwjKCjIGDduXBFWlT8JCQlGeHh4jtPOnz9vODs7G//617+sY/v37zckGZs2bbpLFeafJOOrr76yPs7MzDQCAwONiRMnWsfOnz9vuLq6Gp9++qlhGIaxb98+Q5Kxbds26zzLly83LBaLcfz48btWe17d3KNhGEaPHj2M9u3b57qMvfV4+vRpQ5Kxbt06wzDy9rpctmyZ4eDgYJw6dco6z8yZMw0vLy/j6tWrd7eB27i5P8MwjBYtWhgvvfRSrsvYU3+GYRi+vr7GnDlzit2+u1FWj4ZRfPbfpUuX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ACZEEAAAAABMiCAAAAAAmBBBAAAAADAhggAAAABgQgQBAADuQT179pTFYsn2c+DAgaIuDUAx4VTUBQAAgJxFR0dr7ty5NmOlS5cuompspaWlydnZuajLAPA3cEQAAIB7lKurqwIDA21+HB0dc5z3119/Vbt27eTr6ysPDw/VqlVLy5Yts07fu3evHn30UXl5ealkyZJq1qyZDh48KEnKzMzUmDFjdN9998nV1VV169bVihUrrMseOXJEFotFn332mVq0aCE3NzctWLBAkjRnzhzVqFFDbm5uql69ut57771CfEYAFCSOCAAAUAzExcXp2rVrWr9+vTw8PLRv3z55enpKko4fP67mzZurZcuWWrNmjby8vLRhwwalp6dLkt59911NmjRJ77//vurVq6cPP/xQjz32mPbu3avQ0FDrNoYPH65JkyapXr161jAwatQoTZ8+XfXq1dOuXbvUt29feXh4qEePHkXyPADIO4thGEZRFwEAAGz17NlTH3/8sdzc3KxjMTEx+te//pXj/GFhYerYsaMSEhKyTXv11Ve1cOFCJScn53g6T7ly5RQXF6dXX33VOtawYUM98MADmjFjho4cOaKQkBAlJSXppZdess5TpUoVjR07Vl27drWOvfHGG1q2bJk2btyYr74B3D0cEQAA4B710EMPaebMmdbHHh4euc47YMAA9e/fX999950iIyPVsWNHhYWFSZJ2796tZs2a5RgCLl68qBMnTqhJkyY2402aNNGPP/5oM9agQQPr3y9fvqyDBw+qd+/e6tu3r3U8PT1d3t7ed9YogCJBEAAA4B7l4eGhKlWq5GnePn36KCoqSt9++62+++47jRs3TpMmTdKLL76oEiVKFFg9WVJSUiRJs2fPVkREhM18uV3HAODewsXCAAAUE8HBwerXr58WLVqkIUOGaPbs2ZKunzb0n//8R2lpadmW8fLyUlBQkDZs2GAzvmHDBtWsWTPXbQUEBCgoKEiHDh1SlSpVbH5CQkIKtjEAhYIjAgAAFAMDBw5UTEyMqlatqnPnzun7779XjRo1JEnx8fGaNm2aunTpohEjRsjb21ubN29Ww4YNVa1aNQ0bNkwJCQmqXLmy6tatq7lz52r37t3WOwPlZvTo0RowYIC8vb0VHR2tq1evavv27Tp37pwGDx58N9oG8DcQBAAAKAYyMjIUFxen3377TV5eXoqOjtaUKVMkSf7+/lqzZo2GDRumFi1ayNHRUXXr1rVeFzBgwABduHBBQ4YM0enTp1WzZk0tWbLE5o5BOenTp4/c3d01ceJEDRs2TB4eHqpTp44GDhxY2O0CKADcNQgAAAAwIa4RAAAAAEyIIAAAAACYEEEAAAAAMCGCAAAAAGBCBAEAAADAhAgCAAAAgAkRBAAAAAATIggAAAAAJkQQAAAAAEyIIAAAAACYEEEAAAAAMCGCAAAAAGBC/w+S3lg7B6XbcAAAAABJRU5ErkJggg==",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Plot feature importance\n",
"xgb.plot_importance(best_xgb_model)\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 193,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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ixcjMDAQQN6CEq1bt0a7du0+z0n5SKqqqoiKisLQoUMxfvx46OvrY8aMGZKpeCoqKti1axf8/f2xZcsWrFmzBra2tliwYAHGjh1b5McKDw/HiBEjMGbMGGRlZWHGjBmoWrVqkZ+fjzFz5kzY2dlh6dKlmDp1KnR0dODq6oqePXuKbYr6+iEikglf4opUIiIi+ub06dMHv//+O9LT04u7K0REXzVeU0VERERERKQEhioiIiIiIiIlMFQREREREREpgddUERERERERKYEjVUREREREREpgqCIiIiIiIlICv6eKiBSSy+V48OAB9PX1IZPJirs7REREVASCIODly5ewsrKCigrHT74UhioiUujBgwewtrYu7m4QERHRJ7h79y7Kly9f3N0oNRiqiEghfX19AEBycjJMTEyKuTdfVnZ2Ng4cOIDWrVtDXV29uLvzRbF21l6aai+tdQOsvSTXnpaWBmtra/HvOH0ZDFVEpFD+lD99fX0YGBgUc2++rOzsbOjo6MDAwKBE/sF9H9bO2ktT7aW1boC1l4baOXX/y+JESyIiIiIiIiUwVBERERERESmBoYqIiIiIiEgJDFVERERERERKYKgiIiIiIiJSAkMVERERERGREhiqiIiIiIiIlMBQRUREREREpASGKiIiIiIiIiUwVBERERERESmBoYqIiIiIiEgJDFVERERERERKYKgiIiIiIiJSAkMVERERERGREhiqiIiIiIiIlMBQRUREREREpASGKiIiIiIiIiUwVBERERERESmBoYqIiIiIiEgJDFVERERERERKYKgiIiIiIiJSAkMVERERERGREhiqiIiIiIiIlMBQRUREREREpASGKiIiIiIiIiUwVBERERERESmBoYqIiIiIiEgJDFVERERERERKYKgiIiIiIiJSAkMVERERERGREhiqiIiIiIiIlMBQRUREREREpASGKiIiIiIiIiUwVBERERERESmBoYqIiIiIiEgJDFVERERERERKYKgiIiIiIiJSAkMVERERERGREhiqiIiIiIiIlMBQRUREREREpASGKiIiIiIiIiUwVBERERERESmBoYqIiIiIiEgJDFVERERERERKYKgiIiIiIiJSAkMVERERERGREhiqiIiIiIiIlMBQRUREREREpASGKiIiIiIiIiUwVBERERERESmBoYqIiIiIiEgJDFVERERERERKYKgiIiIiIiJSAkMVERERERGREhiqiIiIiIiIlMBQRUREREREpASGKiIiIiIiIiUwVBERERERESmBoYqIiIiIiEgJDFVERERERERKYKgiIiIiIiJSAkMVERERERGREhiqiIiIiIiIlMBQRUREREREpASZIAhCcXeCiL4+aWlpMDQ0RKWxW5Cjplvc3fmiNFUFBNfLxYSTqsjMlRV3d74o1s7aS1PtpbVugLV/TO235rX9Ar36fPL/fr948QIGBgbF3Z1SgyNVREREREQfYGtrC5lMVuBn+PDhAIBffvkFzZo1g4GBAWQyGVJTUyX3j4uLU3h/mUyG+Pj4Qh/3xo0b6NixI8zMzGBgYIAuXbrg0aNHkjbt2rVDhQoVoKWlBUdHRwDAw4cPJW22bt2KGjVqQEdHBzY2NliwYEGBx1q+fDlcXFygra0NJycnREZGFtqvzZs3QyaToUOHDpLt27dvR+vWrWFqagqZTIazZ88WegxBEODt7Q2ZTIYdO3ZI9t25cwdt27aFjo4OzM3NMX78eOTk5EjaZGZmYurUqbCxsYGmpiZsbW3x66+/ivtXrVqFxo0bw9jYGMbGxvDw8MDJkyclx+jTp0+B58PLy6vQPhem1IaqW7duffCJJuUo+h+EiIiI6FsUHx+Phw8fij/R0dEAgB9++AEAkJGRAS8vL0yZMkXh/Rs0aCC5/8OHDzFgwADY2dmhTp06Cu/z6tUrtG7dGjKZDAcPHsTRo0eRlZUFHx8fyOVysV3z5s2xdetWJCYmYt26dQCAXr16ifv37dsHX19fDBkyBBcvXsTPP/+MxYsXY9myZWKbsLAwTJ48GQEBAbh06RICAwMxfPhw7N69u0C/bt26hXHjxqFx48YK+9yoUSPMnz//Q6cUoaGhkMkKjhbm5uaibdu2yMrKwrFjx7B27VpERETA399f0q5Lly6IjY3F6tWrkZiYiE2bNsHJyUncHxcXh+7du+PQoUM4fvw4rK2t0bp1a9y/f19yHC8vL8nzsmnTpg/2/V1qH32Pz6hPnz5Yu3YtgoKCMGnSJHH7jh070LFjR5TUmYm2trYYPXo0Ro8eXaT2cXFxaN68OZ4/fw4jI6P/tG+f08OHD2FsbPxFH/P169eYN28eNm3ahNu3b0NfXx/NmzdHQEAAqlSp8kX78iVFRERg9OjRBT4VIyIios/DzMxMcnvevHmoVKkSmjZtCgDi+7q4uDiF99fQ0IClpaV4Ozs7Gzt37sSIESMUBgsAOHr0KG7duoUzZ86IU/nWrl0LY2NjHDx4EB4eHgCAMWPGiPfJf+8VHx+P7OxsqKurY926dejQoQOGDBkCAKhYsSImT56M+fPnY/jw4ZDJZFi3bh0GDx6Mrl27im3i4+Mxf/58+Pj4iMfPzc2Fr68vAgMD8ffffxd479GzZ08AecHrfc6ePYuFCxfi1KlTKFu2rGTfgQMHcPnyZcTExMDCwgI1atTArFmzMHHiRAQEBEBDQwNRUVE4fPgwbt68CRMTEwB577HftmHDBsnt8PBwbNu2DbGxsZLQqampKXluPkWxj1RpaWlh/vz5eP78eXF35bPIysoq7i4UShCEAsOm/yVLS0toamp+scfLzMyEh4cHfv31V8yePRvXrl3D3r17kZOTAzc3N/zzzz9frC9ERERUcmVlZWH9+vXo169foYHoQ3bt2oWnT5+ib9++hbbJzMyETCaTvJ/S0tKCiooKjhw5ovA+z549AwC4ublBXV1dPI6Wlpaknba2Nu7du4fbt2+/t83JkyeRnZ0tbps5cybMzc3Rv3//j6hWKiMjAz169MDy5csVhpnjx4+jWrVqsLCwELd5enoiLS0Nly5dApB3/urUqYPg4GCUK1cOjo6OGDduHF6/fv3ex83OzhZDWL64uDiYm5vDyckJQ4cOxdOnTz+6pmIPVR4eHrC0tERQUJDC/QEBAahRo4ZkW2hoqCSJ9unTBx06dMDcuXNhYWEBIyMjzJw5Ezk5ORg/fjxMTExQvnx5rFmzpsDxr169igYNGkBLSwtVq1bF4cOHJfsvXrwIb29v6OnpwcLCAj179sSTJ0/E/c2aNYOfnx9Gjx6NMmXKwNPT86PPgUwmQ3h4ODp27AgdHR04ODhg165dAPJSfvPmzQHkffIgk8nQp08fAIBcLkdQUBDs7Oygra2N6tWr4/fffxePmz93d9++fahduzY0NTXx66+/QiaT4erVq5I+LF68GJUqVfqoukeOHIkJEybAxMQElpaWCAgIKFBX/vS//OmW27dvR/PmzaGjo4Pq1avj+PHjkvusWrUK1tbW0NHRQceOHbFo0aIij86Fhobi+PHj2LNnD7p06QIbGxvUq1cP27Ztg4uLC/r37y+Ofua/ZgIDA8U5ykOGDJGE4vzn1s/PD4aGhihTpgymT58uGUF9/vw5evXqBWNjY+jo6MDb2xvXr18X90dERMDIyAj79++Hi4sL9PT0xCHmt4WHh8PFxQVaWlpwdnbGzz//LO770LmLi4tD37598eLFC3EucP5z8fPPP8PBwQFaWlqwsLBA586di3QuiYiIqHA7duxAamqq+J7sU6xevRqenp4oX758oW3q168PXV1dTJw4ERkZGXj16hXGjRuH3NzcAu8lJk6cCF1dXdjZ2QGAZAqbp6cntm/fjtjYWMjlcly7dg0LFy4E8P/XXnl6eiI8PBwJCQkQBAGnTp1CeHg4srOzxfeAR44cwerVq7Fq1apPrhvIG1lr0KAB2rdvr3B/SkqKJFABEG+npKQAAG7evIkjR47g4sWL+OOPPxAaGorff/8dw4YNK/RxJ06cCCsrK3GED8ib+hcZGYnY2FjMnz8fhw8fhre3N3Jzcz+qpmKd/gcAqqqqmDt3Lnr06IGRI0e+94X1PgcPHkT58uXx119/4ejRo+jfvz+OHTuGJk2a4MSJE9iyZQsGDx6MVq1aSR5j/PjxCA0NReXKlbFo0SL4+PggOTkZpqamSE1NRYsWLTBgwAAsXrwYr1+/xsSJE9GlSxccPHhQPMbatWsxdOhQHD169JPPQ2BgIIKDg7FgwQIsXboUvr6+uH37NqytrbFt2zZ06tQJiYmJMDAwgLa2NgAgKCgI69evx4oVK+Dg4IC//voLP/74I8zMzMShaACYNGkSQkJCULFiRRgbG2PVqlXYsGEDZs2aJbbZsGEDevToAQAfVfdPP/2EEydO4Pjx4+jTpw8aNmyIVq1aFVrn1KlTERISAgcHB0ydOhXdu3dHUlIS1NTUcPToUQwZMgTz589Hu3btEBMTg+nTpxf5HG7cuBGtWrVC9erVJdtVVFQwZswY+Pr64ty5c2JIj42NhZaWFuLi4nDr1i307dsXpqammDNnjqTG/v374+TJkzh16hQGDRqEChUqYODAgQDywtn169exa9cuGBgYYOLEiWjTpg0uX74sfjqUkZGBkJAQrFu3DioqKvjxxx8xbtw4cUh6w4YN8Pf3x7Jly1CzZk2cOXMGAwcOhK6uLnr37v3Bc9egQQOEhobC398fiYmJAAA9PT2cOnUKI0eOxLp169CgQQM8e/YMf//9d6HnLzMzE5mZmeLttLQ0AICmigBV1ZI5FbcwmiqC5L+lCWtn7aVJaa0bYO1v//dD3h6lyRceHg5PT0+YmZkV2J8/Kyg7O1vhfQHg3r172L9/PzZu3FhoGwAwMjLCpk2bMGLECCxZsgQqKiro2rUratasWaBvo0ePRq9evXD16lV07twZgwcPRlRUFGQyGQYOHIgbN27gu+++Q3Z2NgwMDDBq1CgEBARARSVvjGX69OlISUlB/fr1IQgCLCws0Lt3bwQHB0NFRQUvX75Ez549sWrVKpQpU6ZI506RXbt24eDBgzhz5swnHwPIG1yQyWTYsGEDDA0NAQCLFi1C586d8fPPP4vvl/PNmzcPmzdvRlxcnGRErlu3buK/q1WrBldXV1SqVAlxcXFo2bJlkftT7KEKADp27IgaNWpgxowZWL169Scdw8TERHyxOTk5ITg4GBkZGeLFgpMnT8a8efNw5MgRycnz8/NDp06dAORdoBcVFYXVq1djwoQJ4pvcuXPniu1//fVXWFtb49q1a+LqKg4ODggODv7U8gHkvTnv3r07AGDu3LlYsmQJTp48CS8vL3GI0tzcXBy1yczMxNy5cxETEwN3d3cAeXNfjxw5gpUrV0pC1cyZMyVBx9fXF8uWLRND1bVr15CQkID169cDQJHrdnV1xYwZM8RzsGzZMsTGxr43VI0bNw5t2+YtTRoYGIgqVaogKSkJzs7OWLp0Kby9vTFu3DgAgKOjI44dO4Y9e/YU6Rxeu3ZNHNV7l4uLi9gmP1RpaGjg119/hY6ODqpUqYKZM2di/PjxmDVrlvgLxtraGosXL4ZMJoOTkxMuXLiAxYsXY+DAgWKYOnr0KBo0aAAgLyBZW1tjx44d4oWr2dnZWLFihTgS6Ofnh5kzZ4p9mzFjBhYuXIjvv/8eAGBnZ4fLly9j5cqVklD1vnNnaGgImUwmGUK/c+cOdHV18d1330FfXx82NjbiL2FFgoKCEBgYWGD7tJpy6Oh83Kc1JcWsOvIPNyqhWHvpVFprL611A6y9KPbu3Su5/fjxY8TGxmLixIkF9gHAhQsXAORdF6Snp6fwmFu2bIG+vj7U1NQUHuNdixYtQlpaGlRUVKCnp4c+ffrA1dVV4X3zZ90cOHAA//zzD9zd3SGTyTB//nzMnTsXKSkpMDMzQ2xsLIC8949A3lS/X3/9FStXrsSjR49QtmxZ/PLLL9DX14eZmRnOnz+PW7duSa6vyl8sQ01NDYmJiZJZT4U5ePAgbty4UWAmUqdOndC4cWPExcXB0tKywCp9+Sse5r/XKVu2LMqVKycGKiDv/Z4gCLh37x4cHBzE7SEhIZg3bx5iYmLg6ur63v5VrFgRZcqUQVJS0rcXqgBg/vz5aNGihfiG+mNVqVJFfCMM5A0RVq1aVbytqqoKU1NTPH78WHK//EAC5L0g6tSpgytXrgAAzp07h0OHDin8H+LGjRtiuKhdu/Yn9fltbz/Burq6MDAwKNDXtyUlJSEjI6NAgMnKyirwxvndFWW6deuGcePG4Z9//kH9+vWxYcMG1KpVC87OzgCKXve7L8qyZcu+t8/v3if/osTHjx/D2dkZiYmJ6Nixo6R9vXr1ihyqAHzU4ibVq1eHjo6OeNvd3R3p6em4e/cubGxsAOQNu789V9rd3R0LFy5Ebm4urly5AjU1Nbi5uYn7TU1N4eTkJL6GAEBHR0fyS+bt8/Tq1SvcuHED/fv3F0e/gLxPud7+JQG8/9wp0qpVK9jY2KBixYrw8vKCl5eXOMVUkcmTJ+Onn34Sb6elpcHa2hqzz6ggR11V4X1KKk0VAbPqyDH9lAoy5aXs+1tYO2svRbWX1roB1v4xtV8MkF7akX9N0fTp06GmVvCttK5u3nc7tm7dWuElDIIgYMyYMejXrx/atWv30f0/dOgQXrx4gXHjxklWusuXP9MEgGQGCpD3frhcuXIA8qYHuru7F1iAQ11dXZzVtXnzZnz33XdQUVGBs7OzGBjzTZs2DS9fvsT//vc/WFtbF6n/kyZNwoABAyTbqlWrhsWLF4uBzd3dHXPmzMHjx49hbm4OAIiOjoaBgQEqV64MAGjYsCF+++03pKeni+9Zr127BhUVFcmstODgYMyZMwf79+8vdJXFt927dw9Pnz4tsHjGh3w1oapJkybw9PTE5MmTJfNTVVRUCrxRVjRMmj/VKp9MJlO47e3lJz8kPT0dPj4+CpeEfPtE5//Po4yP7Wt6ejoA4M8//xT/58j37uIQ7/bP0tISLVq0wMaNG1G/fn1s3LgRQ4cOlRy7KHV/yvl9+z75YeVjnpP3cXR0lISZt+Vvzw+EX5Ki85T/ms5/HletWiUJZ0DeL77CjlOUc6evr4/Tp08jLi4OBw4cgL+/PwICAhAfH6/wl7ympqbChUUy5TLklLIvhsyXKZeVui/FzMfaWXtpUlrrBlh7UWp/+++vXC5HZGQkevfuXWB6WUpKClJSUsRV765evQp9fX1UqFBBsjBCbGwskpOTMWjQoALvEe7fv4+WLVsiMjIS9erVAwCsWbMGLi4uMDMzw/HjxzFq1CiMGTNGHDw4ceIE4uPj0ahRIxgbG+P8+fMA8ma+5A8ePHnyBL///juaNWuGN2/eYM2aNfjtt98kawlcu3YNJ0+ehJubG54/f45Fixbh4sWLWLt2LQCI6w+8Lf/9xNvbnz17hjt37uDBgwcAIF6aYGlpKfl5V4UKFcTrwVq3bo3KlSujZ8+eCA4ORkpKCqZNm4bhw4eL71V69OiBWbNmoW/fvggMDMSTJ08wfvx49OvXT3xu5s+fD39/f2zcuBG2trbi9Vh6enrQ09NDeno6AgMD0alTJ1haWuLGjRuYMGEC7O3tP3qdhGJfqOJt8+bNw+7duyWLF5iZmSElJUUSrD7nd0u9vSJcTk4OEhISxKlitWrVwqVLl2Brawt7e3vJz+cIUkWloaEBAJIL5ipXrgxNTU3cuXOnQN+K8kmBr68vtmzZguPHj+PmzZuSKZHFVbeTk1OBL79735fhvatbt26IiYnBuXPnJNvlcjkWL16MypUrS663OnfunGSFmH/++Qd6enqS83fixAnJsf755x84ODhAVVUVLi4uyMnJkbR5+vQpEhMTxU9RPsTCwgJWVla4efNmgXOd/4ulKDQ0NBReUKmmpgYPDw8EBweLw/ZvXxdHRERERRcTE4M7d+6gX79+BfatWLECNWvWFGeeNGnSBDVr1hQXH8u3evVqNGjQQOFMk+zsbCQmJiIjI0PclpiYiA4dOsDFxQUzZ84Ur7HOp6Ojg+3bt6Nly5ZwcnKCn58fgLxpi29/WLp27VrUqVMHDRs2xKVLlxAXFycGNyDvfebChQtRvXp1tGrVCm/evMGxY8cKLFP+Ibt27ULNmjXFSxa6deuGmjVrYsWKFUU+hqqqKvbs2QNVVVW4u7vjxx9/RK9evSSXT+jp6SE6OhqpqamoU6cOfH194ePjgyVLlohtwsLCkJWVhc6dO6Ns2bLiT/75U1VVxfnz59GuXTs4Ojqif//+qF27Nv7++++PXsH6qxmpAvKG/nx9fSUno1mzZvj3338RHByMzp07IyoqCvv27RPX6lfW8uXL4eDgABcXFyxevBjPnz8X/0cZPnw4Vq1ahe7du4ur3CUlJWHz5s0IDw8vMJLwX7GxsYFMJsOePXvQpk0baGtrQ19fH+PGjcOYMWMgl8vRqFEjvHjxAkePHoWBgYHkWhxFvv/+ewwdOhRDhw5F8+bNYWVlJe4rrrpHjBiBJk2aiAuGHDx4EPv27SvyUqVjxozBzp074ePjg4ULF8LNzQ2PHj3C3LlzceXKFcTExEiOlZWVhf79+2PatGm4desWZsyYAT8/P8k00jt37uCnn37C4MGDcfr0aSxdulRcLcfBwQHt27fHwIEDsXLlSujr62PSpEkoV65coavZKBIYGIiRI0fC0NAQXl5eyMzMxKlTp/D8+XPJdLz3sbW1RXp6OmJjY8VpjQcPHsTNmzfRpEkTGBsbY+/evZDL5QqnChAREdGHtW7dutBLDQICAgqshKzIxo0bC91na2tb4Pjz5s3DvHnzCr1PtWrVJB+YpqWlwdDQUPLerkyZMgVWXH6Xi4vLRy8eERERUWBbnz59PnpVREXn1MbG5oPXmzk7O4tfwqzIh74rS1tbG/v37y9SHz/kqxqpAvLmqb49pcnFxQU///wzli9fjurVq+PkyZOffN2VIvkv1OrVq+PIkSPYtWuXuKKJlZUVjh49itzcXLRu3RrVqlXD6NGjYWRkJHnj/V8rV64cAgMDMWnSJFhYWIifQMyaNQvTp09HUFAQXFxc4OXlhT///LNIIxz6+vrw8fHBuXPn4OvrK9lXXHU3bNgQK1aswKJFi1C9enVERUVhzJgxBb4zoTBaWlo4ePAgevXqhSlTpsDe3h5eXl5QVVUVrx97W8uWLeHg4IAmTZqga9euaNeuXYFfhr169cLr169Rr149DB8+HKNGjcKgQYPE/WvWrEHt2rXx3Xffwd3dHYIgYO/evQWG899nwIABCA8Px5o1a1CtWjU0bdoUERERHzVS1aBBAwwZMgRdu3aFmZkZgoODYWRkhO3bt6NFixZwcXHBihUrsGnTphL9JchERERExUEmfMyV/URf2MCBA3H16tX3LgX+Kfr06YPU1FTxe7QUadasGWrUqIHQ0NDP+tjfivxPuiqN3YIctS833fVroKkqILheLiacVC111xqwdtZemmovrXUDrP1jar81r+0X6NXnk//3+8WLF59tZhd92Fc1/Y8oJCQErVq1gq6uLvbt24e1a9dKvgiXvrwTk1vC1NS0uLvxRWVnZ2Pv3r24GOD5UaOOJQFrZ+2lqfbSWjfA2ktr7fTf+eqm/33rNmzYIK4o8u4Pp1192MmTJ9GqVStUq1YNK1aswJIlS8RlN6tUqVLouc3/Il0iIiIioi+NI1WfWbt27QosjZ2Pn4Z82NatWwvdt3fv3kK/ddzCwuKjHkfRhZXviouL+6hjEhEREVHpxFD1menr60NfX7+4u1Ei5X8hLxERERHR14TT/4iIiIiIiJTAUEVERERERKQEhioiIiIiIiIlMFQREREREREpgaGKiIiIiIhICQxVRERERERESmCoIiIiIiIiUgJDFRERERERkRIYqoiIiIiIiJTAUEVERERERKQEhioiIiIiIiIlMFQREREREREpgaGKiIiIiIhICQxVRERERERESmCoIiIiIiIiUgJDFRERERERkRIYqoiIiIiIiJTAUEVERERERKQEhioiIiIiIiIlMFQREREREREpgaGKiIiIiIhICQxVRERERERESmCoIiIiIiIiUgJDFRERERERkRIYqoiIiIiIiJTAUEVERERERKQEhioiIiIiIiIlMFQREREREREpgaGKiIiIiIhICQxVRERERERESmCoIiIiIiIiUgJDFRERERERkRIYqoiIiIiIiJTAUEVERERERKQEhioiIiIiIiIlMFQREREREREpgaGKiIiIiIhICQxVRERERERESmCoIiIiIiIiUgJDFRERERERkRIYqoiIiIiIiJTAUEVERERERKQEhioiIiIiIiIlMFQREREREREpgaGKiIiIiIhICQxVRERERERESmCoIiIiIiIiUgJDFRERERERkRIYqoiIiIiIiJTAUEVERERERKQEhioiIiIiIiIlMFQREREREREpgaGKiIiIiIhICQxVRERERERESmCoIiIiIiIiUgJDFRERERERkRLUirsDRPR1cwuKRY6abnF344vSVBUQXA+oGrAfmbmy4u7OF8XaWXtpqr2k131rXtvi7gJRqcGRKiIiIqISKiAgADKZTPLj7Ows7k9JSUHPnj1haWkJXV1d1KpVC9u2bStwnD///BNubm7Q1taGsbExOnTo8MHHdXZ2hq6uLoyNjeHh4YETJ05I2jx79gy+vr4wMDCAkZER+vfvj/T0dEkbQRAQEhICR0dHaGpqoly5cpgzZ464/8iRI2jYsCFMTU2hra0NZ2dnLF68WHKMsLAwuLq6wsDAAAYGBmjcuDESEhIkbZo1a1bgPA0ZMkRhbU+fPkX58uUhk8mQmpqqsM3Ro0ehpqaGGjVqSLa/fPkSo0ePho2NDbS1tdGgQQPEx8eL+7OzszFx4kRUq1YNurq6sLKyQq9evfDgwQPJcebMmYMGDRpAR0cHRkZGCvuQkJCAli1bwsjICMbGxvD09MS5c+ckbfbv34/69etDX18fZmZm6NSpE27duqXwePR+DFVUQLNmzTB69GgAgK2tLUJDQ4u1P1Q4Pj9ERPQhVapUwcOHD8WfI0eOiPv69euHxMRE7Nq1CxcuXMD333+PLl264MyZM2Kbbdu2oWfPnujbty/OnTuHo0ePokePHu99TEdHRyxbtgwXLlzAkSNHYGtri9atW+Pff/8V2/j6+uLSpUuIjo7Gnj178Ndff2HQoEGS44waNQrh4eEICQnB1atXsWvXLtSrV0/cr6urCz8/P/z111+4cuUKpk2bhmnTpuGXX34R25QvXx7z5s1DQkICTp06hWbNmiEoKAiXLl2SPNbAgQMl5yk4OFhhbf3794erq2uhtaempqJXr15o2bJlgX0DBgxAdHQ01q1bhwsXLqB169bw8PDA/fv3AQAZGRk4ffo0pk+fjtOnT2P79u1ITExEu3btJMfJysrCDz/8gKFDhxbaj06dOqFChQo4ceIEjhw5An19fXh6eiI7OxsAkJycjPbt26NFixY4e/Ys9u/fjydPnuD7778v9JhUOE7/o/eKj4+Hrm7Rpn7Z2tpi9OjRYiD7Vnyr/VbE1tYWt2/fxqZNm9CtWzfJvipVquDy5ctYs2YN+vTpUzwdJCKiL05NTQ2WlpaSbflvrI8fP46wsDAxqEybNg2LFy9GQkICatasiZycHIwaNQoLFixA//79xftXrlz5vY/5buhatGgRVq9ejfPnz6Nly5a4cuUKoqKiEB8fjzp16gAAli5dijZt2iAkJARWVla4cuUKwsLCcPHiRTg5OQEA7OzsJMetWbMmatasKd62tbXF9u3b8ffff4sBzcfHR3KfWbNmYfny5Th58qRkJElHR6fAeXpXWFgYUlNT4e/vj3379ilsM2TIEPTo0QOqqqrYsWOHuP3169fYtm0bdu7ciSZNmgDIG9HbvXs3wsLCMHv2bBgaGiI6OlpyvGXLlqFevXq4c+cOKlSoAAAIDAwEAERERBTa1+fPn2PmzJmwtrYGAMyYMQOurq64ffs27O3tkZCQgNzcXMyePRsqKnnjLOPGjUP79u2RnZ0NdXX1954LkuJIFb2XmZkZdHR0irsb9BGsra2xZs0aybZ//vkHKSkpRQ7IRERUcly/fh1WVlaoWLEifH19cefOHXGfu7s7tmzZgmfPnkEul2Pz5s148+YNmjVrBgA4ffo07t+/DxUVFdSsWRNly5aFt7c3Ll68WOTHz8rKwi+//AJDQ0NUr14dQF6YMzIyEgMVAHh4eEBFRUWcJrh7925UrFgRe/bsgZ2dHWxtbTFgwAA8e/as0Mc6c+YMjh07hqZNmyrcn5ubiy1btuDNmzdwc3OT7NuwYQPKlCmDqlWrYvLkycjIyJDsv3z5MmbOnInIyEgxhLxrzZo1uHnzJmbMmFFgX05ODnJzc6GlpSXZrq2tLRk9fNeLFy8gk8kKneZXGBMTE6xevRpZWVl4/fo1Vq9eDRcXF9ja2gIAateuDRUVFaxZswa5ubl48eIF1q1bBw8PDwaqT8BQVcq9evUKvXr1gp6eHsqWLYuFCxdK9r89vUwQBAQEBKBChQrQ1NSElZUVRo4cCSBvyuDt27cxZswYcS4ykDfvuHv37ihXrhx0dHRQrVo1bNq0SfIYzZo1w8iRIzFhwgSYmJjA0tISAQEBkjapqakYPHgwLCwsoKWlhapVq2LPnj3i/iNHjqBx48bQ1taGtbU1Ro4ciVevXn2w/sL6DeRNd6hSpQo0NTVha2tb4Ny8z8OHD9G2bVtoa2vDzs4OGzduLDBV786dO2jfvj309PRgYGCALl264NGjR+L+GzduoH379rCwsICenh7q1q2LmJiYDz62r68vDh8+jLt374rbfv31V/j6+kJNjYPTRESliZubGyIiIhAVFYWwsDAkJyejcePGePnyJQBg48aNyM7OhqmpKTQ1NTF48GD88ccfsLe3BwDcvHkTQN6IyrRp07Bnzx4YGxujWbNm7w03ALBnzx7o6elBS0sLixcvRnR0NMqUKQMg71ouc3NzSXs1NTWYmJggJSVFfOzbt2/jt99+Q2RkJCIiIpCQkIDOnTsXeKzy5ctDU1MTderUwfDhwzFgwADJ/gsXLkBPTw+amprw8/PDpEmTJKNtPXr0wPr163Ho0CFMnjwZ69atw48//ijuz8zMRPfu3bFgwQJxtOhd169fx6RJk7B+/XqFf2/19fXh7u6OWbNm4cGDB8jNzcX69etx/PhxPHz4UOEx37x5g4kTJ6J79+4wMDBQ2KYwf/75J9avXw9tbW3o6ekhKioK+/btE/tmZ2eHAwcOYMqUKdDU1ISRkRHu3buHrVu3ftTjUB6+wyrlxo8fj8OHD2Pnzp0wNzfHlClTcPr06QIXVgJ5IWPx4sXYvHkzqlSpgpSUFPGCx+3bt6N69eoYNGgQBg4cKN7nzZs3qF27NiZOnAgDAwP8+eef6NmzJypVqiSZE7127Vr89NNPOHHiBI4fP44+ffqgYcOGaNWqFeRyOby9vfHy5UusX78elSpVwuXLl6GqqgogL3x4eXlh9uzZ+PXXX/Hvv//Cz88Pfn5+BUZs3lVYvxMSEtClSxcEBASga9euOHbsGIYNGwZTU9MiTZ3r1asXnjx5gri4OKirq+Onn37C48ePxf1yuVwMVIcPH0ZOTg6GDx+Orl27Ii4uDgCQnp6ONm3aYM6cOdDU1ERkZCR8fHyQmJhY6C90ALCwsICnpyfWrl2LadOmISMjA1u2bMHhw4cRGRlZ6P0yMzORmZkp3k5LSwMAaKoIUFUVPlhzSaKpIkj+W5qwdtZempT0urOzs+Hh4SHednFxQa1atWBvb48tW7bAysoK/v7+eP78OaKiomBqaopdu3ahS5cuOHjwIKpVq4asrCwAwKRJk8Tren755RfY2dlh8+bNkr+d72rUqBHi4+Px9OlTrF69Gl26dMGRI0dgbm6O3NxcCIIgTkN8W25uLrKzs5GTk4PMzEysXr0ajo6OAICVK1fCzc1NMiUQAA4ePIj09HScPHkSU6dOha2trWQafMWKFREfH4+0tDT89ttvWLJkCTp06CBeG9W3b1+xrbOzM8zMzODp6YmrV6+iUqVKmDhxIpycnNC1a1exb/nnODs7G7m5uejevTv8/f1hZ2cnbnu3xl9//RWDBg1CuXLloKqqipo1a6Jr1644ffp0gXORnZ2NLl26QC6XY8mSJYWeq/y2b98PAPz8/NCwYUNs2rQJubm5CAkJQdu2bREfHw9tbW2kpKRg4MCB6N27N7p3746XL1/C398fnTt3RnR0tOSDZvowhqpSLD09HatXr8b69evFiynXrl2L8uXLK2x/584dWFpaisPCFSpUEIORiYkJVFVVoa+vL5mPXK5cOYwbN068PWLECOzfvx9bt26VhCpXV1dxqNzBwQHLli1DbGwsWrVqhZiYGJw8eRJXrlwRf6lWrFhRvG9QUBB8fX3Fa6IcHBywZMkSNG3aFGFhYQWG2d9WWL8XLVqEli1bYvr06QDyLri9fPkyFixY8MFQdfXqVcTExEjmiYeHh8PBwUFsExsbiwsXLiA5OVmc6xwZGYkqVaogPj4edevWRfXq1cVpEkDeHPA//vgDu3btgp+f33v70K9fP4wdOxZTp07F77//jkqVKikMym8LCgoS52i/bVpNOXR0ct9735JqVh15cXeh2LD20qm01l5S6967d6/C7ebm5oiNjYWHhwdWrFiBJUuW4M2bN7h//z5q164NGxsbTJkyBUOHDhWnCqampkqOZ2xsjEOHDqFcuXJF6kuHDh2wf/9+TJo0CZ07d8bjx4/x4MEDyTFzc3Px9OlT3L9/H3v37kV6ejpUVVWRlJSEpKQkABA//Nu2bZvCv2tly5aFl5cXJk2aVOjITuPGjREdHY0pU6Zg2LBhCtu8efMGALB582bUrFkTO3fuxJ07dwqsjGhpaYkffvgBPj4+SEhIwJkzZ8RZPIIgQBAEaGlpISAgQAxwY8eOxfDhw5GRkQETExMsWLAAenp6knORk5ODBQsW4NGjR5g5c2ah0wPPnTuH7OxsyX3zpy3euXMHJ0+eFKcqbty4EcbGxti5cye6deuG5cuXw9DQULIgx/r162FtbY0TJ06gfv36Ch+TFGOoKsVu3LiBrKwsyZxiExMTySc/b/vhhx8QGhqKihUrwsvLC23atIGPj897p5Tl5uZi7ty52Lp1K+7fv4+srCxkZmYWuE7r3VV0ypYtK47snD17FuXLlxcD1bvOnTuH8+fPY8OGDeI2QRAgl8uRnJwMFxeX958IBa5cuYL27dtLtjVs2BChoaHIzc0VR8kUSUxMhJqaGmrVqiVus7e3h7GxseT41tbWYqAC8i76NTIywpUrV1C3bl2kp6cjICAAf/75Jx4+fIicnBy8fv1aMhe+MG3btsXgwYPx119/4ddff0W/fv0+eJ/Jkyfjp59+Em+npaXB2toas8+oIEe98HpLIk0VAbPqyDH9lAoy5aXrkzrWztpLU+0lve6LAZ4FtqWnp+Pp06eoX7++GFCaNm0q+Vu5fPlylC9fHm3atEGjRo0we/ZsmJqaok2bNgDyRkJevHiBFi1aiNuKQltbG7a2tmjTpg3s7OywbNkyWFpain8vo6OjIQgChgwZAisrK6irq2PLli1wcnJCpUqVAECcIdO5c+dC3xecPn0aR48eLbRv2dnZmD59OszMzAptc+zYMQB5i1y4urrCyckJr1+/FvcnJCRg4MCBiIuLQ8WKFVGmTJkCi3esXLkShw4dwubNm2FnZ6fwuubnz5/j4sWLCAoKkpzf/JGjo0ePwszMrNBz+uTJE6irq0vqyJ9poqKiIhltyr8tl+d9iJCRkVHg2rD89zf5bajoGKqoyKytrZGYmIiYmBhER0dj2LBhWLBgAQ4fPlzoBY0LFizA//73P4SGhorfuTB69GhxOkG+d+//9v/02tra7+1Xeno6Bg8eLH4y9Lb3TZP72o0bNw7R0dEICQmBvb09tLW10blz5wLnThE1NTX07NkTM2bMwIkTJ/DHH3988D6amprQ1NQssD1TLkNOCfxSzKLIlMtK5BeCFgVrZ+2lSUmtW11dHePGjYOPjw9sbGzw4MEDzJgxA6qqqujRoweOHz8Oe3t7+Pn5ISQkBKamptixYwdiYmKwZ88eqKurw9TUFEOGDMHMmTNha2sLGxsbLFiwAADQrVs38e+3s7MzgoKC0LFjR7x69Qpz5sxBu3btULZsWTx58gTLly/H/fv3xfu4urrCy8sLQ4cOxYoVK5CdnY3Ro0ejW7dusLGxAQB4eXmhVq1aGDx4MEJDQyGXy+Hn54dWrVqhSpUqAPICYIUKFcTv3vrrr7+wePFijBw5Uuzb5MmT4e3tjQoVKuDly5dYt24dLl68iPnz50NdXR03btzAxo0b0aZNG5iamuL8+fMYM2YMmjRpgtq1a4v1ve3FixcAgGrVqokLSLy9CiGQN4qlra0t2b5//34IggAnJyckJSVh/PjxcHZ2xoABA6Curi4GqtOnT2PPnj1QUVHB06dPAeR98K2hoQEgbxTq2bNnuH//PnJzc8Xl4e3t7cW6U1NTMXz4cIwYMQJyuRzz5s2DmpoamjdvDiDvA9jFixdj5syZYoibMmUKbGxsCtRCH8ZQVYpVqlQJ6urqOHHihBg+nj9/jmvXrhW6ao62tjZ8fHzg4+OD4cOHw9nZGRcuXECtWrWgoaEhzu3Nd/ToUbRv31682FMul+PatWsfXIr1ba6urrh37x6uXbum8FOpWrVq4fLly+JFtR9LUb9dXFxw9OhRybajR4/C0dHxvaNUAODk5IScnBycOXNG/GWclJSE58+fS45/9+5d3L17Vxytunz5MlJTU8Vzc/ToUfTp0wcdO3YEkBceP+YL+fr164eQkBB07dpVMkpGRESlx71799C9e3c8ffoUZmZmaNSoEf755x+YmZlBTU0NO3fuxPTp0+Hj44P09HTY29tj7dq1kpGPBQsWiB/WvX79Gm5ubjh48KDkb0tiYqIYNFRVVXH16lWsXbsWT548gampKerWrYu///5bDENA3mp7fn5+aNmyJVRUVNCpUycsWbJE3K+iooLdu3djxIgRaNKkCXR1deHt7S1ZOEoul2Py5MlITk6GmpoaKlWqhPnz52Pw4MFim8ePH6NXr154+PAhDA0NUa1aNcyYMUO83kxDQwMxMTEIDQ3Fq1evYG1tjU6dOmHatGmf/fl48eIFJk+ejHv37sHExASdOnXCnDlzxCB0//597Nq1CwAKTG88dOiQuCqjv78/1q5dK+7LD0GHDh0SR/42b96MkJAQuLu7i6s3RkVFoWzZsgCAFi1aYOPGjQgODkZwcDB0dHTg7u6OqKioD36gTQUxVJVienp66N+/P8aPHw9TU1OYm5tj6tSphS4TGhERgdzcXLi5uUFHR0dcUSb/EyVbW1v89ddf6NatGzQ1NVGmTBk4ODjg999/x7Fjx2BsbIxFixbh0aNHHxWqmjZtiiZNmqBTp05YtGgR7O3tcfXqVchkMnh5eWHixImoX78+/Pz8MGDAAOjq6uLy5cuIjo7GsmXLPnh8Rf0eO3Ys6tati1mzZqFr1644fvw4li1bhp9//vmDx3N2doaHhwcGDRqEsLAwqKurY+zYsdDW1haH4T08PFCtWjX4+voiNDQUOTk5GDZsGJo2bSpeh+Xg4IDt27fDx8cHMpkM06dP/6jheBcXFzx58oRL4hMRlWKbN29WuD1/MQMHB4cC1wm9S11dHSEhIQgJCSm0jSD8/2IfWlpa2L59+wf7ZmJigo0bN763jZWV1Xv7N2LECIwYMeK9x1i9erXk9rvXIFlbW+Pw4cMf7O/bmjVrJqlZkYCAgAKrGXfp0gVdunQp9D62trYfPC6Q956ssO+oyp/+16JFC3To0OG9x+nWrVuB77WkT8Ml1Uu5BQsWoHHjxvDx8YGHhwcaNWokjq68y8jICKtWrULDhg3h6uqKmJgY7N69G6ampgCAmTNn4tatW6hUqZI4/3fatGmoVasWPD090axZM1haWn7wf3BFtm3bhrp166J79+6oXLkyJkyYII4uubq64vDhw7h27RoaN26MmjVrwt/fH1ZWVkU6tqJ+16pVC1u3bsXmzZtRtWpV+Pv7Y+bMmUX+0tzIyEhYWFigSZMm6NixIwYOHAh9fX1x0QyZTIadO3fC2NgYTZo0gYeHBypWrIgtW7aIx1i0aBGMjY3RoEED+Pj4wNPTU3KdVlGYmpry0yYiIiKi/5hMKEocJiKl3Lt3D9bW1oiJiRFXWvzapaWlwdDQEJXGbkGOWun60mBNVQHB9XIx4aRqibzO4n1YO2svTbWX9LpvzWtb6L780Zo2bdqUui96Lem15//9fvHixUd/txV9Ok7/I/oP5H9fRrVq1fDw4UNMmDABtra2aNKkSXF37aOdmNxSHI0sLfL/4F4M8CyRf3Dfh7Wz9tJUe2mtm4g+P4YqKtH+/vtveHt7F7o/PT39PzlmdnY2pkyZgps3b0JfXx8NGjTAhg0b+EebiIiIqARiqKISrU6dOjh79uwXP6anpyc8PQt+PwgRERERlTyfLVSlpqaK6/QTfS20tbU/ean1L3lMIiIiIvp2fdLqf/Pnz5esUtalSxeYmpqiXLly4jddExERERERlQafFKpWrFghfmFpdHQ0oqOjsW/fPnh7e2P8+PGftYNERERERERfs0+a/peSkiKGqj179qBLly5o3bo1bG1t4ebm9lk7SERERERE9DX7pJEqY2Nj3L17FwAQFRUFDw8PAHnfpp3/haxERERERESlwSeNVH3//ffo0aMHHBwc8PTpU3F56TNnzvACfiIiIiIiKlU+KVQtXrwYtra2uHv3LoKDg6GnpwcAePjwIYYNG/ZZO0hERERERPQ1+6RQpa6ujnHjxhXYPmbMGKU7RERERERE9C35pGuqAGDdunVo1KgRrKyscPv2bQBAaGgodu7c+dk6R0RERERE9LX7pFAVFhaGn376Cd7e3khNTRUXpzAyMkJoaOjn7B8REREREdFX7ZNC1dKlS7Fq1SpMnToVqqqq4vY6dergwoULn61zREREREREX7tPClXJycmoWbNmge2ampp49eqV0p0iIiIiIiL6VnxSqLKzs8PZs2cLbI+KioKLi4uyfSIiIiIiIvpmfNLqfz/99BOGDx+ON2/eQBAEnDx5Eps2bUJQUBDCw8M/dx+JiIiIiIi+Wp8UqgYMGABtbW1MmzYNGRkZ6NGjB6ysrPC///0P3bp1+9x9JCIiIiIi+mp9dKjKycnBxo0b4enpCV9fX2RkZCA9PR3m5ub/Rf+IiIiIiIi+ah99TZWamhqGDBmCN2/eAAB0dHQYqIiIiIiIqNT6pIUq6tWrhzNnznzuvhAREREREX1zPumaqmHDhmHs2LG4d+8eateuDV1dXcl+V1fXz9I5IiIiIiKir90nhar8xShGjhwpbpPJZBAEATKZDLm5uZ+nd0RERERERF+5TwpVycnJn7sfRERERERE36RPClU2Njafux9ERERERETfpE8KVZGRke/d36tXr0/qDBERERER0bfmk0LVqFGjJLezs7ORkZEBDQ0N6OjoMFQREREREVGp8UlLqj9//lzyk56ejsTERDRq1AibNm363H0kIiIiIiL6an1SqFLEwcEB8+bNKzCKRUREREREVJJ9tlAFAGpqanjw4MHnPCQREREREdFX7ZOuqdq1a5fktiAIePjwIZYtW4aGDRt+lo4RERERERF9Cz4pVHXo0EFyWyaTwczMDC1atMDChQs/R7+IiIiIiIi+CZ8UquRy+efuBxERERER0Tfpk66pmjlzJjIyMgpsf/36NWbOnKl0p4iIiIiIiL4VnxSqAgMDkZ6eXmB7RkYGAgMDle4UERERERHRt+KTQpUgCJDJZAW2nzt3DiYmJkp3ioiIiIiI6FvxUddUGRsbQyaTQSaTwdHRURKscnNzkZ6ejiFDhnz2ThIREREREX2tPipUhYaGQhAE9OvXD4GBgTA0NBT3aWhowNbWFu7u7p+9k0RERERERF+rjwpVvXv3BgDY2dmhQYMGUFdX/086RURERERE9K34pCXVmzZtKv77zZs3yMrKkuw3MDBQrldERERERETfiE9aqCIjIwN+fn4wNzeHrq4ujI2NJT9ERERERESlxSeFqvHjx+PgwYMICwuDpqYmwsPDERgYCCsrK0RGRn7uPhIREREREX21Pmn63+7duxEZGYlmzZqhb9++aNy4Mezt7WFjY4MNGzbA19f3c/eTiIiIiIjoq/RJI1XPnj1DxYoVAeRdP/Xs2TMAQKNGjfDXX399vt4RERERERF95T4pVFWsWBHJyckAAGdnZ2zduhVA3giWkZHRZ+scERERERHR1+6TQlXfvn1x7tw5AMCkSZOwfPlyaGlpYcyYMRg/fvxn7SAREREREdHX7JOuqRozZoz4bw8PD1y9ehUJCQmwt7eHq6vrZ+scERERERHR1+6TQtXb3rx5AxsbG9jY2HyO/hAREREREX1TPmn6X25uLmbNmoVy5cpBT08PN2/eBABMnz4dq1ev/qwdJCIiIiIi+pp9UqiaM2cOIiIiEBwcDA0NDXF71apVER4e/tk6R0RERERE9LX7pFAVGRmJX375Bb6+vlBVVRW3V69eHVevXv1snSMiIiIiIvrafVKoun//Puzt7Qtsl8vlyM7OVrpTRERERERE34pPClWVK1fG33//XWD777//jpo1ayrdKSIiIiIiom/FJ63+5+/vj969e+P+/fuQy+XYvn07EhMTERkZiT179nzuPhIREREREX21Pmqk6ubNmxAEAe3bt8fu3bsRExMDXV1d+Pv748qVK9i9ezdatWr1X/WViIiIiIjoq/NRI1UODg54+PAhzM3N0bhxY5iYmODChQuwsLD4r/pHRERERET0VfuokSpBECS39+3bh1evXn3WDhEREREREX1LPmmhinzvhiwiIiIiIqLS5qNClUwmg0wmK7CNiIiIiIiotPqoa6oEQUCfPn2gqakJAHjz5g2GDBkCXV1dSbvt27d/vh4SUbFyC4pFjpruhxt+Q27Na1vcXSAiIqIS5KNCVe/evSW3f/zxx8/aGSIiIiIiom/NR03/W7NmTZF+iIi+Bbm5uZg+fTrs7Oygra2NSpUqYdasWZLrRfv06SNOfc7/8fLyeu9xX758idGjR8PGxgba2tpo0KAB4uPjJW0CAgLg7OwMXV1dGBsbw8PDAydOnFB4vMzMTNSoUQMymQxnz56V7BMEASEhIXB0dISmpibKlSuHOXPmiPvj4uIK9F8mkyElJUXhYwUHB6NDhw4YO3asuO3Zs2cYMWIEnJycoK2tjQoVKmDkyJF48eKF2Obp06fw8vKClZUVNDU1YW1tDT8/P6SlpX1UX4rynBTl3J0+fRqtWrWCkZERTE1NMWjQIKSnp0vaxMfHo2XLljAyMoKxsTHatm2L5ORkheclKSkJ+vr6MDIyUrifiIhKN6UWqiCi/3+jmJqa+t52tra2CA0N/SJ9oqKZP38+wsLCsGzZMly5cgXz589HcHAwli9fLmnn5eWFhw8fij+bNm1673EHDBiA6OhorFu3DhcuXEDr1q3h4eGB+/fvi20cHR2xbNkyXLhwAUeOHIGtrS1at26Nf//9t8DxJkyYACsrK4WPNWrUKISHhyMkJARXr17Frl27UK9evQLtEhMTJTWYm5sXaBMfH4/w8HDY2tpKtj948AAPHjxASEgILl68iIiICERFRaF///5iGxUVFbRv3x67du3CtWvXEBERgZiYGAwZMuSj+lLYc7J06dIin7sHDx7Aw8MD9vb2OHHiBKKionDp0iX06dNHPEZ6ejq8vLxQoUIFnDhxAkeOHIGenh4CAwORnZ0t6W92dja6d++Oxo0bK3wOiIiIPmr6HxEV1KBBAzx8+BCGhoYAgIiICIwePbpAyIqPjy9w/SEVr2PHjqF9+/Zo2zbvGitbW1ts2rQJ8fHxqFixothOU1MTlpaWRTrm69evsW3bNuzcuRNNmjQBkDeysnv3boSFhWH27NkAgB49ekjut2jRIqxevRrnz59Hy5Ytxe379u3DgQMHsG3bNuzbt09ynytXriAsLAwXL16Ek5MTAMDOzk5hv8zNzd87ypKeng5fX1+EhYVh3Lhxkn1Vq1bFtm3bxNuVKlXCnDlz8OOPPyInJwdqamowNjbG0KFDxTY2NjYYNmwYFixY8FF9Kew5OXnypNjmQ+duz549UFdXx/Lly6GikvfZ4YoVK+Dq6oqkpCTY29vj6tWrePbsGWbOnAlra2sAwLRp0/DHH3/g9u3bcHFxEY8/bdo0ODs7o2XLljh27Fih55CIiEovjlQRKUlDQwOWlpYfXAnTzMwMOjo6X6hXVBQNGjRAbGwsrl27BgA4d+4cjhw5Ak9PT0m7uLg4mJubw8nJCUOHDsXTp08LPWZOTg5yc3OhpaUl2a6trY0jR44ovE9WVhZ++eUXGBoaonr16uL2R48eYeDAgVi3bp3C187u3btRsWJF7NmzB3Z2drC1tcWAAQPw7NmzAm1r1KiBsmXLolWrVjh69GiB/cOHD0fbtm0lge59Xrx4AQMDA6ipKf5s7sGDB9i+fTuaNm36UX0p7Dnx9vZW+DiKzl1mZiY0NDTEQAXknX8A4nPg5OQEU1NTrF69GllZWXj9+jUiIiJQvnx5yUjdwYMH8dtvvxUYvSQiInobQxWVCs2aNYOfnx/8/PxgaGiIMmXKYPr06eJ1Gs+fP0evXr1gbGwMHR0deHt74/r16+L9b9++DR8fHxgbG0NXVxdVqlTB3r17AUin/8XFxaFv37548eKFeL1IQEAAgILT/+7cuYP27dtDT08PBgYG6NKlCx49eiTuDwgIQI0aNbBu3TrY2trC0NAQ3bp1w8uXLz9Yb2RkJExNTZGZmSnZ3qFDB/Ts2fNTT2OJM2nSJHTr1g3Ozs5QV1dHzZo1MXr0aMlIiJeXFyIjIxEbG4v58+fj8OHD8Pb2Rm5ursJj6uvrw93dHbNmzcKDBw+Qm5uL9evX4/jx43j48KGk7Z49e6CnpwctLS0sXrwY0dHRKFOmDID/X211yJAhqFOnjsLHunnzJm7fvo3ffvsNkZGRiIiIQEJCAjp37iy2KVu2LFasWIFt27Zh27ZtsLa2RrNmzXD69GmxzebNm3H69GkEBQUV6bw9efIEs2bNwqBBgwrs6969O3R0dFCuXDkYGBggPDz8o/pS2HPi6+tb5HPXokULpKSkYMGCBcjKysLz588xadIkABCfA319fcTFxWH9+vXQ1taGnp4e9u/fD39/fzEoPn36FH369EFERAQMDAyKdG6IiKh04vQ/KjXWrl2L/v374+TJkzh16hQGDRqEChUqYODAgejTpw+uX7+OXbt2wcDAABMnTkSbNm1w+fJlqKurY/jw4cjKysJff/0FXV1dXL58GXp6egUeo0GDBggNDYW/vz8SExMBQGE7uVwuBqrDhw8jJycHw4cPR9euXREXFye2u3HjBnbs2IE9e/bg+fPn6NKlC+bNmydZiECRH374ASNHjsSuXbvwww8/AAAeP36MP//8EwcOHFB4n8zMTEkIy19gQFNFgKpqyfqi7/xrZrZs2YINGzYgMjISlStXxrlz5zBu3DiYmprCwsIC2dnZ6NSpk3g/Z2dnuLi4wNnZGTExMWjRooXC4//6668YNGgQypUrB1VVVdSsWRNdu3bF6dOnJdfrNGrUCPHx8Xj69ClWr16NLl264MiRIzA3N8eyZcuQlpaGcePGITs7W7zf2//OyclBZmYmVq9eDUdHRwDAypUr4ebmJk4JrFixomQqY926dZGUlISFCxciIiICd+/exahRo7B3716oqqqKx87NzS1wbRGQ97po06YNXFxcMHXq1AJtgoODMWXKFFy/fh3Tpk3D6NGjxeuhPtSX9z0n5ubm6NWrV5HOnaOjI1avXo0JEyZg8uTJUFVVhZ+fHywsLCAIArKzs/H69Wv069cP7u7uWLduHXJzc7Fw4ULMnj0b33//PQwMDNC/f3907doV7u7uyM7OFoO0ovPyrXv79VWalNa6Adb+9n9LmpJa19eOoYpKDWtrayxevBgymQxOTk64cOECFi9ejGbNmmHXrl04evQoGjRoAADYsGEDrK2tsWPHDvzwww+4c+cOOnXqhGrVqgGA5I3h2zQ0NGBoaAiZTPbea3BiY2Nx4cIFJCcni9dzREZGokqVKoiPj0fdunUB5IWviIgI6OvrAwB69uyJ2NjYD4YqbW1t9OjRA2vWrBFD1fr161GhQgU0a9ZM4X2CgoIQGBhYYPu0mnLo6CgelflW5Y8yjh49Gp06dYK+vj7u3r0LExMTeHl5YebMmVi+fDmio6MV3t/AwAA7d+7EmzdvCn2MsWPHYvjw4cjIyICJiQkWLFgAPT098bHf1aFDB+zfvx+TJk1C586dsXnzZpw6darAdXj169dH06ZNMWrUKKSnp0NVVRVJSUlISkoCADEYb9u2DTVq1FD4WKampkhISMDevXvxzz//4PHjx5LFLeRyOS5fvowVK1bgt99+g6qqKoC868UCAgKgqamJ/v37F3p+AEBVVRU9e/bElClT4ObmBhMTkw/2BSj8OZkxY4Y4EvWhcwcAhoaGWLlyJVJTU6GpqQmZTIbQ0FCkpqZi7969iI6OxrVr1zB58mQ8fvwYAODr64t9+/YhKCgIjRs3RnR0NHbv3o1FixZJzo2WlhaGDRsGDw+PQuv/Vr3vOS3JSmvdAGsviTIyMoq7C6USQxWVGvXr15dc9+Tu7o6FCxfi8uXLUFNTg5ubm7jP1NQUTk5OuHLlCgBg5MiRGDp0KA4cOAAPDw906tQJrq6un9yXK1euwNraWgxUAFC5cmUYGRnhypUrYqiytbUVAxWQN30q/w3ghwwcOBB169bF/fv3Ua5cOURERIjLgysyefJk/PTTT+LttLQ0WFtbY/YZFeSoq35KmV+tiwF510wJgoBq1aqhTZs24r4LFy6IiyK0atUK6urqkvveu3cPL1++hIeHh+R+7/P8+XNcvHgRQUFB772PtrY2bG1t0aZNG1StWlWyHPnDhw/Rtm1bbNy4EfXq1UP58uWhrq6OLVu2wMnJCZUqVQKQdw0SAHTu3FkcvXrX0qVL4ezsjDZt2qBx48bo0qWLuC8nJwc9evRAnTp1MGHCBFStWhVA3uuhbdu2sLCwwK5du4p0fWD+a7dRo0YFVhRU1Bfg/c9JUc+dIhEREdDS0sL48eNhZGSE5ORkaGtro23btuL/E69fv4ZMJkOVKlXQpk0bHD9+XDLNc/fu3QgJCcHhw4dRrlw5GBsbf/AcfCuys7MRHR2t8DVfkpXWugHWXpJrf/tvB305DFVERTBgwAB4enqK0+eCgoKwcOFCjBgx4j993Hd/2ctkMsjl8iLdt2bNmqhevToiIyPRunVrXLp0CX/++Weh7TU1NaGpqVlge6Zchpzc9y/C8a3JP68+Pj6YN28e7OzsUKVKFZw5cwb/+9//xC86z8zMxIwZM9CpUydYWlrixo0bmDBhAuzt7dG2bVvxOC1btkTHjh3h5+cHANi/fz8EQYCTkxOSkpIwfvx4ODs7Y8CAAVBXV8erV68wZ84ctGvXDmXLlsWTJ0+wfPly3L9/H926dYO6uroYkvLlv4F3cnISV/jz8vJCrVq1MHjwYISGhkIul8PPzw+tWrVClSpVAAChoaFifW/evEF4eDgOHTqEAwcOQF1dHSYmJpJRpOzsbGhqasLMzAw1a9YE8P+BKiMjAxs2bMDr16/x+vVrAHkLsKiqqmLv3r149OgR6tatCz09PVy6dAnjx49Hw4YN4eDgUKS+vO856devX5HPHQAsW7YMDRo0gJ6eHqKjozF+/HjMmzcPZmZm4rmbNGkSRo8ejREjRkAul2Pu3LlQUVFBy5Ytoa6uXuCDk3PnzkFFRUU8LyWRurp6iXyT+SGltW6AtZfE2ktiTd8ChioqNd79ctB//vkHDg4OqFy5MnJycnDixAlx+t/Tp0+RmJiIypUri+2tra0xZMgQDBkyBJMnT8aqVasUhioNDY1CFzHI5+Ligrt37+Lu3bviaNXly5eRmpoqeUxlDRgwAKGhobh//z48PDwkI2OUN0oyffp0DBs2DI8fP4aVlRUGDx6MyZMnIyYmBqqqqjh//jzWrl2L1NRUWFlZoXXr1pg1a5YkgN64cQNPnjwRb7948QKTJ0/GvXv3YGJigk6dOmHOnDniHzpVVVVcvXoVa9euxZMnT2Bqaoq6devi77//FsNQUaioqGD37t0YMWIEmjRpAl1dXXh7e2PhwoVim6ysLIwdOxb379+Hjo4OXF1dERMTg+bNmxf5cU6fPi3+/2Nvby/Zl5ycDFtbW2hra2PVqlUYM2YMMjMzYW1tje+//15cIKKofSnsOfH39/+oc3fy5EnMmDED6enpcHZ2xsqVKyWLtDg7O2P37t0IDAyEu7s7VFRUUKNGDcyYMQNly5Yt8rkhIiICAJnw9tfUE5VQzZo1Q0JCAgYOHIjBgwfj9OnTGDhwIBYuXIjBgwejQ4cOuH79OlauXAl9fX1MmjQJSUlJ4kIVo0ePhre3NxwdHfH8+XMMGzYMNjY22LJlC+Li4tC8eXM8f/4cRkZGOHbsGBo2bIiYmBhUr14dOjo60NHRga2tLUaPHo3Ro0dDEATUqlUL+vr6CA0NRU5ODoYNGwY9PT1xoYqAgADs2LEDZ8+eFesIDQ1FaGgobt26VaS6X7x4ASsrK+Tk5CAyMhJdu3Yt8jlLS0uDoaEhKo3dghy1kvX9WrfmtX3v/uzsbOzduxdt2rQpdZ/4sXbWXppqL611A6y9JNee//c7/6sv6MvgkupUavTq1QuvX79GvXr1MHz4cIwaNUpcEnrNmjWoXbs2vvvuO7i7u0MQBOzdu1f8ZZubm4vhw4fDxcUFXl5ecHR0xM8//6zwcRo0aIAhQ4aga9euMDMzQ3BwcIE2MpkMO3fuhLGxMZo0aQIPDw9UrFgRW7Zs+aw1GxoaolOnTtDT00OHDh0+67GJiIiIKA+n/1Gpoa6ujtDQUISFhRXYZ2xsjMjIyELvm78ktCLNmjXDuwO+YWFhBR7n3dGlChUqYOfOnYUeNyAgQPyOq3z5I10f4/79+/D19VV4vRQRERERKY+hiqiEev78OeLi4hAXF1foqFpRnJjcEqampp+xZ0REREQlC0MV0Tfozp07713Q4vLly2jSpAmeP3+O+fPnw8nJ6Qv2joiIiKh0YaiiUiF/8YeSwsrKSrKAhaL9RV3MgoiIiIiUw1BF9A1SU1MrsLQ1ERERERUPrv5HRERERESkBIYqIiIiIiIiJTBUERERERERKYGhioiIiIiISAkMVUREREREREpgqCIiIiIiIlICQxUREREREZESGKqIiIiIiIiUwFBFRERERESkBIYqIiIiIiIiJTBUERERERERKYGhioiIiIiISAkMVUREREREREpgqCIiIiIiIlICQxUREREREZESGKqIiIiIiIiUwFBFRERERESkBIYqIiIiIiIiJTBUERERERERKYGhioiIiIiISAkMVUREREREREpgqCIiIiIiIlICQxUREREREZESGKqIiIiIiIiUwFBFRERERESkBIYqIiIiIiIiJTBUERERERERKYGhioiIiIiISAkMVUREREREREpgqCIiIiIiIlICQxUREREREZESGKqIiIiIiIiUwFBFRERERESkBIYqIiIiIiIiJTBUERERERERKYGhioiIiIiISAkMVUREREREREpgqCIiIiIiIlICQxUREREREZESGKqIiIiIiIiUwFBFRERERESkBIYqIiIiIiIiJTBUERERERERKYGhioiIiIiISAkMVUREREREREpgqCIiIiIiIlICQxUREREREZESGKqIiIiIiIiUwFBFRERERESkBIYqIiIiIiIiJTBUERERERERKYGhioiIiIiISAkMVUREREREREpgqCIiIiIiIlICQxUREREREZES1Iq7A0T0dXMLikWOmm5xd+Oj3JrXtri7QERERKUIR6qIiIiIiIiUwFBFRCWSra0tZDJZgZ/hw4fj2bNnGDFiBJycnKCtrY0KFSpg5MiRePHixXuPKQgC/P39UbZsWWhra8PDwwPXr1+XtDl9+jRatWoFIyMjmJqaYtCgQUhPT5e0iY2NRYMGDaCvrw9LS0tMnDgROTk54v5bt24p7Ps///wjttm+fTvq1KkDIyMj6OrqokaNGli3bp3kcQICAuDs7AxdXV0YGxvDw8MDJ06ckLR59uwZfH19YWBgACMjIwwaNAivX7+WtNm/fz/q168PfX19mJmZoVOnTrh165a4/+HDh+jRowccHR2hoqKC0aNHKzx/v/32G5ydnaGlpYVq1aph7969kv19+vQpULOXl5fCY2VmZqJGjRqQyWQ4e/asZJ8gCAgJCYGjoyM0NTVRrlw5zJkzR9Jm+fLlcHFxgba2NpycnBAZGanwcYiIiIqCoYqohAgICECNGjWKuxtfjfj4eDx8+FD8iY6OBgD88MMPePDgAR48eICQkBBcvHgRERERiIqKQv/+/d97zODgYCxZsgQrVqzAiRMnoKurC09PT7x58wYA8ODBA3h4eMDe3h4nTpxAVFQULl26hD59+ojHOHfuHNq0aQMvLy+cOXMGW7Zswa5duzBp0qQCjxcTEyOpoXbt2uI+ExMTTJ06FcePH8f58+fRt29f9O3bF/v37xfbODo6YtmyZbhw4QKOHDkCW1tbtG7dGv/++6/YxtfXF5cuXUJ0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9nz5F/lmZWUVGEGcOXOmuFqfIpGRkR/s18GDB9+7v3fv3gqve3vb7NmzMXv27EL3a2lpYfv27R/si4mJCTZu3Cjezs7OLnCNU7du3dCtW7f3Hud95zPfDz/8gB9++EHhPm1tbckXFxeFra2twse1srKSfA/Zu1xcXHDmzJkC23lxNxERfSouqU70H1NRURGnOlWtWhVjxozBggULPuoYDRs2xIoVK7Bo0SJUr14dUVFRGDNmTIHv2nnbgAEDEB4ejjVr1qBatWpo2rQpIiIiCnwRKhEREREphyNVRF+Ah4dHgWlFb3/C/u6n7UZGRgW2DRw4ULLoxMCBAyVT1wICAgqs+tajRw/06NFD2e4TERER0XswVBF9I0JCQtCqVSvo6upi3759WLt27Rf5Mt8Tk1vC1NT0P38cIiIiom8VQxXRN+LkyZMIDg7Gy5cvUbFiRSxZsgQDBgwo7m4RERERlXoMVUTfiK1btxZ3F4iIiIhIAS5UQUREREREpASGKiIiIiIiIiUwVBERERERESmBoYqIiIiIiEgJDFVERERERERKYKgiIiIiIiJSAkMVERERERGREhiqiIiIiIiIlMBQRUREREREpASGKiIiIiIiIiUwVBERERERESmBoYqIiIiIiEgJDFVERERERERKYKgiIiIiIiJSAkMVERERERGREhiqiIiIiIiIlMBQRUREREREpASGKiIiIiIiIiUwVBERERERESmBoYqIiIiIiEgJDFVERERERERKYKgiIiIiIiJSAkMVERERERGREhiqiIiIiIiIlMBQRUREREREpASGKiIiIiIiIiUwVBERERERESmBoYqIiIiIiEgJDFVERERERERKYKgiIiIiIiJSAkMVERERERGREhiqiIiIiIiIlMBQRUREREREpASGKiIiIiIiIiUwVBERERERESmBoYqIiIiIiEgJDFVERERERERKYKgiIiIiIiJSAkMVERERERGREhiqiIiIiIiIlMBQRUREREREpASGKiIiIiIiIiUwVBERERERESmBoYqIiIiIiEgJDFVERERERERKYKgiIiIiIiJSAkMVERERERGREhiqiIiIiIiIlMBQRUREREREpASGKiIiIiIiIiUwVBERERERESmBoYqIiIiIiEgJDFVERERERERKYKgiIiIiIiJSAkMVERERERGREhiqiIiIiIiIlMBQRURE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dhZ++eUXyf6S/Ltu//79AoAC9QhCyX/eqfjJBEEQimWIjIiIiIiIqATgNVVERERERERKYKgiIiIiIiJSAkMVERERERGREhiqiIiIiIiIlMBQRUREREREpASGKiIiIiIiIiUwVBERERERESmBoYqIiIgQEREBIyOj4u4GEdE3iaGKiIjoG5eSkoJRo0bB3t4eWlpasLCwQMOGDREWFoaMjIwiHaNr1664du3af9xTIqKSSa24O0BERESf7ubNm2jYsCGMjIwwd+5cVKtWDZqamrhw4QJ++eUXlCtXDu3atfvgcbS1taGtrf0FekxEVPJwpIqIiOgbNmzYMKipqeHUqVPo0qULXFxcULFiRbRv3x5//vknfHx8AACLFi1CtWrVoKurC2trawwbNgzp6enicd6d/hcQEIAaNWpg3bp1sLW1haGhIbp164aXL19+6RKJiL56DFVERETfqKdPn+LAgQMYPnw4dHV1FbaRyWQAABUVFSxZsgSXLl3C2rVrcfDgQUyYMOG9x79x4wZ27NiBPXv2YM+ePTh8+DDmzZv32esgIvrWMVQRERF9o5KSkiAIApycnCTby5QpAz09Pejp6WHixIkAgNGjR6N58+awtbVFixYtMHv2bGzduvW9x5fL5YiIiEDVqlXRuHFj9OzZE7Gxsf9ZPURE3ypeU0VERFTCnDx5EnK5HL6+vsjMzAQAxMTEICgoCFevXkVaWhpycnLw5s0bZGRkQEdHR+FxbG1toa+vL94uW7YsHj9+/EVqICL6lnCkioiI6Btlb28PmUyGxMREyfaKFSvC3t5eXHji1q1b+O677+Dq6opt27YhISEBy5cvBwBkZWUVenx1dXXJbZlMBrlc/pmrICL69jFUERERfaNMTU3RqlUrLFu2DK9evSq0XUJCAuRyORYuXIj69evD0dERDx48+II9JSIq2RiqiIiIvmE///wzcnJyUKdOHWzZsgVXrlxBYmIi1q9fj6tXr0JVVRX29vbIzs7G0qVLcfPmTaxbtw4rVqwo7q4TEZUYDFVERETfsEqVKuHMmTPw8PDA5MmTUb16ddSpUwdLly7FuHHjMGvWLFSvXh2LFi3C/PnzUbVqVWzYsAFBQUHF3XUiohJDJgiCUNydICIiIiIi+lZxpIqIiIiIiEgJDFVERERERERKYKgiIiIiIiJSAkMVERERERGREhiqiIiIiIiIlMBQRUREREREpASGKiIiIiIiIiUwVBERERERESmBoYqIiIiIiEgJDFVERERERERKYKgiIiIiIiJSAkMVERERERGREv4PKXycuZaaEJgAAAAASUVORK5CYII=",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"xgb.plot_importance(best_xgb_model, importance_type='gain', xlabel='Gain')\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 194,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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OnbsWIZlkpOTs90XQcDEDh48qGvXrikqKso2FhAQoEqVKmU6/9NPP60pU6aoXLlyatmypVq3bq22bdtmebpJWlqa3n77bX355Zc6duyYrl27pqtXr2a47uDmq+5LlSpl+wR99+7duu+++2wh4GY///yz/vvf/2rBggW2sfSEfujQIVWpUiXrJyIT+/fvV7t27ezGGjRooClTpigtLc12NCIziYmJcnFx0f33328bq1Chgt0FRfv371dISIgtBEhSRESE/P39tX//fj3wwANKSkpSfHy8vv/+e504cUKpqam6fPmyjhw5ctv627RpoxdeeEHr16/XRx99pOeee+62ywwbNkwDBw60Pb5w4YJCQkL05i4npbreul9H5u5kaEwdq4Zvd9JVayG8/zX9ObzC3iP9Ob7C3mN6f82bN9dDDz2kDh062E2PjY1VpUqVNHjw4Ov/Z775plxcXNS6dWtJ198T/P333+rRo4eioqLk5OSkr776SnXq1LGd7jNnzhz5+voqNjZW7u7uGWoICwvT9OnTFRQUZHtvsXLlShmGod69eys4ONhu/vQj+tlBEEC2hYSEKDExUatWrdLKlSv14osvasKECVq3bp1cXV0zXWbChAl67733NGXKFFWvXl1eXl7q379/hivjb17eYrHIar3+6UKRIkWyrCspKUkvvPCC7XqFG2V1Cs29bvDgwVq5cqUmTpyoChUqqEiRInrqqadueVeBG7m4uOjZZ5/VyJEjtWXLFn3zzTe3Xcbd3T3TX0BXrRalFsIvibnRVaulUH4RTjr6c3yFvUf6c3yFvUdXV1d5enoqICDAbtzb21slSpRQrVq1JEk9e/bUK6+8opIlS8rX11cvvfSS6tWrp4YNG0qSWrdurYiICD333HMaP368Tp48qZEjR6pv3762owhbt25V165dtXr1apUuXVo1atRQy5Yt1adPH82aNUspKSnq37+/OnXqpLJly2Zaa3ZxsbCJlS9fXq6urnZXnJ89e1a//vrrLZcpUqSI2rZtq6lTpyohIUGbNm3Snj17JElubm5KS7M/hWTDhg1q166dnnnmGUVGRqpcuXJZrj8zNWrU0J9//nnL5e6//37t27dPFSpUyPDj5uZ22/VnVneVKlW0YcOGDL1UrFgxy6MBklSpUiWlpqZq165dtrEDBw7o7Nmzdus/evSo3QW9+/bt07lz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WrlypZo3b2779966dWvt2bNHktS4cWNVqVLFtp4ZM2bovvvus60rs+1cuHDBNt1qtapv377q06fPLZfJTykpKbb+XF1d7/r281th708q/D06Yn/pR/SzgyAA3AVt27ZV2bJlNXv2bAUHB8tqtapatWq6du2abZ4bf8FYLNff1KQHhpxKSkqSdP26gqioKLtpzs6Zv6l3d3eXu7t7hvGrVotSHeDLmu7EVavFIb6QKrfo795w47/xpKQkHThwwPb46NGj2rt3rwICAlSmTBk1btxYw4YN05QpU/TXX3/p888/16effqpJkybJ1dVV1atXV4UKFRQXF6eJEyeqWLFiWrx4sVatWqWlS5fattWsWTO1b99ecXFxkqRBgwapW7duqlu3rurWraspU6bo0qVL6tWrV4G+yXF1dXWYN1m5Udj7kwp/j47UX07qJAgA+ezMmTNKTEzU7Nmz9dBDD0mSfvrppxyto1KlStq2bZvd2M2PbxQYGKjg4GD9/vvviomJyXnRAPLV9u3b1bRpU9vj9KNx3bp107x587Rw4UINGzZM3bp10+nTpxUaGqq33npLvXv3lnT9P/ply5Zp6NChatu2rZKSklShQgV9/PHHdp/sHzx4UKdPn7Y97tixo/7++2+NGDFCJ0+eVM2aNbVixYoMFxADMAeCAJDPihYtqmLFiulf//qXSpUqpSNHjmjo0KE5WsdLL72kRo0aadKkSWrbtq3WrFmj5cuX244cZGbUqFHq16+f/Pz81LJlS129elXbt2/X2bNn7U4BAnD3NWnSRFldohcUFKS5c+cqJSVFy5YtU+vWrTN8yhceHn7bbxI+fPhwhrG4uDjbEQIA5sbtQ4F85uTkpIULF2rHjh2qVq2aBgwYoAkTJuRoHQ0aNNCsWbM0adIkRUZGasWKFRowYIA8PDxuuUyvXr00Z84czZ07V9WrV1fjxo01b948hYWF3WlLAACgEOCIAHAXREdHa9++fXZjN34aePMng/7+/hnGYmNj7S78jY2NtbtfeHx8vOLj4+2W6dKli7p06XKn5QMAgEKIIAA4iIkTJ6p58+by8vLS8uXL9fHHH9+VLwjbMqyZihUrlu/bKQjpp138L76Fw1wElhP0BwDICkEAcBBbt27V+PHjdfHiRZUrV05Tp05Vr169CrosAADgoAgCgIP48ssvC7oEAABQiOTZxcLp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j5955pk8LQYAAADA3ZGjIDB37tz8qgMAkM/Wr1+vCRMmaMeOHTpx4oS++eYbPf7447bphmFo5MiRmj17ts6dO6cGDRpo5syZCg8Pt83zzz//6KWXXtJ3330nJycnPfnkk3rvvffk7e19y+1euXJFgwYN0sKFC3X16lW1aNFC77//PnecA4ACdkcXCzuyw4cPy2KxaPfu3QVdSqFlsVi0ePHigi4DwP936dIlRUZGasaMGZlOHz9+vKZOnapZs2Zpy5Yt8vLyUosWLXTlyhXbPDExMdq7d69WrlyppUuXav369Xr++eez3O6AAQP03Xff6d///rfWrVun48eP64knnsjT3gAAOVegQaB79+6yWCwaN26c3fjixYsL9UXIoaGhmjJlSrbnT0hIkMVi0blz5/Ktpvxw4sQJtWrV6q5u8/Llyxo5cqQqVqwod3d3FS9eXE8//bT27t17V+u42+bNmyd/f/+CLgP3uFatWunNN99U+/btM0wzDENTpkzRG2+8oXbt2qlGjRqaP3++jh8/bgv0+/fv14oVKzRnzhxFRUWpYcOGmjZtmhYuXKjjx49nus3z58/rww8/1KRJk/Twww+rdu3amjt3rjZu3KjNmzfnZ7sAgNso8CMCHh4eeuedd3T27NmCLiVPXLt2raBLuCXDMJSamnrXthcUFGS7sPxuuHr1qqKjo/XRRx/pzTff1K+//qply5YpNTVVUVFRvOkAsnDo0CGdPHlS0dHRtjE/Pz9FRUVp06ZNkqRNmzbJ399fderUsc0THR0tJycnbdmyJdP17tixQykpKXbrrVy5ssqUKWNbLwCgYBR4EIiOjlZQUJDGjh2b6fT4+HjVrFnTbmzKlCkKDQ21Pe7evbsef/xxvf322woMDJS/v79Gjx6t1NRUDRkyRAEBAbrvvvsyvcbhl19+Uf369eXh4aFq1app3bp1dtP/97//qVWrVvL29lZgYKCeffZZnT592ja9SZMmiouLU//+/VW8eHG1aNEix8+BxWLRnDlz1L59e3l6eio8PFxLliyRdP0UpqZNm0qSihYtKovFou7du0uSrFarxo4dq7CwMBUpUkSRkZH66quvbOtNP5KwfPly1a5dW+7u7vroo49ksVj0yy+/2NUwefJklS9fPkd99+vXT6+88ooCAgIUFBSk+Pj4DH2lf5KYfirWokWL1LRpU3l6eioy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/hxfYe/R0frL7gd4XCwMAAAAmBBBAAAAADAhggCATLm7u2vkyJFyd3cv6FLyTWHvkf4cX2Hvkf4cX2HvsbD3ZzGyc28hAAAAAIUKRwQAAAAAEyIIAAAAACZEEAAAAABMiCAAAAAAmBBBAECmZsyYodDQUHl4eCgqKkpbt24t6JJyJT4+XhaLxe6ncuXKtulXrlxR3759VaxYMXl7e+vJJ5/UX3/9VYAVZ239+vVq27atgoODZbFYtHjxYrvphmFoxIgRKlWqlIoUKaLo6Gj99ttvdvP8888/iomJka+vr/z9/dWzZ08lJSXdxS6ydrseu3fvnmGftmzZ0m6ee7nHsWPH6oEHHpCPj49Kliypxx9/XImJiXbzZOd1eeTIEbVp00aenp4qWbKkhgwZotTU1LvZSqay01+TJk0y7MPevXvbzXOv9jdz5kzVqFHD9gVT9erV0/Lly23THXnfpbtdj468/zIzbtw4WSwW9e/f3zZWGPZjdhAEAGTwxRdfaODAgRo5cqR27typyMhItWjRQqdOnSro0nKlatWqOnHihO3np59+sk0bMGCAvvvuO/373//WunXrdPz4cT3xxBMFWG3WLl26pMjISM2YMSPT6ePHj9fUqVM1a9YsbdmyRV5eXmrRooWuXLlimycmJkZ79+7VypUrtXTpUq1fv17PP//83Wrhtm7XoyS1bNnSbp9+/vnndtPv5R7XrVunvn37avPmzVq5cqVSUlL0yCOP6NKlS7Z5bve6TEtLU5s2bXTt2jVt3LhRH3/8sebNm6cRI0YUREt2stOfJMXGxtrtw/Hjx9um3cv93XfffRo3bpx27Nih7du36+GHH1a7du20d+9eSY6979LdrkfJcfffzbZt26YPPvhANWrUsBsvDPsxWwwAuEndunWNvn372h6npaUZwcHBxtixYwuwqtwZOXKkERkZmem0c+fOGa6ursa///1v29j+/fsNScamTZvuUoW5J8n45ptvbI+tVqsRFBRkTJgwwTZ27tw5w93d3fj8888NwzCMffv2GZKMbdu22eZZvny5YbFYjGPHjt212rPr5h4NwzC6detmtGvX7pbLOFqPp06dMiQZ69atMwwje6/LZcuWGU5OTsbJkydt88ycOdPw9fU1rl69encbuI2b+zMMw2jcuLHx8ssv33IZR+rPMAyjaNGixpw5cwrdvrtReo+G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",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"xgb.plot_importance(best_xgb_model, importance_type='weight', xlabel='Weight')\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Podsumowanie"
]
},
{
"cell_type": "code",
"execution_count": 195,
"metadata": {},
"outputs": [],
"source": [
"prec_xgb_train = precision_score(y_train, best_xgb_model.predict(X_train))\n",
"prec_xgb_test = precision_score(y_test, y_pred_xgb)\n",
"rec_xgb_train = recall_score(y_train, best_xgb_model.predict(X_train))\n",
"rec_xgb_test = recall_score(y_test, y_pred_xgb)\n",
"acc_xgb_train = accuracy_score(y_train, best_xgb_model.predict(X_train))\n",
"acc_xgb_test = accuracy_score(y_test, y_pred_xgb)\n",
"train_time = xgb_training_time/60"
]
},
{
"cell_type": "code",
"execution_count": 196,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<style type=\"text/css\">\n",
"#T_c3a1d_row0_col0, #T_c3a1d_row0_col1, #T_c3a1d_row0_col2, #T_c3a1d_row0_col3, #T_c3a1d_row0_col4, #T_c3a1d_row0_col5, #T_c3a1d_row0_col6 {\n",
" font-weight: bold;\n",
" border: 2.0px solid grey;\n",
" color: white;\n",
"}\n",
"</style>\n",
"<table id=\"T_c3a1d\">\n",
" <thead>\n",
" <tr>\n",
" <th class=\"blank level0\" >&nbsp;</th>\n",
" <th id=\"T_c3a1d_level0_col0\" class=\"col_heading level0 col0\" >Training Accuracy</th>\n",
" <th id=\"T_c3a1d_level0_col1\" class=\"col_heading level0 col1\" >Training Precision</th>\n",
" <th id=\"T_c3a1d_level0_col2\" class=\"col_heading level0 col2\" >Training Recall</th>\n",
" <th id=\"T_c3a1d_level0_col3\" class=\"col_heading level0 col3\" >Testing Accuracy</th>\n",
" <th id=\"T_c3a1d_level0_col4\" class=\"col_heading level0 col4\" >Testing Precision</th>\n",
" <th id=\"T_c3a1d_level0_col5\" class=\"col_heading level0 col5\" >Testing Recall</th>\n",
" <th id=\"T_c3a1d_level0_col6\" class=\"col_heading level0 col6\" >Training Time (mins)</th>\n",
" </tr>\n",
" <tr>\n",
" <th class=\"index_name level0\" >Model Name</th>\n",
" <th class=\"blank col0\" >&nbsp;</th>\n",
" <th class=\"blank col1\" >&nbsp;</th>\n",
" <th class=\"blank col2\" >&nbsp;</th>\n",
" <th class=\"blank col3\" >&nbsp;</th>\n",
" <th class=\"blank col4\" >&nbsp;</th>\n",
" <th class=\"blank col5\" >&nbsp;</th>\n",
" <th class=\"blank col6\" >&nbsp;</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th id=\"T_c3a1d_level0_row0\" class=\"row_heading level0 row0\" >XG Boost</th>\n",
" <td id=\"T_c3a1d_row0_col0\" class=\"data row0 col0\" >0.806</td>\n",
" <td id=\"T_c3a1d_row0_col1\" class=\"data row0 col1\" >0.300</td>\n",
" <td id=\"T_c3a1d_row0_col2\" class=\"data row0 col2\" >0.556</td>\n",
" <td id=\"T_c3a1d_row0_col3\" class=\"data row0 col3\" >0.803</td>\n",
" <td id=\"T_c3a1d_row0_col4\" class=\"data row0 col4\" >0.296</td>\n",
" <td id=\"T_c3a1d_row0_col5\" class=\"data row0 col5\" >0.504</td>\n",
" <td id=\"T_c3a1d_row0_col6\" class=\"data row0 col6\" >11.291</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n"
],
"text/plain": [
"<pandas.io.formats.style.Styler at 0x163c80a91b0>"
]
},
"execution_count": 196,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Creating of dataframe of summary results\n",
"summary_df = pd.DataFrame({'Model Name':['XG Boost'],\n",
" 'Training Accuracy': acc_xgb_train, \n",
" 'Training Precision': prec_xgb_train,\n",
" 'Training Recall':rec_xgb_train,\n",
" 'Testing Accuracy': acc_xgb_test, \n",
" 'Testing Precision': prec_xgb_test,\n",
" 'Testing Recall':rec_xgb_test,\n",
" 'Training Time (mins)': train_time})\n",
"\n",
"summary_df.set_index('Model Name', inplace=True)\n",
"# Displaying summary of results\n",
"summary_df.style.format(precision =3).set_properties(**{'font-weight': 'bold',\n",
" 'border': '2.0px solid grey','color': 'white'})"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Zapisywanie modelu"
]
},
{
"cell_type": "code",
"execution_count": 197,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"['xgboost.joblib']"
]
},
"execution_count": 197,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from joblib import dump\n",
"dump(best_xgb_model, 'xgboost.joblib') "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Wczytywanie modelu"
]
},
{
"cell_type": "code",
"execution_count": 198,
"metadata": {},
"outputs": [],
"source": [
"from joblib import load\n",
"\n",
"model2 = load('xgboost.joblib')"
]
},
{
"cell_type": "code",
"execution_count": 199,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"{'objective': 'binary:logistic',\n",
" 'base_score': None,\n",
" 'booster': None,\n",
" 'callbacks': None,\n",
" 'colsample_bylevel': None,\n",
" 'colsample_bynode': None,\n",
" 'colsample_bytree': None,\n",
" 'device': None,\n",
" 'early_stopping_rounds': None,\n",
" 'enable_categorical': True,\n",
" 'eval_metric': None,\n",
" 'feature_types': None,\n",
" 'gamma': None,\n",
" 'grow_policy': None,\n",
" 'importance_type': None,\n",
" 'interaction_constraints': None,\n",
" 'learning_rate': 0.001,\n",
" 'max_bin': None,\n",
" 'max_cat_threshold': None,\n",
" 'max_cat_to_onehot': None,\n",
" 'max_delta_step': None,\n",
" 'max_depth': 3,\n",
" 'max_leaves': None,\n",
" 'min_child_weight': None,\n",
" 'missing': nan,\n",
" 'monotone_constraints': None,\n",
" 'multi_strategy': None,\n",
" 'n_estimators': 100,\n",
" 'n_jobs': None,\n",
" 'num_parallel_tree': None,\n",
" 'random_state': None,\n",
" 'reg_alpha': None,\n",
" 'reg_lambda': None,\n",
" 'sampling_method': None,\n",
" 'scale_pos_weight': 7.975717439293598,\n",
" 'subsample': None,\n",
" 'tree_method': 'hist',\n",
" 'validate_parameters': None,\n",
" 'verbosity': None}"
]
},
"execution_count": 199,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"model2.get_params()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.10.11"
}
},
"nbformat": 4,
"nbformat_minor": 2
}