DSA_SS24/notebooks/ml_xgboost.ipynb

719 lines
179 KiB
Plaintext

{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Extreme Gradient Boosting (XGBoost) Training and Analysis"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"import sqlite3\n",
"import os\n",
"from datetime import datetime\n",
"import pandas as pd\n",
"import matplotlib.pyplot as plt\n",
"import xgboost as xgb\n",
"from sklearn.model_selection import GridSearchCV\n",
"from sklearn.metrics import confusion_matrix, f1_score\n",
"import seaborn as sns\n",
"import numpy as np"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Import Data from Database"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [],
"source": [
"# connect to the database\n",
"conn = sqlite3.connect('../features.db')\n",
"c = conn.cursor()\n",
"# get training, validation and test data\n",
"train = pd.read_sql_query(\"SELECT * FROM train\", conn)\n",
"valid = pd.read_sql_query(\"SELECT * FROM validation\", conn)\n",
"test = pd.read_sql_query(\"SELECT * FROM test\", conn)\n",
"# close the connection\n",
"conn.close()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Format Data for Machine Learning"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"train_x shape: (3502, 10)\n",
"test_x shape: (438, 10)\n",
"valid_x shape: (438, 10)\n",
"features: ['age', 'gender', 'artial_rate', 'ventricular_rate', 'qrs_duration', 'qt_length', 'qrs_count', 'q_peak', 'r_axis', 't_axis']\n",
"number of classes: 4\n"
]
}
],
"source": [
"# get the target and features\n",
"train_y = train['y']\n",
"train_y = train_y.map({'GSVT': 0, 'AFIB': 1, 'SR': 2, 'SB': 3})\n",
"train_x = train.drop(columns=['y'])\n",
"\n",
"valid_y = valid['y']\n",
"valid_y = valid_y.map({'GSVT': 0, 'AFIB': 1, 'SR': 2, 'SB': 3})\n",
"valid_x = valid.drop(columns=['y'])\n",
"\n",
"test_y = test['y']\n",
"test_y = test_y.map({'GSVT': 0, 'AFIB': 1, 'SR': 2, 'SB': 3})\n",
"test_x = test.drop(columns=['y'])\n",
"\n",
"# drop id column\n",
"train_x = train_x.drop(columns=['id'])\n",
"valid_x = valid_x.drop(columns=['id'])\n",
"test_x = test_x.drop(columns=['id'])\n",
"\n",
"print('train_x shape:', train_x.shape)\n",
"print('test_x shape:', test_x.shape)\n",
"print('valid_x shape:', valid_x.shape)\n",
"\n",
"# print column names\n",
"print('features:', train_x.columns.to_list())\n",
"\n",
"# use xgboost\n",
"dtrain = xgb.DMatrix(train_x, label=train_y)\n",
"dvalid = xgb.DMatrix(valid_x, label=valid_y)\n",
"dtest = xgb.DMatrix(test_x, label=test_y)\n",
"\n",
"num_classes= len(set(valid_y.to_list()))\n",
"print('number of classes:', num_classes)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Test Grid for Hyperparameter Analysis"
]
},
{
"cell_type": "code",
"execution_count": 47,
"metadata": {},
"outputs": [],
"source": [
"param_grid = {\n",
" 'max_depth': [3, 4, 5],\n",
" 'min_child_weight': [1, 2, 3],\n",
" 'eta': [0.1, 0.2, 0.3],\n",
" 'learning_rate': [0.1, 0.2, 0.3],\n",
" 'n_estimators': [100, 200, 300]\n",
"}"
]
},
{
"cell_type": "code",
"execution_count": 39,
"metadata": {},
"outputs": [],
"source": [
"# Create a XGBClassifier object\n",
"model = xgb.XGBClassifier(objective='multi:softmax', num_class=num_classes, eval_metric='merror')\n",
"\n",
"# Create the grid search object\n",
"grid_search = GridSearchCV(model, param_grid, cv=3, scoring='accuracy')\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Training"
]
},
{
"cell_type": "code",
"execution_count": 40,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"CPU times: total: 2h 15min 58s\n",
"Wall time: 10min\n"
]
},
{
"data": {
"text/html": [
"<style>#sk-container-id-1 {color: black;background-color: white;}#sk-container-id-1 pre{padding: 0;}#sk-container-id-1 div.sk-toggleable {background-color: white;}#sk-container-id-1 label.sk-toggleable__label {cursor: pointer;display: block;width: 100%;margin-bottom: 0;padding: 0.3em;box-sizing: border-box;text-align: center;}#sk-container-id-1 label.sk-toggleable__label-arrow:before {content: \"▸\";float: left;margin-right: 0.25em;color: #696969;}#sk-container-id-1 label.sk-toggleable__label-arrow:hover:before {color: black;}#sk-container-id-1 div.sk-estimator:hover label.sk-toggleable__label-arrow:before {color: black;}#sk-container-id-1 div.sk-toggleable__content {max-height: 0;max-width: 0;overflow: hidden;text-align: left;background-color: #f0f8ff;}#sk-container-id-1 div.sk-toggleable__content pre {margin: 0.2em;color: black;border-radius: 0.25em;background-color: #f0f8ff;}#sk-container-id-1 input.sk-toggleable__control:checked~div.sk-toggleable__content {max-height: 200px;max-width: 100%;overflow: auto;}#sk-container-id-1 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {content: \"▾\";}#sk-container-id-1 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-1 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-1 input.sk-hidden--visually {border: 0;clip: rect(1px 1px 1px 1px);clip: rect(1px, 1px, 1px, 1px);height: 1px;margin: -1px;overflow: hidden;padding: 0;position: absolute;width: 1px;}#sk-container-id-1 div.sk-estimator {font-family: monospace;background-color: #f0f8ff;border: 1px dotted black;border-radius: 0.25em;box-sizing: border-box;margin-bottom: 0.5em;}#sk-container-id-1 div.sk-estimator:hover {background-color: #d4ebff;}#sk-container-id-1 div.sk-parallel-item::after {content: \"\";width: 100%;border-bottom: 1px solid gray;flex-grow: 1;}#sk-container-id-1 div.sk-label:hover label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-1 div.sk-serial::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: 0;}#sk-container-id-1 div.sk-serial {display: flex;flex-direction: column;align-items: center;background-color: white;padding-right: 0.2em;padding-left: 0.2em;position: relative;}#sk-container-id-1 div.sk-item {position: relative;z-index: 1;}#sk-container-id-1 div.sk-parallel {display: flex;align-items: stretch;justify-content: center;background-color: white;position: relative;}#sk-container-id-1 div.sk-item::before, #sk-container-id-1 div.sk-parallel-item::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: -1;}#sk-container-id-1 div.sk-parallel-item {display: flex;flex-direction: column;z-index: 1;position: relative;background-color: white;}#sk-container-id-1 div.sk-parallel-item:first-child::after {align-self: flex-end;width: 50%;}#sk-container-id-1 div.sk-parallel-item:last-child::after {align-self: flex-start;width: 50%;}#sk-container-id-1 div.sk-parallel-item:only-child::after {width: 0;}#sk-container-id-1 div.sk-dashed-wrapped {border: 1px dashed gray;margin: 0 0.4em 0.5em 0.4em;box-sizing: border-box;padding-bottom: 0.4em;background-color: white;}#sk-container-id-1 div.sk-label label {font-family: monospace;font-weight: bold;display: inline-block;line-height: 1.2em;}#sk-container-id-1 div.sk-label-container {text-align: center;}#sk-container-id-1 div.sk-container {/* jupyter's `normalize.less` sets `[hidden] { display: none; }` but bootstrap.min.css set `[hidden] { display: none !important; }` so we also need the `!important` here to be able to override the default hidden behavior on the sphinx rendered scikit-learn.org. See: https://github.com/scikit-learn/scikit-learn/issues/21755 */display: inline-block !important;position: relative;}#sk-container-id-1 div.sk-text-repr-fallback {display: none;}</style><div id=\"sk-container-id-1\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>GridSearchCV(cv=3,\n",
" estimator=XGBClassifier(base_score=None, booster=None,\n",
" callbacks=None, colsample_bylevel=None,\n",
" colsample_bynode=None,\n",
" colsample_bytree=None,\n",
" early_stopping_rounds=None,\n",
" enable_categorical=False,\n",
" eval_metric=&#x27;merror&#x27;, gamma=None,\n",
" gpu_id=None, grow_policy=None,\n",
" importance_type=None,\n",
" interaction_constraints=None,\n",
" learning_rate=None, max_bin=None,\n",
" ma...\n",
" max_leaves=None, min_child_weight=None,\n",
" missing=nan, monotone_constraints=None,\n",
" n_estimators=100, n_jobs=None, num_class=4,\n",
" num_parallel_tree=None,\n",
" objective=&#x27;multi:softmax&#x27;, predictor=None,\n",
" random_state=None, ...),\n",
" param_grid={&#x27;eta&#x27;: [0.1, 0.2, 0.3],\n",
" &#x27;learning_rate&#x27;: [0.1, 0.2, 0.3],\n",
" &#x27;max_depth&#x27;: [3, 4, 5], &#x27;min_child_weight&#x27;: [1, 2, 3],\n",
" &#x27;n_estimators&#x27;: [100, 200, 300]},\n",
" scoring=&#x27;accuracy&#x27;)</pre><b>In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook. <br />On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.</b></div><div class=\"sk-container\" hidden><div class=\"sk-item sk-dashed-wrapped\"><div class=\"sk-label-container\"><div class=\"sk-label sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-1\" type=\"checkbox\" ><label for=\"sk-estimator-id-1\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">GridSearchCV</label><div class=\"sk-toggleable__content\"><pre>GridSearchCV(cv=3,\n",
" estimator=XGBClassifier(base_score=None, booster=None,\n",
" callbacks=None, colsample_bylevel=None,\n",
" colsample_bynode=None,\n",
" colsample_bytree=None,\n",
" early_stopping_rounds=None,\n",
" enable_categorical=False,\n",
" eval_metric=&#x27;merror&#x27;, gamma=None,\n",
" gpu_id=None, grow_policy=None,\n",
" importance_type=None,\n",
" interaction_constraints=None,\n",
" learning_rate=None, max_bin=None,\n",
" ma...\n",
" max_leaves=None, min_child_weight=None,\n",
" missing=nan, monotone_constraints=None,\n",
" n_estimators=100, n_jobs=None, num_class=4,\n",
" num_parallel_tree=None,\n",
" objective=&#x27;multi:softmax&#x27;, predictor=None,\n",
" random_state=None, ...),\n",
" param_grid={&#x27;eta&#x27;: [0.1, 0.2, 0.3],\n",
" &#x27;learning_rate&#x27;: [0.1, 0.2, 0.3],\n",
" &#x27;max_depth&#x27;: [3, 4, 5], &#x27;min_child_weight&#x27;: [1, 2, 3],\n",
" &#x27;n_estimators&#x27;: [100, 200, 300]},\n",
" scoring=&#x27;accuracy&#x27;)</pre></div></div></div><div class=\"sk-parallel\"><div class=\"sk-parallel-item\"><div class=\"sk-item\"><div class=\"sk-label-container\"><div class=\"sk-label sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-2\" type=\"checkbox\" ><label for=\"sk-estimator-id-2\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">estimator: XGBClassifier</label><div class=\"sk-toggleable__content\"><pre>XGBClassifier(base_score=None, booster=None, callbacks=None,\n",
" colsample_bylevel=None, colsample_bynode=None,\n",
" colsample_bytree=None, early_stopping_rounds=None,\n",
" enable_categorical=False, eval_metric=&#x27;merror&#x27;, gamma=None,\n",
" gpu_id=None, grow_policy=None, importance_type=None,\n",
" interaction_constraints=None, learning_rate=None, max_bin=None,\n",
" max_cat_to_onehot=None, max_delta_step=None, max_depth=None,\n",
" max_leaves=None, min_child_weight=None, missing=nan,\n",
" monotone_constraints=None, n_estimators=100, n_jobs=None,\n",
" num_class=4, num_parallel_tree=None, objective=&#x27;multi:softmax&#x27;,\n",
" predictor=None, random_state=None, ...)</pre></div></div></div><div class=\"sk-serial\"><div class=\"sk-item\"><div class=\"sk-estimator sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-3\" type=\"checkbox\" ><label for=\"sk-estimator-id-3\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">XGBClassifier</label><div class=\"sk-toggleable__content\"><pre>XGBClassifier(base_score=None, booster=None, callbacks=None,\n",
" colsample_bylevel=None, colsample_bynode=None,\n",
" colsample_bytree=None, early_stopping_rounds=None,\n",
" enable_categorical=False, eval_metric=&#x27;merror&#x27;, gamma=None,\n",
" gpu_id=None, grow_policy=None, importance_type=None,\n",
" interaction_constraints=None, learning_rate=None, max_bin=None,\n",
" max_cat_to_onehot=None, max_delta_step=None, max_depth=None,\n",
" max_leaves=None, min_child_weight=None, missing=nan,\n",
" monotone_constraints=None, n_estimators=100, n_jobs=None,\n",
" num_class=4, num_parallel_tree=None, objective=&#x27;multi:softmax&#x27;,\n",
" predictor=None, random_state=None, ...)</pre></div></div></div></div></div></div></div></div></div></div>"
],
"text/plain": [
"GridSearchCV(cv=3,\n",
" estimator=XGBClassifier(base_score=None, booster=None,\n",
" callbacks=None, colsample_bylevel=None,\n",
" colsample_bynode=None,\n",
" colsample_bytree=None,\n",
" early_stopping_rounds=None,\n",
" enable_categorical=False,\n",
" eval_metric='merror', gamma=None,\n",
" gpu_id=None, grow_policy=None,\n",
" importance_type=None,\n",
" interaction_constraints=None,\n",
" learning_rate=None, max_bin=None,\n",
" ma...\n",
" max_leaves=None, min_child_weight=None,\n",
" missing=nan, monotone_constraints=None,\n",
" n_estimators=100, n_jobs=None, num_class=4,\n",
" num_parallel_tree=None,\n",
" objective='multi:softmax', predictor=None,\n",
" random_state=None, ...),\n",
" param_grid={'eta': [0.1, 0.2, 0.3],\n",
" 'learning_rate': [0.1, 0.2, 0.3],\n",
" 'max_depth': [3, 4, 5], 'min_child_weight': [1, 2, 3],\n",
" 'n_estimators': [100, 200, 300]},\n",
" scoring='accuracy')"
]
},
"execution_count": 40,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"%%time\n",
"# Fit the grid search object to the data\n",
"grid_search.fit(train_x, train_y)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Results"
]
},
{
"cell_type": "code",
"execution_count": 41,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Best parameters: {'eta': 0.1, 'learning_rate': 0.1, 'max_depth': 5, 'min_child_weight': 3, 'n_estimators': 100}\n",
"Best score: 0.8012537024646579\n"
]
}
],
"source": [
"# Print the best parameters and the best score\n",
"print(f'Best parameters: {grid_search.best_params_}')\n",
"print(f'Best score: {grid_search.best_score_}')\n",
"#{'eta': 0.1, 'learning_rate': 0.1, 'max_depth': 5, 'min_child_weight': 3, 'n_estimators': 100}"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Save Model"
]
},
{
"cell_type": "code",
"execution_count": 44,
"metadata": {},
"outputs": [],
"source": [
"# Save the best model\n",
"best_model = grid_search.best_estimator_\n",
"# timestamp\n",
"timestamp = datetime.now().strftime('%Y%m%d%H%M%S')\n",
"best_model.save_model(f'../ml_models/best_xgb_model_{timestamp}.json')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Example Training of best Model"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"load the best model to get the best hyperparameters from it"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"best model: {'best_iteration': '99', 'best_ntree_limit': '100', 'scikit_learn': '{\"use_label_encoder\": false, \"n_estimators\": 100, \"objective\": \"multi:softmax\", \"max_depth\": 5, \"max_leaves\": null, \"max_bin\": null, \"grow_policy\": null, \"learning_rate\": 0.1, \"verbosity\": null, \"booster\": null, \"tree_method\": null, \"gamma\": null, \"min_child_weight\": 3, \"max_delta_step\": null, \"subsample\": null, \"sampling_method\": null, \"colsample_bytree\": null, \"colsample_bylevel\": null, \"colsample_bynode\": null, \"reg_alpha\": null, \"reg_lambda\": null, \"scale_pos_weight\": null, \"base_score\": null, \"missing\": NaN, \"num_parallel_tree\": null, \"random_state\": null, \"n_jobs\": null, \"monotone_constraints\": null, \"interaction_constraints\": null, \"importance_type\": null, \"gpu_id\": null, \"validate_parameters\": null, \"predictor\": null, \"enable_categorical\": false, \"max_cat_to_onehot\": null, \"eval_metric\": \"merror\", \"early_stopping_rounds\": null, \"callbacks\": null, \"kwargs\": {\"num_class\": 4, \"eta\": 0.1}, \"classes_\": [0, 1, 2, 3], \"n_classes_\": 4, \"_estimator_type\": \"classifier\"}'}\n"
]
}
],
"source": [
"# list directory\n",
"models = os.listdir('../ml_models')\n",
"model_path = [model for model in models if 'json' in model and 'best' in model and 'xgb' in model][0]\n",
"model_path = f'../ml_models/{model_path}'\n",
"# load the best model\n",
"best_model = xgb.Booster()\n",
"best_model.load_model(model_path)\n",
"best_params = best_model.attributes()\n",
"print('best model:', best_params)"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[16:58:49] WARNING: C:/Users/administrator/workspace/xgboost-win64_release_1.6.0/src/learner.cc:627: \n",
"Parameters: { \"best_iteration\", \"best_ntree_limit\", \"scikit_learn\" } might not be used.\n",
"\n",
" This could be a false alarm, with some parameters getting used by language bindings but\n",
" then being mistakenly passed down to XGBoost core, or some parameter actually being used\n",
" but getting flagged wrongly here. Please open an issue if you find any such cases.\n",
"\n",
"\n",
"[0]\ttrain-merror:0.16762\teval-merror:0.22603\n",
"[1]\ttrain-merror:0.15220\teval-merror:0.22374\n",
"[2]\ttrain-merror:0.13849\teval-merror:0.21461\n",
"[3]\ttrain-merror:0.13535\teval-merror:0.20776\n",
"[4]\ttrain-merror:0.13278\teval-merror:0.20091\n",
"[5]\ttrain-merror:0.12907\teval-merror:0.20548\n",
"[6]\ttrain-merror:0.12307\teval-merror:0.20320\n",
"[7]\ttrain-merror:0.11850\teval-merror:0.20320\n",
"[8]\ttrain-merror:0.11422\teval-merror:0.19406\n",
"[9]\ttrain-merror:0.10965\teval-merror:0.20091\n",
"[10]\ttrain-merror:0.10280\teval-merror:0.20320\n",
"[11]\ttrain-merror:0.09880\teval-merror:0.19406\n",
"[12]\ttrain-merror:0.09423\teval-merror:0.19406\n",
"[13]\ttrain-merror:0.09109\teval-merror:0.19863\n",
"[14]\ttrain-merror:0.08709\teval-merror:0.19863\n",
"[15]\ttrain-merror:0.08195\teval-merror:0.19863\n",
"[16]\ttrain-merror:0.07910\teval-merror:0.20091\n",
"[17]\ttrain-merror:0.07624\teval-merror:0.19635\n",
"[18]\ttrain-merror:0.06967\teval-merror:0.19863\n",
"[19]\ttrain-merror:0.06710\teval-merror:0.19406\n",
"[20]\ttrain-merror:0.06254\teval-merror:0.19178\n",
"[21]\ttrain-merror:0.06025\teval-merror:0.19863\n",
"[22]\ttrain-merror:0.05682\teval-merror:0.20091\n",
"[23]\ttrain-merror:0.05311\teval-merror:0.20091\n",
"[24]\ttrain-merror:0.05168\teval-merror:0.20320\n",
"[25]\ttrain-merror:0.04940\teval-merror:0.19406\n",
"[26]\ttrain-merror:0.04597\teval-merror:0.20091\n",
"[27]\ttrain-merror:0.04397\teval-merror:0.19863\n",
"[28]\ttrain-merror:0.04112\teval-merror:0.19863\n",
"[29]\ttrain-merror:0.04026\teval-merror:0.19863\n",
"[30]\ttrain-merror:0.03769\teval-merror:0.19635\n",
"[31]\ttrain-merror:0.03712\teval-merror:0.20091\n",
"[32]\ttrain-merror:0.03626\teval-merror:0.20320\n",
"[33]\ttrain-merror:0.03541\teval-merror:0.20091\n",
"[34]\ttrain-merror:0.03370\teval-merror:0.19863\n",
"[35]\ttrain-merror:0.03113\teval-merror:0.19635\n",
"[36]\ttrain-merror:0.02970\teval-merror:0.19635\n",
"[37]\ttrain-merror:0.02798\teval-merror:0.19406\n",
"[38]\ttrain-merror:0.02713\teval-merror:0.19178\n",
"[39]\ttrain-merror:0.02513\teval-merror:0.18950\n",
"[40]\ttrain-merror:0.02370\teval-merror:0.19178\n",
"[41]\ttrain-merror:0.02199\teval-merror:0.18950\n",
"[42]\ttrain-merror:0.01885\teval-merror:0.19406\n",
"[43]\ttrain-merror:0.01828\teval-merror:0.19406\n",
"[44]\ttrain-merror:0.01799\teval-merror:0.19178\n",
"[45]\ttrain-merror:0.01628\teval-merror:0.18950\n",
"[46]\ttrain-merror:0.01656\teval-merror:0.18950\n",
"[47]\ttrain-merror:0.01428\teval-merror:0.19178\n",
"[48]\ttrain-merror:0.01314\teval-merror:0.19406\n",
"[49]\ttrain-merror:0.01199\teval-merror:0.19406\n",
"[50]\ttrain-merror:0.01114\teval-merror:0.19406\n",
"[51]\ttrain-merror:0.01028\teval-merror:0.19178\n",
"[52]\ttrain-merror:0.00885\teval-merror:0.19635\n",
"[53]\ttrain-merror:0.00885\teval-merror:0.19635\n",
"[54]\ttrain-merror:0.00857\teval-merror:0.19635\n",
"[55]\ttrain-merror:0.00771\teval-merror:0.19178\n",
"[56]\ttrain-merror:0.00685\teval-merror:0.19178\n",
"[57]\ttrain-merror:0.00657\teval-merror:0.19178\n",
"[58]\ttrain-merror:0.00514\teval-merror:0.19178\n",
"[59]\ttrain-merror:0.00428\teval-merror:0.19178\n",
"[60]\ttrain-merror:0.00400\teval-merror:0.19178\n",
"[61]\ttrain-merror:0.00343\teval-merror:0.19406\n",
"[62]\ttrain-merror:0.00371\teval-merror:0.18950\n",
"[63]\ttrain-merror:0.00314\teval-merror:0.19178\n",
"[64]\ttrain-merror:0.00257\teval-merror:0.18950\n",
"[65]\ttrain-merror:0.00228\teval-merror:0.18950\n",
"[66]\ttrain-merror:0.00228\teval-merror:0.18950\n",
"[67]\ttrain-merror:0.00200\teval-merror:0.18950\n",
"[68]\ttrain-merror:0.00200\teval-merror:0.18721\n",
"[69]\ttrain-merror:0.00200\teval-merror:0.18493\n",
"[70]\ttrain-merror:0.00171\teval-merror:0.18950\n",
"[71]\ttrain-merror:0.00143\teval-merror:0.18721\n",
"[72]\ttrain-merror:0.00114\teval-merror:0.18493\n",
"[73]\ttrain-merror:0.00114\teval-merror:0.18493\n",
"[74]\ttrain-merror:0.00114\teval-merror:0.18493\n",
"[75]\ttrain-merror:0.00114\teval-merror:0.18721\n",
"[76]\ttrain-merror:0.00057\teval-merror:0.18721\n",
"[77]\ttrain-merror:0.00057\teval-merror:0.18721\n",
"[78]\ttrain-merror:0.00057\teval-merror:0.18493\n",
"[79]\ttrain-merror:0.00057\teval-merror:0.18950\n",
"[80]\ttrain-merror:0.00057\teval-merror:0.19178\n",
"[81]\ttrain-merror:0.00057\teval-merror:0.18721\n",
"[82]\ttrain-merror:0.00057\teval-merror:0.18950\n",
"[83]\ttrain-merror:0.00057\teval-merror:0.19178\n",
"[84]\ttrain-merror:0.00057\teval-merror:0.18721\n",
"[85]\ttrain-merror:0.00057\teval-merror:0.18950\n",
"[86]\ttrain-merror:0.00057\teval-merror:0.18493\n",
"[87]\ttrain-merror:0.00057\teval-merror:0.18721\n",
"[88]\ttrain-merror:0.00057\teval-merror:0.18721\n",
"[89]\ttrain-merror:0.00057\teval-merror:0.18721\n",
"[90]\ttrain-merror:0.00057\teval-merror:0.18493\n",
"[91]\ttrain-merror:0.00029\teval-merror:0.18493\n",
"[92]\ttrain-merror:0.00029\teval-merror:0.18493\n",
"[93]\ttrain-merror:0.00029\teval-merror:0.18265\n",
"[94]\ttrain-merror:0.00029\teval-merror:0.18493\n",
"[95]\ttrain-merror:0.00029\teval-merror:0.18037\n",
"[96]\ttrain-merror:0.00029\teval-merror:0.18265\n",
"[97]\ttrain-merror:0.00029\teval-merror:0.18265\n",
"[98]\ttrain-merror:0.00029\teval-merror:0.18265\n",
"[99]\ttrain-merror:0.00029\teval-merror:0.18265\n",
"CPU times: total: 14.3 s\n",
"Wall time: 1.22 s\n"
]
}
],
"source": [
"%%time\n",
"# train the models\n",
"# add the best parameters to the model\n",
"#best_params = grid_search.best_params_.copy()\n",
"best_params['objective'] = 'multi:softmax'\n",
"best_params['eval_metric'] = 'merror'\n",
"best_params['num_class'] = num_classes\n",
"\n",
"num_round = 100\n",
"\n",
"# Train the model and get the training history\n",
"evals_result = {}\n",
"model = xgb.train(best_params, dtrain, num_round, evals=[(dtrain, 'train'), (dvalid, 'eval')], evals_result=evals_result)"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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iSidjrqcYb9Sni6qV85X1QPMZbaqB3qpWoC3fD0I0gAAZAehOy8kX5LGBt/66758RnLN+pjqRx55RO+//75WrlypDh06SDK7lvfu3VuVKlXS888/b9/36aef1tKlSzV79uwshe4//vhD+/bt09KlSxUcbP4sxo4dq27duqXb79VXX7V/HxISoueff14zZ87UCy+8IA8PD3l5ecnZ2fmG3clnzJihhIQEff/99/Yx5RMnTlTPnj317rvvKjAwUJJUqlQpTZw4UU5OTqpVq5Z69Oih5cuXE7oBFCsRMQnacuKitpyI0pbjF7XzdLQSU2zp9rFapJpBPmpSsaSaVCylJpVKKaSMJ7OBAwCQBwjdxUitWrXUqlUrTZkyRR06dNChQ4f0999/66233lJqaqrGjh2r2bNn6/Tp00pKSlJiYqI8PT2zdO69e/eqQoUK9sAtSS1btsyw36xZs/TJJ5/o8OHDiouLU0pKinx8fLL1Ovbu3auGDRumm8StdevWstls2r9/vz10161bV05OTvZ9ypYtq507d2brWgBQ2CSl2LR45xmt2HdOW45fvG4rduOKpewhu0GFkvJy408CAADyA/+HzQsunmarsyOum01Dhw7V008/rUmTJunbb79V1apV1b59e7377rv6+OOPNWHCBNWvX18lSpTQs88+q6SkpJufNIvWrl2rAQMG6M0331TXrl3l6+urmTNn6sMPP8yza1zLxSV9F0iLxSKbzXadvQGgcIu6lKTp60/ouzXHFBF7dakuq0WqEeitJpVKma3YFUuaa2PTig0AwC1B6M4LFku2unk70gMPPKBnnnlGM2bM0Pfff68nn3xSFotF//zzj+655x499NBDkswx2gcOHFCdOnWydN7atWvr5MmTCgsLU9myZSVJ69atS7fPmjVrVKlSJb3yyiv2bcePH0+3j6urq1JTU296ralTpyo+Pt7e2v3PP//IarWqZs2aWaoXAIqKI+fi9O0/xzR38yldTjZ/fwZ4u6lf8woKrVJGDWnFBgDAofi/cDHj5eWlvn37avTo0YqJidHgwYMlSdWrV9fcuXO1Zs0alSpVSuPHj1d4eHiWQ3enTp1Uo0YNDRo0SO+//75iYmLSheu0a5w4cUIzZ85U8+bNtXjxYi1YsCDdPiEhITp69Ki2bdum8uXLy9vbW25ubun2GTBggMaMGaNBgwbp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",
"text/plain": [
"<Figure size 1000x500 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Get the training loss and validation loss\n",
"train_loss = evals_result['train']['merror']\n",
"valid_loss = evals_result['eval']['merror']\n",
"\n",
"# Calculate the training accuracy and validation accuracy\n",
"train_accuracy = [1 - x for x in train_loss]\n",
"valid_accuracy = [1 - x for x in valid_loss]\n",
"\n",
"# Create a new figure\n",
"fig = plt.figure(figsize=(10, 5))\n",
"\n",
"# Plot the training accuracy and validation accuracy\n",
"plt.plot(train_accuracy, label='Train')\n",
"plt.plot(valid_accuracy, label='Validation')\n",
"plt.xlabel('Iteration')\n",
"plt.ylabel('Accuracy')\n",
"plt.title('Training Accuracy vs Validation Accuracy')\n",
"plt.legend()\n",
"\n",
"plt.tight_layout()\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Accuracy: 0.8310502283105022\n"
]
}
],
"source": [
"# Get the accuracy of the model\n",
"preds = model.predict(dtest)\n",
"correct = 0\n",
"for i in range(len(test_y)):\n",
" if preds[i] == test_y[i]:\n",
" correct += 1\n",
"accuracy = correct / len(test_y)\n",
"print('Accuracy:', accuracy)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Evaluate Model Performance"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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",
"text/plain": [
"<Figure size 800x600 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Get the confusion matrix\n",
"cm = confusion_matrix(test_y, preds)\n",
"\n",
"# Create a new figure\n",
"plt.figure(figsize=(8, 6))\n",
"\n",
"labels = ['GSVT', 'AFIB', 'SR', 'SB']\n",
"# Plot the confusion matrix\n",
"sns.heatmap(cm, annot=True, fmt='d', cmap='Blues', xticklabels=labels, yticklabels=labels)\n",
"plt.xlabel('Predicted')\n",
"plt.ylabel('Actual')\n",
"plt.title('Confusion Matrix')\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<AxesSubplot:title={'center':'Feature importance'}, xlabel='F score', ylabel='Features'>"
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAApMAAAHHCAYAAADj4dOBAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8qNh9FAAAACXBIWXMAAA9hAAAPYQGoP6dpAACIR0lEQVR4nOzdeVyN6f8/8Nc5Lae9lFba7HsiDBMyomQZjDGMocY2tjFZsoyRsmVn7GPshvGZxWAIE2MZxmRnhMiWQYytVNSpc/3+8Ov+OjqlbpFz5vV8PHrovq7rvu73+5TTu+teUgghBIiIiIiIZFCWdgBEREREpL9YTBIRERGRbCwmiYiIiEg2FpNEREREJBuLSSIiIiKSjcUkEREREcnGYpKIiIiIZGMxSURERESysZgkIiIiItlYTBIR/YetXr0aCoUC165dK+1QiEhPsZgkov+UvOJJ18eYMWNeyzH//PNPREVF4dGjR69l/v+yzMxMREVFYd++faUdCtF/lnFpB0BEVBomTpwIb29vrbZatWq9lmP9+eefiI6ORlhYGOzs7F7LMeTq2bMnunXrBpVKVdqhyJKZmYno6GgAQEBAQOkGQ/QfxWKSiP6T2rRpAz8/v9IO45VkZGTA0tLyleYwMjKCkZFRCUX05mg0GmRnZ5d2GEQEnuYmItJpx44daNq0KSwtLWFtbY22bdsiISFBa8yZM2cQFhaGChUqwMzMDC4uLujduzfu378vjYmKikJERAQAwNvbWzqlfu3aNVy7dg0KhQKrV6/Od3yFQoGoqCiteRQKBc6dO4ePP/4YZcqUgb+/v9T/3XffoX79+jA3N4e9vT26deuGGzduvDRPXddMenl5oV27dti3bx/8/Pxgbm6O2rVrS6eSN23ahNq1a8PMzAz169fHyZMnteYMCwuDlZUVrly5gqCgIFhaWsLNzQ0TJ06EEEJrbEZGBkaMGAF3d3eoVCpUrVoVs2bNyjdOoVBgyJAhWL9+PWrWrAmVSoWlS5fC0dERABAdHS29tnmvW1G+Ps+/tklJSdLqsa2tLT799FNkZmbme82+++47NGzYEBYWFihTpgyaNWuG3377TWtMUb5/iAwFVyaJ6D8pNTUV9+7d02orW7YsAGDdunUIDQ1FUFAQpk+fjszMTCxZsgT+/v44efIkvLy8AABxcXG4cuUKPv30U7i4uCAhIQHLli1DQkIC/vrrLygUCnTu3BkXL17E999/j7lz50rHcHR0xL///lvsuD/88ENUrlwZU6dOlQquKVOmYPz48ejatSv69u2Lf//9FwsWLECzZs1w8uRJWafWk5KS8PHHH+Ozzz7DJ598glmzZqF9+/ZYunQpvvzySwwaNAgAEBMTg65duyIxMRFK5f+tT+Tm5iI4OBjvvPMOZsyYgZ07d2LChAnIycnBxIkTAQBCCHTo0AF79+5Fnz59ULduXezatQsRERG4efMm5s6dqxXT77//jh9++AFDhgxB2bJl4ePjgyVLlmDgwIHo1KkTOnfuDACoU6cOgKJ9fZ7XtWtXeHt7IyYmBidOnMDy5cvh5OSE6dOnS2Oio6MRFRWFJk2aYOLEiTA1NUV8fDx+//13tG7dGkDRv3+IDIYgIvoPWbVqlQCg80MIIR4/fizs7OxEv379tPZLSUkRtra2Wu2ZmZn55v/+++8FAHHgwAGpbebMmQKAuHr1qtbYq1evCgBi1apV+eYBICZMmCBtT5gwQQAQ3bt31xp37do1YWRkJKZMmaLV/vfffwtjY+N87QW9Hs/H5unpKQCIP//8U2rbtWuXACDMzc3F9evXpfZvvvlGABB79+6V2kJDQwUA8fnnn0ttGo1GtG3bVpiamop///1XCCHE5s2bBQAxefJkrZi6dOkiFAqFSEpK0no9lEqlSEhI0Br777//5nut8hT165P32vbu3VtrbKdOnYSDg4O0fenSJaFUKkWnTp1Ebm6u1liNRiOEKN73D5Gh4GluIvpPWrRoEeLi4rQ+gGerWY8ePUL37t1x79496cPIyAiNGjXC3r17pTnMzc2lz58+fYp79+7hnXfeAQCcOHHitcQ9YMAAre1NmzZBo9Gga9euWvG6uLigcuXKWvEWR40aNdC4cWNpu1GjRgCA9957Dx4eHvnar1y5km+OIUOGSJ/nnabOzs7G7t27AQCxsbEwMjLC0KFDtfYbMWIEhBDYsWOHVnvz5s1Ro0aNIudQ3K/Pi69t06ZNcf/+faSlpQEANm/eDI1Gg8jISK1V2Lz8gOJ9/xAZCp7mJqL/pIYNG+q8AefSpUsAnhVNutjY2EifP3jwANHR0di4cSPu3r2rNS41NbUEo/0/L96BfunSJQghULlyZZ3jTUxMZB3n+YIRAGxtbQEA7u7uOtsfPnyo1a5UKlGhQgWttipVqgCAdH3m9evX4ebmBmtra61x1atXl/qf92LuL1Pcr8+LOZcpUwbAs9xsbGxw+fJlKJXKQgva4nz/EBkKFpNERM/RaDQAnl335uLikq/f2Pj/3ja7du2KP//8ExEREahbty6srKyg0WgQHBwszVOYF6/Zy5Obm1vgPs+vtuXFq1AosGPHDp13ZVtZWb00Dl0KusO7oHbxwg0zr8OLub9Mcb8+JZFbcb5/iAwFv6uJiJ5TsWJFAICTkxMCAwMLHPfw4UPs2bMH0dHRiIyMlNrzVqaeV1DRmLfy9eLDzF9ckXtZvEIIeHt7Syt/bwONRoMrV65oxXTx4kUAkG5A8fT0xO7du/H48WOt1ckLFy5I/S9T0GtbnK9PUVWsWBEajQbnzp1D3bp1CxwDvPz7h8iQ8JpJIqLnBAUFwcbGBlOnToVarc7Xn3cHdt4q1ourVvPmzcu3T96zIF8sGm1sbFC2bFkcOHBAq33x4sVFjrdz584wMjJCdHR0vliEEPkeg/MmLVy4UCuWhQsXwsTEBC1btgQAhISEIDc3V2scAMydOxcKhQJt2rR56TEsLCwA5H9ti/P1KaqOHTtCqVRi4sSJ+VY2845T1O8fIkPClUkioufY2NhgyZIl6NmzJ+rVq4du3brB0dERycnJ2L59O959910sXLgQNjY2aNasGWbMmAG1Wo1y5crht99+w9WrV/PNWb9+fQDAuHHj0K1bN5iYmKB9+/awtLRE3759MW3aNPTt2xd+fn44cOCAtIJXFBUrVsTkyZMxduxYXLt2DR07doS1tTWuXr2KX375Bf3798fIkSNL7PUpKjMzM+zcuROhoaFo1KgRduzYge3bt+PLL7+Ung3Zvn17tGjRAuPGjcO1a9fg4+OD3377DVu2bEF4eLi0ylcYc3Nz1KhRA//73/9QpUoV2Nvbo1atWqhVq1aRvz5FValSJYwbNw6TJk1C06ZN0blzZ6hUKhw9ehRubm6IiYkp8vcPkUEppbvIiYhKRd6jcI4ePVrouL1794qgoCBha2srzMzMRMWKFUVYWJg4duyYNOaff/4RnTp1EnZ2dsLW1lZ8+OGH4tatWzofVTNp0iRRrlw5oVQqtR7Fk5mZKfr06SNsbW2FtbW16Nq1q7h7926BjwbKe6zOi37++Wfh7+8vLC0thaWlpahWrZoYPHiwSExMLNLr8eKjgdq2bZtvLAAxePBgrba8xxvNnDlTagsNDRWWlpbi8uXLonXr1sLCwkI4OzuLCRMm5HukzuPHj8WwYcOEm5ubMDExEZUrVxYzZ86UHrVT2LHz/Pnnn6J+/frC1NRU63Ur6tenoNdW12sjhBArV64Uvr6+QqVSiTJlyojmzZuLuLg4rTFF+f4hMhQKId7AVdNERPSfERYWhp9++gnp6emlHQoRvQG8ZpKIiIiIZGMxSURERESysZgkIiIiItl4zSQRERERycaVSSIiIiKSjcUkEREREcnGh5ZTidNoNLh16xasra0L/FNnRERE9HYRQuDx48dwc3ODUln09UYWk1Tibt26BXd399IOg4iIiGS4ceMGypcvX+TxLCapxFlbWwMArl69Cnt7+1KOpuSp1Wr89ttvaN26NUxMTEo7nBLH/PSbIednyLkBzE/fGUJ+aWlpcHd3l36OFxWLSSpxeae2ra2tYWNjU8rRlDy1Wg0LCwvY2Njo7RtGYZiffjPk/Aw5N4D56TtDyq+4l6jxBhwiIiIiko3FJBERERHJxmKSiIiIiGRjMUlEREREsrGYJCIiIiLZWEwSERERkWwsJomIiIhINhaTRERERCQbi0kiIiIiko3FJBERERHJxmKSiIiIiGRjMUlEREREsrGYJCIiIiLZWEwSERERkWwsJomIiIhINhaTRERERCQbi0kiIiIiko3FJBERERHJxmKSiIiIiGRjMUlEREREsrGYJCIiIiLZWEwSERERkWwsJomIiIhINhaTRERERCQbi0kiIiIiko3FJBEREdFrdODAAbRv3x5ubm5QKBTYvHlzvjHnz59Hhw4dYGtrC0tLSzRo0ADJyclS/7JlyxAQEAAbGxsoFAo8evQo3xwdOnSAh4cHzMzM4Orqip49e+LWrVuFxvb06VMMHjwYDg4OcHNzAwDcvXu3WPmxmHxOQV9guQICAhAeHl5i8xEREZH+ycjIgI+PDxYtWqSz//Lly/D390e1atWwb98+nDlzBuPHj4eZmZk0JjMzE8HBwfjyyy8LPE6LFi3www8/IDExET///DMuX76MLl26FBrbsGHD8Ouvv+LHH3/E9u3bAQCffPJJsfJTCCFEsfbQI/v27UOLFi3w8OFD2NnZvXR8SkoKypQpA5VKVSLHDwgIQN26dTFv3rwSma8kXbt2Dd7e3jh58iTq1q1bonOnpaXB1tYWFUf8DznGliU699tAZSQwo2EuRh0xQlauorTDKXHMT78Zcn6GnBvA/PSdrvyuTWubb5xCocAvv/yCjh07Sm3dunWDiYkJ1q1b99LjFKe22bp1Kzp27IisrCyYmJjk609NTYWjoyM2bNiALl26SD+/AeDw4cN45513XhoPwJVJAEB2djYAwMXFpcQKyZIghEBOTk6x9snLhYiIiN5+Go0G27dvR5UqVRAUFAQnJyc0atTolc+UPnjwAOvXr0eTJk10FpIAcPz4cajVagQGBmq1u7u74/Dhw0U+VqkVk8uWLYObmxs0Go1W+/vvv4/evXsDALZs2YJ69erBzMwMFSpUQHR0tFZxpVAosHz5cnTq1AkWFhaoXLkytm7dCuDZyluLFi0AAGXKlIFCoUBYWBiAZyuGQ4YMQXh4OMqWLYugoCBpvue/eP/88w+6d+8Oe3t7WFpaws/PD/Hx8QCAsLAwrd8qACA8PBwBAQEF5rxu3Tr4+fnB2toaLi4u+Pjjj7WuS9i3bx8UCgV27NiB+vXrQ6VS4eDBg4W+jlFRUahbty6WL18Ob29vaUl8586d8Pf3h52dHRwcHNCuXTtcvnxZ2s/b2xsA4OvrC4VCoRX38uXLUb16dZiZmaFatWpYvHhxoTEQERGRPHfv3kV6ejqmTZuG4OBg/Pbbb+jUqRM6d+6M/fv3F3u+0aNHw9LSEg4ODkhOTsaWLVsKHJuSkgJTU9N8K5yOjo5ISUkp8jGNix1lCfnwww/x+eefY+/evWjZsiWAZ1X0zp07ERsbiz/++AO9evXC/Pnz0bRpU1y+fBn9+/cHAEyYMEGaJzo6GjNmzMDMmTOxYMEC9OjRA9evX4e7uzt+/vlnfPDBB0hMTISNjQ3Mzc2l/dasWYOBAwfi0KFDOuNLT09H8+bNUa5cOWzduhUuLi44ceJEvuK3ONRqNSZNmoSqVavi7t27GD58OMLCwhAbG6s1bsyYMZg1axYqVKiAMmXKvHTepKQk/Pzzz9i0aROMjIwAPLs+Y/jw4ahTpw7S09MRGRmJTp064dSpU1AqlThy5AgaNmyI3bt3o2bNmjA1NQUArF+/HpGRkVi4cCF8fX1x8uRJ9OvXD5aWlggNDdV5/KysLGRlZUnbaWlpAACVUsDIyPCuolAphda/hob56TdDzs+QcwOYn77TlZ9ardY5NicnR+rL+/nZvn17DBkyBABQs2ZNHDx4EIsXL0aTJk3y7Zs3t675w8PD0atXLyQnJ2Py5Mno2bMnNm/eDIUi/6UFz89VWLwvU2rFZJkyZdCmTRts2LBBKiZ/+uknlC1bFi1atEDr1q0xZswYqYCpUKECJk2ahFGjRmkVk2FhYejevTsAYOrUqZg/fz6OHDmC4OBg2NvbAwCcnJzyVd2VK1fGjBkzCoxvw4YN+Pfff3H06FFpnkqVKr1Sznkrrnn5zJ8/Hw0aNEB6ejqsrKykvokTJ6JVq1ZFnjc7Oxtr166Fo6Oj1PbBBx9ojVm5ciUcHR1x7tw51KpVSxrr4OAAFxcXadyECRMwe/ZsdO7cGcCzFcxz587hm2++KbCYjImJQXR0dL72r3w1sLDILXIe+maSn/xfLPQB89NvhpyfIecGMD9993x+Ly4W5Tl+/Lh06lmtVsPIyAhGRkZa401NTXHmzJl8c/z9998AgN9++02rdtCld+/e6Nu3L+bOnYtq1arl679+/Tqys7Pxww8/wMrKCpmZmQCAf//9V6s2eJlSKyYBoEePHujXrx8WL14MlUqF9evXo1u3blAqlTh9+jQOHTqEKVOmSONzc3Px9OlTZGZmwsLCAgBQp04dqd/S0hI2NjZFuqW9fv36hfafOnUKvr6+UiFZEo4fP46oqCicPn0aDx8+lFY5k5OTUaNGDWmcn59fseb19PTUKiQB4NKlS4iMjER8fDzu3bundaxatWrpnCcjIwOXL19Gnz590K9fP6k9JydHuiBXl7Fjx2L48OHSdlpaGtzd3TH5pBI5JkbFykUfqJQCk/w0GH9MiSyNAV5Ezvz0miHnZ8i5AcxP3+nK72xUkM6x9evXR0hIiLTdoEEDANBqW7lyJXx8fLTagGe1DgC0bt36pTfg5D1aqH79+mjevHm+/nfffReTJk2CsbExQkJCpDOLN27cQOPGjQud+3mlWky2b98eQghs374dDRo0wB9//IG5c+cCeHaaOTo6Wlohe97zt8q/eFGpQqEo0qnovC9GQZ4/Ja6LUqnEizfCF7Y8nJGRgaCgIAQFBWH9+vVwdHREcnIygoKC8t0087LYXqRrfPv27eHp6Ylvv/1Wuja1Vq1ahd6gk56eDgD49ttv0ahRI62+vNPnuqhUKp03LmVpFMgxwDv28mRpFAZ5R2Ie5qffDDk/Q84NYH767vn88mqU9PR0JCUlSWNu3LiBhIQE2Nvbw8PDA6NGjcJHH32EgIAAtGjRAjt37sT27duxb98+aY6UlBSkpKTg2rVrAIALFy7A2toaHh4esLe3R3x8PI4ePQp/f3+UKVMGly9fxvjx41GxYkU0bdoUJiYmuHnzJlq2bIm1a9eiYcOGKFu2LPr06YNRo0bByckJSuWzW2kaNmxY5Du5gVIuJs3MzNC5c2esX78eSUlJqFq1KurVqwcAqFevHhITE1/p1HLedYC5ucU/1VqnTh0sX74cDx480Lk66ejoiLNnz2q1nTp1qsA7pi5cuID79+9j2rRpcHd3BwAcO3as2HEVxf3795GYmIhvv/0WTZs2BYB8N/Loem2cnZ3h5uaGK1euoEePHq8cR/zYlnBwcHjled42arUasbGxOBsVVODXW58xP/1myPkZcm4A89N3heV37Ngx6aZgANLZvNDQUKxevRqdOnXC0qVLERMTg6FDh6Jq1ar4+eef4e/vL+2zdOlSrUvKmjVrBgBYtWoVwsLCYGFhgU2bNmHChAnIyMiAq6srgoOD8dVXX0kLPmq1GomJidLpbACYO3culEolPvjgA+n6ze+++65YuZdqMQk8O9Xdrl07JCQkaD0kMzIyEu3atYOHhwe6dOkinfo+e/YsJk+eXKS5PT09oVAosG3bNoSEhMDc3Pyl1xfk6d69O6ZOnYqOHTsiJiYGrq6uOHnyJNzc3NC4cWO89957mDlzJtauXYvGjRvju+++w9mzZ+Hr66tzPg8PD5iammLBggUYMGAAzp49i0mTJhUpluIqU6YMHBwcsGzZMri6uiI5ORljxozRGuPk5ARzc3Ps3LkT5cuXh5mZGWxtbREdHY2hQ4fC1tYWwcHByMrKwrFjx/Dw4UOtU9lERERUNAEBAfnOZr6od+/eWvdWvCgqKgpRUVEF9teuXRu///57ocfw8vLKF4eZmRkWLVqERYsWSc+ZdHZ2LnSeF5X6cybfe+892NvbIzExER9//LHUHhQUhG3btuG3335DgwYN8M4772Du3Lnw9PQs8tzlypVDdHQ0xowZA2dnZ+kuqaIwNTXFb7/9BicnJ4SEhKB27dqYNm2adLo3KCgI48ePx6hRo9CgQQM8fvwYvXr1KnA+R0dHrF69Gj/++CNq1KiBadOmYdasWUWOpziUSiU2btyI48ePo1atWhg2bBhmzpypNcbY2Bjz58/HN998Azc3N7z//vsAgL59+2L58uVYtWoVateujebNm2P16tXSo4SIiIiInmfQfwGHSkfebzb37t0z6NPcISEhBn2qhvnpJ0POz5BzA5ifvjOE/PJ+fqempsLGxqbI+5X6yiQRERER6S8Wk2+5mjVrwsrKSufH+vXrSzs8IiIi+o8r9RtwqHCxsbEFPnKouBfIEhEREZU0FpNvueLccERERET0pvE0NxERERHJxmKSiIiIiGRjMUlEREREsrGYJCIiIiLZWEwSERERkWwsJomIiIhINhaTRERERCQbi0kiIiIiko3FJBERERHJxmKSiIiIiGRjMUlEREREsrGYJCIiIiLZWEwSERERkWwsJomIiIhINhaTRERERCQbi0kiIiIiko3FJBERERHJxmKS8vHy8sK8efNKOwwiIqJXcuDAAbRv3x5ubm5QKBTYvHlzgWMHDBgAhUKR7+ffiRMn0KpVK9jZ2cHBwQH9+/dHenq61H/69Gl0794dFSpUQNeuXVG7dm18/fXXL43twYMH6NGjB2xsbGBnZ4c+ffpozatPWEwSERGRQcrIyICPjw8WLVpU6LhffvkFf/31F9zc3LTab926hcDAQFSqVAnx8fHYuXMnEhISEBYWJo05fvw4nJycsHr1asyfPx9jxozB2LFjsXDhwkKP2aNHDyQkJCAuLg7btm3DgQMH0L9/f9m5libj0g6ADFejmD3IMbYs7TBKnMpIYEZDoFbULmTlKko7nBLH/PSbIednyLkBzK8kXZvWFgDQpk0btGnTptCxN2/exOeff45du3ahbdu2Wn3btm2DiYkJFi1aBKXy2frb0qVLUadOHSQlJaFSpUro3bs3AECtViM9PR0hISE4evQoNm3ahCFDhug85vnz57Fz504cPXoUfn5+AIAFCxYgJCQEs2bNylfUvu24MvmGZWRkoFevXrCysoKrqytmz56NgIAAhIeHv3RfLy8vTJo0Cd27d4elpSXKlSuX77etR48eoW/fvnB0dISNjQ3ee+89nD59Wuq/fPky3n//fTg7O8PKygoNGjTA7t27Cz3u8uXLYWdnhz179sjKmYiI6G2k0WjQs2dPREREoGbNmvn6s7KyYGpqKhWSAGBubg4AOHjwYIHzpqamwt7evsD+w4cPw87OTiokASAwMBBKpRLx8fFyUilVXJl8wyIiIrB/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yMhI59xff/01Zs+ejW+++Qa+vr5YuXIlOnTogISEBFSuXFkaN27cOMyaNQuVK1fGuHHj0L17dyQlJeX7DREAsrKykJWVJW2npaUBAFRKASMjIes1eJuplELrX0PD/PSbIednyLkB+pmfWq3W2Z6Tk5Ov791338XcuXNRrVo1rFmzBl27dsXBgwfh5OQEAFrXR1avXh1GRkYYNGgQJk6cCJVKBVtbW60xdevWxT///IMZM2ZI9268SKPRQAihFUve57pifBV5c5XknG+a3NhlFZMLFizAt99+i44dO2rdaeXn56fz9HdpSE9Px4oVK/Ddd9+hZcuWAIA1a9agfPnyWuPee+89jBgxQtpOTk5G5cqV4e/vD4VCAU9PzyIdb/fu3bhw4QJ27doFNzc3AMDUqVML/AYvjFqtxuLFi7WW/9977z2tMcuWLYOdnR3279+Pdu3awdHREcCzgt7FxaXAuWfNmoXRo0ejW7duAJ49gH7v3r2YN2+e1oXTI0eORNu2z05fREdHo2bNmkhKSkK1atXyzRkTE4Po6Oh87V/5amBhYbh390/y05R2CK8V89NvhpyfIecG6Fd+sbGxOtuPHz+u81pGV1dXpKamomPHjti1axfGjBmDLl266Jzj6dOnyMnJwdq1a1GuXDmdYywtLXHu3LkC43j8+DEuXbqk1X/nzh0AQFJSUoH7vYoXz0rqk8zMTFn7ySomr169qvM6A5VKhYyMDFmBlLTLly8jOztb67mX9vb2qFq1qtY4Pz8/re2wsDC0atUKVatWRXBwMNq1a4fWrVu/9Hjnz5+Hu7u7VEgCQOPGjWXFbmpqijp16mi13blzB1999RX27duHu3fvIjc3F5mZmUhOTi7yvGlpabh16xbeffddrfZ33303318uev74rq6uAIC7d+/qLCbHjh2L4cOHax3H3d0dk08qkWOie4VUn6mUApP8NBh/TIksjX5c11QczE+/GXJ+hpwboJ/5nY0K0tlev359hISEaLWp1WrExcWhVatWMDExgbm5Oby8vPKNy7NhwwYolUp06dIFZcqU0Tlm69at8PT0LHAOpVKJn376CX5+ftIK6PLly2FjY4N+/fpBpVIVNdWXejE/fZR3ZrG4ZBWT3t7eOHXqVL5Vu507d6J69eqyAiktL94pVq9ePVy9ehU7duzA7t270bVrVwQGBuKnn3565WPl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90anTp20CpNJkybB0dERMTExuHLlCuzs7FCvXj18+eWXJZ6zoalduzays7ML/C1u6NChGDp0aIH7u7m5FekaxxcvXVAoFJg4caLWzVZERESlicVkKbC2tsb69eul7YyMDERHR0sPsTYxMUF0dLTOm1qAZzdqhIWFabV17NhRq/AwNjbGvHnzMG/evALjUCgU+OKLL/DFF1/o7A8ICCjWdZhERET038NishScPHkSFy5cQMOGDZGamiqtMuX9VRMiIiIifcFispTMmjULiYmJMDU1Rf369fHHH3+gbNmypR0WERERUbGwmCwFvr6+OH78eGmHQURERPTK+OcUiYiIiEg2FpNEREREJBuLSSIiIiKSjcUkEREREcnGYpKIiIiIZGMxSURERESysZgkIiIiItlYTBIRERGRbCwmiYiIiEg2FpNEREREJBuLSSIiIiKSjcUkEREREcnGYpKIiIiIZGMxSURERESysZgkIiIiItlYTBIRERGRbCwmiYiIiEg2FpNEREREJBuLSaIiOHDgANq3bw83NzeYmprir7/+0upXKBQ6P2bOnCmNOXHiBFq1agU7Ozs4ODigf//+SE9PL/S4QghERkbC1dUV5ubmCAwMxKVLl15LjkRERHKwmCQqgoyMDPj4+GDRokU6+2/fvq31sXLlSigUCnzwwQcAgFu3biEwMBCVKlVCfHw8du7ciYSEBISFhRV63BkzZmD+/PlYunQp4uPjYWlpiaCgIDx9+rSkUyQiIpLFuLQDoLfX6tWrER4ejkePHpV2KKWuTZs2aNOmTYH9Li4uWttbtmxBixYtUKFCBQDAtm3bYGJigkWLFkGpfPY73NKlS1GnTh0kJSWhUqVK+eYUQmDevHn46quv8P777wMA1q5dC2dnZ2zevBndunUrqfSIiIhkYzH5mmRnZ8PU1LS0wyhVjWL2IMfYsrTDeCXXprUt9j537tzB9u3bsWbNGqktKysLpqamUiEJAObm5gCAgwcP6iwmr169ipSUFAQGBkpttra2aNSoEQ4fPsxikoiI3go8zV1EGRkZ6NWrF6ysrODq6orZs2cjICAA4eHhAAAvLy9MmjQJvXr1go2NDfr374/s7GwMGTIErq6uMDMzg6enJ2JiYop0vEePHuGzzz6Ds7MzzMzMUKtWLWzbtk3q//nnn1GzZk2oVCp4eXlh9uzZWvsrFAps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",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# plot the feature importance\n",
"xgb.plot_importance(model)"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAABKUAAAJOCAYAAABm7rQwAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8qNh9FAAAACXBIWXMAAA9hAAAPYQGoP6dpAABIF0lEQVR4nO3de5iVZb038O8wwHAS0HBAkd1kniI8BUGIhw4kKtFLmZKHUFTaHkhjyhRT0EzR8oCVSqWI7W1b0rRNaZhNsdsmRmqQ9gZ5QkwDwROIOcjMev/odWpiMEB4FjCfz3Wt63Ldz32v9Xt4gu7ru+7nfipKpVIpAAAAAFCgNuUuAAAAAIDWRygFAAAAQOGEUgAAAAAUTigFAAAAQOGEUgAAAAAUTigFAAAAQOGEUgAAAAAUTigFAAAAQOGEUgAAAAAUTigFsAlVVFTkwgsvbHo/ffr0VFRUZNGiRWWrCQBgcznxxBNTU1OzQWNmz56dioqKzJ49e7PUBGw9hFLAVuXNkOfNV9u2bdO7d++ceOKJefbZZ8tdHgDAZvfP86EOHTpkjz32yLhx47J06dJylwew3tqWuwCAjfGVr3wl73rXu/L666/ngQceyPTp03Pffffl0UcfTYcOHcpdHgDAZveP86H77rsv119/fe6+++48+uij6dSpUyE1fPe7301jY+MGjTn44IPz17/+Ne3bt99MVQFbC6EUsFU6/PDDM2DAgCTJKaeckh49euTyyy/PzJkzc/TRR5e5OgCAze+f50PveMc7ctVVV+W///u/c8wxx6zVf9WqVencufMmraFdu3YbPKZNmzZ+RASSuH0P2EYcdNBBSZInnniiqW3BggX51Kc+lR122CEdOnTIgAEDMnPmzLXGvvzyyxk/fnxqampSVVWVXXbZJaNHj87y5cuTJKtXr87EiRPTv3//dOvWLZ07d85BBx2UX/7yl8WcHADAevjwhz+cJHnqqady4oknpkuXLnniiSdyxBFHZLvttstxxx2XJGlsbMyUKVPy3ve+Nx06dEjPnj3z7//+73nppZfW+syf/vSnOeSQQ7Lddtula9euef/735/vf//7Tcdb2lPq1ltvTf/+/ZvG7L333rnmmmuajq9rT6nbbrst/fv3T8eOHdOjR48cf/zxa23P8OZ5Pfvssxk5cmS6dOmSHXfcMV/84hfT0NDwdv74gDIQSgHbhDc3Et9+++2TJH/4wx/ygQ98IH/84x9z7rnn5sorr0znzp0zcuTI3HnnnU3jXn311Rx00EH55je/mUMPPTTXXHNNTj311CxYsCB//vOfkyQrVqzIDTfckA9+8IO5/PLLc+GFF2bZsmUZNmxY5s2bV/SpAgC06M0f597xjnckSdasWZNhw4aluro6V1xxRY488sgkyb//+7/n7LPPzpAhQ3LNNddkzJgxueWWWzJs2LC88cYbTZ83ffr0DB8+PC+++GImTJiQyy67LPvtt19mzZq1zhruvffeHHPMMdl+++1z+eWX57LLLssHP/jB/PrXv37L2qdPn56jjz46lZWVmTx5csaOHZs77rgjBx54YF5++eVmfRsaGjJs2LC84x3vyBVXXJFDDjkkV155Zb7zne9szB8bUEZu3wO2Sq+88kqWL1+e119/Pb/5zW9y0UUXpaqqKh/72MeSJGeddVb+7d/+Lb/97W9TVVWVJDn99NNz4IEH5pxzzsknPvGJJMnXv/71PProo7njjjua2pLk/PPPT6lUSvK3oGvRokXN9j0YO3Zs9tprr3zzm9/MjTfeWNRpAwA0+cf50K9//et85StfSceOHfOxj30sc+bMSX19fY466qhMnjy5acx9992XG264IbfcckuOPfbYpvYPfehDOeyww3Lbbbfl2GOPzSuvvJIzzzwzAwcOzOzZs5vdbvfmHKkld911V7p27Zp77rknlZWV63Ueb7zxRs4555z069cvv/rVr5q+68ADD8zHPvaxXH311bnoooua+r/++usZNWpULrjggiTJqaeemve973258cYbc9ppp63fHx6wRbBSCtgqDR06NDvuuGP69OmTT33qU+ncuXNmzpyZXXbZJS+++GJ+8Ytf5Oijj87KlSuzfPnyLF++PC+88EKGDRuWxx57rGkp+A9/+MPsu+++zQKpN1VUVCRJKisrmwKpxsbGvPjii1mzZk0GDBiQhx9+uLiTBgD4B/84H/r0pz+dLl265M4770zv3r2b+vxzSHPbbbelW7du+ehHP9o0R1q+fHn69++fLl26NG1PcO+992blypU599xz19r/6c05Uku6d++eVatW5d57713v83jwwQfz/PPP5/TTT2/2XcOHD89ee+2Vu+66a60xp556arP3Bx10UJ588sn1/k5gy2ClFLBVuvbaa7PHHnvklVdeybRp0/KrX/2qaUXU448/nlKplAsuuKDpF7R/9vzzz6d379554oknmpayv5Wbb745V155ZRYsWNBsWfu73vWuTXNCAAAb6M35UNu2bdOzZ8/sueeeadPm7+sO2rZtm1122aXZmMceeyyvvPJKqqurW/zM559/PsnfbwXs16/fBtV0+umn5wc/+EEOP/zw9O7dO4ceemiOPvroHHbYYesc8/TTTydJ9txzz7WO7bXXXrnvvvuatXXo0CE77rhjs7btt9++xT2xgC2bUArYKg0cOLDpaTMjR47MgQcemGOPPTYLFy5seizxF7/4xQwbNqzF8bvtttt6f9d//ud/5sQTT8zIkSNz9tlnp7q6umm/g3/cWB0AoEj/OB9qSVVVVbOQKvnbqu/q6urccsstLY7557BnQ1VXV2fevHm555578tOf/jQ//elPc9NNN2X06NG5+eab39Znv2l9bwsEtnxCKWCr92ZA9KEPfSjf+ta3ctJJJyX52yOKhw4d+pZj3/3ud+fRRx99yz633357dt1119xxxx3NlqtPmjTp7RcPAFCgd7/73fn5z3+eIUOGpGPHjm/ZL0keffTRDfoxL0nat2+fESNGZMSIEWlsbMzpp5+eb3/727ngggta/Kx3vvOdSZKFCxc2PUHwTQsXLmw6Dmx77CkFbBM++MEPZuDAgZkyZUq6du2aD37wg/n2t7+dv/zlL2v1XbZsWdN/H3nkkZk/f36zJ/K96c1NPN/8Ne4fN/X8zW9+kzlz5mzq0wAA2KyOPvroNDQ05OKLL17r2Jo1a5qedHfooYdmu+22y+TJk/P666836/dWG52/8MILzd63adMm++yzT5Kkvr6+xTEDBgxIdXV1pk6d2qzPT3/60/zxj3/M8OHD1+vcgK2PlVLANuPss8/OUUcdlenTp+faa6/NgQcemL333jtjx47NrrvumqVLl2bOnDn585//nPnz5zeNuf3223PUUUflpJNOSv/+/fPiiy9m5syZmTp1avbdd9987GMfa3o63/Dhw/PUU09l6tSp6du3b1599dUynzUAwPo75JBD8u///u+ZPHly5s2bl0MPPTTt2rXLY489lttuuy3XXHNNPvWpT6Vr1665+uqrc8opp+T9739/jj322Gy//faZP39+XnvttXXeinfKKafkxRdfzIc//OHssssuefrpp/PNb34z++23X97znve0OKZdu3a5/PLLM2bMmBxyyCE55phjsnTp0lxzzTWpqanJ+PHjN+cfCVBGQilgm/HJT34y7373u3PFFVdk7NixefDBB3PRRRdl+vTpeeGFF1JdXZ39998/EydObBrTpUuX/O///m8mTZqUO++8MzfffHOqq6vzkY98pGlj0BNPPDFLlizJt7/97dxzzz3p27dv/vM//zO33XZbZs+eXaazBQDYOFOnTk3//v3z7W9/O+edd17atm2bmpqaHH/88RkyZEhTv5NPPjnV1dW57LLLcvHFF6ddu3bZa6+93jIkOv744/Od73wn1113XV5++eX06tUro0aNyoUXXrjW/lb/6MQTT0ynTp1y2WWX5Zxzzknnzp3ziU98Ipdffnm6d+++KU8f2IJUlN5q7SUAAAAAbAb2lAIAAACgcEIpAAAAAAonlAIAAACgcEIpAAAAAAonlAIAAACgcEIpAAAAAArXttwFFK2xsTHPPfdctttuu1RUVJS7HABgC1cqlbJy5crsvPPOadOm9f6eZw4FAKyv9Z0/tbpQ6rnnnkufPn3KXQYAsJV55plnsssuu5S7jLIxhwIANtS/mj+1ulBqu+22S/K3P5iuXbuWuRoAYEu3YsWK9OnTp2kO0VqZQwEA62t950+tLpR6c7l5165dTagAgPXW2m9ZM4cCADbUv5o/td6NEQAAAAAoG6EUAAAAAIUTSgEAbGV+9atfZcSIEdl5551TUVGRH/3oR/9yzOzZs/O+970vVVVV2W233TJ9+vTNXicAwFsRSgEAbGVWrVqVfffdN9dee+169X/qqacyfPjwfOhDH8q8efPy+c9/PqecckruueeezVwpAMC6tbqNzgEAtnaHH354Dj/88PXuP3Xq1LzrXe/KlVdemSR5z3vek/vuuy9XX311hg0btrnKBAB4S1ZKAQBs4+bMmZOhQ4c2axs2bFjmzJmzzjH19fVZsWJFsxcAwKYklAIA2MYtWbIkPXv2bNbWs2fPrFixIn/9619bHDN58uR069at6dWnT58iSgUAWhGhFAAAa5kwYUJeeeWVptczzzxT7pIAgG2MPaUAALZxvXr1ytKlS5u1LV26NF27dk3Hjh1bHFNVVZWqqqoiygMAWikrpQAAtnGDBw9OXV1ds7Z77703gwcPLlNFAABCKQCArc6rr76aefPmZd68eUmSp556KvPmzcvixYuT/O3Wu9GjRzf1P/XUU/Pkk0/mS1/6UhYsWJDrrrsuP/jBDzJ+/PhylA8AkEQoBQCw1XnwwQez//77Z//990+S1NbWZv/998/EiROTJH/5y1+aAqokede73pW77ror9957b/bdd99ceeWVueGGGzJs2LCy1A8AkCQVpVKpVO4iirRixYp069Ytr7zySrp27VrucgCALZy5w9/4cwAA1tf6zhuslAIAAACgcEIpAAAAAAonlAIAAACgcEIpAAAAAAonlAIAAACgcEIpAAAAAAonlAIAAACgcEIpAAAAAArXttwFAMDWpubcu8pdAv9k0WXDy10CAPAWzJ+2PFvC/MlKKQAAAAAKJ5QCAAAAoHBCKQAAAAAKJ5QCAAAAoHBCKQAAAAAKJ5QCAAAAoHBCKQAAAAAKJ5QCAAAAoHBCKQAAAAAKJ5QCAAAAoHBCKQAAAAAKJ5QCAAAAoHBCKQAAAAAKJ5QCAAAAoHBCKQAAAAAKJ5QCAAAAoHBCKQAAAAAKJ5QCAAAAoHBCKQAAAAAKJ5QCAAAAoHBCKQAAAAAKJ5QCAAAAoHBCKQAAAAAKJ5QCAAAAoHBCKQAAAAAKJ5QCAAAAoHBCKQAAAAAKJ5QCAAAAoHBCKQAAAAAKJ5QCAAAAoHBCKQAAAAAKJ5QCAAAAoHBCKQAAAAAKJ5QCAAAAoHBCKQAAAAAKJ5QCAAAAoHBCKQAAAAAKJ5QCAAAAoHBCKQAAAAAKJ5QCAAAAoHBCKQAAAAAKJ5QCAAAAoHBCKQAAAAAK17bcBQBszWrOvavcJfBPFl02vNwlAAAA68FKKQAAAAAKJ5QCAAAAoHBCKQAAAAAKJ5QCAAAAoHBCKQAAAAAKJ5QCAAAAoHBCKQAAAAAKJ5QCAAAAoHBCKQAAAAAKJ5QCAAAAoHBCKQAAAAAKJ5QCAAAAoHBCKQAAAAAKJ5QCAAAAoHBCKQAAAAAKJ5QCAAAAoHBCKQAAAAAKV/ZQ6tprr01NTU06dOiQQYMGZe7cuW/Zf8qUKdlzzz3TsWPH9OnTJ+PHj8/rr79eULUAAAAAbApty/nlM2bMSG1tbaZOnZpBgwZlypQpGTZsWBYuXJjq6uq1+n//+9/Pueeem2nTpuWAAw7In/70p5x44ompqKjIVVddVYYzAAAAYEPUnHtXuUvgnyy6bHi5S6CVKutKqauuuipjx47NmDFj0rdv30ydOjWdOnXKtGnTWux///33Z8iQITn22GNTU1OTQw89NMccc8y/XF0FAAAAwJalbCulVq9enYceeigTJkxoamvTpk2GDh2aOXPmtDjmgAMOyH/+539m7ty5GThwYJ588sncfffd+cxnPlNU2QAAbCZWT2xZrJwAYHMrWyi1fPnyNDQ0pGfPns3ae/bsmQULFrQ45thjj83y5ctz4IEHplQqZc2aNTn11FNz3nnnrfN76uvrU19f3/R+xYoVm+YEAAAAANhoZd/ofEPMnj07l156aa677ro8/PDDueOOO3LXXXfl4osvXueYyZMnp1u3bk2vPn36FFgxAAAAAC0p20qpHj16pLKyMkuXLm3WvnTp0vTq1avFMRdccEE+85nP5JRTTkmS7L333lm1alU++9nP5stf/nLatFk7Y5swYUJqa2ub3q9YsUIwBQAAAFBmZVsp1b59+/Tv3z91dXVNbY2Njamrq8vgwYNbHPPaa6+tFTxVVlYmSUqlUotjqqqq0rVr12YvAAAAAMqrbCulkqS2tjYnnHBCBgwYkIEDB2bKlClZtWpVxowZkyQZPXp0evfuncmTJydJRowYkauuuir7779/Bg0alMcffzwXXHBBRowY0RRObQls0rnlsVEnAAAAbFnKGkqNGjUqy5Yty8SJE7NkyZLst99+mTVrVtPm54sXL262Mur8889PRUVFzj///Dz77LPZcccdM2LEiFxyySXlOgUAAAAANkJZQ6kkGTduXMaNG9fisdmzZzd737Zt20yaNCmTJk0qoDIAAAAANpet6ul7AAAAAGwbhFIAAAAAFE4oBQAAAEDhhFIAAAAAFE4oBQAAAEDhhFIAAAAAFE4oBQAAAEDhhFIAAFuha6+9NjU1NenQoUMGDRqUuXPnvmX/KVOmZM8990zHjh3Tp0+fjB8/Pq+//npB1QIArE0oBQCwlZkxY0Zqa2szadKkPPzww9l3330zbNiwPP/88y32//73v59zzz03kyZNyh//+MfceOONmTFjRs4777yCKwcA+DuhFADAVuaqq67K2LFjM2bMmPTt2zdTp05Np06dMm3atBb733///RkyZEiOPfbY1NTU5NBDD80xxxzzL1dXAQBsTkIpAICtyOrVq/PQQw9l6NChTW1t2rTJ0KFDM2fOnBbHHHDAAXnooYeaQqgnn3wyd999d4444ohCagYAaEnbchcAAMD6W758eRoaGtKzZ89m7T179syCBQtaHHPsscdm+fLlOfDAA1MqlbJmzZqceuqpb3n7Xn19ferr65ver1ixYtOcAADA/2elFADANm727Nm59NJLc9111+Xhhx/OHXfckbvuuisXX3zxOsdMnjw53bp1a3r16dOnwIoBgNbASikAgK1Ijx49UllZmaVLlzZrX7p0aXr16tXimAsuuCCf+cxncsoppyRJ9t5776xatSqf/exn8+Uvfzlt2qz9O+WECRNSW1vb9H7FihWCKQBgk7JSCgBgK9K+ffv0798/dXV1TW2NjY2pq6vL4MGDWxzz2muvrRU8VVZWJklKpVKLY6qqqtK1a9dmLwCATclKKQCArUxtbW1OOOGEDBgwIAMHDsyUKVOyatWqjBkzJkkyevTo9O7dO5MnT06SjBgxIldddVX233//DBo0KI8//nguuOCCjBgxoimcAgAomlAKAGArM2rUqCxbtiwTJ07MkiVLst9++2XWrFlNm58vXry42cqo888/PxUVFTn//PPz7LPPZscdd8yIESNyySWXlOsUAACEUgAAW6Nx48Zl3LhxLR6bPXt2s/dt27bNpEmTMmnSpAIqAwBYP/aUAgAAAKBwQikAAAAACieUAgAAAKBwQikAAAAACieUAgAAAKBwQikAAAAACieUAgAAAKBwQikAAAAACieUAgAAAKBwQikAAAAACieUAgAAAKBwQikAAAAACieUAgAAAKBwQikAAAAACieUAgAAAKBwQikAAAAACieUAgAAAKBwQikAAAAACieUAgAAAKBwQikAAAAACieUAgAAAKBwQikAAAAACieUAgAAAKBwQikAAAAACieUAgAAAKBwQikAAAAACieUAgAAAKBwQikAAAAACieUAgAAAKBwbctdAGwras69q9wl8E8WXTa83CUAAACwDlZKAQAAAFA4oRQAAAAAhRNKAQAAAFA4oRQAAAAAhRNKAQAAAFA4oRQAAAAAhRNKAQAAAFA4oRQAAAAAhRNKAQAAAFA4oRQAAAAAhRNKAQAAAFA4oRQAAAAAhRNKAQAAAFA4oRQAAAAAhRNKAQAAAFA4oRQAAAAAhRNKAQAAAFA4oRQAAAAAhRNKAQAAAFA4oRQAAAAAhRNKAQAAAFA4oRQAAAAAhRNKAQAAAFA4oRQAAAAAhRNKAQAAAFA4oRQAAAAAhRNKAQAAAFA4oRQAAAAAhRNKAQAAAFA4oRQAAAAAhRNKAQAAAFA4oRQAAAAAhRNKAQAAAFA4oRQAAAAAhRNKAQAAAFA4oRQAAAAAhRNKAQAAAFA4oRQAAAAAhRNKAQAAAFA4oRQAAAAAhRNKAQAAAFA4oRQAAAAAhRNKAQAAAFA4oRQAAAAAhRNKAQAAAFC4sodS1157bWpqatKhQ4cMGjQoc+fOfcv+L7/8cs4444zstNNOqaqqyh577JG77767oGoBAAAA2BTalvPLZ8yYkdra2kydOjWDBg3KlClTMmzYsCxcuDDV1dVr9V+9enU++tGPprq6Orfffnt69+6dp59+Ot27dy++eAAAAAA2WllDqauuuipjx47NmDFjkiRTp07NXXfdlWnTpuXcc89dq/+0adPy4osv5v7770+7du2SJDU1NUWWDAAAAMAmULbb91avXp2HHnooQ4cO/Xsxbdpk6NChmTNnTotjZs6cmcGDB+eMM85Iz549069fv1x66aVpaGhY5/fU19dnxYoVzV4AAAAAlFfZQqnly5enoaEhPXv2bNbes2fPLFmypMUxTz75ZG6//fY0NDTk7rvvzgUXXJArr7wyX/3qV9f5PZMnT063bt2aXn369Nmk5wEAAADAhiv7RucborGxMdXV1fnOd76T/v37Z9SoUfnyl7+cqVOnrnPMhAkT8sorrzS9nnnmmQIrBgAAAKAlZdtTqkePHqmsrMzSpUubtS9dujS9evVqccxOO+2Udu3apbKysqntPe95T5YsWZLVq1enffv2a42pqqpKVVXVpi0eAAAAgLelbCul2rdvn/79+6eurq6prbGxMXV1dRk8eHCLY4YMGZLHH388jY2NTW1/+tOfstNOO7UYSAEAAACwZSrr0/dqa2tzwgknZMCAARk4cGCmTJmSVatWNT2Nb/To0endu3cmT56cJDnttNPyrW99K2eddVY+97nP5bHHHsull16aM888s5ynAQAAbKSac+8qdwn8g0WXDS93CUArUtZQatSoUVm2bFkmTpyYJUuWZL/99susWbOaNj9fvHhx2rT5+2KuPn365J577sn48eOzzz77pHfv3jnrrLNyzjnnlOsUAAAAANgIZQ2lkmTcuHEZN25ci8dmz569VtvgwYPzwAMPbOaqAAAAANictqqn7wEAAACwbRBKAQAAAFA4oRQAwFbo2muvTU1NTTp06JBBgwZl7ty5b9n/5ZdfzhlnnJGddtopVVVV2WOPPXL33XcXVC0AwNrKvqcUAAAbZsaMGamtrc3UqVMzaNCgTJkyJcOGDcvChQtTXV29Vv/Vq1fnox/9aKqrq3P77bend+/eefrpp9O9e/fiiwcA+P+EUgAAW5mrrroqY8eOzZgxY5IkU6dOzV133ZVp06bl3HPPXav/tGnT8uKLL+b+++9Pu3btkiQ1NTVFlgwAsBa37wEAbEVWr16dhx56KEOHDm1qa9OmTYYOHZo5c+a0OGbmzJkZPHhwzjjjjPTs2TP9+vXLpZdemoaGhqLKBgBYi5VSAABbkeXLl6ehoSE9e/Zs1t6zZ88sWLCgxTFPPvlkfvGLX+S4447L3Xffnccffzynn3563njjjUyaNKnFMfX19amvr296v2LFik13EgAAsVIKAGCb19jYmOrq6nznO99J//79M2rUqHz5y1/O1KlT1zlm8uTJ6datW9OrT58+BVYMALQGQikAgK1Ijx49UllZmaVLlzZrX7p0aXr16tXimJ122il77LFHKisrm9re8573ZMmSJVm9enWLYyZMmJBXXnml6fXMM89supMAAIhQCgBgq9K+ffv0798/dXV1TW2NjY2pq6vL4MGDWxwzZMiQPP7442lsbGxq+9Of/pSddtop7du3b3FMVVVVunbt2uwFALApCaUAALYytbW1+e53v5ubb745f/zjH3Paaadl1apVTU/jGz16dCZMmNDU/7TTTsuLL76Ys846K3/6059y11135dJLL80ZZ5xRrlMAALDROQDA1mbUqFFZtmxZJk6cmCVLlmS//fbLrFmzmjY/X7x4cdq0+ftvj3369Mk999yT8ePHZ5999knv3r1z1lln5ZxzzinXKQAACKUAALZG48aNy7hx41o8Nnv27LXaBg8enAceeGAzVwUAsP7cvgcAAABA4YRSAAAAABROKAUAAABA4YRSAAAAABROKAUAAABA4YRSAAAAABROKAUAAABA4YRSAAAAABROKAUAAABA4YRSAAAAABROKAUAAABA4dqWuwAAgNaioaEh06dPT11dXZ5//vk0NjY2O/6LX/yiTJUBABRPKAUAUJCzzjor06dPz/Dhw9OvX79UVFSUuyQAgLIRSgEAFOTWW2/ND37wgxxxxBHlLgUAoOzsKQUAUJD27dtnt912K3cZAABbBKEUAEBBvvCFL+Saa65JqVQqdykAAGXn9j0AgILcd999+eUvf5mf/vSnee9735t27do1O37HHXeUqTIAgOIJpQAACtK9e/d84hOfKHcZAABbBKEUAEBBbrrppnKXAACwxRBKAQAUbNmyZVm4cGGSZM8998yOO+5Y5ooAAIpno3MAgIKsWrUqJ510UnbaaaccfPDBOfjgg7Pzzjvn5JNPzmuvvVbu8gAACrXeK6V+//vfr/eH7rPPPhtVDADAtqy2tjb/8z//kx//+McZMmRIkr9tfn7mmWfmC1/4Qq6//voyVwgAUJz1DqX222+/VFRUrPMRxm8eq6ioSENDwyYrEABgW/HDH/4wt99+ez74wQ82tR1xxBHp2LFjjj76aKEUANCqrHco9dRTT23OOgAAtnmvvfZaevbsuVZ7dXW12/cAgFZnvUOpd77znZuzDgCAbd7gwYMzadKkfO9730uHDh2SJH/9619z0UUXZfDgwWWuDgCgWOsdSs2cOXO9P/TjH//4RhUDALAtu+aaazJs2LDssssu2XfffZMk8+fPT4cOHXLPPfeUuToAgGKtdyg1cuTI9epnTykAgJb169cvjz32WG655ZYsWLAgSXLMMcfkuOOOS8eOHctcHQBAsdY7lGpsbNycdQAAtAqdOnXK2LFjy10GAEDZrXcoBQDAhps5c2YOP/zwtGvX7l9uh2ALBACgNdnoUGrVqlX5n//5nyxevDirV69uduzMM89824UBAGwLRo4cmSVLlqS6uvott0OwBQIA0NpsVCj1u9/9LkcccURee+21rFq1KjvssEOWL1+eTp06pbq6WigFAPD//eMWCLZDAAD4uzYbM2j8+PEZMWJEXnrppXTs2DEPPPBAnn766fTv3z9XXHHFpq4RAGCb9fLLL5e7BACAstioUGrevHn5whe+kDZt2qSysjL19fXp06dPvva1r+W8887b1DUCAGwTLr/88syYMaPp/VFHHZUddtghvXv3zvz588tYGQBA8TYqlGrXrl3atPnb0Orq6ixevDhJ0q1btzzzzDObrjoAgG3I1KlT06dPnyTJvffem5///OeZNWtWDj/88Jx99tllrg4AoFgbtafU/vvvn9/+9rfZfffdc8ghh2TixIlZvnx5/uM//iP9+vXb1DUCAGwTlixZ0hRK/eQnP8nRRx+dQw89NDU1NRk0aFCZqwMAKNZGrZS69NJLs9NOOyVJLrnkkmy//fY57bTTsmzZsnz729/epAUCAGwrtt9++6ZV5bNmzcrQoUOTJKVSyZP3AIBWZ6NWSg0YMKDpv6urqzNr1qxNVhAAwLbqk5/8ZI499tjsvvvueeGFF3L44Ycn+duTjXfbbbcyVwcAUKyNCqWeeuqprFmzJrvvvnuz9sceeyzt2rVLTU3NpqgNAGCbcvXVV6empibPPPNMvva1r6VLly5Jkr/85S85/fTTy1wdAECxNiqUOvHEE3PSSSetFUr95je/yQ033JDZs2dvitoAALYp7dq1yxe/+MW12sePH1+GagAAymujQqnf/e53GTJkyFrtH/jABzJu3Li3XRQAwLZi5syZOfzww9OuXbvMnDnzLft+/OMfL6gqAIDy26hQqqKiIitXrlyr/ZVXXrFJJwDAPxg5cmSWLFmS6urqjBw5cp39KioqzKMAgFZlo56+d/DBB2fy5MnNJk4NDQ2ZPHlyDjzwwE1WHADA1q6xsTHV1dVN/72ul0AKAGhtNmql1OWXX56DDz44e+65Zw466KAkyf/+7/9mxYoV+cUvfrFJCwQAAABg27NRK6X69u2b3//+9zn66KPz/PPPZ+XKlRk9enQWLFiQfv36beoaAQC2CWeeeWa+8Y1vrNX+rW99K5///OeLLwgAoIw2aqVUkuy888659NJLN2UtAADbtB/+8IctbnZ+wAEH5LLLLsuUKVOKLwoAoEw2aqVU8rfb9Y4//vgccMABefbZZ5Mk//Ef/5H77rtvkxUHALAteeGFF9KtW7e12rt27Zrly5eXoSIAgPLZqFDqhz/8YYYNG5aOHTvm4YcfTn19fZK/PX3P6ikAgJbttttumTVr1lrtP/3pT7PrrruWoSIAgPLZqNv3vvrVr2bq1KkZPXp0br311qb2IUOG5Ktf/eomKw4AYFtSW1ubcePGZdmyZfnwhz+cJKmrq8uVV17p1j0AoNXZqFBq4cKFOfjgg9dq79atW15++eW3WxMAwDbppJNOSn19fS655JJcfPHFSZKamppcf/31GT16dJmrAwAo1kaFUr169crjjz+empqaZu333XefpecAAG/htNNOy2mnnZZly5alY8eO6dKlS7lLAgAoi43aU2rs2LE566yz8pvf/CYVFRV57rnncsstt+QLX/hCTjvttE1dIwDANmPNmjX5+c9/njvuuCOlUilJ8txzz+XVV18tc2UAAMXaqJVS5557bhobG/ORj3wkr732Wg4++OBUVVXl7LPPzimnnLKpawQA2CY8/fTTOeyww7J48eLU19fnox/9aLbbbrtcfvnlqa+vz9SpU8tdIgBAYTZqpVRFRUW+/OUv58UXX8yjjz6aBx54IMuWLUu3bt3yrne9a1PXCACwTTjrrLMyYMCAvPTSS+nYsWNT+yc+8YnU1dWVsTIAgOJt0Eqp+vr6XHjhhbn33nubVkaNHDkyN910Uz7xiU+ksrIy48eP31y1AgBs1f73f/83999/f9q3b9+svaamJs8++2yZqgIAKI8NCqUmTpyYb3/72xk6dGjuv//+HHXUURkzZkweeOCBXHnllTnqqKNSWVm5uWoFANiqNTY2pqGhYa32P//5z9luu+3KUBEAQPls0O17t912W773ve/l9ttvz89+9rM0NDRkzZo1mT9/fj796U8LpAAA3sKhhx6aKVOmNL2vqKjIq6++mkmTJuWII44oX2EAAGWwQSul/vznP6d///5Jkn79+qWqqirjx49PRUXFZikOAGBbcsUVV+Swww5L37598/rrr+fYY4/NY489lh49euS//uu/yl0eAEChNiiUamhoaLYHQtu2bdOlS5dNXhQAwLaoT58+mT9/fmbMmJH58+fn1Vdfzcknn5zjjjuu2cbnAACtwQaFUqVSKSeeeGKqqqqSJK+//npOPfXUdO7cuVm/O+64Y9NVCACwDXjjjTey11575Sc/+UmOO+64HHfcceUuCQCgrDYolDrhhBOavT/++OM3aTEAANuqdu3a5fXXXy93GQAAW4wNCqVuuummzVUHAMA274wzzsjll1+eG264IW3bbtA0DABgm2M2BABQkN/+9repq6vLz372s+y99962QAAAWjWhFABAQbp3754jjzyy3GUAAGwRhFIAAJtZY2Njvv71r+dPf/pTVq9enQ9/+MO58MILPXEPAGjV2pS7AACAbd0ll1yS8847L126dEnv3r3zjW98I2eccUa5ywIAKCuhFADAZva9730v1113Xe6555786Ec/yo9//OPccsstaWxsLHdpAABlI5QCANjMFi9enCOOOKLp/dChQ1NRUZHnnnuujFUBAJSXUAoAYDNbs2ZNOnTo0KytXbt2eeONN8pUEQBA+dnoHABgMyuVSjnxxBNT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+7dUVVWlV69eGTZsWH79618nSWpqapqub6dOnbL33nvnhhtuKHPVvF0bct0rKyuz88475+STT85LL71U5sqhfMyfMH/iH5lDtT7mT8XZIp6+x+bx5JNPZsiQIenevXsuvfTS7L333qmqqsojjzyS73znO+ndu3cGDx6cj3zkI/nYxz6We+65J927d8+iRYsyc+bMrFq1Kv3798++++6badOm5QMf+ECzz1+0aFF++ctf5sc//nGuu+66pvYZM2Zk4sSJWbhwYVNbly5dCjtvmrvxxhvzuc99LjfeeGOee+657Lzzzs2O//znP8973/vepvcdO3Z8y897s399fX3uu+++nHLKKdlpp51y8sknb5b62XSOPPLIrF69OjfffHN23XXXLF26NHV1dXnhhRea+nzlK1/J2LFj89prr+W2227L2LFj07t37xx++OFlrJy3Y0Oue0NDQ/70pz/ls5/9bM4888z8x3/8Rxkrh/IwfyIxf6I5c6jWx/ypQCW2WcOGDSvtsssupVdffbXF442NjaU777yz1LZt29Ibb7yxzs/5xje+UeratWtp1apVzdonTZpU2nnnnUtr1qxp1n7TTTeVunXr9rbr5+1buXJlqUuXLqUFCxaURo0aVbrkkkuajj311FOlJKXf/e53LY795+Pr6v+Rj3ykdPrpp2+mM2BTeemll0pJSrNnz15nn3e+852lq6++ulnbDjvsUBo/fvxmro7NZWOv+8UXX1zq27fvZq4OtkzmT5g/8Y/MoVof86diuX1vG/XCCy/kZz/7Wc4444x07ty5xT4VFRXp1atX1qxZkzvvvHOdS4iPO+641NfX5/bbb29qK5VKufnmm3PiiSemsrJys5wDb98PfvCD7LXXXtlzzz1z/PHHZ9q0aZt0qfiDDz6Yhx56KIMGDdpkn8nm0aVLl3Tp0iU/+tGPUl9f/y/7NzY25oc//GFeeumltG/fvoAK2Rw29LonybPPPpsf//jH/l7TKpk/kZg/0Zw5VOtj/lSwciZibD4PPPBAKUnpjjvuaNb+jne8o9S5c+dS586dS1/60pdKpVKpdN5555Xatm1b2mGHHUqHHXZY6Wtf+1ppyZIlzcZ9+tOfLh1yyCFN7+vq6kpJSo899tha3+2Xvi3HAQccUJoyZUqpVCqV3njjjVKPHj1Kv/zlL0ul0t9/uevYsWPT/yY6d+5cevjhh5sd/+df+t7s365du1KS0mc/+9lynBob4fbbby9tv/32pQ4dOpQOOOCA0oQJE0rz589vOv7Od76z1L59+1Lnzp1Lbdu2LSUp7bDDDi3+PWfrsSHXvUOHDqUkpUGDBpVeeuml8hUNZWL+RKlk/sTazKFaH/On4lgp1crMnTs38+bNa7qnPUkuueSSLFmyJFOnTs173/veTJ06NXvttVceeeSRpnEnnXRSfvWrX+WJJ55IkkybNi2HHHJIdtttt7KcB//awoULM3fu3BxzzDFJkrZt22bUqFG58cYbm/WbMWNG5s2b1/Tq27fvW37um/3nz5+fH/zgB/nv//7vnHvuuZvtPNh0jjzyyDz33HOZOXNmDjvssMyePTvve9/7Mn369KY+Z599dubNm5df/OIXGTRoUK6++mp/z7dyG3Ldf//736euri5JMnz48DQ0NJSpatiymD+1HuZPtMQcqvUxfypQuVMxNo/ly5eXKioqSpMnT27x+CGHHFI666yzWjxWX19f6tu3b2n06NFNbQ0NDaV3vvOdpfPPP7/0yiuvlDp27Fj63ve+1+J4v/RtGc4+++xSklJlZWXTq02bNqWOHTuWXn755U22J8LkyZNLbdu2Lf31r3/dvCfEZnHyySeX/u3f/q1UKq19b/zixYtL3bp1K/3hD38oU3VsLm913UulUmnOnDmlJKV77723DNVB+Zg/Yf7E+jKHan3MnzYPK6W2Ue94xzvy0Y9+NN/61reyatWqDRrbvn37vPvd7242rk2bNhkzZkxuvvnmfP/730/79u3zqU99alOXzSayZs2afO9738uVV17Z7Fe8+fPnZ+edd85//dd/bbLvqqyszJo1a7J69epN9pkUp2/fvuv8N6JPnz4ZNWpUJkyYUHBVbG5vdd2TNO1189e//rWokmCLYP7Uupk/sSHMoVof86fNo225C2Dzue666zJkyJAMGDAgF154YfbZZ5+0adMmv/3tb7NgwYL0798/P/nJT3Lrrbfm05/+dPbYY4+USqX8+Mc/zt13352bbrqp2eeNGTMmX/nKV3LeeeflmGOO+ZePvqV8fvKTn+Sll17KySefnG7dujU7duSRR+bGG2/MYYcdtlGf/cILL2TJkiVZs2ZNHnnkkVxzzTX50Ic+lK5du26K0tlMXnjhhRx11FE56aSTss8++2S77bbLgw8+mK997Wv5P//n/6xz3FlnnZV+/frlwQcfzIABAwqsmE1hfa/7ypUrs2TJkpRKpTzzzDP50pe+lB133DEHHHBAGauH8jB/ar3Mn2iJOVTrY/5UsPIu1GJze+6550rjxo0rvetd7yq1a9eu1KVLl9LAgQNLX//610urVq0qPfHEE6WxY8eW9thjj1LHjh1L3bt3L73//e8v3XTTTS1+3qGHHlpKUpo7d+46v9Py8/L72Mc+VjriiCNaPPab3/ymlKQ0f/78jVp+/uarsrKytMsuu5TGjh1bev755zfTmbCpvP7666Vzzz239L73va/UrVu3UqdOnUp77rln6fzzzy+99tprpVKp5WXIpdLfHo9++OGHF1wxm8L6Xvd//Lu94447lo444oh1/tsArYH5U+tk/kRLzKFaH/OnYlWUSpvw+aYAAAAAsB7sKQUAAABA4YRSAAAAABROKAUAAABA4YRSAAAAABROKAUAAABA4YRSAAAAABROKAUAAABA4YRSAAAAABROKAW0KhUVFfnRj35U7jIAALYa5k/A5iKUArYpS5Ysyec+97nsuuuuqaqqSp8+fTJixIjU1dWVuzQAgC2S+RNQLm3LXQDAprJo0aIMGTIk3bt3z9e//vXsvffeeeONN3LPPffkjDPOyIIFC8pdIgDAFsX8CSgnK6WAbcbpp5+eioqKzJ07N0ceeWT22GOPvPe9701tbW0eeOCBFsecc8452WOPPdKpU6fsuuuuueCCC/LGG280HZ8/f34+9KEPZbvttkvXrl3Tv3//PPjgg0mSp59+OiNGjMj222+fzp07573vfW/uvvvuQs4VAGBTMH8CyslKKWCb8OKLL2bWrFm55JJL0rlz57WOd+/evcVx2223XaZPn56dd945jzzySMaOHZvtttsuX/rSl5Ikxx13XPbff/9cf/31qayszLx589KuXbskyRlnnJHVq1fnV7/6VTp37pz/+3//b7p06bLZzhEAYFMyfwLKTSgFbBMef/zxlEql7LXXXhs07vzzz2/675qamnzxi1/Mrbfe2jSpWrx4cc4+++ymz919992b+i9evDhHHnlk9t577yTJrrvu+nZPAwCgMOZPQLm5fQ/YJpRKpY0aN2PGjAwZMiS9evVKly5dcv7552fx4sVNx2tra3PKKadk6NChueyyy/LEE080HTvzzDPz1a9+NUOGDMmkSZPy+9///m2fBwBAUcyfgHITSgHbhN133z0VFRUbtBnnnDlzctxxx+WII47IT37yk/zud7/Ll7/85axevbqpz4UXXpg//OEPGT58eH7xi1+kb9++ufPOO5Mkp5xySp588sl85jOfySOPPJIBAwbkm9/85iY/NwCAzcH8CSi3itLGxuMAW5jDDz88jzzySBYuXLjWvggvv/xyunfvnoqKitx5550ZOXJkrrzyylx33XXNfr075ZRTcvvtt+fll19u8TuOOeaYrFq1KjNnzlzr2IQJE3LXXXf5xQ8A2GqYPwHlZKUUsM249tpr09DQkIEDB+aHP/xhHnvssfzxj3/MN77xjQwePHit/rvvvnsWL16cW2+9NU888US+8Y1vNP2KlyR//etfM27cuMyePTtPP/10fv3rX+e3v/1t3vOe9yRJPv/5z+eee+7JU089lYcffji//OUvm44BAGwNzJ+AcrLRObDN2HXXXfPwww/nkksuyRe+8IX85S9/yY477pj+/fvn+uuvX6v/xz/+8YwfPz7jxo1LfX19hg8fngsuuCAXXnhhkqSysjIvvPBCRo8enaVLl6ZHjx755Cc/mYsuuihJ0tDQkDPOOCN//vOf07Vr1xx22GG5+uqrizxlAIC3xfwJKCe37wEAAABQOLfvAQAAAFA4oRQAAAAAhRNKAQAAAFA4oRQAAAAAhRNKAQAAAFA4oRQAAAAAhRNKAQAAAFA4oRQAAAAAhRNKAQAAAFA4oRQAAAAAhRNKAQAAAFA4oRQAAAAAhft/h2pyLVP4kdgAAAAASUVORK5CYII=",
"text/plain": [
"<Figure size 1200x600 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# plot recall and precision\n",
"# Calculate the recall and precision\n",
"recall = cm.diagonal() / cm.sum(axis=1)\n",
"precision = cm.diagonal() / cm.sum(axis=0)\n",
"\n",
"# plot in a bar chart\n",
"fig, ax = plt.subplots(1, 2, figsize=(12, 6))\n",
"ax[0].bar(range(num_classes), recall)\n",
"ax[0].set_xticks(range(num_classes))\n",
"ax[0].set_xticklabels(['GSVT', 'AFIB', 'SR', 'SB'])\n",
"ax[0].set_xlabel('Class')\n",
"ax[0].set_ylabel('Recall')\n",
"ax[0].set_title('Recall')\n",
"\n",
"ax[1].bar(range(num_classes), precision)\n",
"ax[1].set_xticks(range(num_classes))\n",
"ax[1].set_xticklabels(['GSVT', 'AFIB', 'SR', 'SB'])\n",
"ax[1].set_xlabel('Class')\n",
"ax[1].set_ylabel('Precision')\n",
"ax[1].set_title('Precision')\n",
"\n",
"plt.tight_layout()\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"F1 Score: 0.8157211953487169\n"
]
}
],
"source": [
"# Calculate F1 Score for multiclass classification\n",
"f1 = f1_score(test_y, preds, average='macro')\n",
"\n",
"print('F1 Score:', f1)"
]
}
],
"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.4"
}
},
"nbformat": 4,
"nbformat_minor": 2
}