diff --git a/03_Machine_Learning/DS_mRNA_TCGA_limma_dataset_xgb_final-F.ipynb b/03_Machine_Learning/DS_mRNA_TCGA_limma_dataset_xgb_final-F.ipynb deleted file mode 100644 index cf4aa0d2de3fd80008ada1622d84886489c32c28..0000000000000000000000000000000000000000 --- a/03_Machine_Learning/DS_mRNA_TCGA_limma_dataset_xgb_final-F.ipynb +++ /dev/null @@ -1,6446 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 66, - "id": "f097ad55", - "metadata": {}, - "outputs": [], - "source": [ - "import warnings\n", - "warnings.filterwarnings('ignore')\n", - "import pandas as pd\n", - "from sklearn.model_selection import train_test_split\n", - "#from sklearn.model_selection import cross_val_score\n", - "#from sklearn.metrics import accuracy_score\n", - "#import sklearn.metrics as metrics\n", - "#from sklearn.metrics import auc\n", - "from sklearn.metrics import RocCurveDisplay\n", - "#from sklearn.model_selection import KFold\n", - "import matplotlib.pyplot as plt\n", - "import numpy as np\n", - "from imblearn.over_sampling import SMOTE\n", - "from sklearn.linear_model import Lasso\n", - "import xgboost as xgb\n", - "from sklearn.model_selection import GridSearchCV\n", - "import pandas as pd\n", - "import numpy as np\n", - "\n", - "np.random.seed(7)" - ] - }, - { - "cell_type": "markdown", - "id": "73b6611a", - "metadata": {}, - "source": [ - "# Data Preprocessing" - ] - }, - { - "cell_type": "code", - "execution_count": 67, - "id": "0eeb7a35", - "metadata": {}, - "outputs": [], - "source": [ - "df_train = pd.read_csv(\"DS/mRNA_DS_preprocessed_training_data.csv\")" - ] - }, - { - "cell_type": "code", - "execution_count": 68, - "id": "c04fc6bc", - "metadata": {}, - "outputs": [], - "source": [ - "df_test = pd.read_csv(\"DS/mRNA_TCGA_DS_test_data.csv\")" - ] - }, - { - "cell_type": "code", - "execution_count": 69, - "id": "8dad4da2", - "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>gene_name</th>\n", - " <th>TCGA-L5-A4OM-01A-11R-A260-31</th>\n", - " <th>TCGA-L5-A43J-01A-12R-A24K-31</th>\n", - " <th>TCGA-LN-A49K-01A-11R-A24K-31</th>\n", - " <th>TCGA-L5-A4OH-01A-11R-A260-31</th>\n", - " <th>TCGA-JY-A6FE-01A-11R-A336-31</th>\n", - " <th>TCGA-VR-A8Q7-01A-11R-A37I-31</th>\n", - " <th>TCGA-IG-A7DP-01A-31R-A336-31</th>\n", - " <th>TCGA-L5-A43M-01A-11R-A24K-31</th>\n", - " <th>TCGA-2H-A9GF-01A-11R-A37I-31</th>\n", - " <th>...</th>\n", - " <th>TCGA-LN-A49L-01A-11R-A24K-31</th>\n", - " <th>TCGA-LN-A8HZ-01A-11R-A36D-31</th>\n", - " <th>TCGA-Z6-A8JD-01A-11R-A36D-31</th>\n", - " <th>TCGA-L5-A4OF-11A-12R-A260-31</th>\n", - " <th>TCGA-L5-A4OM-11A-11R-A260-31</th>\n", - " <th>TCGA-VR-AA4D-01A-11R-A37I-31</th>\n", - " <th>TCGA-L5-A8NS-01A-12R-A37I-31</th>\n", - " <th>TCGA-Z6-A8JE-01A-11R-A37I-31</th>\n", - " <th>TCGA-LN-A4A5-01A-21R-A260-31</th>\n", - " <th>TCGA-LN-A49O-01A-11R-A24K-31</th>\n", - " </tr>\n", - " </thead>\n", - " <tbody>\n", - " <tr>\n", - " <th>0</th>\n", - " <td>ABAT</td>\n", - " <td>2051.0</td>\n", - " <td>1474.0</td>\n", - " <td>598.0</td>\n", - " <td>1168.0</td>\n", - " <td>447.0</td>\n", - " <td>273.0</td>\n", - " <td>447.0</td>\n", - " <td>1304.0</td>\n", - " <td>1529.0</td>\n", - " <td>...</td>\n", - " <td>1289.0</td>\n", - " <td>147.0</td>\n", - " <td>846.0</td>\n", - " <td>921.0</td>\n", - " <td>3412.0</td>\n", - " <td>282.0</td>\n", - " <td>480.0</td>\n", - " <td>1495.0</td>\n", - " <td>1022.0</td>\n", - " <td>348.0</td>\n", - " </tr>\n", - " <tr>\n", - " <th>1</th>\n", - " <td>ABHD5</td>\n", - " <td>2245.0</td>\n", - " <td>2127.0</td>\n", - " <td>2798.0</td>\n", - " <td>1493.0</td>\n", - " <td>1061.0</td>\n", - " <td>1493.0</td>\n", - " <td>711.0</td>\n", - " <td>3504.0</td>\n", - " <td>2126.0</td>\n", - " <td>...</td>\n", - " <td>5871.0</td>\n", - " <td>2178.0</td>\n", - " <td>1394.0</td>\n", - " <td>1766.0</td>\n", - " <td>4295.0</td>\n", - " <td>993.0</td>\n", - " <td>1229.0</td>\n", - " <td>2602.0</td>\n", - " <td>2672.0</td>\n", - " <td>1667.0</td>\n", - " </tr>\n", - " <tr>\n", - " <th>2</th>\n", - " <td>ABLIM1</td>\n", - " <td>50529.0</td>\n", - " <td>14163.0</td>\n", - " <td>20824.0</td>\n", - " <td>20978.0</td>\n", - " <td>8067.0</td>\n", - " <td>10865.0</td>\n", - " <td>5394.0</td>\n", - " <td>62364.0</td>\n", - " <td>12737.0</td>\n", - " <td>...</td>\n", - " <td>9375.0</td>\n", - " <td>21599.0</td>\n", - " <td>10244.0</td>\n", - " <td>23159.0</td>\n", - " <td>101546.0</td>\n", - " <td>15037.0</td>\n", - " <td>27743.0</td>\n", - " <td>11085.0</td>\n", - " <td>10182.0</td>\n", - " <td>12013.0</td>\n", - " </tr>\n", - " <tr>\n", - " <th>3</th>\n", - " <td>ABLIM3</td>\n", - " <td>1813.0</td>\n", - " <td>7869.0</td>\n", - " <td>2042.0</td>\n", - " <td>1159.0</td>\n", - " <td>2268.0</td>\n", - " <td>709.0</td>\n", - " <td>806.0</td>\n", - " <td>1419.0</td>\n", - " <td>431.0</td>\n", - " <td>...</td>\n", - " <td>350.0</td>\n", - " <td>837.0</td>\n", - " <td>1006.0</td>\n", - " <td>964.0</td>\n", - " <td>1945.0</td>\n", - " <td>138.0</td>\n", - " <td>696.0</td>\n", - " <td>4620.0</td>\n", - " <td>1679.0</td>\n", - " <td>1118.0</td>\n", - " </tr>\n", - " <tr>\n", - " <th>4</th>\n", - " <td>ACAA1</td>\n", - " <td>972.0</td>\n", - " <td>1127.0</td>\n", - " <td>1855.0</td>\n", - " <td>2613.0</td>\n", - " <td>1512.0</td>\n", - " <td>1370.0</td>\n", - " <td>1198.0</td>\n", - " <td>1277.0</td>\n", - " <td>4085.0</td>\n", - " <td>...</td>\n", - " <td>1231.0</td>\n", - " <td>1603.0</td>\n", - " <td>1400.0</td>\n", - " <td>1653.0</td>\n", - " <td>4946.0</td>\n", - " <td>1730.0</td>\n", - " <td>852.0</td>\n", - " <td>1528.0</td>\n", - " <td>1214.0</td>\n", - " <td>1026.0</td>\n", - " </tr>\n", - " <tr>\n", - " <th>...</th>\n", - " <td>...</td>\n", - " <td>...</td>\n", - " <td>...</td>\n", - " <td>...</td>\n", - " <td>...</td>\n", - " <td>...</td>\n", - " <td>...</td>\n", - " <td>...</td>\n", - " <td>...</td>\n", - " <td>...</td>\n", - " <td>...</td>\n", - " <td>...</td>\n", - " <td>...</td>\n", - " <td>...</td>\n", - " <td>...</td>\n", - " <td>...</td>\n", - " <td>...</td>\n", - " <td>...</td>\n", - " <td>...</td>\n", - " <td>...</td>\n", - " <td>...</td>\n", - " </tr>\n", - " <tr>\n", - " <th>597</th>\n", - " <td>ZFP64</td>\n", - " <td>4144.0</td>\n", - " <td>3442.0</td>\n", - " <td>4979.0</td>\n", - " <td>6012.0</td>\n", - " <td>4453.0</td>\n", - " <td>2570.0</td>\n", - " <td>1085.0</td>\n", - " <td>2722.0</td>\n", - " <td>2191.0</td>\n", - " <td>...</td>\n", - " <td>7305.0</td>\n", - " <td>6247.0</td>\n", - " <td>3423.0</td>\n", - " <td>628.0</td>\n", - " <td>2032.0</td>\n", - " <td>1726.0</td>\n", - " <td>1354.0</td>\n", - " <td>2204.0</td>\n", - " <td>2525.0</td>\n", - " <td>2502.0</td>\n", - " </tr>\n", - " <tr>\n", - " <th>598</th>\n", - " <td>ZNF185</td>\n", - " <td>37290.0</td>\n", - " <td>7622.0</td>\n", - " <td>12031.0</td>\n", - " <td>1274.0</td>\n", - " <td>2069.0</td>\n", - " <td>2511.0</td>\n", - " <td>647.0</td>\n", - " <td>2043.0</td>\n", - " <td>4349.0</td>\n", - " <td>...</td>\n", - " <td>15153.0</td>\n", - " <td>8728.0</td>\n", - " <td>8284.0</td>\n", - " <td>728.0</td>\n", - " <td>8893.0</td>\n", - " <td>1140.0</td>\n", - " <td>3245.0</td>\n", - " <td>11172.0</td>\n", - " <td>5938.0</td>\n", - " <td>5930.0</td>\n", - " </tr>\n", - " <tr>\n", - " <th>599</th>\n", - " <td>ZNF365</td>\n", - " <td>59.0</td>\n", - " <td>1049.0</td>\n", - " <td>134.0</td>\n", - " <td>15.0</td>\n", - " <td>537.0</td>\n", - " <td>67.0</td>\n", - " <td>45.0</td>\n", - " <td>111.0</td>\n", - " <td>52.0</td>\n", - " <td>...</td>\n", - " <td>46.0</td>\n", - " <td>729.0</td>\n", - " <td>167.0</td>\n", - " <td>8.0</td>\n", - " <td>261.0</td>\n", - " <td>15.0</td>\n", - " <td>56.0</td>\n", - " <td>190.0</td>\n", - " <td>247.0</td>\n", - " <td>2181.0</td>\n", - " </tr>\n", - " <tr>\n", - " <th>600</th>\n", - " <td>ZNF426</td>\n", - " <td>2606.0</td>\n", - " <td>2530.0</td>\n", - " <td>1627.0</td>\n", - " <td>3310.0</td>\n", - " <td>951.0</td>\n", - " <td>808.0</td>\n", - " <td>1258.0</td>\n", - " <td>3302.0</td>\n", - " <td>973.0</td>\n", - " <td>...</td>\n", - " <td>1645.0</td>\n", - " <td>1122.0</td>\n", - " <td>1723.0</td>\n", - " <td>742.0</td>\n", - " <td>2290.0</td>\n", - " <td>69.0</td>\n", - " <td>1211.0</td>\n", - " <td>1607.0</td>\n", - " <td>3387.0</td>\n", - " <td>1770.0</td>\n", - " </tr>\n", - " <tr>\n", - " <th>601</th>\n", - " <td>ZNF710</td>\n", - " <td>3493.0</td>\n", - " <td>1625.0</td>\n", - " <td>3097.0</td>\n", - " <td>2802.0</td>\n", - " <td>2209.0</td>\n", - " <td>4566.0</td>\n", - " <td>1297.0</td>\n", - " <td>3772.0</td>\n", - " <td>3723.0</td>\n", - " <td>...</td>\n", - " <td>6727.0</td>\n", - " <td>2440.0</td>\n", - " <td>3587.0</td>\n", - " <td>2582.0</td>\n", - " <td>4765.0</td>\n", - " <td>1740.0</td>\n", - " <td>1944.0</td>\n", - " <td>2240.0</td>\n", - " <td>3223.0</td>\n", - " <td>3167.0</td>\n", - " </tr>\n", - " </tbody>\n", - "</table>\n", - "<p>602 rows × 198 columns</p>\n", - "</div>" - ], - "text/plain": [ - " gene_name TCGA-L5-A4OM-01A-11R-A260-31 TCGA-L5-A43J-01A-12R-A24K-31 \\\n", - "0 ABAT 2051.0 1474.0 \n", - "1 ABHD5 2245.0 2127.0 \n", - "2 ABLIM1 50529.0 14163.0 \n", - "3 ABLIM3 1813.0 7869.0 \n", - "4 ACAA1 972.0 1127.0 \n", - ".. ... ... ... \n", - "597 ZFP64 4144.0 3442.0 \n", - "598 ZNF185 37290.0 7622.0 \n", - "599 ZNF365 59.0 1049.0 \n", - "600 ZNF426 2606.0 2530.0 \n", - "601 ZNF710 3493.0 1625.0 \n", - "\n", - " TCGA-LN-A49K-01A-11R-A24K-31 TCGA-L5-A4OH-01A-11R-A260-31 \\\n", - "0 598.0 1168.0 \n", - "1 2798.0 1493.0 \n", - "2 20824.0 20978.0 \n", - "3 2042.0 1159.0 \n", - "4 1855.0 2613.0 \n", - ".. ... ... \n", - "597 4979.0 6012.0 \n", - "598 12031.0 1274.0 \n", - "599 134.0 15.0 \n", - "600 1627.0 3310.0 \n", - "601 3097.0 2802.0 \n", - "\n", - " TCGA-JY-A6FE-01A-11R-A336-31 TCGA-VR-A8Q7-01A-11R-A37I-31 \\\n", - "0 447.0 273.0 \n", - "1 1061.0 1493.0 \n", - "2 8067.0 10865.0 \n", - "3 2268.0 709.0 \n", - "4 1512.0 1370.0 \n", - ".. ... ... \n", - "597 4453.0 2570.0 \n", - "598 2069.0 2511.0 \n", - "599 537.0 67.0 \n", - "600 951.0 808.0 \n", - "601 2209.0 4566.0 \n", - "\n", - " TCGA-IG-A7DP-01A-31R-A336-31 TCGA-L5-A43M-01A-11R-A24K-31 \\\n", - "0 447.0 1304.0 \n", - "1 711.0 3504.0 \n", - "2 5394.0 62364.0 \n", - "3 806.0 1419.0 \n", - "4 1198.0 1277.0 \n", - ".. ... ... \n", - "597 1085.0 2722.0 \n", - "598 647.0 2043.0 \n", - "599 45.0 111.0 \n", - "600 1258.0 3302.0 \n", - "601 1297.0 3772.0 \n", - "\n", - " TCGA-2H-A9GF-01A-11R-A37I-31 ... TCGA-LN-A49L-01A-11R-A24K-31 \\\n", - "0 1529.0 ... 1289.0 \n", - "1 2126.0 ... 5871.0 \n", - "2 12737.0 ... 9375.0 \n", - "3 431.0 ... 350.0 \n", - "4 4085.0 ... 1231.0 \n", - ".. ... ... ... \n", - "597 2191.0 ... 7305.0 \n", - "598 4349.0 ... 15153.0 \n", - "599 52.0 ... 46.0 \n", - "600 973.0 ... 1645.0 \n", - "601 3723.0 ... 6727.0 \n", - "\n", - " TCGA-LN-A8HZ-01A-11R-A36D-31 TCGA-Z6-A8JD-01A-11R-A36D-31 \\\n", - "0 147.0 846.0 \n", - "1 2178.0 1394.0 \n", - "2 21599.0 10244.0 \n", - "3 837.0 1006.0 \n", - "4 1603.0 1400.0 \n", - ".. ... ... \n", - "597 6247.0 3423.0 \n", - "598 8728.0 8284.0 \n", - "599 729.0 167.0 \n", - "600 1122.0 1723.0 \n", - "601 2440.0 3587.0 \n", - "\n", - " TCGA-L5-A4OF-11A-12R-A260-31 TCGA-L5-A4OM-11A-11R-A260-31 \\\n", - "0 921.0 3412.0 \n", - "1 1766.0 4295.0 \n", - "2 23159.0 101546.0 \n", - "3 964.0 1945.0 \n", - "4 1653.0 4946.0 \n", - ".. ... ... \n", - "597 628.0 2032.0 \n", - "598 728.0 8893.0 \n", - "599 8.0 261.0 \n", - "600 742.0 2290.0 \n", - "601 2582.0 4765.0 \n", - "\n", - " TCGA-VR-AA4D-01A-11R-A37I-31 TCGA-L5-A8NS-01A-12R-A37I-31 \\\n", - "0 282.0 480.0 \n", - "1 993.0 1229.0 \n", - "2 15037.0 27743.0 \n", - "3 138.0 696.0 \n", - "4 1730.0 852.0 \n", - ".. ... ... \n", - "597 1726.0 1354.0 \n", - "598 1140.0 3245.0 \n", - "599 15.0 56.0 \n", - "600 69.0 1211.0 \n", - "601 1740.0 1944.0 \n", - "\n", - " TCGA-Z6-A8JE-01A-11R-A37I-31 TCGA-LN-A4A5-01A-21R-A260-31 \\\n", - "0 1495.0 1022.0 \n", - "1 2602.0 2672.0 \n", - "2 11085.0 10182.0 \n", - "3 4620.0 1679.0 \n", - "4 1528.0 1214.0 \n", - ".. ... ... \n", - "597 2204.0 2525.0 \n", - "598 11172.0 5938.0 \n", - "599 190.0 247.0 \n", - "600 1607.0 3387.0 \n", - "601 2240.0 3223.0 \n", - "\n", - " TCGA-LN-A49O-01A-11R-A24K-31 \n", - "0 348.0 \n", - "1 1667.0 \n", - "2 12013.0 \n", - "3 1118.0 \n", - "4 1026.0 \n", - ".. ... \n", - "597 2502.0 \n", - "598 5930.0 \n", - "599 2181.0 \n", - "600 1770.0 \n", - "601 3167.0 \n", - "\n", - "[602 rows x 198 columns]" - ] - }, - "execution_count": 69, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "df_test" - ] - }, - { - "cell_type": "code", - "execution_count": 70, - "id": "683b63ce", - "metadata": {}, - "outputs": [], - "source": [ - "df_train = df_train.T\n", - "df_test = df_test.T" - ] - }, - { - "cell_type": "code", - "execution_count": 71, - "id": "6ecc5606", - "metadata": {}, - "outputs": [], - "source": [ - "#df_test = df_test[:-1]" - ] - }, - { - "cell_type": "code", - "execution_count": 72, - "id": "c7c9cdfc", - "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>0</th>\n", - " <th>1</th>\n", - " <th>2</th>\n", - " <th>3</th>\n", - " <th>4</th>\n", - " <th>5</th>\n", - " <th>6</th>\n", - " <th>7</th>\n", - " <th>8</th>\n", - " <th>9</th>\n", - " <th>...</th>\n", - " <th>568</th>\n", - " <th>569</th>\n", - " <th>570</th>\n", - " <th>571</th>\n", - " <th>572</th>\n", - " <th>573</th>\n", - " <th>574</th>\n", - " <th>575</th>\n", - " <th>576</th>\n", - " <th>577</th>\n", - " </tr>\n", - " </thead>\n", - " <tbody>\n", - " <tr>\n", - " <th>Gene_symbol</th>\n", - " <td>ABAT</td>\n", - " <td>ABHD5</td>\n", - " <td>ABLIM1</td>\n", - " <td>ABLIM3</td>\n", - " <td>ACAA1</td>\n", - " <td>ACADM</td>\n", - " <td>ACADVL</td>\n", - " <td>ACD</td>\n", - " <td>ACLY</td>\n", - " <td>ACOT11</td>\n", - " <td>...</td>\n", - " <td>XYLT1</td>\n", - " <td>YOD1</td>\n", - " <td>YTHDC1</td>\n", - " <td>ZBTB16</td>\n", - " <td>ZDHHC13</td>\n", - " <td>ZFP64</td>\n", - " <td>ZNF185</td>\n", - " <td>ZNF365</td>\n", - " <td>ZNF426</td>\n", - " <td>ZNF710</td>\n", - " </tr>\n", - " <tr>\n", - " <th>GSM1727130</th>\n", - " <td>186</td>\n", - " <td>2603</td>\n", - " <td>42653</td>\n", - " <td>220</td>\n", - " <td>2132</td>\n", - " <td>22869</td>\n", - " <td>19775</td>\n", - " <td>4486</td>\n", - " <td>8835</td>\n", - " <td>2332</td>\n", - " <td>...</td>\n", - " <td>392</td>\n", - " <td>222</td>\n", - " <td>295</td>\n", - " <td>4598</td>\n", - " <td>7009</td>\n", - " <td>568</td>\n", - " <td>65123</td>\n", - " <td>56</td>\n", - " <td>308</td>\n", - " <td>10385</td>\n", - " </tr>\n", - " <tr>\n", - " <th>GSM1727131</th>\n", - " <td>93</td>\n", - " <td>1137</td>\n", - " <td>16493</td>\n", - " <td>69</td>\n", - " <td>1816</td>\n", - " <td>17788</td>\n", - " <td>16870</td>\n", - " <td>7993</td>\n", - " <td>21434</td>\n", - " <td>2211</td>\n", - " <td>...</td>\n", - " <td>62</td>\n", - " <td>78</td>\n", - " <td>144</td>\n", - " <td>2132</td>\n", - " <td>2602</td>\n", - " <td>1720</td>\n", - " <td>13531</td>\n", - " <td>47</td>\n", - " <td>140</td>\n", - " <td>6441</td>\n", - " </tr>\n", - " <tr>\n", - " <th>GSM1727132</th>\n", - " <td>198</td>\n", - " <td>5593</td>\n", - " <td>53918</td>\n", - " <td>263</td>\n", - " <td>3490</td>\n", - " <td>39276</td>\n", - " <td>25847</td>\n", - " <td>4413</td>\n", - " <td>9212</td>\n", - " <td>7419</td>\n", - " <td>...</td>\n", - " <td>481</td>\n", - " <td>355</td>\n", - " <td>308</td>\n", - " <td>1071</td>\n", - " <td>10289</td>\n", - " <td>379</td>\n", - " <td>65131</td>\n", - " <td>206</td>\n", - " <td>1251</td>\n", - " <td>11768</td>\n", - " </tr>\n", - " <tr>\n", - " <th>GSM1727133</th>\n", - " <td>104</td>\n", - " <td>1636</td>\n", - " <td>19203</td>\n", - " <td>127</td>\n", - " <td>1518</td>\n", - " <td>17951</td>\n", - " <td>16854</td>\n", - " <td>12800</td>\n", - " <td>11939</td>\n", - " <td>5136</td>\n", - " <td>...</td>\n", - " <td>213</td>\n", - " <td>122</td>\n", - " <td>244</td>\n", - " <td>482</td>\n", - " <td>3578</td>\n", - " <td>1990</td>\n", - " <td>37715</td>\n", - " <td>66</td>\n", - " <td>361</td>\n", - " <td>8517</td>\n", - " </tr>\n", - " <tr>\n", - " <th>...</th>\n", - " <td>...</td>\n", - " <td>...</td>\n", - " <td>...</td>\n", - " <td>...</td>\n", - " <td>...</td>\n", - " <td>...</td>\n", - " <td>...</td>\n", - " <td>...</td>\n", - " <td>...</td>\n", - " <td>...</td>\n", - " <td>...</td>\n", - " <td>...</td>\n", - " <td>...</td>\n", - " <td>...</td>\n", - " <td>...</td>\n", - " <td>...</td>\n", - " <td>...</td>\n", - " <td>...</td>\n", - " <td>...</td>\n", - " <td>...</td>\n", - " <td>...</td>\n", - " </tr>\n", - " <tr>\n", - " <th>GSM573947</th>\n", - " <td>4.273622</td>\n", - " <td>5.246957</td>\n", - " <td>9.597787</td>\n", - " <td>6.158036</td>\n", - " <td>7.843278</td>\n", - " <td>7.540486</td>\n", - " <td>10.125865</td>\n", - " <td>8.390029</td>\n", - " <td>7.260406</td>\n", - " <td>7.029879</td>\n", - " <td>...</td>\n", - " <td>7.411724</td>\n", - " <td>4.940705</td>\n", - " <td>9.863287</td>\n", - " <td>6.235713</td>\n", - " <td>7.042848</td>\n", - " <td>7.675928</td>\n", - " <td>7.964469</td>\n", - " <td>6.295932</td>\n", - " <td>5.095579</td>\n", - " <td>8.884501</td>\n", - " </tr>\n", - " <tr>\n", - " <th>GSM573948</th>\n", - " <td>5.587715</td>\n", - " <td>5.0088</td>\n", - " <td>8.983841</td>\n", - " <td>8.052282</td>\n", - " <td>8.080951</td>\n", - " <td>8.557505</td>\n", - " <td>9.603772</td>\n", - " <td>8.493015</td>\n", - " <td>6.80822</td>\n", - " <td>7.442001</td>\n", - " <td>...</td>\n", - " <td>7.809331</td>\n", - " <td>4.748696</td>\n", - " <td>9.966924</td>\n", - " <td>6.370717</td>\n", - " <td>6.694095</td>\n", - " <td>7.215412</td>\n", - " <td>9.596515</td>\n", - " <td>6.052377</td>\n", - " <td>5.453787</td>\n", - " <td>8.364667</td>\n", - " </tr>\n", - " <tr>\n", - " <th>GSM573949</th>\n", - " <td>4.448848</td>\n", - " <td>5.210555</td>\n", - " <td>9.464238</td>\n", - " <td>6.475869</td>\n", - " <td>7.987815</td>\n", - " <td>8.141677</td>\n", - " <td>9.614827</td>\n", - " <td>8.336654</td>\n", - " <td>7.629702</td>\n", - " <td>7.163679</td>\n", - " <td>...</td>\n", - " <td>7.389107</td>\n", - " <td>5.044658</td>\n", - " <td>9.909041</td>\n", - " <td>6.399272</td>\n", - " <td>6.468483</td>\n", - " <td>7.134219</td>\n", - " <td>8.123325</td>\n", - " <td>6.01643</td>\n", - " <td>5.06643</td>\n", - " <td>8.760867</td>\n", - " </tr>\n", - " <tr>\n", - " <th>GSM573950</th>\n", - " <td>5.032263</td>\n", - " <td>4.849188</td>\n", - " <td>9.468484</td>\n", - " <td>7.966742</td>\n", - " <td>8.143446</td>\n", - " <td>8.049146</td>\n", - " <td>9.544212</td>\n", - " <td>8.524367</td>\n", - " <td>6.777896</td>\n", - " <td>7.389599</td>\n", - " <td>...</td>\n", - " <td>7.237896</td>\n", - " <td>4.971315</td>\n", - " <td>10.181616</td>\n", - " <td>6.812211</td>\n", - " <td>8.065029</td>\n", - " <td>7.25272</td>\n", - " <td>8.542159</td>\n", - " <td>6.113286</td>\n", - " <td>5.045287</td>\n", - " <td>8.657596</td>\n", - " </tr>\n", - " <tr>\n", - " <th>GSM573951</th>\n", - " <td>4.461845</td>\n", - " <td>4.846861</td>\n", - " <td>7.099264</td>\n", - " <td>6.269944</td>\n", - " <td>8.190815</td>\n", - " <td>8.865402</td>\n", - " <td>10.212028</td>\n", - " <td>8.61563</td>\n", - " <td>7.266994</td>\n", - " <td>7.081327</td>\n", - " <td>...</td>\n", - " <td>6.941117</td>\n", - " <td>5.060393</td>\n", - " <td>10.228238</td>\n", - " <td>6.01229</td>\n", - " <td>6.759003</td>\n", - " <td>7.871117</td>\n", - " <td>6.893819</td>\n", - " <td>5.94915</td>\n", - " <td>5.135424</td>\n", - " <td>8.292854</td>\n", - " </tr>\n", - " </tbody>\n", - "</table>\n", - "<p>220 rows × 578 columns</p>\n", - "</div>" - ], - "text/plain": [ - " 0 1 2 3 4 5 \\\n", - "Gene_symbol ABAT ABHD5 ABLIM1 ABLIM3 ACAA1 ACADM \n", - "GSM1727130 186 2603 42653 220 2132 22869 \n", - "GSM1727131 93 1137 16493 69 1816 17788 \n", - "GSM1727132 198 5593 53918 263 3490 39276 \n", - "GSM1727133 104 1636 19203 127 1518 17951 \n", - "... ... ... ... ... ... ... \n", - "GSM573947 4.273622 5.246957 9.597787 6.158036 7.843278 7.540486 \n", - "GSM573948 5.587715 5.0088 8.983841 8.052282 8.080951 8.557505 \n", - "GSM573949 4.448848 5.210555 9.464238 6.475869 7.987815 8.141677 \n", - "GSM573950 5.032263 4.849188 9.468484 7.966742 8.143446 8.049146 \n", - "GSM573951 4.461845 4.846861 7.099264 6.269944 8.190815 8.865402 \n", - "\n", - " 6 7 8 9 ... 568 569 \\\n", - "Gene_symbol ACADVL ACD ACLY ACOT11 ... XYLT1 YOD1 \n", - "GSM1727130 19775 4486 8835 2332 ... 392 222 \n", - "GSM1727131 16870 7993 21434 2211 ... 62 78 \n", - "GSM1727132 25847 4413 9212 7419 ... 481 355 \n", - "GSM1727133 16854 12800 11939 5136 ... 213 122 \n", - "... ... ... ... ... ... ... ... \n", - "GSM573947 10.125865 8.390029 7.260406 7.029879 ... 7.411724 4.940705 \n", - "GSM573948 9.603772 8.493015 6.80822 7.442001 ... 7.809331 4.748696 \n", - "GSM573949 9.614827 8.336654 7.629702 7.163679 ... 7.389107 5.044658 \n", - "GSM573950 9.544212 8.524367 6.777896 7.389599 ... 7.237896 4.971315 \n", - "GSM573951 10.212028 8.61563 7.266994 7.081327 ... 6.941117 5.060393 \n", - "\n", - " 570 571 572 573 574 575 \\\n", - "Gene_symbol YTHDC1 ZBTB16 ZDHHC13 ZFP64 ZNF185 ZNF365 \n", - "GSM1727130 295 4598 7009 568 65123 56 \n", - "GSM1727131 144 2132 2602 1720 13531 47 \n", - "GSM1727132 308 1071 10289 379 65131 206 \n", - "GSM1727133 244 482 3578 1990 37715 66 \n", - "... ... ... ... ... ... ... \n", - "GSM573947 9.863287 6.235713 7.042848 7.675928 7.964469 6.295932 \n", - "GSM573948 9.966924 6.370717 6.694095 7.215412 9.596515 6.052377 \n", - "GSM573949 9.909041 6.399272 6.468483 7.134219 8.123325 6.01643 \n", - "GSM573950 10.181616 6.812211 8.065029 7.25272 8.542159 6.113286 \n", - "GSM573951 10.228238 6.01229 6.759003 7.871117 6.893819 5.94915 \n", - "\n", - " 576 577 \n", - "Gene_symbol ZNF426 ZNF710 \n", - "GSM1727130 308 10385 \n", - "GSM1727131 140 6441 \n", - "GSM1727132 1251 11768 \n", - "GSM1727133 361 8517 \n", - "... ... ... \n", - "GSM573947 5.095579 8.884501 \n", - "GSM573948 5.453787 8.364667 \n", - "GSM573949 5.06643 8.760867 \n", - "GSM573950 5.045287 8.657596 \n", - "GSM573951 5.135424 8.292854 \n", - "\n", - "[220 rows x 578 columns]" - ] - }, - "execution_count": 72, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "df_train" - ] - }, - { - "cell_type": "code", - "execution_count": 73, - "id": "d9b0088e", - "metadata": {}, - "outputs": [], - "source": [ - "#Transform the input data\n", - "df_train.rename(columns=df_train.iloc[0], inplace = True)\n", - "df_train.drop(df_train.index[0], inplace = True)\n", - "df_train=df_train.reset_index()" - ] - }, - { - "cell_type": "code", - "execution_count": 74, - "id": "50511de4", - "metadata": {}, - "outputs": [], - "source": [ - "df_train=df_train.drop(['ACPP'], axis=1)" - ] - }, - { - "cell_type": "code", - "execution_count": 75, - "id": "2e78017d", - "metadata": {}, - "outputs": [], - "source": [ - "#Transform the input data\n", - "df_test.rename(columns=df_test.iloc[0], inplace = True)\n", - "df_test.drop(df_test.index[0], inplace = True)\n", - "df_test=df_test.reset_index()" - ] - }, - { - "cell_type": "code", - "execution_count": 76, - "id": "7168825e", - "metadata": {}, - "outputs": [], - "source": [ - "metadata_test = pd.read_csv(\"DS/mRNA_TCGA_DS_col_data.csv\")" - ] - }, - { - "cell_type": "code", - "execution_count": 77, - "id": "7e519658", - "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>Unnamed: 0</th>\n", - " <th>group_assignments</th>\n", - " </tr>\n", - " </thead>\n", - " <tbody>\n", - " <tr>\n", - " <th>0</th>\n", - " <td>gene_name</td>\n", - " <td>NaN</td>\n", - " </tr>\n", - " <tr>\n", - " <th>1</th>\n", - " <td>TCGA-L5-A4OM-01A-11R-A260-31</td>\n", - " <td>Cancer</td>\n", - " </tr>\n", - " <tr>\n", - " <th>2</th>\n", - " <td>TCGA-L5-A43J-01A-12R-A24K-31</td>\n", - " <td>Cancer</td>\n", - " </tr>\n", - " <tr>\n", - " <th>3</th>\n", - " <td>TCGA-LN-A49K-01A-11R-A24K-31</td>\n", - " <td>Cancer</td>\n", - " </tr>\n", - " <tr>\n", - " <th>4</th>\n", - " <td>TCGA-L5-A4OH-01A-11R-A260-31</td>\n", - " <td>Cancer</td>\n", - " </tr>\n", - " <tr>\n", - " <th>...</th>\n", - " <td>...</td>\n", - " <td>...</td>\n", - " </tr>\n", - " <tr>\n", - " <th>193</th>\n", - " <td>TCGA-VR-AA4D-01A-11R-A37I-31</td>\n", - " <td>Cancer</td>\n", - " </tr>\n", - " <tr>\n", - " <th>194</th>\n", - " <td>TCGA-L5-A8NS-01A-12R-A37I-31</td>\n", - " <td>Cancer</td>\n", - " </tr>\n", - " <tr>\n", - " <th>195</th>\n", - " <td>TCGA-Z6-A8JE-01A-11R-A37I-31</td>\n", - " <td>Cancer</td>\n", - " </tr>\n", - " <tr>\n", - " <th>196</th>\n", - " <td>TCGA-LN-A4A5-01A-21R-A260-31</td>\n", - " <td>Cancer</td>\n", - " </tr>\n", - " <tr>\n", - " <th>197</th>\n", - " <td>TCGA-LN-A49O-01A-11R-A24K-31</td>\n", - " <td>Cancer</td>\n", - " </tr>\n", - " </tbody>\n", - "</table>\n", - "<p>198 rows × 2 columns</p>\n", - "</div>" - ], - "text/plain": [ - " Unnamed: 0 group_assignments\n", - "0 gene_name NaN\n", - "1 TCGA-L5-A4OM-01A-11R-A260-31 Cancer\n", - "2 TCGA-L5-A43J-01A-12R-A24K-31 Cancer\n", - "3 TCGA-LN-A49K-01A-11R-A24K-31 Cancer\n", - "4 TCGA-L5-A4OH-01A-11R-A260-31 Cancer\n", - ".. ... ...\n", - "193 TCGA-VR-AA4D-01A-11R-A37I-31 Cancer\n", - "194 TCGA-L5-A8NS-01A-12R-A37I-31 Cancer\n", - "195 TCGA-Z6-A8JE-01A-11R-A37I-31 Cancer\n", - "196 TCGA-LN-A4A5-01A-21R-A260-31 Cancer\n", - "197 TCGA-LN-A49O-01A-11R-A24K-31 Cancer\n", - "\n", - "[198 rows x 2 columns]" - ] - }, - "execution_count": 77, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "metadata_test" - ] - }, - { - "cell_type": "code", - "execution_count": 78, - "id": "26c98c3e", - "metadata": {}, - "outputs": [], - "source": [ - "df_test= df_test.merge(metadata_test, left_on=\"index\", right_on= \"Unnamed: 0\")" - ] - }, - { - "cell_type": "code", - "execution_count": 79, - "id": "0d82a6ce", - "metadata": {}, - "outputs": [], - "source": [ - "df_test= df_test.rename(columns={\"group_assignments\": \"title0\"})" - ] - }, - { - "cell_type": "code", - "execution_count": 80, - "id": "b42beaa4", - "metadata": {}, - "outputs": [], - "source": [ - "df_test['title0'] = df_test['title0'].replace('(?i)control|mucosa|normal|healthy', 0, regex=True)\n" - ] - }, - { - "cell_type": "code", - "execution_count": 81, - "id": "515cd9fc", - "metadata": {}, - "outputs": [], - "source": [ - "df_test['title0'] = df_test['title0'].replace('(?i)Tumor|Cancer|carcinoma', 1, regex=True)" - ] - }, - { - "cell_type": "code", - "execution_count": 82, - "id": "b4f38f66", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "title0\n", - "1 184\n", - "0 13\n", - "Name: count, dtype: int64" - ] - }, - "execution_count": 82, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "df_test['title0'].value_counts()" - ] - }, - { - "cell_type": "code", - "execution_count": 83, - "id": "dcdefec2", - "metadata": {}, - "outputs": [], - "source": [ - "df_test = df_test[pd.to_numeric(df_test['title0'], errors='coerce').notnull()]#remove all non-numeric data from the column." - ] - }, - { - "cell_type": "code", - "execution_count": 84, - "id": "ca48568a", - "metadata": {}, - "outputs": [], - "source": [ - "df_test= df_test.drop(['index', 'Unnamed: 0'], axis=1)" - ] - }, - { - "cell_type": "code", - "execution_count": 85, - "id": "d4b7e8b7", - "metadata": {}, - "outputs": [], - "source": [ - "df_test= df_test.rename(columns={\"title0\": \"index\"})" - ] - }, - { - "cell_type": "code", - "execution_count": 86, - "id": "5fc874c4", - "metadata": {}, - "outputs": [], - "source": [ - "# Select 13 rows of class 0\n", - "class_0 = df_test[df_test['index'] == 0].head(13)\n", - "\n", - "# Select 13 rows of class 1\n", - "class_1 = df_test[df_test['index'] == 1].head(27)\n", - "\n", - "# Concatenate the selected rows\n", - "df_test = pd.concat([class_0, class_1])" - ] - }, - { - "cell_type": "code", - "execution_count": 87, - "id": "5a058968", - "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>ABAT</th>\n", - " <th>ABHD5</th>\n", - " <th>ABLIM1</th>\n", - " <th>ABLIM3</th>\n", - " <th>ACAA1</th>\n", - " <th>ACADM</th>\n", - " <th>ACADVL</th>\n", - " <th>ACD</th>\n", - " <th>ACLY</th>\n", - " <th>ACOT11</th>\n", - " <th>...</th>\n", - " <th>YOD1</th>\n", - " <th>YTHDC1</th>\n", - " <th>ZBTB16</th>\n", - " <th>ZDHHC13</th>\n", - " <th>ZFP64</th>\n", - " <th>ZNF185</th>\n", - " <th>ZNF365</th>\n", - " <th>ZNF426</th>\n", - " <th>ZNF710</th>\n", - " <th>index</th>\n", - " </tr>\n", - " </thead>\n", - " <tbody>\n", - " <tr>\n", - " <th>16</th>\n", - " <td>3115.0</td>\n", - " <td>1201.0</td>\n", - " <td>14162.0</td>\n", - " <td>474.0</td>\n", - " <td>2046.0</td>\n", - " <td>2164.0</td>\n", - " <td>10703.0</td>\n", - " <td>751.0</td>\n", - " <td>4259.0</td>\n", - " <td>4676.0</td>\n", - " <td>...</td>\n", - " <td>1069.0</td>\n", - " <td>4185.0</td>\n", - " <td>416.0</td>\n", - " <td>2387.0</td>\n", - " <td>2425.0</td>\n", - " <td>2809.0</td>\n", - " <td>16.0</td>\n", - " <td>1066.0</td>\n", - " <td>3174.0</td>\n", - " <td>0</td>\n", - " </tr>\n", - " <tr>\n", - " <th>57</th>\n", - " <td>1480.0</td>\n", - " <td>4989.0</td>\n", - " <td>70802.0</td>\n", - " <td>11045.0</td>\n", - " <td>3449.0</td>\n", - " <td>2118.0</td>\n", - " <td>20429.0</td>\n", - " <td>446.0</td>\n", - " <td>4120.0</td>\n", - " <td>2158.0</td>\n", - " <td>...</td>\n", - " <td>18567.0</td>\n", - " <td>2869.0</td>\n", - " <td>603.0</td>\n", - " <td>4019.0</td>\n", - " <td>825.0</td>\n", - " <td>100273.0</td>\n", - " <td>5333.0</td>\n", - " <td>7373.0</td>\n", - " <td>4577.0</td>\n", - " <td>0</td>\n", - " </tr>\n", - " <tr>\n", - " <th>58</th>\n", - " <td>615.0</td>\n", - " <td>1054.0</td>\n", - " <td>12782.0</td>\n", - " <td>279.0</td>\n", - " <td>1647.0</td>\n", - " <td>3323.0</td>\n", - " <td>11800.0</td>\n", - " <td>363.0</td>\n", - " <td>3257.0</td>\n", - " <td>836.0</td>\n", - " <td>...</td>\n", - " <td>829.0</td>\n", - " <td>2209.0</td>\n", - " <td>5362.0</td>\n", - " <td>818.0</td>\n", - " <td>503.0</td>\n", - " <td>461.0</td>\n", - " <td>14.0</td>\n", - " <td>481.0</td>\n", - " <td>2076.0</td>\n", - " <td>0</td>\n", - " </tr>\n", - " <tr>\n", - " <th>74</th>\n", - " <td>625.0</td>\n", - " <td>648.0</td>\n", - " <td>9557.0</td>\n", - " <td>145.0</td>\n", - " <td>1205.0</td>\n", - " <td>2450.0</td>\n", - " <td>8247.0</td>\n", - " <td>300.0</td>\n", - " <td>2965.0</td>\n", - " <td>919.0</td>\n", - " <td>...</td>\n", - " <td>680.0</td>\n", - " <td>2234.0</td>\n", - " <td>4683.0</td>\n", - " <td>556.0</td>\n", - " <td>434.0</td>\n", - " <td>438.0</td>\n", - " <td>2.0</td>\n", - " <td>683.0</td>\n", - " <td>1666.0</td>\n", - " <td>0</td>\n", - " </tr>\n", - " <tr>\n", - " <th>84</th>\n", - " <td>3062.0</td>\n", - " <td>1579.0</td>\n", - " <td>73857.0</td>\n", - " <td>257.0</td>\n", - " <td>3857.0</td>\n", - " <td>2166.0</td>\n", - " <td>10460.0</td>\n", - " <td>874.0</td>\n", - " <td>15858.0</td>\n", - " <td>2781.0</td>\n", - " <td>...</td>\n", - " <td>2321.0</td>\n", - " <td>5970.0</td>\n", - " <td>67.0</td>\n", - " <td>2713.0</td>\n", - " <td>4398.0</td>\n", - " <td>3181.0</td>\n", - " <td>1.0</td>\n", - " <td>1258.0</td>\n", - " <td>4441.0</td>\n", - " <td>0</td>\n", - " </tr>\n", - " <tr>\n", - " <th>92</th>\n", - " <td>990.0</td>\n", - " <td>6597.0</td>\n", - " <td>37974.0</td>\n", - " <td>8228.0</td>\n", - " <td>1776.0</td>\n", - " <td>3376.0</td>\n", - " <td>13926.0</td>\n", - " <td>1291.0</td>\n", - " <td>10677.0</td>\n", - " <td>4915.0</td>\n", - " <td>...</td>\n", - " <td>1709.0</td>\n", - " <td>5941.0</td>\n", - " <td>53533.0</td>\n", - " <td>1264.0</td>\n", - " <td>1173.0</td>\n", - " <td>720.0</td>\n", - " <td>614.0</td>\n", - " <td>2984.0</td>\n", - " <td>2377.0</td>\n", - " <td>0</td>\n", - " </tr>\n", - " <tr>\n", - " <th>94</th>\n", - " <td>4350.0</td>\n", - " <td>3345.0</td>\n", - " <td>54946.0</td>\n", - " <td>1474.0</td>\n", - " <td>1601.0</td>\n", - " <td>3628.0</td>\n", - " <td>11726.0</td>\n", - " <td>1013.0</td>\n", - " <td>8076.0</td>\n", - " <td>1442.0</td>\n", - " <td>...</td>\n", - " <td>2775.0</td>\n", - " <td>3678.0</td>\n", - " <td>3443.0</td>\n", - " <td>2089.0</td>\n", - " <td>1872.0</td>\n", - " <td>22544.0</td>\n", - " <td>118.0</td>\n", - " <td>1295.0</td>\n", - " <td>2643.0</td>\n", - " <td>0</td>\n", - " </tr>\n", - " <tr>\n", - " <th>119</th>\n", - " <td>763.0</td>\n", - " <td>1385.0</td>\n", - " <td>25078.0</td>\n", - " <td>1078.0</td>\n", - " <td>1801.0</td>\n", - " <td>3628.0</td>\n", - " <td>18970.0</td>\n", - " <td>521.0</td>\n", - " <td>6289.0</td>\n", - " <td>1789.0</td>\n", - " <td>...</td>\n", - " <td>1027.0</td>\n", - " <td>3775.0</td>\n", - " <td>10003.0</td>\n", - " <td>1450.0</td>\n", - " <td>780.0</td>\n", - " <td>1010.0</td>\n", - " <td>6.0</td>\n", - " <td>960.0</td>\n", - " <td>3409.0</td>\n", - " <td>0</td>\n", - " </tr>\n", - " <tr>\n", - " <th>140</th>\n", - " <td>690.0</td>\n", - " <td>1349.0</td>\n", - " <td>16936.0</td>\n", - " <td>1474.0</td>\n", - " <td>1104.0</td>\n", - " <td>3139.0</td>\n", - " <td>10069.0</td>\n", - " <td>627.0</td>\n", - " <td>4202.0</td>\n", - " <td>1282.0</td>\n", - " <td>...</td>\n", - " <td>829.0</td>\n", - " <td>3274.0</td>\n", - " <td>28984.0</td>\n", - " <td>603.0</td>\n", - " <td>449.0</td>\n", - " <td>387.0</td>\n", - " <td>145.0</td>\n", - " <td>1458.0</td>\n", - " <td>1912.0</td>\n", - " <td>0</td>\n", - " </tr>\n", - " <tr>\n", - " <th>143</th>\n", - " <td>1289.0</td>\n", - " <td>3792.0</td>\n", - " <td>25323.0</td>\n", - " <td>7121.0</td>\n", - " <td>1304.0</td>\n", - " <td>7792.0</td>\n", - " <td>11578.0</td>\n", - " <td>1627.0</td>\n", - " <td>8483.0</td>\n", - " <td>1731.0</td>\n", - " <td>...</td>\n", - " <td>1095.0</td>\n", - " <td>7690.0</td>\n", - " <td>15996.0</td>\n", - " <td>343.0</td>\n", - " <td>1240.0</td>\n", - " <td>785.0</td>\n", - " <td>631.0</td>\n", - " <td>3486.0</td>\n", - " <td>8991.0</td>\n", - " <td>0</td>\n", - " </tr>\n", - " <tr>\n", - " <th>150</th>\n", - " <td>866.0</td>\n", - " <td>1125.0</td>\n", - " <td>15324.0</td>\n", - " <td>637.0</td>\n", - " <td>1630.0</td>\n", - " <td>3406.0</td>\n", - " <td>13582.0</td>\n", - " <td>681.0</td>\n", - " <td>4495.0</td>\n", - " <td>1208.0</td>\n", - " <td>...</td>\n", - " <td>1241.0</td>\n", - " <td>3609.0</td>\n", - " <td>11653.0</td>\n", - " <td>1258.0</td>\n", - " <td>846.0</td>\n", - " <td>1154.0</td>\n", - " <td>47.0</td>\n", - " <td>773.0</td>\n", - " <td>4229.0</td>\n", - " <td>0</td>\n", - " </tr>\n", - " <tr>\n", - " <th>190</th>\n", - " <td>921.0</td>\n", - " <td>1766.0</td>\n", - " <td>23159.0</td>\n", - " <td>964.0</td>\n", - " <td>1653.0</td>\n", - " <td>3038.0</td>\n", - " <td>15132.0</td>\n", - " <td>562.0</td>\n", - " <td>5008.0</td>\n", - " <td>1164.0</td>\n", - " <td>...</td>\n", - " <td>1134.0</td>\n", - " <td>2683.0</td>\n", - " <td>5547.0</td>\n", - " <td>1812.0</td>\n", - " <td>628.0</td>\n", - " <td>728.0</td>\n", - " <td>8.0</td>\n", - " <td>742.0</td>\n", - " <td>2582.0</td>\n", - " <td>0</td>\n", - " </tr>\n", - " <tr>\n", - " <th>191</th>\n", - " <td>3412.0</td>\n", - " <td>4295.0</td>\n", - " <td>101546.0</td>\n", - " <td>1945.0</td>\n", - " <td>4946.0</td>\n", - " <td>6246.0</td>\n", - " <td>27512.0</td>\n", - " <td>1115.0</td>\n", - " <td>15513.0</td>\n", - " <td>6728.0</td>\n", - " <td>...</td>\n", - " <td>5757.0</td>\n", - " <td>7304.0</td>\n", - " <td>8099.0</td>\n", - " <td>3931.0</td>\n", - " <td>2032.0</td>\n", - " <td>8893.0</td>\n", - " <td>261.0</td>\n", - " <td>2290.0</td>\n", - " <td>4765.0</td>\n", - " <td>0</td>\n", - " </tr>\n", - " <tr>\n", - " <th>0</th>\n", - " <td>2051.0</td>\n", - " <td>2245.0</td>\n", - " <td>50529.0</td>\n", - " <td>1813.0</td>\n", - " <td>972.0</td>\n", - " <td>3108.0</td>\n", - " <td>14196.0</td>\n", - " <td>2007.0</td>\n", - " <td>10221.0</td>\n", - " <td>2666.0</td>\n", - " <td>...</td>\n", - " <td>4259.0</td>\n", - " <td>8476.0</td>\n", - " <td>499.0</td>\n", - " <td>4678.0</td>\n", - " <td>4144.0</td>\n", - " <td>37290.0</td>\n", - " <td>59.0</td>\n", - " <td>2606.0</td>\n", - " <td>3493.0</td>\n", - " <td>1</td>\n", - " </tr>\n", - " <tr>\n", - " <th>1</th>\n", - " <td>1474.0</td>\n", - " <td>2127.0</td>\n", - " <td>14163.0</td>\n", - " <td>7869.0</td>\n", - " <td>1127.0</td>\n", - " <td>2381.0</td>\n", - " <td>9777.0</td>\n", - " <td>4314.0</td>\n", - " <td>14525.0</td>\n", - " <td>740.0</td>\n", - " <td>...</td>\n", - " <td>1100.0</td>\n", - " <td>8363.0</td>\n", - " <td>6232.0</td>\n", - " <td>1613.0</td>\n", - " <td>3442.0</td>\n", - " <td>7622.0</td>\n", - " <td>1049.0</td>\n", - " <td>2530.0</td>\n", - " <td>1625.0</td>\n", - " <td>1</td>\n", - " </tr>\n", - " <tr>\n", - " <th>2</th>\n", - " <td>598.0</td>\n", - " <td>2798.0</td>\n", - " <td>20824.0</td>\n", - " <td>2042.0</td>\n", - " <td>1855.0</td>\n", - " <td>2758.0</td>\n", - " <td>10035.0</td>\n", - " <td>2649.0</td>\n", - " <td>16867.0</td>\n", - " <td>1111.0</td>\n", - " <td>...</td>\n", - " <td>4319.0</td>\n", - " <td>8668.0</td>\n", - " <td>2788.0</td>\n", - " <td>3655.0</td>\n", - " <td>4979.0</td>\n", - " <td>12031.0</td>\n", - " <td>134.0</td>\n", - " <td>1627.0</td>\n", - " <td>3097.0</td>\n", - " <td>1</td>\n", - " </tr>\n", - " <tr>\n", - " <th>3</th>\n", - " <td>1168.0</td>\n", - " <td>1493.0</td>\n", - " <td>20978.0</td>\n", - " <td>1159.0</td>\n", - " <td>2613.0</td>\n", - " <td>3099.0</td>\n", - " <td>18637.0</td>\n", - " <td>2963.0</td>\n", - " <td>16434.0</td>\n", - " <td>4050.0</td>\n", - " <td>...</td>\n", - " <td>9918.0</td>\n", - " <td>6375.0</td>\n", - " <td>849.0</td>\n", - " <td>5156.0</td>\n", - " <td>6012.0</td>\n", - " <td>1274.0</td>\n", - " <td>15.0</td>\n", - " <td>3310.0</td>\n", - " <td>2802.0</td>\n", - " <td>1</td>\n", - " </tr>\n", - " <tr>\n", - " <th>4</th>\n", - " <td>447.0</td>\n", - " <td>1061.0</td>\n", - " <td>8067.0</td>\n", - " <td>2268.0</td>\n", - " <td>1512.0</td>\n", - " <td>1422.0</td>\n", - " <td>12102.0</td>\n", - " <td>4516.0</td>\n", - " <td>14942.0</td>\n", - " <td>134.0</td>\n", - " <td>...</td>\n", - " <td>701.0</td>\n", - " <td>2748.0</td>\n", - " <td>113.0</td>\n", - " <td>1582.0</td>\n", - " <td>4453.0</td>\n", - " <td>2069.0</td>\n", - " <td>537.0</td>\n", - " <td>951.0</td>\n", - " <td>2209.0</td>\n", - " <td>1</td>\n", - " </tr>\n", - " <tr>\n", - " <th>5</th>\n", - " <td>273.0</td>\n", - " <td>1493.0</td>\n", - " <td>10865.0</td>\n", - " <td>709.0</td>\n", - " <td>1370.0</td>\n", - " <td>2770.0</td>\n", - " <td>14487.0</td>\n", - " <td>3258.0</td>\n", - " <td>10410.0</td>\n", - " <td>734.0</td>\n", - " <td>...</td>\n", - " <td>1338.0</td>\n", - " <td>4142.0</td>\n", - " <td>98.0</td>\n", - " <td>794.0</td>\n", - " <td>2570.0</td>\n", - " <td>2511.0</td>\n", - " <td>67.0</td>\n", - " <td>808.0</td>\n", - " <td>4566.0</td>\n", - " <td>1</td>\n", - " </tr>\n", - " <tr>\n", - " <th>6</th>\n", - " <td>447.0</td>\n", - " <td>711.0</td>\n", - " <td>5394.0</td>\n", - " <td>806.0</td>\n", - " <td>1198.0</td>\n", - " <td>1193.0</td>\n", - " <td>7645.0</td>\n", - " <td>1186.0</td>\n", - " <td>6400.0</td>\n", - " <td>363.0</td>\n", - " <td>...</td>\n", - " <td>657.0</td>\n", - " <td>3232.0</td>\n", - " <td>1871.0</td>\n", - " <td>1030.0</td>\n", - " <td>1085.0</td>\n", - " <td>647.0</td>\n", - " <td>45.0</td>\n", - " <td>1258.0</td>\n", - " <td>1297.0</td>\n", - " <td>1</td>\n", - " </tr>\n", - " <tr>\n", - " <th>7</th>\n", - " <td>1304.0</td>\n", - " <td>3504.0</td>\n", - " <td>62364.0</td>\n", - " <td>1419.0</td>\n", - " <td>1277.0</td>\n", - " <td>2438.0</td>\n", - " <td>19435.0</td>\n", - " <td>614.0</td>\n", - " <td>11926.0</td>\n", - " <td>1446.0</td>\n", - " <td>...</td>\n", - " <td>3569.0</td>\n", - " <td>5999.0</td>\n", - " <td>3287.0</td>\n", - " <td>2634.0</td>\n", - " <td>2722.0</td>\n", - " <td>2043.0</td>\n", - " <td>111.0</td>\n", - " <td>3302.0</td>\n", - " <td>3772.0</td>\n", - " <td>1</td>\n", - " </tr>\n", - " <tr>\n", - " <th>8</th>\n", - " <td>1529.0</td>\n", - " <td>2126.0</td>\n", - " <td>12737.0</td>\n", - " <td>431.0</td>\n", - " <td>4085.0</td>\n", - " <td>2528.0</td>\n", - " <td>12424.0</td>\n", - " <td>2176.0</td>\n", - " <td>35448.0</td>\n", - " <td>4548.0</td>\n", - " <td>...</td>\n", - " <td>1022.0</td>\n", - " <td>4642.0</td>\n", - " <td>109.0</td>\n", - " <td>3507.0</td>\n", - " <td>2191.0</td>\n", - " <td>4349.0</td>\n", - " <td>52.0</td>\n", - " <td>973.0</td>\n", - " <td>3723.0</td>\n", - " <td>1</td>\n", - " </tr>\n", - " <tr>\n", - " <th>9</th>\n", - " <td>3170.0</td>\n", - " <td>1681.0</td>\n", - " <td>15357.0</td>\n", - " <td>464.0</td>\n", - " <td>1739.0</td>\n", - " <td>4441.0</td>\n", - " <td>8020.0</td>\n", - " <td>2198.0</td>\n", - " <td>15333.0</td>\n", - " <td>2017.0</td>\n", - " <td>...</td>\n", - " <td>3653.0</td>\n", - " <td>4556.0</td>\n", - " <td>25.0</td>\n", - " <td>1557.0</td>\n", - " <td>1589.0</td>\n", - " <td>117.0</td>\n", - " <td>3.0</td>\n", - " <td>1674.0</td>\n", - " <td>1752.0</td>\n", - " <td>1</td>\n", - " </tr>\n", - " <tr>\n", - " <th>10</th>\n", - " <td>551.0</td>\n", - " <td>1271.0</td>\n", - " <td>4617.0</td>\n", - " <td>271.0</td>\n", - " <td>1094.0</td>\n", - " <td>1251.0</td>\n", - " <td>6732.0</td>\n", - " <td>1181.0</td>\n", - " <td>23759.0</td>\n", - " <td>522.0</td>\n", - " <td>...</td>\n", - " <td>993.0</td>\n", - " <td>3957.0</td>\n", - " <td>164.0</td>\n", - " <td>1963.0</td>\n", - " <td>2278.0</td>\n", - " <td>9055.0</td>\n", - " <td>67.0</td>\n", - " <td>1467.0</td>\n", - " <td>2786.0</td>\n", - " <td>1</td>\n", - " </tr>\n", - " <tr>\n", - " <th>11</th>\n", - " <td>601.0</td>\n", - " <td>2355.0</td>\n", - " <td>19859.0</td>\n", - " <td>2190.0</td>\n", - " <td>2872.0</td>\n", - " <td>1448.0</td>\n", - " <td>18912.0</td>\n", - " <td>2000.0</td>\n", - " <td>41702.0</td>\n", - " <td>1851.0</td>\n", - " <td>...</td>\n", - " <td>3308.0</td>\n", - " <td>5706.0</td>\n", - " <td>893.0</td>\n", - " <td>4386.0</td>\n", - " <td>3015.0</td>\n", - " <td>7544.0</td>\n", - " <td>26.0</td>\n", - " <td>1304.0</td>\n", - " <td>3952.0</td>\n", - " <td>1</td>\n", - " </tr>\n", - " <tr>\n", - " <th>12</th>\n", - " <td>1142.0</td>\n", - " <td>1761.0</td>\n", - " <td>37698.0</td>\n", - " <td>863.0</td>\n", - " <td>4191.0</td>\n", - " <td>8027.0</td>\n", - " <td>16425.0</td>\n", - " <td>930.0</td>\n", - " <td>21731.0</td>\n", - " <td>2792.0</td>\n", - " <td>...</td>\n", - " <td>5912.0</td>\n", - " <td>6407.0</td>\n", - " <td>980.0</td>\n", - " <td>4728.0</td>\n", - " <td>2607.0</td>\n", - " <td>12930.0</td>\n", - " <td>5.0</td>\n", - " <td>1406.0</td>\n", - " <td>3217.0</td>\n", - " <td>1</td>\n", - " </tr>\n", - " <tr>\n", - " <th>13</th>\n", - " <td>448.0</td>\n", - " <td>2566.0</td>\n", - " <td>35878.0</td>\n", - " <td>718.0</td>\n", - " <td>2332.0</td>\n", - " <td>4021.0</td>\n", - " <td>12479.0</td>\n", - " <td>1850.0</td>\n", - " <td>34728.0</td>\n", - " <td>3017.0</td>\n", - " <td>...</td>\n", - " <td>4075.0</td>\n", - " <td>5910.0</td>\n", - " <td>98.0</td>\n", - " <td>2081.0</td>\n", - " <td>4793.0</td>\n", - " <td>5575.0</td>\n", - " <td>229.0</td>\n", - " <td>1527.0</td>\n", - " <td>7084.0</td>\n", - " <td>1</td>\n", - " </tr>\n", - " <tr>\n", - " <th>14</th>\n", - " <td>251.0</td>\n", - " <td>690.0</td>\n", - " <td>14561.0</td>\n", - " <td>1523.0</td>\n", - " <td>1180.0</td>\n", - " <td>507.0</td>\n", - " <td>7014.0</td>\n", - " <td>681.0</td>\n", - " <td>2574.0</td>\n", - " <td>538.0</td>\n", - " <td>...</td>\n", - " <td>788.0</td>\n", - " <td>1324.0</td>\n", - " <td>668.0</td>\n", - " <td>1005.0</td>\n", - " <td>674.0</td>\n", - " <td>23839.0</td>\n", - " <td>457.0</td>\n", - " <td>725.0</td>\n", - " <td>1516.0</td>\n", - " <td>1</td>\n", - " </tr>\n", - " <tr>\n", - " <th>15</th>\n", - " <td>180.0</td>\n", - " <td>2264.0</td>\n", - " <td>16344.0</td>\n", - " <td>3108.0</td>\n", - " <td>3707.0</td>\n", - " <td>1326.0</td>\n", - " <td>12002.0</td>\n", - " <td>1212.0</td>\n", - " <td>24302.0</td>\n", - " <td>3697.0</td>\n", - " <td>...</td>\n", - " <td>1726.0</td>\n", - " <td>4615.0</td>\n", - " <td>129.0</td>\n", - " <td>1775.0</td>\n", - " <td>2996.0</td>\n", - " <td>1382.0</td>\n", - " <td>61.0</td>\n", - " <td>1753.0</td>\n", - " <td>3620.0</td>\n", - " <td>1</td>\n", - " </tr>\n", - " <tr>\n", - " <th>17</th>\n", - " <td>137.0</td>\n", - " <td>1011.0</td>\n", - " <td>7723.0</td>\n", - " <td>360.0</td>\n", - " <td>816.0</td>\n", - " <td>1746.0</td>\n", - " <td>6359.0</td>\n", - " <td>2265.0</td>\n", - " <td>9038.0</td>\n", - " <td>610.0</td>\n", - " <td>...</td>\n", - " <td>2434.0</td>\n", - " <td>5346.0</td>\n", - " <td>118.0</td>\n", - " <td>1931.0</td>\n", - " <td>1828.0</td>\n", - " <td>10196.0</td>\n", - " <td>164.0</td>\n", - " <td>2108.0</td>\n", - " <td>3216.0</td>\n", - " <td>1</td>\n", - " </tr>\n", - " <tr>\n", - " <th>18</th>\n", - " <td>774.0</td>\n", - " <td>1494.0</td>\n", - " <td>20742.0</td>\n", - " <td>1370.0</td>\n", - " <td>1030.0</td>\n", - " <td>2446.0</td>\n", - " <td>9447.0</td>\n", - " <td>1502.0</td>\n", - " <td>13209.0</td>\n", - " <td>1915.0</td>\n", - " <td>...</td>\n", - " <td>2217.0</td>\n", - " <td>4824.0</td>\n", - " <td>115.0</td>\n", - " <td>2044.0</td>\n", - " <td>3604.0</td>\n", - " <td>14249.0</td>\n", - " <td>594.0</td>\n", - " <td>2141.0</td>\n", - " <td>2748.0</td>\n", - " <td>1</td>\n", - " </tr>\n", - " <tr>\n", - " <th>19</th>\n", - " <td>315.0</td>\n", - " <td>1592.0</td>\n", - " <td>30763.0</td>\n", - " <td>2457.0</td>\n", - " <td>1558.0</td>\n", - " <td>2185.0</td>\n", - " <td>12620.0</td>\n", - " <td>2382.0</td>\n", - " <td>14932.0</td>\n", - " <td>1471.0</td>\n", - " <td>...</td>\n", - " <td>5839.0</td>\n", - " <td>4560.0</td>\n", - " <td>141.0</td>\n", - " <td>1913.0</td>\n", - " <td>2820.0</td>\n", - " <td>33472.0</td>\n", - " <td>450.0</td>\n", - " <td>3785.0</td>\n", - " <td>3514.0</td>\n", - " <td>1</td>\n", - " </tr>\n", - " <tr>\n", - " <th>20</th>\n", - " <td>1218.0</td>\n", - " <td>1047.0</td>\n", - " <td>16194.0</td>\n", - " <td>1064.0</td>\n", - " <td>1081.0</td>\n", - " <td>1676.0</td>\n", - " <td>6051.0</td>\n", - " <td>3047.0</td>\n", - " <td>17321.0</td>\n", - " <td>668.0</td>\n", - " <td>...</td>\n", - " <td>2848.0</td>\n", - " <td>8892.0</td>\n", - " <td>38.0</td>\n", - " <td>2343.0</td>\n", - " <td>6012.0</td>\n", - " <td>9261.0</td>\n", - " <td>153.0</td>\n", - " <td>2671.0</td>\n", - " <td>5498.0</td>\n", - " <td>1</td>\n", - " </tr>\n", - " <tr>\n", - " <th>21</th>\n", - " <td>1228.0</td>\n", - " <td>3213.0</td>\n", - " <td>34765.0</td>\n", - " <td>296.0</td>\n", - " <td>1363.0</td>\n", - " <td>2313.0</td>\n", - " <td>19367.0</td>\n", - " <td>2696.0</td>\n", - " <td>14576.0</td>\n", - " <td>1183.0</td>\n", - " <td>...</td>\n", - " <td>3997.0</td>\n", - " <td>8509.0</td>\n", - " <td>1834.0</td>\n", - " <td>3018.0</td>\n", - " <td>4069.0</td>\n", - " <td>10202.0</td>\n", - " <td>826.0</td>\n", - " <td>912.0</td>\n", - " <td>2418.0</td>\n", - " <td>1</td>\n", - " </tr>\n", - " <tr>\n", - " <th>22</th>\n", - " <td>268.0</td>\n", - " <td>2218.0</td>\n", - " <td>17573.0</td>\n", - " <td>169.0</td>\n", - " <td>1437.0</td>\n", - " <td>2455.0</td>\n", - " <td>20002.0</td>\n", - " <td>2141.0</td>\n", - " <td>21260.0</td>\n", - " <td>750.0</td>\n", - " <td>...</td>\n", - " <td>1252.0</td>\n", - " <td>5710.0</td>\n", - " <td>111.0</td>\n", - " <td>2821.0</td>\n", - " <td>5471.0</td>\n", - " <td>4312.0</td>\n", - " <td>87.0</td>\n", - " <td>1464.0</td>\n", - " <td>1804.0</td>\n", - " <td>1</td>\n", - " </tr>\n", - " <tr>\n", - " <th>23</th>\n", - " <td>920.0</td>\n", - " <td>2586.0</td>\n", - " <td>26040.0</td>\n", - " <td>1475.0</td>\n", - " <td>1641.0</td>\n", - " <td>1645.0</td>\n", - " <td>9063.0</td>\n", - " <td>1264.0</td>\n", - " <td>7476.0</td>\n", - " <td>950.0</td>\n", - " <td>...</td>\n", - " <td>1592.0</td>\n", - " <td>4062.0</td>\n", - " <td>120.0</td>\n", - " <td>2398.0</td>\n", - " <td>1907.0</td>\n", - " <td>34415.0</td>\n", - " <td>50.0</td>\n", - " <td>1610.0</td>\n", - " <td>2542.0</td>\n", - " <td>1</td>\n", - " </tr>\n", - " <tr>\n", - " <th>24</th>\n", - " <td>7092.0</td>\n", - " <td>2810.0</td>\n", - " <td>46584.0</td>\n", - " <td>2796.0</td>\n", - " <td>3933.0</td>\n", - " <td>7395.0</td>\n", - " <td>19614.0</td>\n", - " <td>2292.0</td>\n", - " <td>33298.0</td>\n", - " <td>5466.0</td>\n", - " <td>...</td>\n", - " <td>7224.0</td>\n", - " <td>9066.0</td>\n", - " <td>4225.0</td>\n", - " <td>4096.0</td>\n", - " <td>4740.0</td>\n", - " <td>1062.0</td>\n", - " <td>55.0</td>\n", - " <td>2645.0</td>\n", - " <td>4264.0</td>\n", - " <td>1</td>\n", - " </tr>\n", - " <tr>\n", - " <th>25</th>\n", - " <td>1655.0</td>\n", - " <td>2009.0</td>\n", - " <td>14227.0</td>\n", - " <td>2102.0</td>\n", - " <td>1486.0</td>\n", - " <td>2954.0</td>\n", - " <td>6365.0</td>\n", - " <td>4255.0</td>\n", - " <td>20165.0</td>\n", - " <td>7358.0</td>\n", - " <td>...</td>\n", - " <td>1761.0</td>\n", - " <td>5831.0</td>\n", - " <td>654.0</td>\n", - " <td>4684.0</td>\n", - " <td>6329.0</td>\n", - " <td>12429.0</td>\n", - " <td>4734.0</td>\n", - " <td>965.0</td>\n", - " <td>3988.0</td>\n", - " <td>1</td>\n", - " </tr>\n", - " <tr>\n", - " <th>26</th>\n", - " <td>283.0</td>\n", - " <td>1351.0</td>\n", - " <td>5785.0</td>\n", - " <td>412.0</td>\n", - " <td>853.0</td>\n", - " <td>4641.0</td>\n", - " <td>11778.0</td>\n", - " <td>2051.0</td>\n", - " <td>25209.0</td>\n", - " <td>956.0</td>\n", - " <td>...</td>\n", - " <td>2270.0</td>\n", - " <td>4177.0</td>\n", - " <td>8.0</td>\n", - " <td>2434.0</td>\n", - " <td>3946.0</td>\n", - " <td>5330.0</td>\n", - " <td>662.0</td>\n", - " <td>1381.0</td>\n", - " <td>2428.0</td>\n", - " <td>1</td>\n", - " </tr>\n", - " <tr>\n", - " <th>27</th>\n", - " <td>407.0</td>\n", - " <td>1666.0</td>\n", - " <td>14762.0</td>\n", - " <td>2407.0</td>\n", - " <td>1768.0</td>\n", - " <td>3879.0</td>\n", - " <td>8437.0</td>\n", - " <td>1040.0</td>\n", - " <td>7247.0</td>\n", - " <td>1235.0</td>\n", - " <td>...</td>\n", - " <td>1726.0</td>\n", - " <td>5688.0</td>\n", - " <td>537.0</td>\n", - " <td>1122.0</td>\n", - " <td>2116.0</td>\n", - " <td>5162.0</td>\n", - " <td>39.0</td>\n", - " <td>1193.0</td>\n", - " <td>1892.0</td>\n", - " <td>1</td>\n", - " </tr>\n", - " </tbody>\n", - "</table>\n", - "<p>40 rows × 603 columns</p>\n", - "</div>" - ], - "text/plain": [ - " ABAT ABHD5 ABLIM1 ABLIM3 ACAA1 ACADM ACADVL ACD \\\n", - "16 3115.0 1201.0 14162.0 474.0 2046.0 2164.0 10703.0 751.0 \n", - "57 1480.0 4989.0 70802.0 11045.0 3449.0 2118.0 20429.0 446.0 \n", - "58 615.0 1054.0 12782.0 279.0 1647.0 3323.0 11800.0 363.0 \n", - "74 625.0 648.0 9557.0 145.0 1205.0 2450.0 8247.0 300.0 \n", - "84 3062.0 1579.0 73857.0 257.0 3857.0 2166.0 10460.0 874.0 \n", - "92 990.0 6597.0 37974.0 8228.0 1776.0 3376.0 13926.0 1291.0 \n", - "94 4350.0 3345.0 54946.0 1474.0 1601.0 3628.0 11726.0 1013.0 \n", - "119 763.0 1385.0 25078.0 1078.0 1801.0 3628.0 18970.0 521.0 \n", - "140 690.0 1349.0 16936.0 1474.0 1104.0 3139.0 10069.0 627.0 \n", - "143 1289.0 3792.0 25323.0 7121.0 1304.0 7792.0 11578.0 1627.0 \n", - "150 866.0 1125.0 15324.0 637.0 1630.0 3406.0 13582.0 681.0 \n", - "190 921.0 1766.0 23159.0 964.0 1653.0 3038.0 15132.0 562.0 \n", - "191 3412.0 4295.0 101546.0 1945.0 4946.0 6246.0 27512.0 1115.0 \n", - "0 2051.0 2245.0 50529.0 1813.0 972.0 3108.0 14196.0 2007.0 \n", - "1 1474.0 2127.0 14163.0 7869.0 1127.0 2381.0 9777.0 4314.0 \n", - "2 598.0 2798.0 20824.0 2042.0 1855.0 2758.0 10035.0 2649.0 \n", - "3 1168.0 1493.0 20978.0 1159.0 2613.0 3099.0 18637.0 2963.0 \n", - "4 447.0 1061.0 8067.0 2268.0 1512.0 1422.0 12102.0 4516.0 \n", - "5 273.0 1493.0 10865.0 709.0 1370.0 2770.0 14487.0 3258.0 \n", - "6 447.0 711.0 5394.0 806.0 1198.0 1193.0 7645.0 1186.0 \n", - "7 1304.0 3504.0 62364.0 1419.0 1277.0 2438.0 19435.0 614.0 \n", - "8 1529.0 2126.0 12737.0 431.0 4085.0 2528.0 12424.0 2176.0 \n", - "9 3170.0 1681.0 15357.0 464.0 1739.0 4441.0 8020.0 2198.0 \n", - "10 551.0 1271.0 4617.0 271.0 1094.0 1251.0 6732.0 1181.0 \n", - "11 601.0 2355.0 19859.0 2190.0 2872.0 1448.0 18912.0 2000.0 \n", - "12 1142.0 1761.0 37698.0 863.0 4191.0 8027.0 16425.0 930.0 \n", - "13 448.0 2566.0 35878.0 718.0 2332.0 4021.0 12479.0 1850.0 \n", - "14 251.0 690.0 14561.0 1523.0 1180.0 507.0 7014.0 681.0 \n", - "15 180.0 2264.0 16344.0 3108.0 3707.0 1326.0 12002.0 1212.0 \n", - "17 137.0 1011.0 7723.0 360.0 816.0 1746.0 6359.0 2265.0 \n", - "18 774.0 1494.0 20742.0 1370.0 1030.0 2446.0 9447.0 1502.0 \n", - "19 315.0 1592.0 30763.0 2457.0 1558.0 2185.0 12620.0 2382.0 \n", - "20 1218.0 1047.0 16194.0 1064.0 1081.0 1676.0 6051.0 3047.0 \n", - "21 1228.0 3213.0 34765.0 296.0 1363.0 2313.0 19367.0 2696.0 \n", - "22 268.0 2218.0 17573.0 169.0 1437.0 2455.0 20002.0 2141.0 \n", - "23 920.0 2586.0 26040.0 1475.0 1641.0 1645.0 9063.0 1264.0 \n", - "24 7092.0 2810.0 46584.0 2796.0 3933.0 7395.0 19614.0 2292.0 \n", - "25 1655.0 2009.0 14227.0 2102.0 1486.0 2954.0 6365.0 4255.0 \n", - "26 283.0 1351.0 5785.0 412.0 853.0 4641.0 11778.0 2051.0 \n", - "27 407.0 1666.0 14762.0 2407.0 1768.0 3879.0 8437.0 1040.0 \n", - "\n", - " ACLY ACOT11 ... YOD1 YTHDC1 ZBTB16 ZDHHC13 ZFP64 ZNF185 \\\n", - "16 4259.0 4676.0 ... 1069.0 4185.0 416.0 2387.0 2425.0 2809.0 \n", - "57 4120.0 2158.0 ... 18567.0 2869.0 603.0 4019.0 825.0 100273.0 \n", - "58 3257.0 836.0 ... 829.0 2209.0 5362.0 818.0 503.0 461.0 \n", - "74 2965.0 919.0 ... 680.0 2234.0 4683.0 556.0 434.0 438.0 \n", - "84 15858.0 2781.0 ... 2321.0 5970.0 67.0 2713.0 4398.0 3181.0 \n", - "92 10677.0 4915.0 ... 1709.0 5941.0 53533.0 1264.0 1173.0 720.0 \n", - "94 8076.0 1442.0 ... 2775.0 3678.0 3443.0 2089.0 1872.0 22544.0 \n", - "119 6289.0 1789.0 ... 1027.0 3775.0 10003.0 1450.0 780.0 1010.0 \n", - "140 4202.0 1282.0 ... 829.0 3274.0 28984.0 603.0 449.0 387.0 \n", - "143 8483.0 1731.0 ... 1095.0 7690.0 15996.0 343.0 1240.0 785.0 \n", - "150 4495.0 1208.0 ... 1241.0 3609.0 11653.0 1258.0 846.0 1154.0 \n", - "190 5008.0 1164.0 ... 1134.0 2683.0 5547.0 1812.0 628.0 728.0 \n", - "191 15513.0 6728.0 ... 5757.0 7304.0 8099.0 3931.0 2032.0 8893.0 \n", - "0 10221.0 2666.0 ... 4259.0 8476.0 499.0 4678.0 4144.0 37290.0 \n", - "1 14525.0 740.0 ... 1100.0 8363.0 6232.0 1613.0 3442.0 7622.0 \n", - "2 16867.0 1111.0 ... 4319.0 8668.0 2788.0 3655.0 4979.0 12031.0 \n", - "3 16434.0 4050.0 ... 9918.0 6375.0 849.0 5156.0 6012.0 1274.0 \n", - "4 14942.0 134.0 ... 701.0 2748.0 113.0 1582.0 4453.0 2069.0 \n", - "5 10410.0 734.0 ... 1338.0 4142.0 98.0 794.0 2570.0 2511.0 \n", - "6 6400.0 363.0 ... 657.0 3232.0 1871.0 1030.0 1085.0 647.0 \n", - "7 11926.0 1446.0 ... 3569.0 5999.0 3287.0 2634.0 2722.0 2043.0 \n", - "8 35448.0 4548.0 ... 1022.0 4642.0 109.0 3507.0 2191.0 4349.0 \n", - "9 15333.0 2017.0 ... 3653.0 4556.0 25.0 1557.0 1589.0 117.0 \n", - "10 23759.0 522.0 ... 993.0 3957.0 164.0 1963.0 2278.0 9055.0 \n", - "11 41702.0 1851.0 ... 3308.0 5706.0 893.0 4386.0 3015.0 7544.0 \n", - "12 21731.0 2792.0 ... 5912.0 6407.0 980.0 4728.0 2607.0 12930.0 \n", - "13 34728.0 3017.0 ... 4075.0 5910.0 98.0 2081.0 4793.0 5575.0 \n", - "14 2574.0 538.0 ... 788.0 1324.0 668.0 1005.0 674.0 23839.0 \n", - "15 24302.0 3697.0 ... 1726.0 4615.0 129.0 1775.0 2996.0 1382.0 \n", - "17 9038.0 610.0 ... 2434.0 5346.0 118.0 1931.0 1828.0 10196.0 \n", - "18 13209.0 1915.0 ... 2217.0 4824.0 115.0 2044.0 3604.0 14249.0 \n", - "19 14932.0 1471.0 ... 5839.0 4560.0 141.0 1913.0 2820.0 33472.0 \n", - "20 17321.0 668.0 ... 2848.0 8892.0 38.0 2343.0 6012.0 9261.0 \n", - "21 14576.0 1183.0 ... 3997.0 8509.0 1834.0 3018.0 4069.0 10202.0 \n", - "22 21260.0 750.0 ... 1252.0 5710.0 111.0 2821.0 5471.0 4312.0 \n", - "23 7476.0 950.0 ... 1592.0 4062.0 120.0 2398.0 1907.0 34415.0 \n", - "24 33298.0 5466.0 ... 7224.0 9066.0 4225.0 4096.0 4740.0 1062.0 \n", - "25 20165.0 7358.0 ... 1761.0 5831.0 654.0 4684.0 6329.0 12429.0 \n", - "26 25209.0 956.0 ... 2270.0 4177.0 8.0 2434.0 3946.0 5330.0 \n", - "27 7247.0 1235.0 ... 1726.0 5688.0 537.0 1122.0 2116.0 5162.0 \n", - "\n", - " ZNF365 ZNF426 ZNF710 index \n", - "16 16.0 1066.0 3174.0 0 \n", - "57 5333.0 7373.0 4577.0 0 \n", - "58 14.0 481.0 2076.0 0 \n", - "74 2.0 683.0 1666.0 0 \n", - "84 1.0 1258.0 4441.0 0 \n", - "92 614.0 2984.0 2377.0 0 \n", - "94 118.0 1295.0 2643.0 0 \n", - "119 6.0 960.0 3409.0 0 \n", - "140 145.0 1458.0 1912.0 0 \n", - "143 631.0 3486.0 8991.0 0 \n", - "150 47.0 773.0 4229.0 0 \n", - "190 8.0 742.0 2582.0 0 \n", - "191 261.0 2290.0 4765.0 0 \n", - "0 59.0 2606.0 3493.0 1 \n", - "1 1049.0 2530.0 1625.0 1 \n", - "2 134.0 1627.0 3097.0 1 \n", - "3 15.0 3310.0 2802.0 1 \n", - "4 537.0 951.0 2209.0 1 \n", - "5 67.0 808.0 4566.0 1 \n", - "6 45.0 1258.0 1297.0 1 \n", - "7 111.0 3302.0 3772.0 1 \n", - "8 52.0 973.0 3723.0 1 \n", - "9 3.0 1674.0 1752.0 1 \n", - "10 67.0 1467.0 2786.0 1 \n", - "11 26.0 1304.0 3952.0 1 \n", - "12 5.0 1406.0 3217.0 1 \n", - "13 229.0 1527.0 7084.0 1 \n", - "14 457.0 725.0 1516.0 1 \n", - "15 61.0 1753.0 3620.0 1 \n", - "17 164.0 2108.0 3216.0 1 \n", - "18 594.0 2141.0 2748.0 1 \n", - "19 450.0 3785.0 3514.0 1 \n", - "20 153.0 2671.0 5498.0 1 \n", - "21 826.0 912.0 2418.0 1 \n", - "22 87.0 1464.0 1804.0 1 \n", - "23 50.0 1610.0 2542.0 1 \n", - "24 55.0 2645.0 4264.0 1 \n", - "25 4734.0 965.0 3988.0 1 \n", - "26 662.0 1381.0 2428.0 1 \n", - "27 39.0 1193.0 1892.0 1 \n", - "\n", - "[40 rows x 603 columns]" - ] - }, - "execution_count": 87, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "df_test" - ] - }, - { - "cell_type": "code", - "execution_count": 88, - "id": "299ca65d", - "metadata": {}, - "outputs": [], - "source": [ - "X_test=df_test.drop(\"index\",axis=1)\n", - "y_test=df_test['index']" - ] - }, - { - "cell_type": "code", - "execution_count": 89, - "id": "1002a3bf", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "index\n", - "1 27\n", - "0 13\n", - "Name: count, dtype: int64" - ] - }, - "execution_count": 89, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "y_test.value_counts()" - ] - }, - { - "cell_type": "code", - "execution_count": 90, - "id": "4c50c510", - "metadata": {}, - "outputs": [], - "source": [ - "metadata_train = pd.read_csv(\"DS/mRNA_DS_metadata_col_info.csv\")" - ] - }, - { - "cell_type": "code", - "execution_count": 91, - "id": "6730cf89", - "metadata": {}, - "outputs": [], - "source": [ - "df_train= df_train.merge(metadata_train, left_on=\"index\", right_on= \"Unnamed: 0\")" - ] - }, - { - "cell_type": "code", - "execution_count": 92, - "id": "7a8ad8ad", - "metadata": {}, - "outputs": [], - "source": [ - "df_train['title0'] = df_train['title0'].replace('(?i)mucosa|normal|healthy', 0, regex=True)\n" - ] - }, - { - "cell_type": "code", - "execution_count": 93, - "id": "a8cf8643", - "metadata": {}, - "outputs": [], - "source": [ - "df_train['title0'] = df_train['title0'].replace('(?i)Tumor|Cancer|carcinoma', 1, regex=True)" - ] - }, - { - "cell_type": "code", - "execution_count": 94, - "id": "c9e8772b", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "title0\n", - "0 111\n", - "1 108\n", - "Name: count, dtype: int64" - ] - }, - "execution_count": 94, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "df_train['title0'].value_counts()" - ] - }, - { - "cell_type": "code", - "execution_count": 95, - "id": "f5d203aa", - "metadata": {}, - "outputs": [], - "source": [ - "df_train = df_train[pd.to_numeric(df_train['title0'], errors='coerce').notnull()]#remove all non-numeric data from the column." - ] - }, - { - "cell_type": "code", - "execution_count": 96, - "id": "523bdaa6", - "metadata": {}, - "outputs": [], - "source": [ - "df_train= df_train.drop(['index', 'Unnamed: 0'], axis=1)" - ] - }, - { - "cell_type": "code", - "execution_count": 97, - "id": "46a6fb36", - "metadata": {}, - "outputs": [], - "source": [ - "df_train= df_train.rename(columns={\"title0\": \"index\"})" - ] - }, - { - "cell_type": "code", - "execution_count": 98, - "id": "e26f88c5", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "index\n", - "0 111\n", - "1 108\n", - "Name: count, dtype: int64" - ] - }, - "execution_count": 98, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "df_train['index'].value_counts()" - ] - }, - { - "cell_type": "code", - "execution_count": 99, - "id": "fbaf2507", - "metadata": {}, - "outputs": [], - "source": [ - "df_train= df_train.apply(pd.to_numeric)" - ] - }, - { - "cell_type": "code", - "execution_count": 100, - "id": "2e4ab71d", - "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>ABAT</th>\n", - " <th>ABHD5</th>\n", - " <th>ABLIM1</th>\n", - " <th>ABLIM3</th>\n", - " <th>ACAA1</th>\n", - " <th>ACADM</th>\n", - " <th>ACADVL</th>\n", - " <th>ACD</th>\n", - " <th>ACLY</th>\n", - " <th>ACOT11</th>\n", - " <th>...</th>\n", - " <th>YOD1</th>\n", - " <th>YTHDC1</th>\n", - " <th>ZBTB16</th>\n", - " <th>ZDHHC13</th>\n", - " <th>ZFP64</th>\n", - " <th>ZNF185</th>\n", - " <th>ZNF365</th>\n", - " <th>ZNF426</th>\n", - " <th>ZNF710</th>\n", - " <th>index</th>\n", - " </tr>\n", - " </thead>\n", - " <tbody>\n", - " <tr>\n", - " <th>0</th>\n", - " <td>186.000000</td>\n", - " <td>2603.000000</td>\n", - " <td>42653.000000</td>\n", - " <td>220.000000</td>\n", - " <td>2132.000000</td>\n", - " <td>22869.000000</td>\n", - " <td>19775.000000</td>\n", - " <td>4486.000000</td>\n", - " <td>8835.000000</td>\n", - " <td>2332.000000</td>\n", - " <td>...</td>\n", - " <td>222.000000</td>\n", - " <td>295.000000</td>\n", - " <td>4598.000000</td>\n", - " <td>7009.000000</td>\n", - " <td>568.000000</td>\n", - " <td>65123.000000</td>\n", - " <td>56.000000</td>\n", - " <td>308.000000</td>\n", - " <td>10385.000000</td>\n", - " <td>0</td>\n", - " </tr>\n", - " <tr>\n", - " <th>1</th>\n", - " <td>93.000000</td>\n", - " <td>1137.000000</td>\n", - " <td>16493.000000</td>\n", - " <td>69.000000</td>\n", - " <td>1816.000000</td>\n", - " <td>17788.000000</td>\n", - " <td>16870.000000</td>\n", - " <td>7993.000000</td>\n", - " <td>21434.000000</td>\n", - " <td>2211.000000</td>\n", - " <td>...</td>\n", - " <td>78.000000</td>\n", - " <td>144.000000</td>\n", - " <td>2132.000000</td>\n", - " <td>2602.000000</td>\n", - " <td>1720.000000</td>\n", - " <td>13531.000000</td>\n", - " <td>47.000000</td>\n", - " <td>140.000000</td>\n", - " <td>6441.000000</td>\n", - " <td>1</td>\n", - " </tr>\n", - " <tr>\n", - " <th>2</th>\n", - " <td>198.000000</td>\n", - " <td>5593.000000</td>\n", - " <td>53918.000000</td>\n", - " <td>263.000000</td>\n", - " <td>3490.000000</td>\n", - " <td>39276.000000</td>\n", - " <td>25847.000000</td>\n", - " <td>4413.000000</td>\n", - " <td>9212.000000</td>\n", - " <td>7419.000000</td>\n", - " <td>...</td>\n", - " <td>355.000000</td>\n", - " <td>308.000000</td>\n", - " <td>1071.000000</td>\n", - " <td>10289.000000</td>\n", - " <td>379.000000</td>\n", - " <td>65131.000000</td>\n", - " <td>206.000000</td>\n", - " <td>1251.000000</td>\n", - " <td>11768.000000</td>\n", - " <td>0</td>\n", - " </tr>\n", - " <tr>\n", - " <th>3</th>\n", - " <td>104.000000</td>\n", - " <td>1636.000000</td>\n", - " <td>19203.000000</td>\n", - " <td>127.000000</td>\n", - " <td>1518.000000</td>\n", - " <td>17951.000000</td>\n", - " <td>16854.000000</td>\n", - " <td>12800.000000</td>\n", - " <td>11939.000000</td>\n", - " <td>5136.000000</td>\n", - " <td>...</td>\n", - " <td>122.000000</td>\n", - " <td>244.000000</td>\n", - " <td>482.000000</td>\n", - " <td>3578.000000</td>\n", - " <td>1990.000000</td>\n", - " <td>37715.000000</td>\n", - " <td>66.000000</td>\n", - " <td>361.000000</td>\n", - " <td>8517.000000</td>\n", - " <td>1</td>\n", - " </tr>\n", - " <tr>\n", - " <th>4</th>\n", - " <td>205.000000</td>\n", - " <td>4720.000000</td>\n", - " <td>56984.000000</td>\n", - " <td>495.000000</td>\n", - " <td>3309.000000</td>\n", - " <td>24427.000000</td>\n", - " <td>28197.000000</td>\n", - " <td>5718.000000</td>\n", - " <td>8192.000000</td>\n", - " <td>6748.000000</td>\n", - " <td>...</td>\n", - " <td>275.000000</td>\n", - " <td>200.000000</td>\n", - " <td>3632.000000</td>\n", - " <td>7275.000000</td>\n", - " <td>509.000000</td>\n", - " <td>65138.000000</td>\n", - " <td>188.000000</td>\n", - " <td>587.000000</td>\n", - " <td>9390.000000</td>\n", - " <td>0</td>\n", - " </tr>\n", - " <tr>\n", - " <th>...</th>\n", - " <td>...</td>\n", - " <td>...</td>\n", - " <td>...</td>\n", - " <td>...</td>\n", - " <td>...</td>\n", - " <td>...</td>\n", - " <td>...</td>\n", - " <td>...</td>\n", - " <td>...</td>\n", - " <td>...</td>\n", - " <td>...</td>\n", - " <td>...</td>\n", - " <td>...</td>\n", - " <td>...</td>\n", - " <td>...</td>\n", - " <td>...</td>\n", - " <td>...</td>\n", - " <td>...</td>\n", - " <td>...</td>\n", - " <td>...</td>\n", - " <td>...</td>\n", - " </tr>\n", - " <tr>\n", - " <th>214</th>\n", - " <td>4.273622</td>\n", - " <td>5.246957</td>\n", - " <td>9.597787</td>\n", - " <td>6.158036</td>\n", - " <td>7.843278</td>\n", - " <td>7.540486</td>\n", - " <td>10.125865</td>\n", - " <td>8.390029</td>\n", - " <td>7.260406</td>\n", - " <td>7.029879</td>\n", - " <td>...</td>\n", - " <td>4.940705</td>\n", - " <td>9.863287</td>\n", - " <td>6.235713</td>\n", - " <td>7.042848</td>\n", - " <td>7.675928</td>\n", - " <td>7.964469</td>\n", - " <td>6.295932</td>\n", - " <td>5.095579</td>\n", - " <td>8.884501</td>\n", - " <td>1</td>\n", - " </tr>\n", - " <tr>\n", - " <th>215</th>\n", - " <td>5.587715</td>\n", - " <td>5.008800</td>\n", - " <td>8.983841</td>\n", - " <td>8.052282</td>\n", - " <td>8.080951</td>\n", - " <td>8.557505</td>\n", - " <td>9.603772</td>\n", - " <td>8.493015</td>\n", - " <td>6.808220</td>\n", - " <td>7.442001</td>\n", - " <td>...</td>\n", - " <td>4.748696</td>\n", - " <td>9.966924</td>\n", - " <td>6.370717</td>\n", - " <td>6.694095</td>\n", - " <td>7.215412</td>\n", - " <td>9.596515</td>\n", - " <td>6.052377</td>\n", - " <td>5.453787</td>\n", - " <td>8.364667</td>\n", - " <td>1</td>\n", - " </tr>\n", - " <tr>\n", - " <th>216</th>\n", - " <td>4.448848</td>\n", - " <td>5.210555</td>\n", - " <td>9.464238</td>\n", - " <td>6.475869</td>\n", - " <td>7.987815</td>\n", - " <td>8.141677</td>\n", - " <td>9.614827</td>\n", - " <td>8.336654</td>\n", - " <td>7.629702</td>\n", - " <td>7.163679</td>\n", - " <td>...</td>\n", - " <td>5.044658</td>\n", - " <td>9.909041</td>\n", - " <td>6.399272</td>\n", - " <td>6.468483</td>\n", - " <td>7.134219</td>\n", - " <td>8.123325</td>\n", - " <td>6.016430</td>\n", - " <td>5.066430</td>\n", - " <td>8.760867</td>\n", - " <td>1</td>\n", - " </tr>\n", - " <tr>\n", - " <th>217</th>\n", - " <td>5.032263</td>\n", - " <td>4.849188</td>\n", - " <td>9.468484</td>\n", - " <td>7.966742</td>\n", - " <td>8.143446</td>\n", - " <td>8.049146</td>\n", - " <td>9.544212</td>\n", - " <td>8.524367</td>\n", - " <td>6.777896</td>\n", - " <td>7.389599</td>\n", - " <td>...</td>\n", - " <td>4.971315</td>\n", - " <td>10.181616</td>\n", - " <td>6.812211</td>\n", - " <td>8.065029</td>\n", - " <td>7.252720</td>\n", - " <td>8.542159</td>\n", - " <td>6.113286</td>\n", - " <td>5.045287</td>\n", - " <td>8.657596</td>\n", - " <td>1</td>\n", - " </tr>\n", - " <tr>\n", - " <th>218</th>\n", - " <td>4.461845</td>\n", - " <td>4.846861</td>\n", - " <td>7.099264</td>\n", - " <td>6.269944</td>\n", - " <td>8.190815</td>\n", - " <td>8.865402</td>\n", - " <td>10.212028</td>\n", - " <td>8.615630</td>\n", - " <td>7.266994</td>\n", - " <td>7.081327</td>\n", - " <td>...</td>\n", - " <td>5.060393</td>\n", - " <td>10.228238</td>\n", - " <td>6.012290</td>\n", - " <td>6.759003</td>\n", - " <td>7.871117</td>\n", - " <td>6.893819</td>\n", - " <td>5.949150</td>\n", - " <td>5.135424</td>\n", - " <td>8.292854</td>\n", - " <td>1</td>\n", - " </tr>\n", - " </tbody>\n", - "</table>\n", - "<p>219 rows × 578 columns</p>\n", - "</div>" - ], - "text/plain": [ - " ABAT ABHD5 ABLIM1 ABLIM3 ACAA1 \\\n", - "0 186.000000 2603.000000 42653.000000 220.000000 2132.000000 \n", - "1 93.000000 1137.000000 16493.000000 69.000000 1816.000000 \n", - "2 198.000000 5593.000000 53918.000000 263.000000 3490.000000 \n", - "3 104.000000 1636.000000 19203.000000 127.000000 1518.000000 \n", - "4 205.000000 4720.000000 56984.000000 495.000000 3309.000000 \n", - ".. ... ... ... ... ... \n", - "214 4.273622 5.246957 9.597787 6.158036 7.843278 \n", - "215 5.587715 5.008800 8.983841 8.052282 8.080951 \n", - "216 4.448848 5.210555 9.464238 6.475869 7.987815 \n", - "217 5.032263 4.849188 9.468484 7.966742 8.143446 \n", - "218 4.461845 4.846861 7.099264 6.269944 8.190815 \n", - "\n", - " ACADM ACADVL ACD ACLY ACOT11 ... \\\n", - "0 22869.000000 19775.000000 4486.000000 8835.000000 2332.000000 ... \n", - "1 17788.000000 16870.000000 7993.000000 21434.000000 2211.000000 ... \n", - "2 39276.000000 25847.000000 4413.000000 9212.000000 7419.000000 ... \n", - "3 17951.000000 16854.000000 12800.000000 11939.000000 5136.000000 ... \n", - "4 24427.000000 28197.000000 5718.000000 8192.000000 6748.000000 ... \n", - ".. ... ... ... ... ... ... \n", - "214 7.540486 10.125865 8.390029 7.260406 7.029879 ... \n", - "215 8.557505 9.603772 8.493015 6.808220 7.442001 ... \n", - "216 8.141677 9.614827 8.336654 7.629702 7.163679 ... \n", - "217 8.049146 9.544212 8.524367 6.777896 7.389599 ... \n", - "218 8.865402 10.212028 8.615630 7.266994 7.081327 ... \n", - "\n", - " YOD1 YTHDC1 ZBTB16 ZDHHC13 ZFP64 \\\n", - "0 222.000000 295.000000 4598.000000 7009.000000 568.000000 \n", - "1 78.000000 144.000000 2132.000000 2602.000000 1720.000000 \n", - "2 355.000000 308.000000 1071.000000 10289.000000 379.000000 \n", - "3 122.000000 244.000000 482.000000 3578.000000 1990.000000 \n", - "4 275.000000 200.000000 3632.000000 7275.000000 509.000000 \n", - ".. ... ... ... ... ... \n", - "214 4.940705 9.863287 6.235713 7.042848 7.675928 \n", - "215 4.748696 9.966924 6.370717 6.694095 7.215412 \n", - "216 5.044658 9.909041 6.399272 6.468483 7.134219 \n", - "217 4.971315 10.181616 6.812211 8.065029 7.252720 \n", - "218 5.060393 10.228238 6.012290 6.759003 7.871117 \n", - "\n", - " ZNF185 ZNF365 ZNF426 ZNF710 index \n", - "0 65123.000000 56.000000 308.000000 10385.000000 0 \n", - "1 13531.000000 47.000000 140.000000 6441.000000 1 \n", - "2 65131.000000 206.000000 1251.000000 11768.000000 0 \n", - "3 37715.000000 66.000000 361.000000 8517.000000 1 \n", - "4 65138.000000 188.000000 587.000000 9390.000000 0 \n", - ".. ... ... ... ... ... \n", - "214 7.964469 6.295932 5.095579 8.884501 1 \n", - "215 9.596515 6.052377 5.453787 8.364667 1 \n", - "216 8.123325 6.016430 5.066430 8.760867 1 \n", - "217 8.542159 6.113286 5.045287 8.657596 1 \n", - "218 6.893819 5.949150 5.135424 8.292854 1 \n", - "\n", - "[219 rows x 578 columns]" - ] - }, - "execution_count": 100, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "df_train" - ] - }, - { - "cell_type": "code", - "execution_count": 101, - "id": "38a993d9", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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ne3vvfdeE1seutzc3Dptf+qppwLe58SJExg1ahSSk5MRHx+P6667Dvv37zepxaHZuXMnRowYgVatWqFRo0Y488wzkZ+fj5MnTwa8n50+2zlz5iA3NxcNGzZE165d8fXXXwfcfvHixTj77LPRsGFDdOrUCR9++KFJLQ3P1KlTceGFF+KMM85AWloarr32WmzdujXgfebPn1/nc2zYsKFJLQ7dpEmT6rT77LPPDngfu36ugP/fI5fLhVGjRvnd3k6f6xdffIEBAwYgMzMTLpcL77//vtftQghMnDgRGRkZaNSoEfr06YPt27cHfVyt3/tAHBnUnDx5EjfccAPuu+8+v7e73W5cddVVOHnyJFavXo033ngD8+fPx8SJEwM+7k033YRNmzZh6dKl+Pe//40vvvgCd999txEvIWTdunXD3r17vS533nknWrVqhS5dugS871133eV1v2eeecakVodv8uTJXm1/4IEHAm7/0EMP4V//+hcWL16Mzz//HL/88gvy8vJMam1otmzZgpqaGsybNw+bNm3CrFmz8NJLL+Hvf/970Pva4bN99913MXbsWOTn5+O7777Dueeei759+6KiosLv9qtXr8bQoUMxYsQIrFu3Dtdeey2uvfZabNy40eSWa/f5559j1KhR+Oqrr7B06VKcOnUKf/nLX/D7778HvF9CQoLX57hr1y6TWhyeDh06eLV75cqVitva+XMFgG+++cbrtS5duhRA4EKxdvlcf//9d5x77rmYM2eO39ufeeYZPP/883jppZewZs0aNGnSBH379sWJEycUH1Pr9z4oPRamtKrXX39dNG3atM71H374oYiJiRH79u3zXDd37lyRkJAgqqqq/D6WvBjmN99847nuo48+Ei6XS5SXl+vedr2cPHlSpKamismTJwfcrmfPnmL06NHmNEpnOTk5YtasWaq3P3z4sKhfv75YvHix57rNmzcLAOLLL780oIXGeeaZZ0SrVq0CbmOXz/aiiy4So0aN8vztdrtFZmammDp1qt/tb7zxRnHVVVd5Xde1a1dxzz33GNpOI1RUVAgA4vPPP1fcRun3zOry8/PFueeeq3p7J32uQggxevRoceaZZ4qamhq/t9v1cwUg/vnPf3r+rqmpEc2bNxfTpk3zXHf48GERFxcnFi5cqPg4Wr/3wTiypyaYL7/8Ep06dUJ6errnur59++LIkSPYtGmT4n0SExO9ejv69OmDmJgYrFmzxvA2h+qDDz7AwYMHcfvttwfddsGCBUhJSUHHjh3x6KOP4tixYya0UB9PPfUUkpOTcf7552PatGkBhxLXrl2LU6dOoU+fPp7rzj77bLRs2RJffvmlGc3VTWVlJZKSkoJuZ/XP9uTJk1i7dq3XZxITE4M+ffoofiZffvml1/aA9D2222cISJ8jgKCf5dGjR5GTk4Ps7GwMHDhQ8ffKarZv347MzEy0bt0aN910U8CFiJ30uZ48eRJvv/027rjjDrhcLsXt7Pq51lZWVoZ9+/Z5fXZNmzZF165dFT+7UL73wdimorCe9u3b5xXQAPD8vW/fPsX7pKWleV1Xr149JCUlKd7HCv7xj3+gb9++yMrKCrjdsGHDkJOTg8zMTPz3v//FI488gq1bt6K4uNiklobuwQcfxAUXXICkpCSsXr0ajz76KPbu3YuZM2f63X7fvn1o0KBBnXyr9PR0S3+Wvnbs2IHZs2cHrbJth8/2119/hdvt9vu93LJli9/7KH2P7fQZAkBNTQ3GjBmD7t27o2PHjorbtWvXDq+99ho6d+6MyspKTJ8+Hd26dcOmTZuCfr8jqWvXrpg/fz7atWuHvXv3oqCgAD169MDGjRtxxhln1NneKZ8rALz//vs4fPgwhg8frriNXT9XX/Lno+WzC+V7H4xtgpq//e1vePrppwNus3nz5qAJaHYVyuvfs2cPPvnkEyxatCjo49fODerUqRMyMjJw+eWX48cff8SZZ54ZesNDpOX1jh071nNd586d0aBBA9xzzz2YOnWqLcqQh/LZlpeXo1+/frjhhhtw1113Bbyv1T5b8jZq1Chs3LgxYJ4JAFxyySW45JJLPH9369YN7du3x7x58/D4448b3cyQ9e/f3/P/zp07o2vXrsjJycGiRYswYsSICLbMeP/4xz/Qv39/ZGZmKm5j18/VqmwT1IwbNy5gtAsArVu3VvVYzZs3r5NdLc98ad68ueJ9fBOXqqurcejQIcX76CmU1//6668jOTkZ11xzjebn69q1KwCpNyASB75wPu+uXbuiuroaO3fuRLt27erc3rx5c5w8eRKHDx/26q3Zv3+/KZ+lL62v9ZdffkHv3r3RrVs3vPzyy5qfL9KfrT8pKSmIjY2tMwMt0GfSvHlzTdtb0f333++ZdKD1rLx+/fo4//zzsWPHDoNaZ4zExES0bdtWsd1O+FwBYNeuXVi2bJnmHlG7fq7y57N//35kZGR4rt+/fz/OO+88v/cJ5XsfVEiZODYRLFF4//79nuvmzZsnEhISxIkTJ/w+lpwo/O2333qu++STTyybKFxTUyNatWolxo0bF9L9V65cKQCI9evX69wy47399tsiJiZGHDp0yO/tcqLwe++957luy5YttkgU3rNnjzjrrLPEkCFDRHV1dUiPYdXP9qKLLhL333+/52+32y1atGgRMFH46quv9rrukksusUVCaU1NjRg1apTIzMwU27ZtC+kxqqurRbt27cRDDz2kc+uM9b///U80a9ZMPPfcc35vt/PnWlt+fr5o3ry5OHXqlKb72eVzhUKi8PTp0z3XVVZWqkoU1vK9D9qukO5lcbt27RLr1q0TBQUFIj4+Xqxbt06sW7dO/O9//xNCSDtNx44dxV/+8hfx/fffi48//likpqaKRx991PMYa9asEe3atRN79uzxXNevXz9x/vnnizVr1oiVK1eKs846SwwdOtT016fGsmXLBACxefPmOrft2bNHtGvXTqxZs0YIIcSOHTvE5MmTxbfffivKysrEkiVLROvWrcWll15qdrM1W716tZg1a5b4/vvvxY8//ijefvttkZqaKm699VbPNr6vVwgh7r33XtGyZUvx2WefiW+//VZccskl4pJLLonES1Btz549ok2bNuLyyy8Xe/bsEXv37vVcam9j18/2nXfeEXFxcWL+/Pnihx9+EHfffbdITEz0zFK85ZZbxN/+9jfP9qtWrRL16tUT06dPF5s3bxb5+fmifv36YsOGDZF6Cardd999omnTpqK0tNTrczx27JhnG9/XW1BQID755BPx448/irVr14ohQ4aIhg0bik2bNkXiJag2btw4UVpaKsrKysSqVatEnz59REpKiqioqBBCOOtzlbndbtGyZUvxyCOP1LnNzp/r//73P8/xFICYOXOmWLdundi1a5cQQoinnnpKJCYmiiVLloj//ve/YuDAgaJVq1bi+PHjnse47LLLxOzZsz1/B/vea+XIoOa2224TAOpcSkpKPNvs3LlT9O/fXzRq1EikpKSIcePGeUXUJSUlAoAoKyvzXHfw4EExdOhQER8fLxISEsTtt9/uCZSsZujQoaJbt25+bysrK/N6P37++Wdx6aWXiqSkJBEXFyfatGkjxo8fLyorK01scWjWrl0runbtKpo2bSoaNmwo2rdvL6ZMmeLV4+b7eoUQ4vjx42LkyJGiWbNmonHjxmLQoEFewYEVvf76637369odrnb/bGfPni1atmwpGjRoIC666CLx1VdfeW7r2bOnuO2227y2X7RokWjbtq1o0KCB6NChg/jPf/5jcotDo/Q5vv76655tfF/vmDFjPO9Nenq6uPLKK8V3331nfuM1Gjx4sMjIyBANGjQQLVq0EIMHDxY7duzw3O6kz1X2ySefCABi69atdW6z8+cqHxd9L/LrqampEY899phIT08XcXFx4vLLL6/zHuTk5Ij8/Hyv6wJ977VyCSFEaANXRERERNYRlXVqiIiIyHkY1BAREZEjMKghIiIiR2BQQ0RERI7AoIaIiIgcgUENEREROQKDGiIiInIEBjVEpBuXy4X3338/0s0IqLS0FC6XC4cPH450U4hIZwxqiCig4cOHw+VyweVyoX79+khPT8cVV1yB1157DTU1NV7b7t2712tVZivq1q0b9u7di6ZNmxr6PF988QUGDBiAzMxMWwR7RE7AoIaIgurXrx/27t2LnTt34qOPPkLv3r0xevRoXH311aiurvZs17x5c8TFxUWwpcE1aNAAzZs3h8vlMvR5fv/9d5x77rmYM2eOoc9DRKcxqCGioOLi4tC8eXO0aNECF1xwAf7+979jyZIl+OijjzB//nzPdrV7JHbu3AmXy4VFixahR48eaNSoES688EJs27YN33zzDbp06YL4+Hj0798fBw4c8Hq+V199Fe3bt0fDhg1x9tln48UXX/TcJj9ucXExevfujcaNG+Pcc8/Fl19+6dlm165dGDBgAJo1a4YmTZqgQ4cO+PDDDwH4H34qKipChw4dEBcXh9zcXMyYMcOrPbm5uZgyZQruuOMOnHHGGWjZsiVefvnlgO9Z//798cQTT2DQoEFa3moiCgODGiIKyWWXXYZzzz0XxcXFAbfLz8/H//3f/+G7775DvXr1MGzYMDz88MN47rnnsGLFCuzYsQMTJ070bL9gwQJMnDgRTz75JDZv3owpU6bgsccewxtvvOH1uBMmTMBf//pXfP/992jbti2GDh3q6TUaNWoUqqqq8MUXX2DDhg14+umnER8f77d9a9euxY033oghQ4Zgw4YNmDRpEh577DGvYA0AZsyYgS5dumDdunUYOXIk7rvvPmzdujWEd46IDBPyUphEFBVuu+02MXDgQL+3DR48WLRv397zNwDxz3/+UwhxesXwV1991XP7woULBQCxfPlyz3VTp04V7dq18/x95plnisLCQq/nefzxx8Ull1yi+LibNm0SAMTmzZuFEEJ06tRJTJo0yW+b5ZWGf/vtNyGEEMOGDRNXXHGF1zbjx48X55xzjufvnJwccfPNN3v+rqmpEWlpaWLu3Ll+n8NX7feFiIzDnhoiCpkQImhuSufOnT3/T09PBwB06tTJ67qKigoAUh7Kjz/+iBEjRiA+Pt5zeeKJJ/Djjz8qPm5GRgYAeB7nwQcfxBNPPIHu3bsjPz8f//3vfxXbt3nzZnTv3t3ruu7du2P79u1wu91+n8/lcqF58+ae5yMia2BQQ0Qh27x5M1q1ahVwm/r163v+LwdAvtfJs6iOHj0KAHjllVfw/fffey4bN27EV199FfRx5ce588478dNPP+GWW27Bhg0b0KVLF8yePTvUl1nn+XzbTUTWwKCGiELy2WefYcOGDbjuuut0e8z09HRkZmbip59+Qps2bbwuwYInX9nZ2bj33ntRXFyMcePG4ZVXXvG7Xfv27bFq1Sqv61atWoW2bdsiNjY25NdCROarF+kGEJH1VVVVYd++fXC73di/fz8+/vhjTJ06FVdffTVuvfVWXZ+roKAADz74IJo2bYp+/fqhqqoK3377LX777TeMHTtW1WOMGTMG/fv3R9u2bfHbb7+hpKQE7du397vtuHHjcOGFF+Lxxx/H4MGD8eWXX+KFF17wmnEViqNHj2LHjh2ev8vKyvD9998jKSkJLVu2DOuxicg/BjVEFNTHH3+MjIwM1KtXD82aNcO5556L559/HrfddhtiYvTt8L3zzjvRuHFjTJs2DePHj0eTJk3QqVMnjBkzRvVjuN1ujBo1Cnv27EFCQgL69euHWbNm+d32ggsuwKJFizBx4kQ8/vjjyMjIwOTJkzF8+PCwXse3336L3r17e/6WA7LbbrutzswqItKHSwghIt0IIiIionAxp4aIiIgcgUENEREROQKDGiIiInIEBjVERETkCAxqiIiIyBEY1BAREZEjMKghIiIiR2BQQ0RERI7AoIaIiIgcgUENEREROQKDGiIiInIEBjVERETkCP8P9O8AhUEFCakAAAAASUVORK5CYII=", - "text/plain": [ - "<Figure size 640x480 with 1 Axes>" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "from sklearn.manifold import TSNE\n", - "# Assuming your data is stored in the variable 'data'\n", - "tsne = TSNE(n_components=3)\n", - "embedded_data = tsne.fit_transform(df_train)\n", - "\n", - "# Step 2: Separate data points by class\n", - "class_1_indices = np.where(df_train['index'] == 0)[0]\n", - "class_2_indices = np.where(df_train['index'] == 1)[0]\n", - "\n", - "class_1_data = embedded_data[class_1_indices]\n", - "class_2_data = embedded_data[class_2_indices]\n", - "\n", - "# Step 3: Plot the t-SNE plot with different colors for each class\n", - "plt.scatter(class_1_data[:, 0], class_1_data[:, 1], color='red', label='Non-Cancer')\n", - "plt.scatter(class_2_data[:, 0], class_2_data[:, 1], color='blue', label='Cancer')\n", - "\n", - "plt.title('t-SNE Plot')\n", - "plt.xlabel('Dimension 1')\n", - "plt.ylabel('Dimension 2')\n", - "plt.legend()\n", - "plt.show()" - ] - }, - { - "cell_type": "code", - "execution_count": 102, - "id": "776cfbee", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "index\n", - "0 111\n", - "1 108\n", - "Name: count, dtype: int64" - ] - }, - "execution_count": 102, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "df_train['index'].value_counts()" - ] - }, - { - "cell_type": "code", - "execution_count": 103, - "id": "8c0011ea", - "metadata": {}, - "outputs": [], - "source": [ - "X=df_train.drop(\"index\",axis=1)\n", - "y=df_train['index']" - ] - }, - { - "cell_type": "code", - "execution_count": 104, - "id": "a10804ed", - "metadata": {}, - "outputs": [], - "source": [ - "X=X.astype('int')" - ] - }, - { - "cell_type": "code", - "execution_count": 105, - "id": "93e28118", - "metadata": {}, - "outputs": [], - "source": [ - "y=y.astype('int')" - ] - }, - { - "cell_type": "code", - "execution_count": 106, - "id": "6c51e47a", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "index\n", - "1 27\n", - "0 13\n", - "Name: count, dtype: int64" - ] - }, - "execution_count": 106, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "y_test.value_counts()" - ] - }, - { - "cell_type": "markdown", - "id": "e9830b6c", - "metadata": {}, - "source": [ - "# Feature Selection" - ] - }, - { - "cell_type": "code", - "execution_count": 107, - "id": "f0f1977f", - "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>ABAT</th>\n", - " <th>ABHD5</th>\n", - " <th>ABLIM1</th>\n", - " <th>ABLIM3</th>\n", - " <th>ACAA1</th>\n", - " <th>ACADM</th>\n", - " <th>ACADVL</th>\n", - " <th>ACD</th>\n", - " <th>ACLY</th>\n", - " <th>ACOT11</th>\n", - " <th>...</th>\n", - " <th>XYLT1</th>\n", - " <th>YOD1</th>\n", - " <th>YTHDC1</th>\n", - " <th>ZBTB16</th>\n", - " <th>ZDHHC13</th>\n", - " <th>ZFP64</th>\n", - " <th>ZNF185</th>\n", - " <th>ZNF365</th>\n", - " <th>ZNF426</th>\n", - " <th>ZNF710</th>\n", - " </tr>\n", - " </thead>\n", - " <tbody>\n", - " <tr>\n", - " <th>0</th>\n", - " <td>186</td>\n", - " <td>2603</td>\n", - " <td>42653</td>\n", - " <td>220</td>\n", - " <td>2132</td>\n", - " <td>22869</td>\n", - " <td>19775</td>\n", - " <td>4486</td>\n", - " <td>8835</td>\n", - " <td>2332</td>\n", - " <td>...</td>\n", - " <td>392</td>\n", - " <td>222</td>\n", - " <td>295</td>\n", - " <td>4598</td>\n", - " <td>7009</td>\n", - " <td>568</td>\n", - " <td>65123</td>\n", - " <td>56</td>\n", - " <td>308</td>\n", - " <td>10385</td>\n", - " </tr>\n", - " <tr>\n", - " <th>1</th>\n", - " <td>93</td>\n", - " <td>1137</td>\n", - " <td>16493</td>\n", - " <td>69</td>\n", - " <td>1816</td>\n", - " <td>17788</td>\n", - " <td>16870</td>\n", - " <td>7993</td>\n", - " <td>21434</td>\n", - " <td>2211</td>\n", - " <td>...</td>\n", - " <td>62</td>\n", - " <td>78</td>\n", - " <td>144</td>\n", - " <td>2132</td>\n", - " <td>2602</td>\n", - " <td>1720</td>\n", - " <td>13531</td>\n", - " <td>47</td>\n", - " <td>140</td>\n", - " <td>6441</td>\n", - " </tr>\n", - " <tr>\n", - " <th>2</th>\n", - " <td>198</td>\n", - " <td>5593</td>\n", - " <td>53918</td>\n", - " <td>263</td>\n", - " <td>3490</td>\n", - " <td>39276</td>\n", - " <td>25847</td>\n", - " <td>4413</td>\n", - " <td>9212</td>\n", - " <td>7419</td>\n", - " <td>...</td>\n", - " <td>481</td>\n", - " <td>355</td>\n", - " <td>308</td>\n", - " <td>1071</td>\n", - " <td>10289</td>\n", - " <td>379</td>\n", - " <td>65131</td>\n", - " <td>206</td>\n", - " <td>1251</td>\n", - " <td>11768</td>\n", - " </tr>\n", - " <tr>\n", - " <th>3</th>\n", - " <td>104</td>\n", - " <td>1636</td>\n", - " <td>19203</td>\n", - " <td>127</td>\n", - " <td>1518</td>\n", - " <td>17951</td>\n", - " <td>16854</td>\n", - " <td>12800</td>\n", - " <td>11939</td>\n", - " <td>5136</td>\n", - " <td>...</td>\n", - " <td>213</td>\n", - " <td>122</td>\n", - " <td>244</td>\n", - " <td>482</td>\n", - " <td>3578</td>\n", - " <td>1990</td>\n", - " <td>37715</td>\n", - " <td>66</td>\n", - " <td>361</td>\n", - " <td>8517</td>\n", - " </tr>\n", - " <tr>\n", - " <th>4</th>\n", - " <td>205</td>\n", - " <td>4720</td>\n", - " <td>56984</td>\n", - " <td>495</td>\n", - " <td>3309</td>\n", - " <td>24427</td>\n", - " <td>28197</td>\n", - " <td>5718</td>\n", - " <td>8192</td>\n", - " <td>6748</td>\n", - " <td>...</td>\n", - " <td>169</td>\n", - " <td>275</td>\n", - " <td>200</td>\n", - " <td>3632</td>\n", - " <td>7275</td>\n", - " <td>509</td>\n", - " <td>65138</td>\n", - " <td>188</td>\n", - " <td>587</td>\n", - " <td>9390</td>\n", - " </tr>\n", - " <tr>\n", - " <th>...</th>\n", - " <td>...</td>\n", - " <td>...</td>\n", - " <td>...</td>\n", - " <td>...</td>\n", - " <td>...</td>\n", - " <td>...</td>\n", - " <td>...</td>\n", - " <td>...</td>\n", - " <td>...</td>\n", - " <td>...</td>\n", - " <td>...</td>\n", - " <td>...</td>\n", - " <td>...</td>\n", - " <td>...</td>\n", - " <td>...</td>\n", - " <td>...</td>\n", - " <td>...</td>\n", - " <td>...</td>\n", - " <td>...</td>\n", - " <td>...</td>\n", - " <td>...</td>\n", - " </tr>\n", - " <tr>\n", - " <th>214</th>\n", - " <td>4</td>\n", - " <td>5</td>\n", - " <td>9</td>\n", - " <td>6</td>\n", - " <td>7</td>\n", - " <td>7</td>\n", - " <td>10</td>\n", - " <td>8</td>\n", - " <td>7</td>\n", - " <td>7</td>\n", - " <td>...</td>\n", - " <td>7</td>\n", - " <td>4</td>\n", - " <td>9</td>\n", - " <td>6</td>\n", - " <td>7</td>\n", - " <td>7</td>\n", - " <td>7</td>\n", - " <td>6</td>\n", - " <td>5</td>\n", - " <td>8</td>\n", - " </tr>\n", - " <tr>\n", - " <th>215</th>\n", - " <td>5</td>\n", - " <td>5</td>\n", - " <td>8</td>\n", - " <td>8</td>\n", - " <td>8</td>\n", - " <td>8</td>\n", - " <td>9</td>\n", - " <td>8</td>\n", - " <td>6</td>\n", - " <td>7</td>\n", - " <td>...</td>\n", - " <td>7</td>\n", - " <td>4</td>\n", - " <td>9</td>\n", - " <td>6</td>\n", - " <td>6</td>\n", - " <td>7</td>\n", - " <td>9</td>\n", - " <td>6</td>\n", - " <td>5</td>\n", - " <td>8</td>\n", - " </tr>\n", - " <tr>\n", - " <th>216</th>\n", - " <td>4</td>\n", - " <td>5</td>\n", - " <td>9</td>\n", - " <td>6</td>\n", - " <td>7</td>\n", - " <td>8</td>\n", - " <td>9</td>\n", - " <td>8</td>\n", - " <td>7</td>\n", - " <td>7</td>\n", - " <td>...</td>\n", - " <td>7</td>\n", - " <td>5</td>\n", - " <td>9</td>\n", - " <td>6</td>\n", - " <td>6</td>\n", - " <td>7</td>\n", - " <td>8</td>\n", - " <td>6</td>\n", - " <td>5</td>\n", - " <td>8</td>\n", - " </tr>\n", - " <tr>\n", - " <th>217</th>\n", - " <td>5</td>\n", - " <td>4</td>\n", - " <td>9</td>\n", - " <td>7</td>\n", - " <td>8</td>\n", - " <td>8</td>\n", - " <td>9</td>\n", - " <td>8</td>\n", - " <td>6</td>\n", - " <td>7</td>\n", - " <td>...</td>\n", - " <td>7</td>\n", - " <td>4</td>\n", - " <td>10</td>\n", - " <td>6</td>\n", - " <td>8</td>\n", - " <td>7</td>\n", - " <td>8</td>\n", - " <td>6</td>\n", - " <td>5</td>\n", - " <td>8</td>\n", - " </tr>\n", - " <tr>\n", - " <th>218</th>\n", - " <td>4</td>\n", - " <td>4</td>\n", - " <td>7</td>\n", - " <td>6</td>\n", - " <td>8</td>\n", - " <td>8</td>\n", - " <td>10</td>\n", - " <td>8</td>\n", - " <td>7</td>\n", - " <td>7</td>\n", - " <td>...</td>\n", - " <td>6</td>\n", - " <td>5</td>\n", - " <td>10</td>\n", - " <td>6</td>\n", - " <td>6</td>\n", - " <td>7</td>\n", - " <td>6</td>\n", - " <td>5</td>\n", - " <td>5</td>\n", - " <td>8</td>\n", - " </tr>\n", - " </tbody>\n", - "</table>\n", - "<p>219 rows × 577 columns</p>\n", - "</div>" - ], - "text/plain": [ - " ABAT ABHD5 ABLIM1 ABLIM3 ACAA1 ACADM ACADVL ACD ACLY ACOT11 \\\n", - "0 186 2603 42653 220 2132 22869 19775 4486 8835 2332 \n", - "1 93 1137 16493 69 1816 17788 16870 7993 21434 2211 \n", - "2 198 5593 53918 263 3490 39276 25847 4413 9212 7419 \n", - "3 104 1636 19203 127 1518 17951 16854 12800 11939 5136 \n", - "4 205 4720 56984 495 3309 24427 28197 5718 8192 6748 \n", - ".. ... ... ... ... ... ... ... ... ... ... \n", - "214 4 5 9 6 7 7 10 8 7 7 \n", - "215 5 5 8 8 8 8 9 8 6 7 \n", - "216 4 5 9 6 7 8 9 8 7 7 \n", - "217 5 4 9 7 8 8 9 8 6 7 \n", - "218 4 4 7 6 8 8 10 8 7 7 \n", - "\n", - " ... XYLT1 YOD1 YTHDC1 ZBTB16 ZDHHC13 ZFP64 ZNF185 ZNF365 ZNF426 \\\n", - "0 ... 392 222 295 4598 7009 568 65123 56 308 \n", - "1 ... 62 78 144 2132 2602 1720 13531 47 140 \n", - "2 ... 481 355 308 1071 10289 379 65131 206 1251 \n", - "3 ... 213 122 244 482 3578 1990 37715 66 361 \n", - "4 ... 169 275 200 3632 7275 509 65138 188 587 \n", - ".. ... ... ... ... ... ... ... ... ... ... \n", - "214 ... 7 4 9 6 7 7 7 6 5 \n", - "215 ... 7 4 9 6 6 7 9 6 5 \n", - "216 ... 7 5 9 6 6 7 8 6 5 \n", - "217 ... 7 4 10 6 8 7 8 6 5 \n", - "218 ... 6 5 10 6 6 7 6 5 5 \n", - "\n", - " ZNF710 \n", - "0 10385 \n", - "1 6441 \n", - "2 11768 \n", - "3 8517 \n", - "4 9390 \n", - ".. ... \n", - "214 8 \n", - "215 8 \n", - "216 8 \n", - "217 8 \n", - "218 8 \n", - "\n", - "[219 rows x 577 columns]" - ] - }, - "execution_count": 107, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "X" - ] - }, - { - "cell_type": "code", - "execution_count": 108, - "id": "1cc528fb", - "metadata": {}, - "outputs": [], - "source": [ - "# LASSO model:\n", - "lasso = Lasso(alpha=1)\n", - "# fitting the model:\n", - "lasso.fit(X, y)\n", - "# select all coefficients and the feature names\n", - "lasso_coefs = lasso.coef_\n", - "feature_names = X.columns\n", - "\n", - "# collect the selected features:\n", - "selected_feature_indices = np.nonzero(lasso_coefs)[0]\n", - "selected_features = [feature_names[i] for i in selected_feature_indices]\n", - "X_selected = X.iloc[:, selected_feature_indices]" - ] - }, - { - "cell_type": "code", - "execution_count": 109, - "id": "8afa29ae", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "98" - ] - }, - "execution_count": 109, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "len(selected_features)" - ] - }, - { - "cell_type": "markdown", - "id": "6cee6462", - "metadata": {}, - "source": [ - "# Test train split" - ] - }, - { - "cell_type": "code", - "execution_count": 110, - "id": "cff9bd67", - "metadata": {}, - "outputs": [], - "source": [ - "X_train = X_selected\n", - "y_train = y" - ] - }, - { - "cell_type": "code", - "execution_count": 111, - "id": "129430e6", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "(index\n", - " 1 27\n", - " 0 13\n", - " Name: count, dtype: int64,\n", - " index\n", - " 0 111\n", - " 1 108\n", - " Name: count, dtype: int64)" - ] - }, - "execution_count": 111, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "y_test.value_counts(),y_train.value_counts()" - ] - }, - { - "cell_type": "markdown", - "id": "1cfe2a06", - "metadata": {}, - "source": [ - "# Cross validation" - ] - }, - { - "cell_type": "code", - "execution_count": 112, - "id": "059bf577", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Fitting 5 folds for each of 3 candidates, totalling 15 fits\n", - "[CV 1/5] END learning_rate=0.1, max_depth=3, n_estimators=100;, score=0.886 total time= 0.1s\n", - "[CV 2/5] END learning_rate=0.1, max_depth=3, n_estimators=100;, score=0.955 total time= 0.1s\n", - "[CV 3/5] END learning_rate=0.1, max_depth=3, n_estimators=100;, score=0.977 total time= 0.1s\n", - "[CV 4/5] END learning_rate=0.1, max_depth=3, n_estimators=100;, score=0.932 total time= 0.1s\n", - "[CV 5/5] END learning_rate=0.1, max_depth=3, n_estimators=100;, score=0.953 total time= 0.1s\n", - "[CV 1/5] END learning_rate=0.01, max_depth=3, n_estimators=100;, score=0.773 total time= 0.1s\n", - "[CV 2/5] END learning_rate=0.01, max_depth=3, n_estimators=100;, score=0.932 total time= 0.1s\n", - "[CV 3/5] END learning_rate=0.01, max_depth=3, n_estimators=100;, score=0.955 total time= 0.1s\n", - "[CV 4/5] END learning_rate=0.01, max_depth=3, n_estimators=100;, score=0.886 total time= 0.1s\n", - "[CV 5/5] END learning_rate=0.01, max_depth=3, n_estimators=100;, score=0.884 total time= 0.1s\n", - "[CV 1/5] END learning_rate=0.001, max_depth=3, n_estimators=100;, score=0.659 total time= 0.1s\n", - "[CV 2/5] END learning_rate=0.001, max_depth=3, n_estimators=100;, score=0.773 total time= 0.1s\n", - "[CV 3/5] END learning_rate=0.001, max_depth=3, n_estimators=100;, score=0.955 total time= 0.1s\n", - "[CV 4/5] END learning_rate=0.001, max_depth=3, n_estimators=100;, score=0.864 total time= 0.1s\n", - "[CV 5/5] END learning_rate=0.001, max_depth=3, n_estimators=100;, score=0.884 total time= 0.1s\n" - ] - }, - { - "data": { - "text/html": [ - "<style>#sk-container-id-3 {color: black;background-color: white;}#sk-container-id-3 pre{padding: 0;}#sk-container-id-3 div.sk-toggleable {background-color: white;}#sk-container-id-3 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-3 label.sk-toggleable__label-arrow:before {content: \"▸\";float: left;margin-right: 0.25em;color: #696969;}#sk-container-id-3 label.sk-toggleable__label-arrow:hover:before {color: black;}#sk-container-id-3 div.sk-estimator:hover label.sk-toggleable__label-arrow:before {color: black;}#sk-container-id-3 div.sk-toggleable__content {max-height: 0;max-width: 0;overflow: hidden;text-align: left;background-color: #f0f8ff;}#sk-container-id-3 div.sk-toggleable__content pre {margin: 0.2em;color: black;border-radius: 0.25em;background-color: #f0f8ff;}#sk-container-id-3 input.sk-toggleable__control:checked~div.sk-toggleable__content {max-height: 200px;max-width: 100%;overflow: auto;}#sk-container-id-3 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {content: \"▾\";}#sk-container-id-3 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-3 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-3 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-3 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-3 div.sk-estimator:hover {background-color: #d4ebff;}#sk-container-id-3 div.sk-parallel-item::after {content: \"\";width: 100%;border-bottom: 1px solid gray;flex-grow: 1;}#sk-container-id-3 div.sk-label:hover label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-3 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-3 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-3 div.sk-item {position: relative;z-index: 1;}#sk-container-id-3 div.sk-parallel {display: flex;align-items: stretch;justify-content: center;background-color: white;position: relative;}#sk-container-id-3 div.sk-item::before, #sk-container-id-3 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-3 div.sk-parallel-item {display: flex;flex-direction: column;z-index: 1;position: relative;background-color: white;}#sk-container-id-3 div.sk-parallel-item:first-child::after {align-self: flex-end;width: 50%;}#sk-container-id-3 div.sk-parallel-item:last-child::after {align-self: flex-start;width: 50%;}#sk-container-id-3 div.sk-parallel-item:only-child::after {width: 0;}#sk-container-id-3 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-3 div.sk-label label {font-family: monospace;font-weight: bold;display: inline-block;line-height: 1.2em;}#sk-container-id-3 div.sk-label-container {text-align: center;}#sk-container-id-3 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-3 div.sk-text-repr-fallback {display: none;}</style><div id=\"sk-container-id-3\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>GridSearchCV(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, eval_metric=None,\n", - " feature_types=None, 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", - " max_cat_threshold=None,\n", - " max_cat_to_onehot=None,\n", - " max_delta_step=None, max_depth=None,\n", - " max_leaves=None, min_child_weight=None,\n", - " missing=nan, monotone_constraints=None,\n", - " n_estimators=100, n_jobs=None,\n", - " num_parallel_tree=None, predictor=None,\n", - " random_state=42, ...),\n", - " param_grid={'learning_rate': [0.1, 0.01, 0.001], 'max_depth': [3],\n", - " 'n_estimators': [100]},\n", - " verbose=3)</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-5\" type=\"checkbox\" ><label for=\"sk-estimator-id-5\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">GridSearchCV</label><div class=\"sk-toggleable__content\"><pre>GridSearchCV(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, eval_metric=None,\n", - " feature_types=None, 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", - " max_cat_threshold=None,\n", - " max_cat_to_onehot=None,\n", - " max_delta_step=None, max_depth=None,\n", - " max_leaves=None, min_child_weight=None,\n", - " missing=nan, monotone_constraints=None,\n", - " n_estimators=100, n_jobs=None,\n", - " num_parallel_tree=None, predictor=None,\n", - " random_state=42, ...),\n", - " param_grid={'learning_rate': [0.1, 0.01, 0.001], 'max_depth': [3],\n", - " 'n_estimators': [100]},\n", - " verbose=3)</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-6\" type=\"checkbox\" ><label for=\"sk-estimator-id-6\" 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=None, feature_types=None,\n", - " gamma=None, gpu_id=None, grow_policy=None, importance_type=None,\n", - " interaction_constraints=None, learning_rate=None, max_bin=None,\n", - " max_cat_threshold=None, max_cat_to_onehot=None,\n", - " max_delta_step=None, max_depth=None, max_leaves=None,\n", - " min_child_weight=None, missing=nan, monotone_constraints=None,\n", - " n_estimators=100, n_jobs=None, num_parallel_tree=None,\n", - " predictor=None, random_state=42, ...)</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-7\" type=\"checkbox\" ><label for=\"sk-estimator-id-7\" 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=None, feature_types=None,\n", - " gamma=None, gpu_id=None, grow_policy=None, importance_type=None,\n", - " interaction_constraints=None, learning_rate=None, max_bin=None,\n", - " max_cat_threshold=None, max_cat_to_onehot=None,\n", - " max_delta_step=None, max_depth=None, max_leaves=None,\n", - " min_child_weight=None, missing=nan, monotone_constraints=None,\n", - " n_estimators=100, n_jobs=None, num_parallel_tree=None,\n", - " predictor=None, random_state=42, ...)</pre></div></div></div></div></div></div></div></div></div></div>" - ], - "text/plain": [ - "GridSearchCV(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, eval_metric=None,\n", - " feature_types=None, 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", - " max_cat_threshold=None,\n", - " max_cat_to_onehot=None,\n", - " max_delta_step=None, max_depth=None,\n", - " max_leaves=None, min_child_weight=None,\n", - " missing=nan, monotone_constraints=None,\n", - " n_estimators=100, n_jobs=None,\n", - " num_parallel_tree=None, predictor=None,\n", - " random_state=42, ...),\n", - " param_grid={'learning_rate': [0.1, 0.01, 0.001], 'max_depth': [3],\n", - " 'n_estimators': [100]},\n", - " verbose=3)" - ] - }, - "execution_count": 112, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "model = xgb.XGBClassifier(random_state=42)\n", - "\n", - "# Defining parameter range\n", - "param_grid = {\n", - " 'max_depth': [3],\n", - " 'learning_rate': [0.1 ,0.01, 0.001],\n", - " 'n_estimators': [100]\n", - "}\n", - "\n", - "grid = GridSearchCV(model, param_grid, refit=True, verbose=3)\n", - "\n", - "# Fitting the model for grid search\n", - "grid.fit(X_train, y_train)" - ] - }, - { - "cell_type": "code", - "execution_count": 113, - "id": "5d327876", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "{'learning_rate': 0.1, 'max_depth': 3, 'n_estimators': 100}\n", - "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=None, feature_types=None,\n", - " gamma=None, gpu_id=None, grow_policy=None, importance_type=None,\n", - " interaction_constraints=None, learning_rate=0.1, max_bin=None,\n", - " max_cat_threshold=None, max_cat_to_onehot=None,\n", - " max_delta_step=None, max_depth=3, max_leaves=None,\n", - " min_child_weight=None, missing=nan, monotone_constraints=None,\n", - " n_estimators=100, n_jobs=None, num_parallel_tree=None,\n", - " predictor=None, random_state=42, ...)\n" - ] - } - ], - "source": [ - "# print best parameter after tuning\n", - "print(grid.best_params_)\n", - " \n", - "# print how our model looks after hyper-parameter tuning\n", - "print(grid.best_estimator_)" - ] - }, - { - "cell_type": "code", - "execution_count": 114, - "id": "10f8757c", - "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>ABAT</th>\n", - " <th>ABHD5</th>\n", - " <th>ABLIM1</th>\n", - " <th>ABLIM3</th>\n", - " <th>ACAA1</th>\n", - " <th>ACADM</th>\n", - " <th>ACADVL</th>\n", - " <th>ACD</th>\n", - " <th>ACLY</th>\n", - " <th>ACOT11</th>\n", - " <th>...</th>\n", - " <th>XYLT1</th>\n", - " <th>YOD1</th>\n", - " <th>YTHDC1</th>\n", - " <th>ZBTB16</th>\n", - " <th>ZDHHC13</th>\n", - " <th>ZFP64</th>\n", - " <th>ZNF185</th>\n", - " <th>ZNF365</th>\n", - " <th>ZNF426</th>\n", - " <th>ZNF710</th>\n", - " </tr>\n", - " </thead>\n", - " <tbody>\n", - " <tr>\n", - " <th>16</th>\n", - " <td>3115.0</td>\n", - " <td>1201.0</td>\n", - " <td>14162.0</td>\n", - " <td>474.0</td>\n", - " <td>2046.0</td>\n", - " <td>2164.0</td>\n", - " <td>10703.0</td>\n", - " <td>751.0</td>\n", - " <td>4259.0</td>\n", - " <td>4676.0</td>\n", - " <td>...</td>\n", - " <td>2617.0</td>\n", - " <td>1069.0</td>\n", - " <td>4185.0</td>\n", - " <td>416.0</td>\n", - " <td>2387.0</td>\n", - " <td>2425.0</td>\n", - " <td>2809.0</td>\n", - " <td>16.0</td>\n", - " <td>1066.0</td>\n", - " <td>3174.0</td>\n", - " </tr>\n", - " <tr>\n", - " <th>57</th>\n", - " <td>1480.0</td>\n", - " <td>4989.0</td>\n", - " <td>70802.0</td>\n", - " <td>11045.0</td>\n", - " <td>3449.0</td>\n", - " <td>2118.0</td>\n", - " <td>20429.0</td>\n", - " <td>446.0</td>\n", - " <td>4120.0</td>\n", - " <td>2158.0</td>\n", - " <td>...</td>\n", - " <td>4400.0</td>\n", - " <td>18567.0</td>\n", - " <td>2869.0</td>\n", - " <td>603.0</td>\n", - " <td>4019.0</td>\n", - " <td>825.0</td>\n", - " <td>100273.0</td>\n", - " <td>5333.0</td>\n", - " <td>7373.0</td>\n", - " <td>4577.0</td>\n", - " </tr>\n", - " <tr>\n", - " <th>58</th>\n", - " <td>615.0</td>\n", - " <td>1054.0</td>\n", - " <td>12782.0</td>\n", - " <td>279.0</td>\n", - " <td>1647.0</td>\n", - " <td>3323.0</td>\n", - " <td>11800.0</td>\n", - " <td>363.0</td>\n", - " <td>3257.0</td>\n", - " <td>836.0</td>\n", - " <td>...</td>\n", - " <td>360.0</td>\n", - " <td>829.0</td>\n", - " <td>2209.0</td>\n", - " <td>5362.0</td>\n", - " <td>818.0</td>\n", - " <td>503.0</td>\n", - " <td>461.0</td>\n", - " <td>14.0</td>\n", - " <td>481.0</td>\n", - " <td>2076.0</td>\n", - " </tr>\n", - " <tr>\n", - " <th>74</th>\n", - " <td>625.0</td>\n", - " <td>648.0</td>\n", - " <td>9557.0</td>\n", - " <td>145.0</td>\n", - " <td>1205.0</td>\n", - " <td>2450.0</td>\n", - " <td>8247.0</td>\n", - " <td>300.0</td>\n", - " <td>2965.0</td>\n", - " <td>919.0</td>\n", - " <td>...</td>\n", - " <td>406.0</td>\n", - " <td>680.0</td>\n", - " <td>2234.0</td>\n", - " <td>4683.0</td>\n", - " <td>556.0</td>\n", - " <td>434.0</td>\n", - " <td>438.0</td>\n", - " <td>2.0</td>\n", - " <td>683.0</td>\n", - " <td>1666.0</td>\n", - " </tr>\n", - " <tr>\n", - " <th>84</th>\n", - " <td>3062.0</td>\n", - " <td>1579.0</td>\n", - " <td>73857.0</td>\n", - " <td>257.0</td>\n", - " <td>3857.0</td>\n", - " <td>2166.0</td>\n", - " <td>10460.0</td>\n", - " <td>874.0</td>\n", - " <td>15858.0</td>\n", - " <td>2781.0</td>\n", - " <td>...</td>\n", - " <td>4161.0</td>\n", - " <td>2321.0</td>\n", - " <td>5970.0</td>\n", - " <td>67.0</td>\n", - " <td>2713.0</td>\n", - " <td>4398.0</td>\n", - " <td>3181.0</td>\n", - " <td>1.0</td>\n", - " <td>1258.0</td>\n", - " <td>4441.0</td>\n", - " </tr>\n", - " <tr>\n", - " <th>92</th>\n", - " <td>990.0</td>\n", - " <td>6597.0</td>\n", - " <td>37974.0</td>\n", - " <td>8228.0</td>\n", - " <td>1776.0</td>\n", - " <td>3376.0</td>\n", - " <td>13926.0</td>\n", - " <td>1291.0</td>\n", - " <td>10677.0</td>\n", - " <td>4915.0</td>\n", - " <td>...</td>\n", - " <td>4656.0</td>\n", - " <td>1709.0</td>\n", - " <td>5941.0</td>\n", - " <td>53533.0</td>\n", - " <td>1264.0</td>\n", - " <td>1173.0</td>\n", - " <td>720.0</td>\n", - " <td>614.0</td>\n", - " <td>2984.0</td>\n", - " <td>2377.0</td>\n", - " </tr>\n", - " <tr>\n", - " <th>94</th>\n", - " <td>4350.0</td>\n", - " <td>3345.0</td>\n", - " <td>54946.0</td>\n", - " <td>1474.0</td>\n", - " <td>1601.0</td>\n", - " <td>3628.0</td>\n", - " <td>11726.0</td>\n", - " <td>1013.0</td>\n", - " <td>8076.0</td>\n", - " <td>1442.0</td>\n", - " <td>...</td>\n", - " <td>500.0</td>\n", - " <td>2775.0</td>\n", - " <td>3678.0</td>\n", - " <td>3443.0</td>\n", - " <td>2089.0</td>\n", - " <td>1872.0</td>\n", - " <td>22544.0</td>\n", - " <td>118.0</td>\n", - " <td>1295.0</td>\n", - " <td>2643.0</td>\n", - " </tr>\n", - " <tr>\n", - " <th>119</th>\n", - " <td>763.0</td>\n", - " <td>1385.0</td>\n", - " <td>25078.0</td>\n", - " <td>1078.0</td>\n", - " <td>1801.0</td>\n", - " <td>3628.0</td>\n", - " <td>18970.0</td>\n", - " <td>521.0</td>\n", - " <td>6289.0</td>\n", - " <td>1789.0</td>\n", - " <td>...</td>\n", - " <td>1340.0</td>\n", - " <td>1027.0</td>\n", - " <td>3775.0</td>\n", - " <td>10003.0</td>\n", - " <td>1450.0</td>\n", - " <td>780.0</td>\n", - " <td>1010.0</td>\n", - " <td>6.0</td>\n", - " <td>960.0</td>\n", - " <td>3409.0</td>\n", - " </tr>\n", - " <tr>\n", - " <th>140</th>\n", - " <td>690.0</td>\n", - " <td>1349.0</td>\n", - " <td>16936.0</td>\n", - " <td>1474.0</td>\n", - " <td>1104.0</td>\n", - " <td>3139.0</td>\n", - " <td>10069.0</td>\n", - " <td>627.0</td>\n", - " <td>4202.0</td>\n", - " <td>1282.0</td>\n", - " <td>...</td>\n", - " <td>1382.0</td>\n", - " <td>829.0</td>\n", - " <td>3274.0</td>\n", - " <td>28984.0</td>\n", - " <td>603.0</td>\n", - " <td>449.0</td>\n", - " <td>387.0</td>\n", - " <td>145.0</td>\n", - " <td>1458.0</td>\n", - " <td>1912.0</td>\n", - " </tr>\n", - " <tr>\n", - " <th>143</th>\n", - " <td>1289.0</td>\n", - " <td>3792.0</td>\n", - " <td>25323.0</td>\n", - " <td>7121.0</td>\n", - " <td>1304.0</td>\n", - " <td>7792.0</td>\n", - " <td>11578.0</td>\n", - " <td>1627.0</td>\n", - " <td>8483.0</td>\n", - " <td>1731.0</td>\n", - " <td>...</td>\n", - " <td>7284.0</td>\n", - " <td>1095.0</td>\n", - " <td>7690.0</td>\n", - " <td>15996.0</td>\n", - " <td>343.0</td>\n", - " <td>1240.0</td>\n", - " <td>785.0</td>\n", - " <td>631.0</td>\n", - " <td>3486.0</td>\n", - " <td>8991.0</td>\n", - " </tr>\n", - " <tr>\n", - " <th>150</th>\n", - " <td>866.0</td>\n", - " <td>1125.0</td>\n", - " <td>15324.0</td>\n", - " <td>637.0</td>\n", - " <td>1630.0</td>\n", - " <td>3406.0</td>\n", - " <td>13582.0</td>\n", - " <td>681.0</td>\n", - " <td>4495.0</td>\n", - " <td>1208.0</td>\n", - " <td>...</td>\n", - " <td>779.0</td>\n", - " <td>1241.0</td>\n", - " <td>3609.0</td>\n", - " <td>11653.0</td>\n", - " <td>1258.0</td>\n", - " <td>846.0</td>\n", - " <td>1154.0</td>\n", - " <td>47.0</td>\n", - " <td>773.0</td>\n", - " <td>4229.0</td>\n", - " </tr>\n", - " <tr>\n", - " <th>190</th>\n", - " <td>921.0</td>\n", - " <td>1766.0</td>\n", - " <td>23159.0</td>\n", - " <td>964.0</td>\n", - " <td>1653.0</td>\n", - " <td>3038.0</td>\n", - " <td>15132.0</td>\n", - " <td>562.0</td>\n", - " <td>5008.0</td>\n", - " <td>1164.0</td>\n", - " <td>...</td>\n", - " <td>1460.0</td>\n", - " <td>1134.0</td>\n", - " <td>2683.0</td>\n", - " <td>5547.0</td>\n", - " <td>1812.0</td>\n", - " <td>628.0</td>\n", - " <td>728.0</td>\n", - " <td>8.0</td>\n", - " <td>742.0</td>\n", - " <td>2582.0</td>\n", - " </tr>\n", - " <tr>\n", - " <th>191</th>\n", - " <td>3412.0</td>\n", - " <td>4295.0</td>\n", - " <td>101546.0</td>\n", - " <td>1945.0</td>\n", - " <td>4946.0</td>\n", - " <td>6246.0</td>\n", - " <td>27512.0</td>\n", - " <td>1115.0</td>\n", - " <td>15513.0</td>\n", - " <td>6728.0</td>\n", - " <td>...</td>\n", - " <td>5282.0</td>\n", - " <td>5757.0</td>\n", - " <td>7304.0</td>\n", - " <td>8099.0</td>\n", - " <td>3931.0</td>\n", - " <td>2032.0</td>\n", - " <td>8893.0</td>\n", - " <td>261.0</td>\n", - " <td>2290.0</td>\n", - " <td>4765.0</td>\n", - " </tr>\n", - " <tr>\n", - " <th>0</th>\n", - " <td>2051.0</td>\n", - " <td>2245.0</td>\n", - " <td>50529.0</td>\n", - " <td>1813.0</td>\n", - " <td>972.0</td>\n", - " <td>3108.0</td>\n", - " <td>14196.0</td>\n", - " <td>2007.0</td>\n", - " <td>10221.0</td>\n", - " <td>2666.0</td>\n", - " <td>...</td>\n", - " <td>1582.0</td>\n", - " <td>4259.0</td>\n", - " <td>8476.0</td>\n", - " <td>499.0</td>\n", - " <td>4678.0</td>\n", - " <td>4144.0</td>\n", - " <td>37290.0</td>\n", - " <td>59.0</td>\n", - " <td>2606.0</td>\n", - " <td>3493.0</td>\n", - " </tr>\n", - " <tr>\n", - " <th>1</th>\n", - " <td>1474.0</td>\n", - " <td>2127.0</td>\n", - " <td>14163.0</td>\n", - " <td>7869.0</td>\n", - " <td>1127.0</td>\n", - " <td>2381.0</td>\n", - " <td>9777.0</td>\n", - " <td>4314.0</td>\n", - " <td>14525.0</td>\n", - " <td>740.0</td>\n", - " <td>...</td>\n", - " <td>1066.0</td>\n", - " <td>1100.0</td>\n", - " <td>8363.0</td>\n", - " <td>6232.0</td>\n", - " <td>1613.0</td>\n", - " <td>3442.0</td>\n", - " <td>7622.0</td>\n", - " <td>1049.0</td>\n", - " <td>2530.0</td>\n", - " <td>1625.0</td>\n", - " </tr>\n", - " <tr>\n", - " <th>2</th>\n", - " <td>598.0</td>\n", - " <td>2798.0</td>\n", - " <td>20824.0</td>\n", - " <td>2042.0</td>\n", - " <td>1855.0</td>\n", - " <td>2758.0</td>\n", - " <td>10035.0</td>\n", - " <td>2649.0</td>\n", - " <td>16867.0</td>\n", - " <td>1111.0</td>\n", - " <td>...</td>\n", - " <td>1812.0</td>\n", - " <td>4319.0</td>\n", - " <td>8668.0</td>\n", - " <td>2788.0</td>\n", - " <td>3655.0</td>\n", - " <td>4979.0</td>\n", - " <td>12031.0</td>\n", - " <td>134.0</td>\n", - " <td>1627.0</td>\n", - " <td>3097.0</td>\n", - " </tr>\n", - " <tr>\n", - " <th>3</th>\n", - " <td>1168.0</td>\n", - " <td>1493.0</td>\n", - " <td>20978.0</td>\n", - " <td>1159.0</td>\n", - " <td>2613.0</td>\n", - " <td>3099.0</td>\n", - " <td>18637.0</td>\n", - " <td>2963.0</td>\n", - " <td>16434.0</td>\n", - " <td>4050.0</td>\n", - " <td>...</td>\n", - " <td>4475.0</td>\n", - " <td>9918.0</td>\n", - " <td>6375.0</td>\n", - " <td>849.0</td>\n", - " <td>5156.0</td>\n", - " <td>6012.0</td>\n", - " <td>1274.0</td>\n", - " <td>15.0</td>\n", - " <td>3310.0</td>\n", - " <td>2802.0</td>\n", - " </tr>\n", - " <tr>\n", - " <th>4</th>\n", - " <td>447.0</td>\n", - " <td>1061.0</td>\n", - " <td>8067.0</td>\n", - " <td>2268.0</td>\n", - " <td>1512.0</td>\n", - " <td>1422.0</td>\n", - " <td>12102.0</td>\n", - " <td>4516.0</td>\n", - " <td>14942.0</td>\n", - " <td>134.0</td>\n", - " <td>...</td>\n", - " <td>146.0</td>\n", - " <td>701.0</td>\n", - " <td>2748.0</td>\n", - " <td>113.0</td>\n", - " <td>1582.0</td>\n", - " <td>4453.0</td>\n", - " <td>2069.0</td>\n", - " <td>537.0</td>\n", - " <td>951.0</td>\n", - " <td>2209.0</td>\n", - " </tr>\n", - " <tr>\n", - " <th>5</th>\n", - " <td>273.0</td>\n", - " <td>1493.0</td>\n", - " <td>10865.0</td>\n", - " <td>709.0</td>\n", - " <td>1370.0</td>\n", - " <td>2770.0</td>\n", - " <td>14487.0</td>\n", - " <td>3258.0</td>\n", - " <td>10410.0</td>\n", - " <td>734.0</td>\n", - " <td>...</td>\n", - " <td>968.0</td>\n", - " <td>1338.0</td>\n", - " <td>4142.0</td>\n", - " <td>98.0</td>\n", - " <td>794.0</td>\n", - " <td>2570.0</td>\n", - " <td>2511.0</td>\n", - " <td>67.0</td>\n", - " <td>808.0</td>\n", - " <td>4566.0</td>\n", - " </tr>\n", - " <tr>\n", - " <th>6</th>\n", - " <td>447.0</td>\n", - " <td>711.0</td>\n", - " <td>5394.0</td>\n", - " <td>806.0</td>\n", - " <td>1198.0</td>\n", - " <td>1193.0</td>\n", - " <td>7645.0</td>\n", - " <td>1186.0</td>\n", - " <td>6400.0</td>\n", - " <td>363.0</td>\n", - " <td>...</td>\n", - " <td>791.0</td>\n", - " <td>657.0</td>\n", - " <td>3232.0</td>\n", - " <td>1871.0</td>\n", - " <td>1030.0</td>\n", - " <td>1085.0</td>\n", - " <td>647.0</td>\n", - " <td>45.0</td>\n", - " <td>1258.0</td>\n", - " <td>1297.0</td>\n", - " </tr>\n", - " <tr>\n", - " <th>7</th>\n", - " <td>1304.0</td>\n", - " <td>3504.0</td>\n", - " <td>62364.0</td>\n", - " <td>1419.0</td>\n", - " <td>1277.0</td>\n", - " <td>2438.0</td>\n", - " <td>19435.0</td>\n", - " <td>614.0</td>\n", - " <td>11926.0</td>\n", - " <td>1446.0</td>\n", - " <td>...</td>\n", - " <td>6048.0</td>\n", - " <td>3569.0</td>\n", - " <td>5999.0</td>\n", - " <td>3287.0</td>\n", - " <td>2634.0</td>\n", - " <td>2722.0</td>\n", - " <td>2043.0</td>\n", - " <td>111.0</td>\n", - " <td>3302.0</td>\n", - " <td>3772.0</td>\n", - " </tr>\n", - " <tr>\n", - " <th>8</th>\n", - " <td>1529.0</td>\n", - " <td>2126.0</td>\n", - " <td>12737.0</td>\n", - " <td>431.0</td>\n", - " <td>4085.0</td>\n", - " <td>2528.0</td>\n", - " <td>12424.0</td>\n", - " <td>2176.0</td>\n", - " <td>35448.0</td>\n", - " <td>4548.0</td>\n", - " <td>...</td>\n", - " <td>785.0</td>\n", - " <td>1022.0</td>\n", - " <td>4642.0</td>\n", - " <td>109.0</td>\n", - " <td>3507.0</td>\n", - " <td>2191.0</td>\n", - " <td>4349.0</td>\n", - " <td>52.0</td>\n", - " <td>973.0</td>\n", - " <td>3723.0</td>\n", - " </tr>\n", - " <tr>\n", - " <th>9</th>\n", - " <td>3170.0</td>\n", - " <td>1681.0</td>\n", - " <td>15357.0</td>\n", - " <td>464.0</td>\n", - " <td>1739.0</td>\n", - " <td>4441.0</td>\n", - " <td>8020.0</td>\n", - " <td>2198.0</td>\n", - " <td>15333.0</td>\n", - " <td>2017.0</td>\n", - " <td>...</td>\n", - " <td>1120.0</td>\n", - " <td>3653.0</td>\n", - " <td>4556.0</td>\n", - " <td>25.0</td>\n", - " <td>1557.0</td>\n", - " <td>1589.0</td>\n", - " <td>117.0</td>\n", - " <td>3.0</td>\n", - " <td>1674.0</td>\n", - " <td>1752.0</td>\n", - " </tr>\n", - " <tr>\n", - " <th>10</th>\n", - " <td>551.0</td>\n", - " <td>1271.0</td>\n", - " <td>4617.0</td>\n", - " <td>271.0</td>\n", - " <td>1094.0</td>\n", - " <td>1251.0</td>\n", - " <td>6732.0</td>\n", - " <td>1181.0</td>\n", - " <td>23759.0</td>\n", - " <td>522.0</td>\n", - " <td>...</td>\n", - " <td>628.0</td>\n", - " <td>993.0</td>\n", - " <td>3957.0</td>\n", - " <td>164.0</td>\n", - " <td>1963.0</td>\n", - " <td>2278.0</td>\n", - " <td>9055.0</td>\n", - " <td>67.0</td>\n", - " <td>1467.0</td>\n", - " <td>2786.0</td>\n", - " </tr>\n", - " <tr>\n", - " <th>11</th>\n", - " <td>601.0</td>\n", - " <td>2355.0</td>\n", - " <td>19859.0</td>\n", - " <td>2190.0</td>\n", - " <td>2872.0</td>\n", - " <td>1448.0</td>\n", - " <td>18912.0</td>\n", - " <td>2000.0</td>\n", - " <td>41702.0</td>\n", - " <td>1851.0</td>\n", - " <td>...</td>\n", - " <td>3114.0</td>\n", - " <td>3308.0</td>\n", - " <td>5706.0</td>\n", - " <td>893.0</td>\n", - " <td>4386.0</td>\n", - " <td>3015.0</td>\n", - " <td>7544.0</td>\n", - " <td>26.0</td>\n", - " <td>1304.0</td>\n", - " <td>3952.0</td>\n", - " </tr>\n", - " <tr>\n", - " <th>12</th>\n", - " <td>1142.0</td>\n", - " <td>1761.0</td>\n", - " <td>37698.0</td>\n", - " <td>863.0</td>\n", - " <td>4191.0</td>\n", - " <td>8027.0</td>\n", - " <td>16425.0</td>\n", - " <td>930.0</td>\n", - " <td>21731.0</td>\n", - " <td>2792.0</td>\n", - " <td>...</td>\n", - " <td>2125.0</td>\n", - " <td>5912.0</td>\n", - " <td>6407.0</td>\n", - " <td>980.0</td>\n", - " <td>4728.0</td>\n", - " <td>2607.0</td>\n", - " <td>12930.0</td>\n", - " <td>5.0</td>\n", - " <td>1406.0</td>\n", - " <td>3217.0</td>\n", - " </tr>\n", - " <tr>\n", - " <th>13</th>\n", - " <td>448.0</td>\n", - " <td>2566.0</td>\n", - " <td>35878.0</td>\n", - " <td>718.0</td>\n", - " <td>2332.0</td>\n", - " <td>4021.0</td>\n", - " <td>12479.0</td>\n", - " <td>1850.0</td>\n", - " <td>34728.0</td>\n", - " <td>3017.0</td>\n", - " <td>...</td>\n", - " <td>2978.0</td>\n", - " <td>4075.0</td>\n", - " <td>5910.0</td>\n", - " <td>98.0</td>\n", - " <td>2081.0</td>\n", - " <td>4793.0</td>\n", - " <td>5575.0</td>\n", - " <td>229.0</td>\n", - " <td>1527.0</td>\n", - " <td>7084.0</td>\n", - " </tr>\n", - " <tr>\n", - " <th>14</th>\n", - " <td>251.0</td>\n", - " <td>690.0</td>\n", - " <td>14561.0</td>\n", - " <td>1523.0</td>\n", - " <td>1180.0</td>\n", - " <td>507.0</td>\n", - " <td>7014.0</td>\n", - " <td>681.0</td>\n", - " <td>2574.0</td>\n", - " <td>538.0</td>\n", - " <td>...</td>\n", - " <td>852.0</td>\n", - " <td>788.0</td>\n", - " <td>1324.0</td>\n", - " <td>668.0</td>\n", - " <td>1005.0</td>\n", - " <td>674.0</td>\n", - " <td>23839.0</td>\n", - " <td>457.0</td>\n", - " <td>725.0</td>\n", - " <td>1516.0</td>\n", - " </tr>\n", - " <tr>\n", - " <th>15</th>\n", - " <td>180.0</td>\n", - " <td>2264.0</td>\n", - " <td>16344.0</td>\n", - " <td>3108.0</td>\n", - " <td>3707.0</td>\n", - " <td>1326.0</td>\n", - " <td>12002.0</td>\n", - " <td>1212.0</td>\n", - " <td>24302.0</td>\n", - " <td>3697.0</td>\n", - " <td>...</td>\n", - " <td>2972.0</td>\n", - " <td>1726.0</td>\n", - " <td>4615.0</td>\n", - " <td>129.0</td>\n", - " <td>1775.0</td>\n", - " <td>2996.0</td>\n", - " <td>1382.0</td>\n", - " <td>61.0</td>\n", - " <td>1753.0</td>\n", - " <td>3620.0</td>\n", - " </tr>\n", - " <tr>\n", - " <th>17</th>\n", - " <td>137.0</td>\n", - " <td>1011.0</td>\n", - " <td>7723.0</td>\n", - " <td>360.0</td>\n", - " <td>816.0</td>\n", - " <td>1746.0</td>\n", - " <td>6359.0</td>\n", - " <td>2265.0</td>\n", - " <td>9038.0</td>\n", - " <td>610.0</td>\n", - " <td>...</td>\n", - " <td>1248.0</td>\n", - " <td>2434.0</td>\n", - " <td>5346.0</td>\n", - " <td>118.0</td>\n", - " <td>1931.0</td>\n", - " <td>1828.0</td>\n", - " <td>10196.0</td>\n", - " <td>164.0</td>\n", - " <td>2108.0</td>\n", - " <td>3216.0</td>\n", - " </tr>\n", - " <tr>\n", - " <th>18</th>\n", - " <td>774.0</td>\n", - " <td>1494.0</td>\n", - " <td>20742.0</td>\n", - " <td>1370.0</td>\n", - " <td>1030.0</td>\n", - " <td>2446.0</td>\n", - " <td>9447.0</td>\n", - " <td>1502.0</td>\n", - " <td>13209.0</td>\n", - " <td>1915.0</td>\n", - " <td>...</td>\n", - " <td>467.0</td>\n", - " <td>2217.0</td>\n", - " <td>4824.0</td>\n", - " <td>115.0</td>\n", - " <td>2044.0</td>\n", - " <td>3604.0</td>\n", - " <td>14249.0</td>\n", - " <td>594.0</td>\n", - " <td>2141.0</td>\n", - " <td>2748.0</td>\n", - " </tr>\n", - " <tr>\n", - " <th>19</th>\n", - " <td>315.0</td>\n", - " <td>1592.0</td>\n", - " <td>30763.0</td>\n", - " <td>2457.0</td>\n", - " <td>1558.0</td>\n", - " <td>2185.0</td>\n", - " <td>12620.0</td>\n", - " <td>2382.0</td>\n", - " <td>14932.0</td>\n", - " <td>1471.0</td>\n", - " <td>...</td>\n", - " <td>536.0</td>\n", - " <td>5839.0</td>\n", - " <td>4560.0</td>\n", - " <td>141.0</td>\n", - " <td>1913.0</td>\n", - " <td>2820.0</td>\n", - " <td>33472.0</td>\n", - " <td>450.0</td>\n", - " <td>3785.0</td>\n", - " <td>3514.0</td>\n", - " </tr>\n", - " <tr>\n", - " <th>20</th>\n", - " <td>1218.0</td>\n", - " <td>1047.0</td>\n", - " <td>16194.0</td>\n", - " <td>1064.0</td>\n", - " <td>1081.0</td>\n", - " <td>1676.0</td>\n", - " <td>6051.0</td>\n", - " <td>3047.0</td>\n", - " <td>17321.0</td>\n", - " <td>668.0</td>\n", - " <td>...</td>\n", - " <td>624.0</td>\n", - " <td>2848.0</td>\n", - " <td>8892.0</td>\n", - " <td>38.0</td>\n", - " <td>2343.0</td>\n", - " <td>6012.0</td>\n", - " <td>9261.0</td>\n", - " <td>153.0</td>\n", - " <td>2671.0</td>\n", - " <td>5498.0</td>\n", - " </tr>\n", - " <tr>\n", - " <th>21</th>\n", - " <td>1228.0</td>\n", - " <td>3213.0</td>\n", - " <td>34765.0</td>\n", - " <td>296.0</td>\n", - " <td>1363.0</td>\n", - " <td>2313.0</td>\n", - " <td>19367.0</td>\n", - " <td>2696.0</td>\n", - " <td>14576.0</td>\n", - " <td>1183.0</td>\n", - " <td>...</td>\n", - " <td>1847.0</td>\n", - " <td>3997.0</td>\n", - " <td>8509.0</td>\n", - " <td>1834.0</td>\n", - " <td>3018.0</td>\n", - " <td>4069.0</td>\n", - " <td>10202.0</td>\n", - " <td>826.0</td>\n", - " <td>912.0</td>\n", - " <td>2418.0</td>\n", - " </tr>\n", - " <tr>\n", - " <th>22</th>\n", - " <td>268.0</td>\n", - " <td>2218.0</td>\n", - " <td>17573.0</td>\n", - " <td>169.0</td>\n", - " <td>1437.0</td>\n", - " <td>2455.0</td>\n", - " <td>20002.0</td>\n", - " <td>2141.0</td>\n", - " <td>21260.0</td>\n", - " <td>750.0</td>\n", - " <td>...</td>\n", - " <td>1107.0</td>\n", - " <td>1252.0</td>\n", - " <td>5710.0</td>\n", - " <td>111.0</td>\n", - " <td>2821.0</td>\n", - " <td>5471.0</td>\n", - " <td>4312.0</td>\n", - " <td>87.0</td>\n", - " <td>1464.0</td>\n", - " <td>1804.0</td>\n", - " </tr>\n", - " <tr>\n", - " <th>23</th>\n", - " <td>920.0</td>\n", - " <td>2586.0</td>\n", - " <td>26040.0</td>\n", - " <td>1475.0</td>\n", - " <td>1641.0</td>\n", - " <td>1645.0</td>\n", - " <td>9063.0</td>\n", - " <td>1264.0</td>\n", - " <td>7476.0</td>\n", - " <td>950.0</td>\n", - " <td>...</td>\n", - " <td>1378.0</td>\n", - " <td>1592.0</td>\n", - " <td>4062.0</td>\n", - " <td>120.0</td>\n", - " <td>2398.0</td>\n", - " <td>1907.0</td>\n", - " <td>34415.0</td>\n", - " <td>50.0</td>\n", - " <td>1610.0</td>\n", - " <td>2542.0</td>\n", - " </tr>\n", - " <tr>\n", - " <th>24</th>\n", - " <td>7092.0</td>\n", - " <td>2810.0</td>\n", - " <td>46584.0</td>\n", - " <td>2796.0</td>\n", - " <td>3933.0</td>\n", - " <td>7395.0</td>\n", - " <td>19614.0</td>\n", - " <td>2292.0</td>\n", - " <td>33298.0</td>\n", - " <td>5466.0</td>\n", - " <td>...</td>\n", - " <td>3607.0</td>\n", - " <td>7224.0</td>\n", - " <td>9066.0</td>\n", - " <td>4225.0</td>\n", - " <td>4096.0</td>\n", - " <td>4740.0</td>\n", - " <td>1062.0</td>\n", - " <td>55.0</td>\n", - " <td>2645.0</td>\n", - " <td>4264.0</td>\n", - " </tr>\n", - " <tr>\n", - " <th>25</th>\n", - " <td>1655.0</td>\n", - " <td>2009.0</td>\n", - " <td>14227.0</td>\n", - " <td>2102.0</td>\n", - " <td>1486.0</td>\n", - " <td>2954.0</td>\n", - " <td>6365.0</td>\n", - " <td>4255.0</td>\n", - " <td>20165.0</td>\n", - " <td>7358.0</td>\n", - " <td>...</td>\n", - " <td>5638.0</td>\n", - " <td>1761.0</td>\n", - " <td>5831.0</td>\n", - " <td>654.0</td>\n", - " <td>4684.0</td>\n", - " <td>6329.0</td>\n", - " <td>12429.0</td>\n", - " <td>4734.0</td>\n", - " <td>965.0</td>\n", - " <td>3988.0</td>\n", - " </tr>\n", - " <tr>\n", - " <th>26</th>\n", - " <td>283.0</td>\n", - " <td>1351.0</td>\n", - " <td>5785.0</td>\n", - " <td>412.0</td>\n", - " <td>853.0</td>\n", - " <td>4641.0</td>\n", - " <td>11778.0</td>\n", - " <td>2051.0</td>\n", - " <td>25209.0</td>\n", - " <td>956.0</td>\n", - " <td>...</td>\n", - " <td>1891.0</td>\n", - " <td>2270.0</td>\n", - " <td>4177.0</td>\n", - " <td>8.0</td>\n", - " <td>2434.0</td>\n", - " <td>3946.0</td>\n", - " <td>5330.0</td>\n", - " <td>662.0</td>\n", - " <td>1381.0</td>\n", - " <td>2428.0</td>\n", - " </tr>\n", - " <tr>\n", - " <th>27</th>\n", - " <td>407.0</td>\n", - " <td>1666.0</td>\n", - " <td>14762.0</td>\n", - " <td>2407.0</td>\n", - " <td>1768.0</td>\n", - " <td>3879.0</td>\n", - " <td>8437.0</td>\n", - " <td>1040.0</td>\n", - " <td>7247.0</td>\n", - " <td>1235.0</td>\n", - " <td>...</td>\n", - " <td>718.0</td>\n", - " <td>1726.0</td>\n", - " <td>5688.0</td>\n", - " <td>537.0</td>\n", - " <td>1122.0</td>\n", - " <td>2116.0</td>\n", - " <td>5162.0</td>\n", - " <td>39.0</td>\n", - " <td>1193.0</td>\n", - " <td>1892.0</td>\n", - " </tr>\n", - " </tbody>\n", - "</table>\n", - "<p>40 rows × 602 columns</p>\n", - "</div>" - ], - "text/plain": [ - " ABAT ABHD5 ABLIM1 ABLIM3 ACAA1 ACADM ACADVL ACD \\\n", - "16 3115.0 1201.0 14162.0 474.0 2046.0 2164.0 10703.0 751.0 \n", - "57 1480.0 4989.0 70802.0 11045.0 3449.0 2118.0 20429.0 446.0 \n", - "58 615.0 1054.0 12782.0 279.0 1647.0 3323.0 11800.0 363.0 \n", - "74 625.0 648.0 9557.0 145.0 1205.0 2450.0 8247.0 300.0 \n", - "84 3062.0 1579.0 73857.0 257.0 3857.0 2166.0 10460.0 874.0 \n", - "92 990.0 6597.0 37974.0 8228.0 1776.0 3376.0 13926.0 1291.0 \n", - "94 4350.0 3345.0 54946.0 1474.0 1601.0 3628.0 11726.0 1013.0 \n", - "119 763.0 1385.0 25078.0 1078.0 1801.0 3628.0 18970.0 521.0 \n", - "140 690.0 1349.0 16936.0 1474.0 1104.0 3139.0 10069.0 627.0 \n", - "143 1289.0 3792.0 25323.0 7121.0 1304.0 7792.0 11578.0 1627.0 \n", - "150 866.0 1125.0 15324.0 637.0 1630.0 3406.0 13582.0 681.0 \n", - "190 921.0 1766.0 23159.0 964.0 1653.0 3038.0 15132.0 562.0 \n", - "191 3412.0 4295.0 101546.0 1945.0 4946.0 6246.0 27512.0 1115.0 \n", - "0 2051.0 2245.0 50529.0 1813.0 972.0 3108.0 14196.0 2007.0 \n", - "1 1474.0 2127.0 14163.0 7869.0 1127.0 2381.0 9777.0 4314.0 \n", - "2 598.0 2798.0 20824.0 2042.0 1855.0 2758.0 10035.0 2649.0 \n", - "3 1168.0 1493.0 20978.0 1159.0 2613.0 3099.0 18637.0 2963.0 \n", - "4 447.0 1061.0 8067.0 2268.0 1512.0 1422.0 12102.0 4516.0 \n", - "5 273.0 1493.0 10865.0 709.0 1370.0 2770.0 14487.0 3258.0 \n", - "6 447.0 711.0 5394.0 806.0 1198.0 1193.0 7645.0 1186.0 \n", - "7 1304.0 3504.0 62364.0 1419.0 1277.0 2438.0 19435.0 614.0 \n", - "8 1529.0 2126.0 12737.0 431.0 4085.0 2528.0 12424.0 2176.0 \n", - "9 3170.0 1681.0 15357.0 464.0 1739.0 4441.0 8020.0 2198.0 \n", - "10 551.0 1271.0 4617.0 271.0 1094.0 1251.0 6732.0 1181.0 \n", - "11 601.0 2355.0 19859.0 2190.0 2872.0 1448.0 18912.0 2000.0 \n", - "12 1142.0 1761.0 37698.0 863.0 4191.0 8027.0 16425.0 930.0 \n", - "13 448.0 2566.0 35878.0 718.0 2332.0 4021.0 12479.0 1850.0 \n", - "14 251.0 690.0 14561.0 1523.0 1180.0 507.0 7014.0 681.0 \n", - "15 180.0 2264.0 16344.0 3108.0 3707.0 1326.0 12002.0 1212.0 \n", - "17 137.0 1011.0 7723.0 360.0 816.0 1746.0 6359.0 2265.0 \n", - "18 774.0 1494.0 20742.0 1370.0 1030.0 2446.0 9447.0 1502.0 \n", - "19 315.0 1592.0 30763.0 2457.0 1558.0 2185.0 12620.0 2382.0 \n", - "20 1218.0 1047.0 16194.0 1064.0 1081.0 1676.0 6051.0 3047.0 \n", - "21 1228.0 3213.0 34765.0 296.0 1363.0 2313.0 19367.0 2696.0 \n", - "22 268.0 2218.0 17573.0 169.0 1437.0 2455.0 20002.0 2141.0 \n", - "23 920.0 2586.0 26040.0 1475.0 1641.0 1645.0 9063.0 1264.0 \n", - "24 7092.0 2810.0 46584.0 2796.0 3933.0 7395.0 19614.0 2292.0 \n", - "25 1655.0 2009.0 14227.0 2102.0 1486.0 2954.0 6365.0 4255.0 \n", - "26 283.0 1351.0 5785.0 412.0 853.0 4641.0 11778.0 2051.0 \n", - "27 407.0 1666.0 14762.0 2407.0 1768.0 3879.0 8437.0 1040.0 \n", - "\n", - " ACLY ACOT11 ... XYLT1 YOD1 YTHDC1 ZBTB16 ZDHHC13 ZFP64 \\\n", - "16 4259.0 4676.0 ... 2617.0 1069.0 4185.0 416.0 2387.0 2425.0 \n", - "57 4120.0 2158.0 ... 4400.0 18567.0 2869.0 603.0 4019.0 825.0 \n", - "58 3257.0 836.0 ... 360.0 829.0 2209.0 5362.0 818.0 503.0 \n", - "74 2965.0 919.0 ... 406.0 680.0 2234.0 4683.0 556.0 434.0 \n", - "84 15858.0 2781.0 ... 4161.0 2321.0 5970.0 67.0 2713.0 4398.0 \n", - "92 10677.0 4915.0 ... 4656.0 1709.0 5941.0 53533.0 1264.0 1173.0 \n", - "94 8076.0 1442.0 ... 500.0 2775.0 3678.0 3443.0 2089.0 1872.0 \n", - "119 6289.0 1789.0 ... 1340.0 1027.0 3775.0 10003.0 1450.0 780.0 \n", - "140 4202.0 1282.0 ... 1382.0 829.0 3274.0 28984.0 603.0 449.0 \n", - "143 8483.0 1731.0 ... 7284.0 1095.0 7690.0 15996.0 343.0 1240.0 \n", - "150 4495.0 1208.0 ... 779.0 1241.0 3609.0 11653.0 1258.0 846.0 \n", - "190 5008.0 1164.0 ... 1460.0 1134.0 2683.0 5547.0 1812.0 628.0 \n", - "191 15513.0 6728.0 ... 5282.0 5757.0 7304.0 8099.0 3931.0 2032.0 \n", - "0 10221.0 2666.0 ... 1582.0 4259.0 8476.0 499.0 4678.0 4144.0 \n", - "1 14525.0 740.0 ... 1066.0 1100.0 8363.0 6232.0 1613.0 3442.0 \n", - "2 16867.0 1111.0 ... 1812.0 4319.0 8668.0 2788.0 3655.0 4979.0 \n", - "3 16434.0 4050.0 ... 4475.0 9918.0 6375.0 849.0 5156.0 6012.0 \n", - "4 14942.0 134.0 ... 146.0 701.0 2748.0 113.0 1582.0 4453.0 \n", - "5 10410.0 734.0 ... 968.0 1338.0 4142.0 98.0 794.0 2570.0 \n", - "6 6400.0 363.0 ... 791.0 657.0 3232.0 1871.0 1030.0 1085.0 \n", - "7 11926.0 1446.0 ... 6048.0 3569.0 5999.0 3287.0 2634.0 2722.0 \n", - "8 35448.0 4548.0 ... 785.0 1022.0 4642.0 109.0 3507.0 2191.0 \n", - "9 15333.0 2017.0 ... 1120.0 3653.0 4556.0 25.0 1557.0 1589.0 \n", - "10 23759.0 522.0 ... 628.0 993.0 3957.0 164.0 1963.0 2278.0 \n", - "11 41702.0 1851.0 ... 3114.0 3308.0 5706.0 893.0 4386.0 3015.0 \n", - "12 21731.0 2792.0 ... 2125.0 5912.0 6407.0 980.0 4728.0 2607.0 \n", - "13 34728.0 3017.0 ... 2978.0 4075.0 5910.0 98.0 2081.0 4793.0 \n", - "14 2574.0 538.0 ... 852.0 788.0 1324.0 668.0 1005.0 674.0 \n", - "15 24302.0 3697.0 ... 2972.0 1726.0 4615.0 129.0 1775.0 2996.0 \n", - "17 9038.0 610.0 ... 1248.0 2434.0 5346.0 118.0 1931.0 1828.0 \n", - "18 13209.0 1915.0 ... 467.0 2217.0 4824.0 115.0 2044.0 3604.0 \n", - "19 14932.0 1471.0 ... 536.0 5839.0 4560.0 141.0 1913.0 2820.0 \n", - "20 17321.0 668.0 ... 624.0 2848.0 8892.0 38.0 2343.0 6012.0 \n", - "21 14576.0 1183.0 ... 1847.0 3997.0 8509.0 1834.0 3018.0 4069.0 \n", - "22 21260.0 750.0 ... 1107.0 1252.0 5710.0 111.0 2821.0 5471.0 \n", - "23 7476.0 950.0 ... 1378.0 1592.0 4062.0 120.0 2398.0 1907.0 \n", - "24 33298.0 5466.0 ... 3607.0 7224.0 9066.0 4225.0 4096.0 4740.0 \n", - "25 20165.0 7358.0 ... 5638.0 1761.0 5831.0 654.0 4684.0 6329.0 \n", - "26 25209.0 956.0 ... 1891.0 2270.0 4177.0 8.0 2434.0 3946.0 \n", - "27 7247.0 1235.0 ... 718.0 1726.0 5688.0 537.0 1122.0 2116.0 \n", - "\n", - " ZNF185 ZNF365 ZNF426 ZNF710 \n", - "16 2809.0 16.0 1066.0 3174.0 \n", - "57 100273.0 5333.0 7373.0 4577.0 \n", - "58 461.0 14.0 481.0 2076.0 \n", - "74 438.0 2.0 683.0 1666.0 \n", - "84 3181.0 1.0 1258.0 4441.0 \n", - "92 720.0 614.0 2984.0 2377.0 \n", - "94 22544.0 118.0 1295.0 2643.0 \n", - "119 1010.0 6.0 960.0 3409.0 \n", - "140 387.0 145.0 1458.0 1912.0 \n", - "143 785.0 631.0 3486.0 8991.0 \n", - "150 1154.0 47.0 773.0 4229.0 \n", - "190 728.0 8.0 742.0 2582.0 \n", - "191 8893.0 261.0 2290.0 4765.0 \n", - "0 37290.0 59.0 2606.0 3493.0 \n", - "1 7622.0 1049.0 2530.0 1625.0 \n", - "2 12031.0 134.0 1627.0 3097.0 \n", - "3 1274.0 15.0 3310.0 2802.0 \n", - "4 2069.0 537.0 951.0 2209.0 \n", - "5 2511.0 67.0 808.0 4566.0 \n", - "6 647.0 45.0 1258.0 1297.0 \n", - "7 2043.0 111.0 3302.0 3772.0 \n", - "8 4349.0 52.0 973.0 3723.0 \n", - "9 117.0 3.0 1674.0 1752.0 \n", - "10 9055.0 67.0 1467.0 2786.0 \n", - "11 7544.0 26.0 1304.0 3952.0 \n", - "12 12930.0 5.0 1406.0 3217.0 \n", - "13 5575.0 229.0 1527.0 7084.0 \n", - "14 23839.0 457.0 725.0 1516.0 \n", - "15 1382.0 61.0 1753.0 3620.0 \n", - "17 10196.0 164.0 2108.0 3216.0 \n", - "18 14249.0 594.0 2141.0 2748.0 \n", - "19 33472.0 450.0 3785.0 3514.0 \n", - "20 9261.0 153.0 2671.0 5498.0 \n", - "21 10202.0 826.0 912.0 2418.0 \n", - "22 4312.0 87.0 1464.0 1804.0 \n", - "23 34415.0 50.0 1610.0 2542.0 \n", - "24 1062.0 55.0 2645.0 4264.0 \n", - "25 12429.0 4734.0 965.0 3988.0 \n", - "26 5330.0 662.0 1381.0 2428.0 \n", - "27 5162.0 39.0 1193.0 1892.0 \n", - "\n", - "[40 rows x 602 columns]" - ] - }, - "execution_count": 114, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "X_test" - ] - }, - { - "cell_type": "code", - "execution_count": 115, - "id": "29da15ed", - "metadata": { - "scrolled": true - }, - "outputs": [], - "source": [ - "# Select columns in df1 based on columns in df2\n", - "X_test = X_test.loc[:, X_train.columns]" - ] - }, - { - "cell_type": "code", - "execution_count": 116, - "id": "d77bf449", - "metadata": {}, - "outputs": [], - "source": [ - "X_test = X_test.astype('int')" - ] - }, - { - "cell_type": "code", - "execution_count": 117, - "id": "4c9779b1", - "metadata": {}, - "outputs": [], - "source": [ - "X_test=X_test.dropna(axis=1)" - ] - }, - { - "cell_type": "code", - "execution_count": 118, - "id": "ec440d31", - "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>ACLY</th>\n", - " <th>ACTG2</th>\n", - " <th>AGRN</th>\n", - " <th>AIM2</th>\n", - " <th>ALDH9A1</th>\n", - " <th>ALOX12</th>\n", - " <th>ANO1</th>\n", - " <th>AQP3</th>\n", - " <th>ATP6V1D</th>\n", - " <th>AURKA</th>\n", - " <th>...</th>\n", - " <th>TJP1</th>\n", - " <th>TMF1</th>\n", - " <th>TMPRSS11D</th>\n", - " <th>TMPRSS11E</th>\n", - " <th>TSPAN6</th>\n", - " <th>TST</th>\n", - " <th>TYMP</th>\n", - " <th>UCHL1</th>\n", - " <th>ZBTB16</th>\n", - " <th>ZNF185</th>\n", - " </tr>\n", - " </thead>\n", - " <tbody>\n", - " <tr>\n", - " <th>16</th>\n", - " <td>4259</td>\n", - " <td>639</td>\n", - " <td>29118</td>\n", - " <td>85</td>\n", - " <td>3436</td>\n", - " <td>111</td>\n", - " <td>9165</td>\n", - " <td>908</td>\n", - " <td>2110</td>\n", - " <td>1706</td>\n", - " <td>...</td>\n", - " <td>12162</td>\n", - " <td>3851</td>\n", - " <td>32</td>\n", - " <td>41</td>\n", - " <td>1523</td>\n", - " <td>2343</td>\n", - " <td>3532</td>\n", - " <td>26</td>\n", - " <td>416</td>\n", - " <td>2809</td>\n", - " </tr>\n", - " <tr>\n", - " <th>57</th>\n", - " <td>4120</td>\n", - " <td>26238</td>\n", - " <td>6202</td>\n", - " <td>68</td>\n", - " <td>12499</td>\n", - " <td>11254</td>\n", - " <td>759</td>\n", - " <td>114879</td>\n", - " <td>5509</td>\n", - " <td>320</td>\n", - " <td>...</td>\n", - " <td>18914</td>\n", - " <td>1219</td>\n", - " <td>10813</td>\n", - " <td>25826</td>\n", - " <td>4473</td>\n", - " <td>3570</td>\n", - " <td>1929</td>\n", - " <td>39</td>\n", - " <td>603</td>\n", - " <td>100273</td>\n", - " </tr>\n", - " <tr>\n", - " <th>58</th>\n", - " <td>3257</td>\n", - " <td>2668</td>\n", - " <td>4353</td>\n", - " <td>39</td>\n", - " <td>2438</td>\n", - " <td>44</td>\n", - " <td>1147</td>\n", - " <td>1039</td>\n", - " <td>1934</td>\n", - " <td>188</td>\n", - " <td>...</td>\n", - " <td>3878</td>\n", - " <td>1888</td>\n", - " <td>30</td>\n", - " <td>21</td>\n", - " <td>1808</td>\n", - " <td>2044</td>\n", - " <td>358</td>\n", - " <td>38</td>\n", - " <td>5362</td>\n", - " <td>461</td>\n", - " </tr>\n", - " <tr>\n", - " <th>74</th>\n", - " <td>2965</td>\n", - " <td>1631</td>\n", - " <td>3183</td>\n", - " <td>30</td>\n", - " <td>1350</td>\n", - " <td>28</td>\n", - " <td>566</td>\n", - " <td>1597</td>\n", - " <td>1023</td>\n", - " <td>137</td>\n", - " <td>...</td>\n", - " <td>3079</td>\n", - " <td>1704</td>\n", - " <td>0</td>\n", - " <td>1</td>\n", - " <td>1220</td>\n", - " <td>1436</td>\n", - " <td>279</td>\n", - " <td>102</td>\n", - " <td>4683</td>\n", - " <td>438</td>\n", - " </tr>\n", - " <tr>\n", - " <th>84</th>\n", - " <td>15858</td>\n", - " <td>1250</td>\n", - " <td>57999</td>\n", - " <td>5</td>\n", - " <td>6791</td>\n", - " <td>119</td>\n", - " <td>15301</td>\n", - " <td>2564</td>\n", - " <td>2474</td>\n", - " <td>931</td>\n", - " <td>...</td>\n", - " <td>20137</td>\n", - " <td>5020</td>\n", - " <td>17</td>\n", - " <td>0</td>\n", - " <td>1794</td>\n", - " <td>6792</td>\n", - " <td>822</td>\n", - " <td>6</td>\n", - " <td>67</td>\n", - " <td>3181</td>\n", - " </tr>\n", - " <tr>\n", - " <th>92</th>\n", - " <td>10677</td>\n", - " <td>180261</td>\n", - " <td>20438</td>\n", - " <td>40</td>\n", - " <td>6160</td>\n", - " <td>207</td>\n", - " <td>6817</td>\n", - " <td>441</td>\n", - " <td>2859</td>\n", - " <td>200</td>\n", - " <td>...</td>\n", - " <td>22885</td>\n", - " <td>6003</td>\n", - " <td>18</td>\n", - " <td>0</td>\n", - " <td>1172</td>\n", - " <td>424</td>\n", - " <td>2723</td>\n", - " <td>1926</td>\n", - " <td>53533</td>\n", - " <td>720</td>\n", - " </tr>\n", - " <tr>\n", - " <th>94</th>\n", - " <td>8076</td>\n", - " <td>46720</td>\n", - " <td>9839</td>\n", - " <td>269</td>\n", - " <td>3393</td>\n", - " <td>931</td>\n", - " <td>345</td>\n", - " <td>20829</td>\n", - " <td>2130</td>\n", - " <td>376</td>\n", - " <td>...</td>\n", - " <td>8715</td>\n", - " <td>1800</td>\n", - " <td>4155</td>\n", - " <td>5119</td>\n", - " <td>4336</td>\n", - " <td>3570</td>\n", - " <td>2446</td>\n", - " <td>1322</td>\n", - " <td>3443</td>\n", - " <td>22544</td>\n", - " </tr>\n", - " <tr>\n", - " <th>119</th>\n", - " <td>6289</td>\n", - " <td>5889</td>\n", - " <td>8126</td>\n", - " <td>76</td>\n", - " <td>3398</td>\n", - " <td>123</td>\n", - " <td>1740</td>\n", - " <td>2034</td>\n", - " <td>1984</td>\n", - " <td>259</td>\n", - " <td>...</td>\n", - " <td>7583</td>\n", - " <td>3134</td>\n", - " <td>13</td>\n", - " <td>2</td>\n", - " <td>1754</td>\n", - " <td>2648</td>\n", - " <td>925</td>\n", - " <td>297</td>\n", - " <td>10003</td>\n", - " <td>1010</td>\n", - " </tr>\n", - " <tr>\n", - " <th>140</th>\n", - " <td>4202</td>\n", - " <td>116320</td>\n", - " <td>6614</td>\n", - " <td>23</td>\n", - " <td>2867</td>\n", - " <td>86</td>\n", - " <td>1831</td>\n", - " <td>506</td>\n", - " <td>1652</td>\n", - " <td>96</td>\n", - " <td>...</td>\n", - " <td>7825</td>\n", - " <td>2684</td>\n", - " <td>11</td>\n", - " <td>1</td>\n", - " <td>1024</td>\n", - " <td>962</td>\n", - " <td>499</td>\n", - " <td>2089</td>\n", - " <td>28984</td>\n", - " <td>387</td>\n", - " </tr>\n", - " <tr>\n", - " <th>143</th>\n", - " <td>8483</td>\n", - " <td>1182882</td>\n", - " <td>10845</td>\n", - " <td>26</td>\n", - " <td>6234</td>\n", - " <td>91</td>\n", - " <td>13962</td>\n", - " <td>562</td>\n", - " <td>4453</td>\n", - " <td>151</td>\n", - " <td>...</td>\n", - " <td>15552</td>\n", - " <td>4512</td>\n", - " <td>92</td>\n", - " <td>97</td>\n", - " <td>625</td>\n", - " <td>610</td>\n", - " <td>1063</td>\n", - " <td>5554</td>\n", - " <td>15996</td>\n", - " <td>785</td>\n", - " </tr>\n", - " <tr>\n", - " <th>150</th>\n", - " <td>4495</td>\n", - " <td>8065</td>\n", - " <td>14353</td>\n", - " <td>45</td>\n", - " <td>5254</td>\n", - " <td>121</td>\n", - " <td>2883</td>\n", - " <td>1873</td>\n", - " <td>1990</td>\n", - " <td>496</td>\n", - " <td>...</td>\n", - " <td>5979</td>\n", - " <td>2646</td>\n", - " <td>193</td>\n", - " <td>235</td>\n", - " <td>2635</td>\n", - " <td>1747</td>\n", - " <td>593</td>\n", - " <td>576</td>\n", - " <td>11653</td>\n", - " <td>1154</td>\n", - " </tr>\n", - " <tr>\n", - " <th>190</th>\n", - " <td>5008</td>\n", - " <td>4862</td>\n", - " <td>13129</td>\n", - " <td>17</td>\n", - " <td>2195</td>\n", - " <td>67</td>\n", - " <td>6275</td>\n", - " <td>709</td>\n", - " <td>1986</td>\n", - " <td>632</td>\n", - " <td>...</td>\n", - " <td>7577</td>\n", - " <td>2702</td>\n", - " <td>25</td>\n", - " <td>2</td>\n", - " <td>1238</td>\n", - " <td>1986</td>\n", - " <td>574</td>\n", - " <td>138</td>\n", - " <td>5547</td>\n", - " <td>728</td>\n", - " </tr>\n", - " <tr>\n", - " <th>191</th>\n", - " <td>15513</td>\n", - " <td>30383</td>\n", - " <td>37470</td>\n", - " <td>161</td>\n", - " <td>6342</td>\n", - " <td>319</td>\n", - " <td>14550</td>\n", - " <td>5171</td>\n", - " <td>4683</td>\n", - " <td>790</td>\n", - " <td>...</td>\n", - " <td>21395</td>\n", - " <td>9407</td>\n", - " <td>1423</td>\n", - " <td>933</td>\n", - " <td>2528</td>\n", - " <td>12431</td>\n", - " <td>2229</td>\n", - " <td>179</td>\n", - " <td>8099</td>\n", - " <td>8893</td>\n", - " </tr>\n", - " <tr>\n", - " <th>0</th>\n", - " <td>10221</td>\n", - " <td>2443</td>\n", - " <td>75902</td>\n", - " <td>177</td>\n", - " <td>6945</td>\n", - " <td>723</td>\n", - " <td>116115</td>\n", - " <td>22334</td>\n", - " <td>2652</td>\n", - " <td>2276</td>\n", - " <td>...</td>\n", - " <td>21246</td>\n", - " <td>2735</td>\n", - " <td>20875</td>\n", - " <td>4526</td>\n", - " <td>2159</td>\n", - " <td>1197</td>\n", - " <td>7100</td>\n", - " <td>5154</td>\n", - " <td>499</td>\n", - " <td>37290</td>\n", - " </tr>\n", - " <tr>\n", - " <th>1</th>\n", - " <td>14525</td>\n", - " <td>7171</td>\n", - " <td>35031</td>\n", - " <td>46</td>\n", - " <td>2689</td>\n", - " <td>468</td>\n", - " <td>6662</td>\n", - " <td>43649</td>\n", - " <td>4385</td>\n", - " <td>2666</td>\n", - " <td>...</td>\n", - " <td>9982</td>\n", - " <td>2981</td>\n", - " <td>1966</td>\n", - " <td>393</td>\n", - " <td>4526</td>\n", - " <td>1215</td>\n", - " <td>19155</td>\n", - " <td>1843</td>\n", - " <td>6232</td>\n", - " <td>7622</td>\n", - " </tr>\n", - " <tr>\n", - " <th>2</th>\n", - " <td>16867</td>\n", - " <td>60482</td>\n", - " <td>44691</td>\n", - " <td>933</td>\n", - " <td>4926</td>\n", - " <td>415</td>\n", - " <td>32548</td>\n", - " <td>5070</td>\n", - " <td>3712</td>\n", - " <td>2323</td>\n", - " <td>...</td>\n", - " <td>19798</td>\n", - " <td>3412</td>\n", - " <td>4118</td>\n", - " <td>3319</td>\n", - " <td>3786</td>\n", - " <td>1799</td>\n", - " <td>17049</td>\n", - " <td>1972</td>\n", - " <td>2788</td>\n", - " <td>12031</td>\n", - " </tr>\n", - " <tr>\n", - " <th>3</th>\n", - " <td>16434</td>\n", - " <td>821</td>\n", - " <td>73091</td>\n", - " <td>73</td>\n", - " <td>6491</td>\n", - " <td>137</td>\n", - " <td>20524</td>\n", - " <td>1654</td>\n", - " <td>3012</td>\n", - " <td>8199</td>\n", - " <td>...</td>\n", - " <td>21014</td>\n", - " <td>5395</td>\n", - " <td>29</td>\n", - " <td>32</td>\n", - " <td>6229</td>\n", - " <td>5317</td>\n", - " <td>7783</td>\n", - " <td>33</td>\n", - " <td>849</td>\n", - " <td>1274</td>\n", - " </tr>\n", - " <tr>\n", - " <th>4</th>\n", - " <td>14942</td>\n", - " <td>3906</td>\n", - " <td>44243</td>\n", - " <td>175</td>\n", - " <td>3720</td>\n", - " <td>103</td>\n", - " <td>1976</td>\n", - " <td>162</td>\n", - " <td>7882</td>\n", - " <td>3729</td>\n", - " <td>...</td>\n", - " <td>4917</td>\n", - " <td>2298</td>\n", - " <td>25</td>\n", - " <td>8</td>\n", - " <td>3291</td>\n", - " <td>1075</td>\n", - " <td>7023</td>\n", - " <td>24759</td>\n", - " <td>113</td>\n", - " <td>2069</td>\n", - " </tr>\n", - " <tr>\n", - " <th>5</th>\n", - " <td>10410</td>\n", - " <td>319</td>\n", - " <td>122948</td>\n", - " <td>1317</td>\n", - " <td>2282</td>\n", - " <td>160</td>\n", - " <td>17007</td>\n", - " <td>12723</td>\n", - " <td>3063</td>\n", - " <td>3970</td>\n", - " <td>...</td>\n", - " <td>12133</td>\n", - " <td>3552</td>\n", - " <td>29</td>\n", - " <td>125</td>\n", - " <td>2744</td>\n", - " <td>2002</td>\n", - " <td>8195</td>\n", - " <td>4401</td>\n", - " <td>98</td>\n", - " <td>2511</td>\n", - " </tr>\n", - " <tr>\n", - " <th>6</th>\n", - " <td>6400</td>\n", - " <td>9388</td>\n", - " <td>19432</td>\n", - " <td>520</td>\n", - " <td>2254</td>\n", - " <td>139</td>\n", - " <td>3700</td>\n", - " <td>786</td>\n", - " <td>1339</td>\n", - " <td>435</td>\n", - " <td>...</td>\n", - " <td>5565</td>\n", - " <td>2394</td>\n", - " <td>10</td>\n", - " <td>3</td>\n", - " <td>852</td>\n", - " <td>1911</td>\n", - " <td>19898</td>\n", - " <td>485</td>\n", - " <td>1871</td>\n", - " <td>647</td>\n", - " </tr>\n", - " <tr>\n", - " <th>7</th>\n", - " <td>11926</td>\n", - " <td>6914</td>\n", - " <td>47899</td>\n", - " <td>264</td>\n", - " <td>3797</td>\n", - " <td>219</td>\n", - " <td>4480</td>\n", - " <td>7021</td>\n", - " <td>3294</td>\n", - " <td>1863</td>\n", - " <td>...</td>\n", - " <td>16615</td>\n", - " <td>6816</td>\n", - " <td>2</td>\n", - " <td>3</td>\n", - " <td>1547</td>\n", - " <td>9133</td>\n", - " <td>6466</td>\n", - " <td>147</td>\n", - " <td>3287</td>\n", - " <td>2043</td>\n", - " </tr>\n", - " <tr>\n", - " <th>8</th>\n", - " <td>35448</td>\n", - " <td>3745</td>\n", - " <td>39035</td>\n", - " <td>14</td>\n", - " <td>5432</td>\n", - " <td>128</td>\n", - " <td>2156</td>\n", - " <td>12611</td>\n", - " <td>3041</td>\n", - " <td>3793</td>\n", - " <td>...</td>\n", - " <td>23510</td>\n", - " <td>4708</td>\n", - " <td>0</td>\n", - " <td>37</td>\n", - " <td>2967</td>\n", - " <td>2121</td>\n", - " <td>2960</td>\n", - " <td>359</td>\n", - " <td>109</td>\n", - " <td>4349</td>\n", - " </tr>\n", - " <tr>\n", - " <th>9</th>\n", - " <td>15333</td>\n", - " <td>892</td>\n", - " <td>19439</td>\n", - " <td>3</td>\n", - " <td>7741</td>\n", - " <td>97</td>\n", - " <td>18602</td>\n", - " <td>230</td>\n", - " <td>2905</td>\n", - " <td>3268</td>\n", - " <td>...</td>\n", - " <td>9944</td>\n", - " <td>2944</td>\n", - " <td>0</td>\n", - " <td>0</td>\n", - " <td>2321</td>\n", - " <td>5301</td>\n", - " <td>437</td>\n", - " <td>208</td>\n", - " <td>25</td>\n", - " <td>117</td>\n", - " </tr>\n", - " <tr>\n", - " <th>10</th>\n", - " <td>23759</td>\n", - " <td>5639</td>\n", - " <td>43847</td>\n", - " <td>671</td>\n", - " <td>3206</td>\n", - " <td>170</td>\n", - " <td>4501</td>\n", - " <td>3960</td>\n", - " <td>2817</td>\n", - " <td>2384</td>\n", - " <td>...</td>\n", - " <td>6139</td>\n", - " <td>1230</td>\n", - " <td>3657</td>\n", - " <td>227</td>\n", - " <td>1671</td>\n", - " <td>1492</td>\n", - " <td>9211</td>\n", - " <td>5208</td>\n", - " <td>164</td>\n", - " <td>9055</td>\n", - " </tr>\n", - " <tr>\n", - " <th>11</th>\n", - " <td>41702</td>\n", - " <td>2321</td>\n", - " <td>45777</td>\n", - " <td>308</td>\n", - " <td>4215</td>\n", - " <td>244</td>\n", - " <td>23984</td>\n", - " <td>1053</td>\n", - " <td>2532</td>\n", - " <td>4997</td>\n", - " <td>...</td>\n", - " <td>15251</td>\n", - " <td>6759</td>\n", - " <td>356</td>\n", - " <td>130</td>\n", - " <td>4966</td>\n", - " <td>4709</td>\n", - " <td>6306</td>\n", - " <td>832</td>\n", - " <td>893</td>\n", - " <td>7544</td>\n", - " </tr>\n", - " <tr>\n", - " <th>12</th>\n", - " <td>21731</td>\n", - " <td>710</td>\n", - " <td>52892</td>\n", - " <td>33</td>\n", - " <td>5321</td>\n", - " <td>118</td>\n", - " <td>63199</td>\n", - " <td>2126</td>\n", - " <td>3817</td>\n", - " <td>3022</td>\n", - " <td>...</td>\n", - " <td>18137</td>\n", - " <td>5011</td>\n", - " <td>11</td>\n", - " <td>14</td>\n", - " <td>1870</td>\n", - " <td>5407</td>\n", - " <td>3217</td>\n", - " <td>44</td>\n", - " <td>980</td>\n", - " <td>12930</td>\n", - " </tr>\n", - " <tr>\n", - " <th>13</th>\n", - " <td>34728</td>\n", - " <td>3946</td>\n", - " <td>82321</td>\n", - " <td>104</td>\n", - " <td>7096</td>\n", - " <td>81</td>\n", - " <td>18992</td>\n", - " <td>766</td>\n", - " <td>3404</td>\n", - " <td>5879</td>\n", - " <td>...</td>\n", - " <td>18162</td>\n", - " <td>6492</td>\n", - " <td>29</td>\n", - " <td>73</td>\n", - " <td>5453</td>\n", - " <td>3345</td>\n", - " <td>5279</td>\n", - " <td>174</td>\n", - " <td>98</td>\n", - " <td>5575</td>\n", - " </tr>\n", - " <tr>\n", - " <th>14</th>\n", - " <td>2574</td>\n", - " <td>20152</td>\n", - " <td>15475</td>\n", - " <td>351</td>\n", - " <td>1971</td>\n", - " <td>1195</td>\n", - " <td>5171</td>\n", - " <td>28474</td>\n", - " <td>1698</td>\n", - " <td>530</td>\n", - " <td>...</td>\n", - " <td>4774</td>\n", - " <td>582</td>\n", - " <td>4308</td>\n", - " <td>4168</td>\n", - " <td>1014</td>\n", - " <td>1198</td>\n", - " <td>15202</td>\n", - " <td>115</td>\n", - " <td>668</td>\n", - " <td>23839</td>\n", - " </tr>\n", - " <tr>\n", - " <th>15</th>\n", - " <td>24302</td>\n", - " <td>486</td>\n", - " <td>51396</td>\n", - " <td>57</td>\n", - " <td>4395</td>\n", - " <td>90</td>\n", - " <td>7689</td>\n", - " <td>4533</td>\n", - " <td>3864</td>\n", - " <td>5163</td>\n", - " <td>...</td>\n", - " <td>12518</td>\n", - " <td>3705</td>\n", - " <td>0</td>\n", - " <td>4</td>\n", - " <td>3680</td>\n", - " <td>3567</td>\n", - " <td>2364</td>\n", - " <td>81</td>\n", - " <td>129</td>\n", - " <td>1382</td>\n", - " </tr>\n", - " <tr>\n", - " <th>17</th>\n", - " <td>9038</td>\n", - " <td>7038</td>\n", - " <td>39771</td>\n", - " <td>4303</td>\n", - " <td>2628</td>\n", - " <td>166</td>\n", - " <td>15863</td>\n", - " <td>22395</td>\n", - " <td>3801</td>\n", - " <td>3080</td>\n", - " <td>...</td>\n", - " <td>6439</td>\n", - " <td>1317</td>\n", - " <td>6438</td>\n", - " <td>13</td>\n", - " <td>1435</td>\n", - " <td>1498</td>\n", - " <td>24735</td>\n", - " <td>232</td>\n", - " <td>118</td>\n", - " <td>10196</td>\n", - " </tr>\n", - " <tr>\n", - " <th>18</th>\n", - " <td>13209</td>\n", - " <td>585</td>\n", - " <td>45011</td>\n", - " <td>967</td>\n", - " <td>3016</td>\n", - " <td>327</td>\n", - " <td>149348</td>\n", - " <td>28589</td>\n", - " <td>2945</td>\n", - " <td>3759</td>\n", - " <td>...</td>\n", - " <td>10579</td>\n", - " <td>2180</td>\n", - " <td>3213</td>\n", - " <td>4494</td>\n", - " <td>1992</td>\n", - " <td>1817</td>\n", - " <td>16004</td>\n", - " <td>4328</td>\n", - " <td>115</td>\n", - " <td>14249</td>\n", - " </tr>\n", - " <tr>\n", - " <th>19</th>\n", - " <td>14932</td>\n", - " <td>432</td>\n", - " <td>117012</td>\n", - " <td>1436</td>\n", - " <td>4611</td>\n", - " <td>2028</td>\n", - " <td>2202</td>\n", - " <td>45630</td>\n", - " <td>3801</td>\n", - " <td>2562</td>\n", - " <td>...</td>\n", - " <td>15227</td>\n", - " <td>2048</td>\n", - " <td>6666</td>\n", - " <td>8338</td>\n", - " <td>1906</td>\n", - " <td>1471</td>\n", - " <td>38164</td>\n", - " <td>1234</td>\n", - " <td>141</td>\n", - " <td>33472</td>\n", - " </tr>\n", - " <tr>\n", - " <th>20</th>\n", - " <td>17321</td>\n", - " <td>865</td>\n", - " <td>126261</td>\n", - " <td>3368</td>\n", - " <td>2587</td>\n", - " <td>888</td>\n", - " <td>29850</td>\n", - " <td>35051</td>\n", - " <td>3767</td>\n", - " <td>5885</td>\n", - " <td>...</td>\n", - " <td>19888</td>\n", - " <td>3006</td>\n", - " <td>6786</td>\n", - " <td>30</td>\n", - " <td>778</td>\n", - " <td>1508</td>\n", - " <td>32380</td>\n", - " <td>491</td>\n", - " <td>38</td>\n", - " <td>9261</td>\n", - " </tr>\n", - " <tr>\n", - " <th>21</th>\n", - " <td>14576</td>\n", - " <td>11127</td>\n", - " <td>40109</td>\n", - " <td>516</td>\n", - " <td>5076</td>\n", - " <td>725</td>\n", - " <td>64000</td>\n", - " <td>3790</td>\n", - " <td>2900</td>\n", - " <td>2039</td>\n", - " <td>...</td>\n", - " <td>14725</td>\n", - " <td>3461</td>\n", - " <td>12658</td>\n", - " <td>21406</td>\n", - " <td>3326</td>\n", - " <td>2119</td>\n", - " <td>22841</td>\n", - " <td>2999</td>\n", - " <td>1834</td>\n", - " <td>10202</td>\n", - " </tr>\n", - " <tr>\n", - " <th>22</th>\n", - " <td>21260</td>\n", - " <td>6533</td>\n", - " <td>22740</td>\n", - " <td>19</td>\n", - " <td>5653</td>\n", - " <td>589</td>\n", - " <td>2933</td>\n", - " <td>463</td>\n", - " <td>3296</td>\n", - " <td>1965</td>\n", - " <td>...</td>\n", - " <td>5039</td>\n", - " <td>2981</td>\n", - " <td>691</td>\n", - " <td>293</td>\n", - " <td>9656</td>\n", - " <td>1585</td>\n", - " <td>4106</td>\n", - " <td>41302</td>\n", - " <td>111</td>\n", - " <td>4312</td>\n", - " </tr>\n", - " <tr>\n", - " <th>23</th>\n", - " <td>7476</td>\n", - " <td>1314</td>\n", - " <td>19050</td>\n", - " <td>295</td>\n", - " <td>4972</td>\n", - " <td>924</td>\n", - " <td>18283</td>\n", - " <td>18513</td>\n", - " <td>3071</td>\n", - " <td>1274</td>\n", - " <td>...</td>\n", - " <td>13805</td>\n", - " <td>1525</td>\n", - " <td>7008</td>\n", - " <td>8508</td>\n", - " <td>3350</td>\n", - " <td>2739</td>\n", - " <td>15777</td>\n", - " <td>421</td>\n", - " <td>120</td>\n", - " <td>34415</td>\n", - " </tr>\n", - " <tr>\n", - " <th>24</th>\n", - " <td>33298</td>\n", - " <td>6304</td>\n", - " <td>107553</td>\n", - " <td>110</td>\n", - " <td>9714</td>\n", - " <td>321</td>\n", - " <td>5404</td>\n", - " <td>2974</td>\n", - " <td>3888</td>\n", - " <td>5376</td>\n", - " <td>...</td>\n", - " <td>34916</td>\n", - " <td>7692</td>\n", - " <td>12</td>\n", - " <td>46</td>\n", - " <td>5229</td>\n", - " <td>6053</td>\n", - " <td>7355</td>\n", - " <td>2034</td>\n", - " <td>4225</td>\n", - " <td>1062</td>\n", - " </tr>\n", - " <tr>\n", - " <th>25</th>\n", - " <td>20165</td>\n", - " <td>12052</td>\n", - " <td>87008</td>\n", - " <td>301</td>\n", - " <td>4166</td>\n", - " <td>243</td>\n", - " <td>85402</td>\n", - " <td>13620</td>\n", - " <td>3260</td>\n", - " <td>3026</td>\n", - " <td>...</td>\n", - " <td>19469</td>\n", - " <td>3604</td>\n", - " <td>96</td>\n", - " <td>2604</td>\n", - " <td>5081</td>\n", - " <td>2168</td>\n", - " <td>7735</td>\n", - " <td>1005</td>\n", - " <td>654</td>\n", - " <td>12429</td>\n", - " </tr>\n", - " <tr>\n", - " <th>26</th>\n", - " <td>25209</td>\n", - " <td>4772</td>\n", - " <td>31916</td>\n", - " <td>104</td>\n", - " <td>3903</td>\n", - " <td>3253</td>\n", - " <td>16186</td>\n", - " <td>6354</td>\n", - " <td>3945</td>\n", - " <td>2207</td>\n", - " <td>...</td>\n", - " <td>13462</td>\n", - " <td>2335</td>\n", - " <td>1397</td>\n", - " <td>221</td>\n", - " <td>2914</td>\n", - " <td>1956</td>\n", - " <td>6526</td>\n", - " <td>20385</td>\n", - " <td>8</td>\n", - " <td>5330</td>\n", - " </tr>\n", - " <tr>\n", - " <th>27</th>\n", - " <td>7247</td>\n", - " <td>3264</td>\n", - " <td>66834</td>\n", - " <td>2148</td>\n", - " <td>3504</td>\n", - " <td>124</td>\n", - " <td>7262</td>\n", - " <td>1902</td>\n", - " <td>2223</td>\n", - " <td>4083</td>\n", - " <td>...</td>\n", - " <td>8892</td>\n", - " <td>3559</td>\n", - " <td>439</td>\n", - " <td>295</td>\n", - " <td>3932</td>\n", - " <td>2038</td>\n", - " <td>5239</td>\n", - " <td>92</td>\n", - " <td>537</td>\n", - " <td>5162</td>\n", - " </tr>\n", - " </tbody>\n", - "</table>\n", - "<p>40 rows × 98 columns</p>\n", - "</div>" - ], - "text/plain": [ - " ACLY ACTG2 AGRN AIM2 ALDH9A1 ALOX12 ANO1 AQP3 ATP6V1D \\\n", - "16 4259 639 29118 85 3436 111 9165 908 2110 \n", - "57 4120 26238 6202 68 12499 11254 759 114879 5509 \n", - "58 3257 2668 4353 39 2438 44 1147 1039 1934 \n", - "74 2965 1631 3183 30 1350 28 566 1597 1023 \n", - "84 15858 1250 57999 5 6791 119 15301 2564 2474 \n", - "92 10677 180261 20438 40 6160 207 6817 441 2859 \n", - "94 8076 46720 9839 269 3393 931 345 20829 2130 \n", - "119 6289 5889 8126 76 3398 123 1740 2034 1984 \n", - "140 4202 116320 6614 23 2867 86 1831 506 1652 \n", - "143 8483 1182882 10845 26 6234 91 13962 562 4453 \n", - "150 4495 8065 14353 45 5254 121 2883 1873 1990 \n", - "190 5008 4862 13129 17 2195 67 6275 709 1986 \n", - "191 15513 30383 37470 161 6342 319 14550 5171 4683 \n", - "0 10221 2443 75902 177 6945 723 116115 22334 2652 \n", - "1 14525 7171 35031 46 2689 468 6662 43649 4385 \n", - "2 16867 60482 44691 933 4926 415 32548 5070 3712 \n", - "3 16434 821 73091 73 6491 137 20524 1654 3012 \n", - "4 14942 3906 44243 175 3720 103 1976 162 7882 \n", - "5 10410 319 122948 1317 2282 160 17007 12723 3063 \n", - "6 6400 9388 19432 520 2254 139 3700 786 1339 \n", - "7 11926 6914 47899 264 3797 219 4480 7021 3294 \n", - "8 35448 3745 39035 14 5432 128 2156 12611 3041 \n", - "9 15333 892 19439 3 7741 97 18602 230 2905 \n", - "10 23759 5639 43847 671 3206 170 4501 3960 2817 \n", - "11 41702 2321 45777 308 4215 244 23984 1053 2532 \n", - "12 21731 710 52892 33 5321 118 63199 2126 3817 \n", - "13 34728 3946 82321 104 7096 81 18992 766 3404 \n", - "14 2574 20152 15475 351 1971 1195 5171 28474 1698 \n", - "15 24302 486 51396 57 4395 90 7689 4533 3864 \n", - "17 9038 7038 39771 4303 2628 166 15863 22395 3801 \n", - "18 13209 585 45011 967 3016 327 149348 28589 2945 \n", - "19 14932 432 117012 1436 4611 2028 2202 45630 3801 \n", - "20 17321 865 126261 3368 2587 888 29850 35051 3767 \n", - "21 14576 11127 40109 516 5076 725 64000 3790 2900 \n", - "22 21260 6533 22740 19 5653 589 2933 463 3296 \n", - "23 7476 1314 19050 295 4972 924 18283 18513 3071 \n", - "24 33298 6304 107553 110 9714 321 5404 2974 3888 \n", - "25 20165 12052 87008 301 4166 243 85402 13620 3260 \n", - "26 25209 4772 31916 104 3903 3253 16186 6354 3945 \n", - "27 7247 3264 66834 2148 3504 124 7262 1902 2223 \n", - "\n", - " AURKA ... TJP1 TMF1 TMPRSS11D TMPRSS11E TSPAN6 TST TYMP \\\n", - "16 1706 ... 12162 3851 32 41 1523 2343 3532 \n", - "57 320 ... 18914 1219 10813 25826 4473 3570 1929 \n", - "58 188 ... 3878 1888 30 21 1808 2044 358 \n", - "74 137 ... 3079 1704 0 1 1220 1436 279 \n", - "84 931 ... 20137 5020 17 0 1794 6792 822 \n", - "92 200 ... 22885 6003 18 0 1172 424 2723 \n", - "94 376 ... 8715 1800 4155 5119 4336 3570 2446 \n", - "119 259 ... 7583 3134 13 2 1754 2648 925 \n", - "140 96 ... 7825 2684 11 1 1024 962 499 \n", - "143 151 ... 15552 4512 92 97 625 610 1063 \n", - "150 496 ... 5979 2646 193 235 2635 1747 593 \n", - "190 632 ... 7577 2702 25 2 1238 1986 574 \n", - "191 790 ... 21395 9407 1423 933 2528 12431 2229 \n", - "0 2276 ... 21246 2735 20875 4526 2159 1197 7100 \n", - "1 2666 ... 9982 2981 1966 393 4526 1215 19155 \n", - "2 2323 ... 19798 3412 4118 3319 3786 1799 17049 \n", - "3 8199 ... 21014 5395 29 32 6229 5317 7783 \n", - "4 3729 ... 4917 2298 25 8 3291 1075 7023 \n", - "5 3970 ... 12133 3552 29 125 2744 2002 8195 \n", - "6 435 ... 5565 2394 10 3 852 1911 19898 \n", - "7 1863 ... 16615 6816 2 3 1547 9133 6466 \n", - "8 3793 ... 23510 4708 0 37 2967 2121 2960 \n", - "9 3268 ... 9944 2944 0 0 2321 5301 437 \n", - "10 2384 ... 6139 1230 3657 227 1671 1492 9211 \n", - "11 4997 ... 15251 6759 356 130 4966 4709 6306 \n", - "12 3022 ... 18137 5011 11 14 1870 5407 3217 \n", - "13 5879 ... 18162 6492 29 73 5453 3345 5279 \n", - "14 530 ... 4774 582 4308 4168 1014 1198 15202 \n", - "15 5163 ... 12518 3705 0 4 3680 3567 2364 \n", - "17 3080 ... 6439 1317 6438 13 1435 1498 24735 \n", - "18 3759 ... 10579 2180 3213 4494 1992 1817 16004 \n", - "19 2562 ... 15227 2048 6666 8338 1906 1471 38164 \n", - "20 5885 ... 19888 3006 6786 30 778 1508 32380 \n", - "21 2039 ... 14725 3461 12658 21406 3326 2119 22841 \n", - "22 1965 ... 5039 2981 691 293 9656 1585 4106 \n", - "23 1274 ... 13805 1525 7008 8508 3350 2739 15777 \n", - "24 5376 ... 34916 7692 12 46 5229 6053 7355 \n", - "25 3026 ... 19469 3604 96 2604 5081 2168 7735 \n", - "26 2207 ... 13462 2335 1397 221 2914 1956 6526 \n", - "27 4083 ... 8892 3559 439 295 3932 2038 5239 \n", - "\n", - " UCHL1 ZBTB16 ZNF185 \n", - "16 26 416 2809 \n", - "57 39 603 100273 \n", - "58 38 5362 461 \n", - "74 102 4683 438 \n", - "84 6 67 3181 \n", - "92 1926 53533 720 \n", - "94 1322 3443 22544 \n", - "119 297 10003 1010 \n", - "140 2089 28984 387 \n", - "143 5554 15996 785 \n", - "150 576 11653 1154 \n", - "190 138 5547 728 \n", - "191 179 8099 8893 \n", - "0 5154 499 37290 \n", - "1 1843 6232 7622 \n", - "2 1972 2788 12031 \n", - "3 33 849 1274 \n", - "4 24759 113 2069 \n", - "5 4401 98 2511 \n", - "6 485 1871 647 \n", - "7 147 3287 2043 \n", - "8 359 109 4349 \n", - "9 208 25 117 \n", - "10 5208 164 9055 \n", - "11 832 893 7544 \n", - "12 44 980 12930 \n", - "13 174 98 5575 \n", - "14 115 668 23839 \n", - "15 81 129 1382 \n", - "17 232 118 10196 \n", - "18 4328 115 14249 \n", - "19 1234 141 33472 \n", - "20 491 38 9261 \n", - "21 2999 1834 10202 \n", - "22 41302 111 4312 \n", - "23 421 120 34415 \n", - "24 2034 4225 1062 \n", - "25 1005 654 12429 \n", - "26 20385 8 5330 \n", - "27 92 537 5162 \n", - "\n", - "[40 rows x 98 columns]" - ] - }, - "execution_count": 118, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "X_test" - ] - }, - { - "cell_type": "code", - "execution_count": 119, - "id": "c8c233d6", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - " precision recall f1-score support\n", - "\n", - " 0 0.56 0.38 0.45 13\n", - " 1 0.74 0.85 0.79 27\n", - "\n", - " accuracy 0.70 40\n", - " macro avg 0.65 0.62 0.62 40\n", - "weighted avg 0.68 0.70 0.68 40\n", - "\n" - ] - } - ], - "source": [ - "from sklearn.metrics import classification_report, confusion_matrix\n", - "grid_predictions = grid.predict(X_test)\n", - "print(classification_report(y_test, grid_predictions))" - ] - }, - { - "cell_type": "code", - "execution_count": 120, - "id": "3b2776c0", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "<style>#sk-container-id-4 {color: black;background-color: white;}#sk-container-id-4 pre{padding: 0;}#sk-container-id-4 div.sk-toggleable {background-color: white;}#sk-container-id-4 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-4 label.sk-toggleable__label-arrow:before {content: \"▸\";float: left;margin-right: 0.25em;color: #696969;}#sk-container-id-4 label.sk-toggleable__label-arrow:hover:before {color: black;}#sk-container-id-4 div.sk-estimator:hover label.sk-toggleable__label-arrow:before {color: black;}#sk-container-id-4 div.sk-toggleable__content {max-height: 0;max-width: 0;overflow: hidden;text-align: left;background-color: #f0f8ff;}#sk-container-id-4 div.sk-toggleable__content pre {margin: 0.2em;color: black;border-radius: 0.25em;background-color: #f0f8ff;}#sk-container-id-4 input.sk-toggleable__control:checked~div.sk-toggleable__content {max-height: 200px;max-width: 100%;overflow: auto;}#sk-container-id-4 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {content: \"▾\";}#sk-container-id-4 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-4 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-4 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-4 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-4 div.sk-estimator:hover {background-color: #d4ebff;}#sk-container-id-4 div.sk-parallel-item::after {content: \"\";width: 100%;border-bottom: 1px solid gray;flex-grow: 1;}#sk-container-id-4 div.sk-label:hover label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-4 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-4 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-4 div.sk-item {position: relative;z-index: 1;}#sk-container-id-4 div.sk-parallel {display: flex;align-items: stretch;justify-content: center;background-color: white;position: relative;}#sk-container-id-4 div.sk-item::before, #sk-container-id-4 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-4 div.sk-parallel-item {display: flex;flex-direction: column;z-index: 1;position: relative;background-color: white;}#sk-container-id-4 div.sk-parallel-item:first-child::after {align-self: flex-end;width: 50%;}#sk-container-id-4 div.sk-parallel-item:last-child::after {align-self: flex-start;width: 50%;}#sk-container-id-4 div.sk-parallel-item:only-child::after {width: 0;}#sk-container-id-4 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-4 div.sk-label label {font-family: monospace;font-weight: bold;display: inline-block;line-height: 1.2em;}#sk-container-id-4 div.sk-label-container {text-align: center;}#sk-container-id-4 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-4 div.sk-text-repr-fallback {display: none;}</style><div id=\"sk-container-id-4\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><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=None, feature_types=None,\n", - " gamma=None, gpu_id=None, grow_policy=None, importance_type=None,\n", - " interaction_constraints=None, learning_rate=0.1, max_bin=None,\n", - " max_cat_threshold=None, max_cat_to_onehot=None,\n", - " max_delta_step=None, max_depth=3, max_leaves=None,\n", - " min_child_weight=None, missing=nan, monotone_constraints=None,\n", - " n_estimators=100, n_jobs=None, num_parallel_tree=None,\n", - " predictor=None, random_state=42, ...)</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\"><div class=\"sk-estimator sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-8\" type=\"checkbox\" checked><label for=\"sk-estimator-id-8\" 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=None, feature_types=None,\n", - " gamma=None, gpu_id=None, grow_policy=None, importance_type=None,\n", - " interaction_constraints=None, learning_rate=0.1, max_bin=None,\n", - " max_cat_threshold=None, max_cat_to_onehot=None,\n", - " max_delta_step=None, max_depth=3, max_leaves=None,\n", - " min_child_weight=None, missing=nan, monotone_constraints=None,\n", - " n_estimators=100, n_jobs=None, num_parallel_tree=None,\n", - " predictor=None, random_state=42, ...)</pre></div></div></div></div></div>" - ], - "text/plain": [ - "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=None, feature_types=None,\n", - " gamma=None, gpu_id=None, grow_policy=None, importance_type=None,\n", - " interaction_constraints=None, learning_rate=0.1, max_bin=None,\n", - " max_cat_threshold=None, max_cat_to_onehot=None,\n", - " max_delta_step=None, max_depth=3, max_leaves=None,\n", - " min_child_weight=None, missing=nan, monotone_constraints=None,\n", - " n_estimators=100, n_jobs=None, num_parallel_tree=None,\n", - " predictor=None, random_state=42, ...)" - ] - }, - "execution_count": 120, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "model_xgb = grid.best_estimator_\n", - "model_xgb.fit(X_train,y_train)" - ] - }, - { - "cell_type": "code", - "execution_count": 121, - "id": "94871ada", - "metadata": {}, - "outputs": [], - "source": [ - "y_proba = model_xgb.fit(X_train, y_train).predict_proba(X_test)[:,1]" - ] - }, - { - "cell_type": "code", - "execution_count": 122, - "id": "fddf8856", - "metadata": {}, - "outputs": [], - "source": [ - "from sklearn.model_selection import StratifiedKFold\n", - "from sklearn.feature_selection import SelectKBest, f_classif\n", - "from sklearn.metrics import auc\n", - "def roc(X_train,y_train,model,label):\n", - " cv = StratifiedKFold(n_splits=6)\n", - " classifier = model\n", - " tprs = []\n", - " aucs = []\n", - " mean_fpr = np.linspace(0, 1, 100)\n", - "\n", - " fig, ax = plt.subplots(figsize=(6, 6))\n", - " for fold, (train, test) in enumerate(cv.split(X_train, y_train)):\n", - " classifier.fit(X_train.iloc[train], y_train.iloc[train])\n", - " viz = RocCurveDisplay.from_estimator(\n", - " classifier,\n", - " X_train.iloc[test],\n", - " y_train.iloc[test],\n", - " name=f\"ROC fold {fold}\",\n", - " alpha=0.3,\n", - " lw=1,\n", - " ax=ax,\n", - " )\n", - " interp_tpr = np.interp(mean_fpr, viz.fpr, viz.tpr)\n", - " interp_tpr[0] = 0.0\n", - " tprs.append(interp_tpr)\n", - " aucs.append(viz.roc_auc)\n", - " ax.plot([0, 1], [0, 1], \"k--\", label=\"chance level (AUC = 0.5)\")\n", - "\n", - " mean_tpr = np.mean(tprs, axis=0)\n", - " mean_tpr[-1] = 1.0\n", - " mean_auc = auc(mean_fpr, mean_tpr)\n", - " std_auc = np.std(aucs)\n", - " ax.plot(\n", - " mean_fpr,\n", - " mean_tpr,\n", - " color=\"b\",\n", - " label=r\"Mean ROC (AUC = %0.2f $\\pm$ %0.2f)\" % (mean_auc, std_auc),\n", - " lw=2,\n", - " alpha=0.8,\n", - " )\n", - "\n", - " std_tpr = np.std(tprs, axis=0)\n", - " tprs_upper = np.minimum(mean_tpr + std_tpr, 1)\n", - " tprs_lower = np.maximum(mean_tpr - std_tpr, 0)\n", - " ax.fill_between(\n", - " mean_fpr,\n", - " tprs_lower,\n", - " tprs_upper,\n", - " color=\"grey\",\n", - " alpha=0.2,\n", - " label=r\"$\\pm$ 1 std. dev.\",\n", - " )\n", - "\n", - " ax.set(\n", - " xlim=[-0.05, 1.05],\n", - " ylim=[-0.05, 1.05],\n", - " xlabel=\"False Positive Rate\",\n", - " ylabel=\"True Positive Rate\",\n", - " title=label,\n", - " )\n", - " ax.axis(\"square\")\n", - " ax.legend(loc=\"lower right\")\n", - " plt.show()" - ] - }, - { - "cell_type": "code", - "execution_count": 123, - "id": "a7a0f6a7", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "<Figure size 600x600 with 1 Axes>" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "model = model_xgb\n", - "label=\"ROC curve of training data\"\n", - "roc(X_train,y_train,model,label)" - ] - }, - { - "cell_type": "code", - "execution_count": 124, - "id": "816f08dd", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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tsTSpUuRmppqMJawsDDI5XLExMTozGRpad9//z169eoFDw8PODs7o1OnTvjtt9+eu9+lS5ewf/9+vP3228XW7dixAxKJBFOnTi22LjIyEq6urnqPKRKJ8OOPP+osK829LKvU1FS89tprcHZ2hqurKyZMmKDzWSvq7t27EIlEel+7du0StktISED//v3h5OSEmjVrYu7cuTojkv73v//F+fPnceLECYtdW2XDSYWZqInHqajKEhMT0b17d/Tr16/ELzv2fH1CQpCcnIy4uDiEh4dj48aNCAsL09lm7dq1GDhwILp06YKoqChER0dj+PDhmDx5MubMmaOz7aJFixAaGop27drhwIEDuHLlClatWoVLly5h27ZtBuOIjY1F165d4e3tjRo1aljkWvX5448/0KtXL+zfvx/nzp1DUFAQBgwYgAsXLpS439q1azFs2DAoFIpi6yIiIjBv3jzs2LFDb4JmrNLey7J67bXXcPXqVRw8eBD79u3DH3/8gUmTJhncvl69ekhOTtZ5LVmyBAqFAn379gUAqFQq9O/fH/n5+Th9+jS+/vprREZGYvHixcJxZDIZRo4ciTVr1ljs2iods091VsFZapbSNwfvoGZNM6l582z6/PN/KDc312zHZxVbQkKCzmyj//zzj1XjqWyzlA4ePJhat24tvE9ISCCpVKp3qu01a9YQADp79iwRPZuN09AU54ZmKUWRGUI1s5WaOktpZmYmjR49muRyOXl5edGnn35q1CylRTVv3pyWLFlicL1SqSQXFxfat29fsXVxcXHk6OhIaWlp1KFDB9q+fbvO+i1btpCLi4ve4wKgH374gYhKfy/L6tq1awSA/vrrL2HZgQMHSCQSUVJSktHHadWqFf33v/8V3u/fv5/EYjGlpKQIy7744gtydnamvLw8Ydnx48dJJpNRdnZ2Ga+kYjPXLKVcUmEmap3qDysGwspVYmIiAgMDdRpl1qlTx9ph6aVSq/A0/2m5v1RqValjvnLlCk6fPg2ZTCYs2717NwoKCoqVSADAG2+8AYVCgR07dgAAtm/fDoVCgSlTpug9vqFi/+TkZPj7+2P27NlITk7GnDlzkJWVhZCQEFSvXh1//fUXdu3ahUOHDmHatGkG4587dy6OHz+OvXv34vfff8exY8dw/vx5E+4AoFar8fTpU7i5uRncJjo6Gunp6Wjbtm2xdVu2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", - "text/plain": [ - "<Figure size 600x600 with 1 Axes>" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "label=\"ROC curve of testing data\"\n", - "roc(X_test,y_test,model,label)" - ] - }, - { - "cell_type": "code", - "execution_count": 125, - "id": "033ca70b", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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VvfT8aLQyg4JALwyLc50MH28ds2aNR776enpqlu3rrZt26auXbvqxIkTevnll7VkyRJdd911kqQFCxaoZcuW+uSTT/Tb3/62VM+p9ApDeHi4kpKS3FtRUZF+//vfq23btnrjjTe0bds2zZ07V5JUXFx8wXtMmzZNu3bt0v/+7//qww8/VKtWrbRixQpJUn5+vv70pz8pMzPTvW3fvl179+51JxXncjqdioqK8thgvxrVStQi5ke1iPlRktQwMk8tYn5U/fCTquZw6bme/1LrOt9r3Ec9FewwVSfslOqEnVL1IFclRw6UTWgNl5q2yFfTFmfGZNVrWKimLfIVW//C1U5UTZaqC7960+W5rfGioqJSPf/EiROSpJiYMzNytm3bppKSEvXs2dN9TosWLdSoUSNt2bKl1N+r0isM59q2bZsMw9BTTz2loKAz+cyl2hFnJScnKzk5WampqRo0aJAWLFigm2++WVdddZW++uorpmn6odax32vR799270/qvFmStOLr5vr7to66vsk3kqS3Bv7T47q7Vt2kf+c2qLA4Abs0a31ST7y6073/p0f2S5LWvllXT09Krqyw4KfOrWxPnTpV06ZNu+Q1hmFo9OjRuuaaa9S6dWtJ0pEjRxQSEnLe+kX16tXTkSNHSh2P3yUMSUlJKikp0Zw5c9S3b199/PHHmj9//kXP//nnnzVu3DjdcsstSkxM1KFDh/TZZ59p4MCBkqQJEybot7/9rUaOHKnhw4crPDxcX331ldauXau///3vFfW1cAH/zm2gFi/ef9HPL/UZUBV9+e+a6tP82soOA+XMrpUeDx486FHhdjq9TykfMWKEdu7cqYyMjDI//2IqvSVxrnbt2unpp5/WX//6V7Vu3VqLFy9WWlraRc8PDg7WTz/9pLvuukvJycm67bbb1KdPH02fPl2S1LZtW23YsEFff/21unTpovbt22vKlCmKj4+vqK8EALiM2NWSOLc17i1hGDlypFatWqWPPvpIDRs2dB+Pi4tTcXGxjh8/7nH+0aNHFRcXV+rv5TBN00/fi+U/8vLyFB0draaPzFJwKAPvEJgS//ZlZYcAlJvTZrE+PLlYJ06cKLdxaWd/V/T71z2qHl72GV0lBcV6q9crpY7VNE09+OCDWrFihdavX69mzZp5fH7ixAnFxsbqtddec1ffs7Ky1KJFC23ZsqXUgx79riUBAEBVZvV9EL5eO2LECC1ZskRvvfWWIiMj3eMSoqOjFRYWpujoaA0bNkxjxoxRTEyMoqKi9OCDD6pz586lThYkEgYAAGz167ZCWa/3xdmlCbp37+5xfMGCBRo6dKgk6ZlnnlFQUJAGDhyooqIi9e7dW88//7xPzyFhAACgCivNyILQ0FDNnTvXvUxBWZAwAABgo4quMFQUEgYAAGwUqAmD302rBAAA/ocKAwAANgrUCgMJAwAANjLl+9TIc6/3RyQMAADYKFArDIxhAAAAXlFhAADARoFaYSBhAADARoGaMNCSAAAAXlFhAADARoFaYSBhAADARqbpkGnhl76Va8sTLQkAAOAVFQYAAGxkyGFp4SYr15YnEgYAAGwUqGMYaEkAAACvqDAAAGCjQB30SMIAAICNArUlQcIAAICNArXCwBgGAADgFRUGAABsZFpsSfhrhYGEAQAAG5mSTNPa9f6IlgQAAPCKCgMAADYy5JCDlR4BAMClMEsCAABctqgwAABgI8N0yMHCTQAA4FJM0+IsCT+dJkFLAgAAeEWFAQAAGwXqoEcSBgAAbETCAAAAvArUQY+MYQAAAF5RYQAAwEaBOkuChAEAABudSRisjGGwMRgb0ZIAAABeUWEAAMBGzJIAAABemb9sVq73R7QkAACAV1QYAACwES0JAADgXYD2JEgYAACwk8UKg/y0wsAYBgAA4BUVBgAAbMRKjwAAwKtAHfRISwIAAHhFhQEAADuZDmsDF/20wkDCAACAjQJ1DAMtCQAA4BUVBgAA7MTCTQAAwJtAnSVRqoTh7bffLvUNb7rppjIHAwAA/FOpEob+/fuX6mYOh0Mul8tKPAAAVH1+2lawolQJg2EY5R0HAAABIVBbEpZmSRQWFtoVBwAAgcG0YfNDPicMLpdLM2fOVIMGDRQREaF9+/ZJkiZPnqyXX37Z9gABAEDl8zlhePzxx5Wenq4nnnhCISEh7uOtW7fWSy+9ZGtwAABUPQ4bNv/jc8KwaNEi/d///Z8GDx6s4OBg9/F27dppz549tgYHAECVQ0vijO+++05JSUnnHTcMQyUlJbYEBQAASmfjxo3q27ev4uPj5XA4tHLlSo/Phw4dKofD4bGlpKT4/ByfE4ZWrVpp06ZN5x1//fXX1b59e58DAAAgoFRwhaGgoEDt2rXT3LlzL3pOSkqKcnNz3dtrr73m45cqw0qPU6ZM0ZAhQ/Tdd9/JMAy9+eabysrK0qJFi7Rq1SqfAwAAIKDY9LbKvLw8j8NOp1NOp/O80/v06aM+ffpc8pZOp1NxcXFlj0llqDD069dP77zzjtatW6fw8HBNmTJFu3fv1jvvvKMbbrjBUjAAAOCMhIQERUdHu7e0tLQy32v9+vWqW7eumjdvrvvvv18//fSTz/co07skunTporVr15blUgAAAppdr7c+ePCgoqKi3McvVF0ojZSUFA0YMECJiYnKycnRI488oj59+mjLli0ekxe8KfPLp7Zu3ardu3dLOjOuoUOHDmW9FQAAgcOmt1VGRUV5JAxldfvtt7t/btOmjdq2basrrrhC69ev1/XXX1/q+/icMBw6dEiDBg3Sxx9/rJo1a0qSjh8/rt/97ndaunSpGjZs6OstAQBABWnatKnq1Kmj7OxsnxIGn8cwDB8+XCUlJdq9e7eOHTumY8eOaffu3TIMQ8OHD/f1dgAABJazgx6tbOXo0KFD+umnn1S/fn2frvO5wrBhwwZt3rxZzZs3dx9r3ry55syZoy5duvh6OwAAAorDPLNZud4X+fn5ys7Odu/v379fmZmZiomJUUxMjKZPn66BAwcqLi5OOTk5Gj9+vJKSktS7d2+fnuNzwpCQkHDBBZpcLpfi4+N9vR0AAIHFpjEMpbV161b16NHDvT9mzBhJ0pAhQzRv3jzt2LFDCxcu1PHjxxUfH69evXpp5syZPg+i9DlhePLJJ/Xggw9q7ty56tixozvYhx56SH/72998vR0AALCge/fuMi8xLeP999+35TmlShhq1aolh+O/PZWCggJ16tRJ1aqdufz06dOqVq2a7rnnHvXv39+WwAAAqJJsWrjJ35QqYXj22WfLOQwAAAJEBbckKkqpEoYhQ4aUdxwAAMCPlXnhJkkqLCxUcXGxxzE7FpkAAKDKCtAKg8/rMBQUFGjkyJGqW7euwsPDVatWLY8NAIDLWgW/rbKi+JwwjB8/Xh9++KHmzZsnp9Opl156SdOnT1d8fLwWLVpUHjECAIBK5nNL4p133tGiRYvUvXt33X333erSpYuSkpLUuHFjLV68WIMHDy6POAEAqBoCdJaEzxWGY8eOqWnTppLOjFc4duyYJOnaa6/Vxo0b7Y0OAIAq5uxKj1Y2f+RzwtC0aVPt379fktSiRQstX75c0pnKw9mXUQEAgMDic8Jw9913a/v27ZKkiRMnau7cuQoNDVVqaqrGjRtne4AAAFQpATro0ecxDKmpqe6fe/bsqT179mjbtm1KSkpS27ZtbQ0OAAD4B0vrMEhS48aN1bhxYztiAQCgynPI4tsqbYvEXqVKGGbPnl3qG44aNarMwQAAAP9UqoThmWeeKdXNHA5HQCcMjWZ9qmqO6pUdBlAu3jucWdkhAOUm76ShWskV9LAAnVZZqoTh7KwIAADgBUtDAwCAy5XlQY8AAOBXArTCQMIAAICNrK7WGDArPQIAgMsPFQYAAOwUoC2JMlUYNm3apDvvvFOdO3fWd999J0l69dVXlZGRYWtwAABUOQG6NLTPCcMbb7yh3r17KywsTF988YWKiookSSdOnNCsWbNsDxAAAFQ+nxOGxx57TPPnz9eLL76o6tX/u4jRNddco88//9zW4AAAqGoC9fXWPo9hyMrKUteuXc87Hh0drePHj9sREwAAVVeArvToc4UhLi5O2dnZ5x3PyMhQ06ZNbQkKAIAqizEMZ9x777166KGH9Omnn8rhcOjw4cNavHixxo4dq/vvv788YgQAAJXM55bExIkTZRiGrr/+ep06dUpdu3aV0+nU2LFj9eCDD5ZHjAAAVBmBunCTzwmDw+HQo48+qnHjxik7O1v5+flq1aqVIiIiyiM+AACqlgBdh6HMCzeFhISoVatWdsYCAAD8lM8JQ48ePeRwXHwE54cffmgpIAAAqjSrUyMDpcJw5ZVXeuyXlJQoMzNTO3fu1JAhQ+yKCwCAqomWxBnPPPPMBY9PmzZN+fn5lgMCAAD+x7a3Vd5555165ZVX7LodAABVU4Cuw2Db2yq3bNmi0NBQu24HAECVxLTKXwwYMMBj3zRN5ebmauvWrZo8ebJtgQEAAP/hc8IQHR3tsR8UFKTmzZtrxowZ6tWrl22BAQAA/+FTwuByuXT33XerTZs2qlWrVnnFBABA1RWgsyR8GvQYHBysXr168VZKAAAuIlBfb+3zLInWrVtr37595RELAADwUz4nDI899pjGjh2rVatWKTc3V3l5eR4bAACXvQCbUin5MIZhxowZevjhh3XjjTdKkm666SaPJaJN05TD4ZDL5bI/SgAAqooAHcNQ6oRh+vTpuu+++/TRRx+VZzwAAMAPlTphMM0zKU+3bt3KLRgAAKo6Fm6SLvmWSgAAIFoSkpScnOw1aTh27JilgAAAgP/xKWGYPn36eSs9AgCA/6IlIen2229X3bp1yysWAACqvgBtSZR6HQbGLwAAcPnyeZYEAAC4hACtMJQ6YTAMozzjAAAgIDCGAQAAeBegFQaf3yUBAAAuP1QYAACwU4BWGEgYAACwUaCOYaAlAQAAvKLCAACAnWhJAAAAb2hJAAAAv7Nx40b17dtX8fHxcjgcWrlypcfnpmlqypQpql+/vsLCwtSzZ0/t3bvX5+eQMAAAYCfThs0HBQUFateunebOnXvBz5944gnNnj1b8+fP16effqrw8HD17t1bhYWFPj2HlgQAAHaq4DEMffr0UZ8+fS58K9PUs88+qz//+c/q16+fJGnRokWqV6+eVq5cqdtvv73Uz6HCAACAH8rLy/PYioqKfL7H/v37deTIEfXs2dN9LDo6Wp06ddKWLVt8uhcJAwAANnLYsElSQkKCoqOj3VtaWprPsRw5ckSSVK9ePY/j9erVc39WWrQkAACwk00tiYMHDyoqKsp92Ol0WgrLKioMAADY6Oy0SiubJEVFRXlsZUkY4uLiJElHjx71OH706FH3Z6VFwgAAQIBKTExUXFycPvjgA/exvLw8ffrpp+rcubNP96IlAQCAnSp4lkR+fr6ys7Pd+/v371dmZqZiYmLUqFEjjR49Wo899piaNWumxMRETZ48WfHx8erfv79PzyFhAADAbhW4WuPWrVvVo0cP9/6YMWMkSUOGDFF6errGjx+vgoIC/fGPf9Tx48d17bXXas2aNQoNDfXpOSQMAABUYd27d5dpXjxDcTgcmjFjhmbMmGHpOSQMAADYKFDfJUHCAACAnQL0bZXMkgAAAF5RYQAAwEa0JAAAgHe0JAAAwOWKCgMAADaiJQEAALwL0JYECQMAAHYK0ISBMQwAAMArKgwAANiIMQwAAMA7WhIAAOByRYUBAAAbOUxTjku8PbI01/sjEgYAAOxESwIAAFyuqDAAAGAjZkkAAADvaEkAAIDLFRUGAABsREsCAAB4F6AtCRIGAABsFKgVBsYwAAAAr6gwAABgJ1oSAACgNPy1rWAFLQkAAOAVFQYAAOxkmmc2K9f7IRIGAABsxCwJAABw2aLCAACAnZglAQAAvHEYZzYr1/sjWhIAAMArKgzwO32H/qhb7v9eMbGnte+rMD3/5wbKyqxR2WEBPls6p64+fremDmY7FRJqqFXHUxr26GElJBVJko4cDNGQTq0ueO2jL+xX174nKjJc2IWWBFD+ut30H/1x6mHNmdhQez6voZvv/UGPL9mnYV2a68RP1Ss7PMAnO7ZEqO/QH5V85Sm5Tkvpf6mvRwZdoRc37FFoDUOx8cV6LXOnxzXv/qO2Xp9XV1dfd7KSooZVzJKoAA6H45LbtGnTKjtElLMBf/xRa5bE6F/LYnRgb6hmT2ioop8d6j3oWGWHBvhs1pJ96vWHY2rSvFBX/KZQDz97QN9/F6K9O8IkScHBUkzd0x7b5vei1bXvcYWF+2kjG96dXYfByuaH/KrCkJub6/552bJlmjJlirKystzHIiIi3D+bpimXy6Vq1fzqK8CCatUNNWt7Skv/Xtd9zDQd+mJTpFp1OFWJkQH2KMgLliRF1nRd8PO9O8KUs6uGRsw6VJFhAaXiVxWGuLg49xYdHS2Hw+He37NnjyIjI/Xee++pQ4cOcjqdysjI0NChQ9W/f3+P+4wePVrdu3d37xuGobS0NCUmJiosLEzt2rXT66+/ftE4ioqKlJeX57Gh/EXFuBRcTTr+g2cS+J8fq6lW7OlKigqwh2FI86c20G+uzleTFoUXPGfNa7XVqFmhfnM1CXJVdrYlYWXzR1Xun+cTJ07U3/72NzVt2lS1atUq1TVpaWn6xz/+ofnz56tZs2bauHGj7rzzTsXGxqpbt24XPH/69Ol2hw7gMvb3Rxrq2z1hemrl3gt+XvSzQx+tqKU7Rh+p4MhgOwY9+ocZM2bohhtuKPX5RUVFmjVrltatW6fOnTtLkpo2baqMjAy98MILF0wYJk2apDFjxrj38/LylJCQYD14XFLesWC5Tks1z6km1KpzWv/5ocr9UQXc/v5IA326NkpPrchWbHzJBc/ZtLqmin52qOetjNeBf6pyfwt37NjRp/Ozs7N16tSp85KM4uJitW/f/oLXOJ1OOZ3OMseIsjldEqS9O2qo/bUntWVNtCTJ4TB15bX5eju9diVHB/jONKW5jzbQ5jXRevL1bMU1Kr7oue+/Vlu/7ZWnmrUvPL4BVUegzpKocglDeHi4x35QUJDMc0aUlpT8N4PPz8+XJK1evVoNGjTwOI+kwP+8+X91NPbZg/p6ew1lfXFmWmVoDUP/WhpT2aEBPvv7Iw310YpamrZgn8IiDB37/sxfueGRLjnD/vv31nf7Q/TlJ+Ga+Y99lRUq7MTbKv1TbGysdu70nMecmZmp6tXPzNlv1aqVnE6nDhw4cMH2A/zLhrdrKbq2S3eNO6Jasae1b1eYHh2cqOM/sgYDqp5VC+tIksYNbOZx/OFnDqjXH/7benh/aW3VqV+iDt1YewH+q8onDNddd52efPJJLVq0SJ07d9Y//vEP7dy5091uiIyM1NixY5WamirDMHTttdfqxIkT+vjjjxUVFaUhQ4ZU8jfAud5eUEdvL6hT2WEAlr1/OLNU590zKVf3TMr1fiKqBFoSfqp3796aPHmyxo8fr8LCQt1zzz2666679OWXX7rPmTlzpmJjY5WWlqZ9+/apZs2auuqqq/TII49UYuQAgIAUoLMkHOa5AwBwnry8PEVHR6u7+qmag9I4AlNp/zUMVEV5Jw3VSt6nEydOKCoqqnye8cvvis4pM1StemiZ73O6pFBb1kwp11jLospXGAAA8Ce0JAAAgHeGeWazcr0fImEAAMBOATqGwa/eJQEAAPwTFQYAAGzkkMUxDLZFYi8SBgAA7BSgKz3SkgAAAF5RYQAAwEZMqwQAAN4xSwIAAFyuqDAAAGAjh2nKYWHgopVryxMJAwAAdjJ+2axc74doSQAAAK9IGAAAsNHZloSVzRfTpk2Tw+Hw2Fq0aGH796IlAQCAnSphlsRvfvMbrVu3zr1frZr9v95JGAAAsJNNKz3m5eV5HHY6nXI6nRe8pFq1aoqLiyv7M0uBlgQAAH4oISFB0dHR7i0tLe2i5+7du1fx8fFq2rSpBg8erAMHDtgeDxUGAABsZNdKjwcPHlRUVJT7+MWqC506dVJ6erqaN2+u3NxcTZ8+XV26dNHOnTsVGRlZ9kDOQcIAAICdbGpJREVFeSQMF9OnTx/3z23btlWnTp3UuHFjLV++XMOGDSt7HOegJQEAQACpWbOmkpOTlZ2dbet9SRgAALCRw7C+WZGfn6+cnBzVr1/fni/0CxIGAADsdLYlYWXzwdixY7VhwwZ988032rx5s26++WYFBwdr0KBBtn4txjAAAFCFHTp0SIMGDdJPP/2k2NhYXXvttfrkk08UGxtr63NIGAAAsFMFL9y0dOlSCw8rPRIGAABsFKhvq2QMAwAA8IoKAwAAdrJpHQZ/Q8IAAICdTElWpkb6Z75AwgAAgJ0YwwAAAC5bVBgAALCTKYtjGGyLxFYkDAAA2ClABz3SkgAAAF5RYQAAwE6GJIfF6/0QCQMAADZilgQAALhsUWEAAMBOATrokYQBAAA7BWjCQEsCAAB4RYUBAAA7BWiFgYQBAAA7Ma0SAAB4w7RKAABw2aLCAACAnRjDAAAAvDJMyWHhl77hnwkDLQkAAOAVFQYAAOxESwIAAHhnMWGQfyYMtCQAAIBXVBgAALATLQkAAOCVYcpSW4FZEgAAoKqiwgAAgJ1M48xm5Xo/RMIAAICdGMMAAAC8YgwDAAC4XFFhAADATrQkAACAV6YsJgy2RWIrWhIAAMArKgwAANiJlgQAAPDKMCRZWEvB8M91GGhJAAAAr6gwAABgJ1oSAADAqwBNGGhJAAAAr6gwAABgpwBdGpqEAQAAG5mmIdPCGyetXFueSBgAALCTaVqrEjCGAQAAVFVUGAAAsJNpcQyDn1YYSBgAALCTYUgOC+MQ/HQMAy0JAADgFRUGAADsREsCAAB4YxqGTAstCX+dVklLAgAAeEWFAQAAO9GSAAAAXhmm5Ai8hIGWBAAA8IoKAwAAdjJNSVbWYfDPCgMJAwAANjINU6aFloRJwgAAwGXANGStwsC0SgAAUE7mzp2rJk2aKDQ0VJ06ddK///1vW+9PwgAAgI1Mw7S8+WrZsmUaM2aMpk6dqs8//1zt2rVT79699f3339v2vUgYAACwk2lY33z09NNP695779Xdd9+tVq1aaf78+apRo4ZeeeUV274WYxhK4ewAlNMqsbQWB+DP8k76Z98UsENe/pk/3xUxoNDq74rTKpEk5eXleRx3Op1yOp3nnV9cXKxt27Zp0qRJ7mNBQUHq2bOntmzZUvZAzkHCUAonT56UJGXo3UqOBCg/tZIrOwKg/J08eVLR0dHlcu+QkBDFxcUp44j13xURERFKSEjwODZ16lRNmzbtvHN//PFHuVwu1atXz+N4vXr1tGfPHsuxnEXCUArx8fE6ePCgIiMj5XA4Kjucy0JeXp4SEhJ08OBBRUVFVXY4gK34813xTNPUyZMnFR8fX27PCA0N1f79+1VcXGz5XqZpnvf75kLVhYpEwlAKQUFBatiwYWWHcVmKioriL1QELP58V6zyqiz8WmhoqEJDQ8v9Ob9Wp04dBQcH6+jRox7Hjx49qri4ONuew6BHAACqsJCQEHXo0EEffPCB+5hhGPrggw/UuXNn255DhQEAgCpuzJgxGjJkiDp27Kj/+Z//0bPPPquCggLdfffdtj2DhAF+yel0aurUqZXeswPKA3++Ybc//OEP+uGHHzRlyhQdOXJEV155pdasWXPeQEgrHKa/LloNAAD8BmMYAACAVyQMAADAKxIGAADgFQkD/Ep6erpq1qxZ2WEAAM5BwoByMXToUDkcjvO27Ozsyg4NsNWF/pz/ervQUr5AVcS0SpSblJQULViwwONYbGxsJUUDlI/c3Fz3z8uWLdOUKVOUlZXlPhYREeH+2TRNuVwuVavGX72oeqgwoNw4nU7FxcV5bM8995zatGmj8PBwJSQk6IEHHlB+fv5F77F9+3b16NFDkZGRioqKUocOHbR161b35xkZGerSpYvCwsKUkJCgUaNGqaCgoCK+HiBJHn++o6Oj5XA43Pt79uxRZGSk3nvvPXXo0EFOp1MZGRkaOnSo+vfv73Gf0aNHq3v37u59wzCUlpamxMREhYWFqV27dnr99dcr9ssBv0LCgAoVFBSk2bNna9euXVq4cKE+/PBDjR8//qLnDx48WA0bNtRnn32mbdu2aeLEiapevbokKScnRykpKRo4cKB27NihZcuWKSMjQyNHjqyorwOUysSJE/WXv/xFu3fvVtu2bUt1TVpamhYtWqT58+dr165dSk1N1Z133qkNGzaUc7TAhVEXQ7lZtWqVRzm2T58++uc//+neb9KkiR577DHdd999ev755y94jwMHDmjcuHFq0aKFJKlZs2buz9LS0jR48GCNHj3a/dns2bPVrVs3zZs3r8JfAANczIwZM3TDDTeU+vyioiLNmjVL69atc78LoGnTpsrIyNALL7ygbt26lVeowEWRMKDc9OjRQ/PmzXPvh4eHa926dUpLS9OePXuUl5en06dPq7CwUKdOnVKNGjXOu8eYMWM0fPhwvfrqq+rZs6duvfVWXXHFFZLOtCt27NihxYsXu883TVOGYWj//v1q2bJl+X9JoBQ6duzo0/nZ2dk6derUeUlGcXGx2rdvb2doQKmRMKDchIeHKykpyb3/zTff6Pe//73uv/9+Pf7444qJiVFGRoaGDRum4uLiCyYM06ZN0x133KHVq1frvffe09SpU7V06VLdfPPNys/P15/+9CeNGjXqvOsaNWpUrt8N8EV4eLjHflBQkM5dlb+kpMT989lxPatXr1aDBg08zuP9E6gsJAyoMNu2bZNh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", - "text/plain": [ - "<Figure size 640x480 with 2 Axes>" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "#######CONFUSION MATRIX ###########\n", - "from sklearn import metrics\n", - "y_test_pred_xgb = model_xgb.predict(X_test)\n", - "confusion_matrix_test = metrics.confusion_matrix(y_test, y_test_pred_xgb)\n", - "cm_display = metrics.ConfusionMatrixDisplay(confusion_matrix = confusion_matrix_test, display_labels = [False, True])\n", - "cm_display.plot()\n", - "plt.show()" - ] - }, - { - "cell_type": "code", - "execution_count": 126, - "id": "2f9bc4a1", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Accuracy : 0.975\n", - "Sensitivity : 0.9230769230769231\n", - "Specificity : 1.0\n" - ] - } - ], - "source": [ - "total1=sum(sum(confusion_matrix_test))\n", - "#####from confusion matrix calculate accuracy\n", - "accuracy1=(confusion_matrix_test[0,0]+confusion_matrix_test[1,1])/total1\n", - "print ('Accuracy : ', accuracy1)\n", - "\n", - "sensitivity1 = confusion_matrix_test[0,0]/(confusion_matrix_test[0,0]+confusion_matrix_test[0,1])\n", - "print('Sensitivity : ', sensitivity1 )\n", - "\n", - "specificity1 = confusion_matrix_test[1,1]/(confusion_matrix_test[1,0]+confusion_matrix_test[1,1])\n", - "print('Specificity : ', specificity1)" - ] - }, - { - "cell_type": "code", - "execution_count": 127, - "id": "c1095af0", - "metadata": {}, - "outputs": [], - "source": [ - "# for important features:\n", - "important_feat = model_xgb.feature_importances_\n", - "#get indices of those important features\n", - "idx = important_feat.argsort(kind= \"quicksort\")\n", - "idx= idx[::-1][:50]" - ] - }, - { - "cell_type": "code", - "execution_count": 128, - "id": "ae7e0162", - "metadata": {}, - "outputs": [], - "source": [ - "df1 = X_selected.T" - ] - }, - { - "cell_type": "code", - "execution_count": 129, - "id": "1d97f818", - "metadata": {}, - "outputs": [], - "source": [ - "top_met = df1.iloc[idx]" - ] - }, - { - "cell_type": "code", - "execution_count": 130, - "id": "4cd4227b", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "Index(['LAMB3', 'ECT2', 'TYMP', 'CFD', 'AIM2', 'TMPRSS11D', 'CYP4B1', 'COL1A1',\n", - " 'EFNA1', 'ALDH9A1', 'ATP6V1D', 'SLK', 'RUVBL1', 'SLC2A1', 'SERPINB2',\n", - " 'ALOX12', 'KANK1', 'ID4', 'EMP1', 'ENTPD6', 'IGFBP3', 'ERCC3', 'FLG',\n", - " 'FSCN1', 'GALE', 'GALNT1', 'HSPD1', 'HSPBAP1', 'GPX3', 'ECM1', 'HOPX',\n", - " 'HSPB8', 'IFI35', 'AGRN', 'ANO1', 'AQP3', 'ZNF185', 'AURKA', 'CCNG2',\n", - " 'CES2', 'CH25H', 'CLIC3', 'IGF2BP2', 'COL7A1', 'CRABP2', 'CRCT1',\n", - " 'CRISP3', 'CRNN', 'DHRS1', 'DHRS2'],\n", - " dtype='object')" - ] - }, - "execution_count": 130, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "top_met.index" - ] - }, - { - "cell_type": "code", - "execution_count": 131, - "id": "8f6d88bb", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "Index(['ACLY', 'ACTG2', 'AGRN', 'AIM2', 'ALDH9A1', 'ALOX12', 'ANO1', 'AQP3',\n", - " 'ATP6V1D', 'AURKA', 'CCNG2', 'CES2', 'CFD', 'CH25H', 'CLIC3', 'COL1A1',\n", - " 'COL5A2', 'COL7A1', 'CRABP2', 'CRCT1', 'CRISP3', 'CRNN', 'CYP4B1',\n", - " 'DHRS1', 'DHRS2', 'DUOX1', 'DUSP5', 'ECM1', 'ECT2', 'EFNA1', 'EMP1',\n", - " 'ENTPD6', 'ERCC3', 'FLG', 'FSCN1', 'GALE', 'GALNT1', 'GPX3', 'HOPX',\n", - " 'HSPB8', 'HSPBAP1', 'HSPD1', 'ID4', 'IFI35', 'IGF2BP2', 'IGFBP3',\n", - " 'IL1RN', 'INPP1', 'ITPKC', 'KANK1', 'KLK13', 'KRT4', 'LAMB3', 'LAMC2',\n", - " 'LCN2', 'LYPD3', 'MAL', 'MCM2', 'MUC1', 'MYH10', 'NDRG2', 'NT5C2',\n", - " 'NUSAP1', 'PCSK5', 'PHLDA1', 'PITX1', 'PPP1R3C', 'PTN', 'RAB11FIP1',\n", - " 'RANBP9', 'RHCG', 'RND3', 'RPN1', 'RUVBL1', 'SCNN1A', 'SERPINB13',\n", - " 'SERPINB2', 'SIM2', 'SLC2A1', 'SLK', 'SPRR3', 'SSRP1', 'STK24',\n", - " 'SYNPO2L', 'TAPBP', 'TFAP2B', 'TGIF1', 'TIAM1', 'TJP1', 'TMF1',\n", - " 'TMPRSS11D', 'TMPRSS11E', 'TSPAN6', 'TST', 'TYMP', 'UCHL1', 'ZBTB16',\n", - " 'ZNF185'],\n", - " dtype='object')" - ] - }, - "execution_count": 131, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "X_selected.columns" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "5d9ff727", - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "14be0163", - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "60c90fba", - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "3db5968c", - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "5ec38b70", - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "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.9.16" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/03_Machine_Learning/DS_mRNA_limma_dataset_svm_F.ipynb b/03_Machine_Learning/DS_mRNA_limma_dataset_svm_F.ipynb deleted file mode 100644 index e23425f1f92941e13c0dd971665cc0a6530ba758..0000000000000000000000000000000000000000 --- a/03_Machine_Learning/DS_mRNA_limma_dataset_svm_F.ipynb +++ /dev/null @@ -1,1054 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 113, - "id": "f097ad55", - "metadata": {}, - "outputs": [], - "source": [ - "import warnings\n", - "warnings.filterwarnings('ignore')\n", - "import pandas as pd\n", - "from sklearn.model_selection import train_test_split\n", - "#from sklearn.model_selection import cross_val_score\n", - "#from sklearn.metrics import accuracy_score\n", - "#import sklearn.metrics as metrics\n", - "#from sklearn.metrics import auc\n", - "from sklearn.metrics import RocCurveDisplay\n", - "#from sklearn.model_selection import KFold\n", - "import matplotlib.pyplot as plt\n", - "import numpy as np\n", - "from imblearn.over_sampling import SMOTE\n", - "from sklearn.linear_model import Lasso\n", - "import xgboost as xgb\n", - "from sklearn.model_selection import GridSearchCV\n", - "import pandas as pd\n", - "import numpy as np\n", - "\n", - "np.random.seed(7)" - ] - }, - { - "cell_type": "markdown", - "id": "73b6611a", - "metadata": {}, - "source": [ - "# Data Preprocessing" - ] - }, - { - "cell_type": "code", - "execution_count": 114, - "id": "0eeb7a35", - "metadata": {}, - "outputs": [], - "source": [ - "df_train = pd.read_csv(\"DS/mRNA_DS_preprocessed_training_data.csv\")" - ] - }, - { - "cell_type": "code", - "execution_count": 126, - "id": "a6ab23aa", - "metadata": {}, - "outputs": [], - "source": [ - "df_test = pd.read_csv(\"DS/mRNA_DS_test_data.csv\")" - ] - }, - { - "cell_type": "code", - "execution_count": 127, - "id": "683b63ce", - "metadata": {}, - "outputs": [], - "source": [ - "df_train = df_train.T\n", - "df_test = df_test.T" - ] - }, - { - "cell_type": "code", - "execution_count": 129, - "id": "a701e30d", - "metadata": {}, - "outputs": [], - "source": [ - "#df_test = df_test[:-1]" - ] - }, - { - "cell_type": "code", - "execution_count": 130, - "id": "77d974be", - "metadata": {}, - "outputs": [], - "source": [ - "#Transform the input data\n", - "df_train.rename(columns=df_train.iloc[0], inplace = True)\n", - "df_train.drop(df_train.index[0], inplace = True)\n", - "df_train=df_train.reset_index()" - ] - }, - { - "cell_type": "code", - "execution_count": 131, - "id": "2e78017d", - "metadata": {}, - "outputs": [], - "source": [ - "#Transform the input data\n", - "df_test.rename(columns=df_test.iloc[-1], inplace = True)\n", - "df_test.drop(df_test.index[-1], inplace = True)\n", - "df_test=df_test.reset_index()" - ] - }, - { - "cell_type": "code", - "execution_count": 132, - "id": "ea60801d", - "metadata": {}, - "outputs": [], - "source": [ - "metadata_test = pd.read_csv(\"DS/mRNA_DS_metadata_col_test_info.csv\")" - ] - }, - { - "cell_type": "code", - "execution_count": 133, - "id": "58d531b9", - "metadata": {}, - "outputs": [], - "source": [ - "df_test= df_test.merge(metadata_test, left_on=\"index\", right_on= \"Unnamed: 0\")" - ] - }, - { - "cell_type": "code", - "execution_count": 134, - "id": "7910f2fa", - "metadata": {}, - "outputs": [], - "source": [ - "df_test['title0'] = df_test['title0'].replace('(?i)mucosa|normal|healthy', 0, regex=True)\n" - ] - }, - { - "cell_type": "code", - "execution_count": 135, - "id": "c102e10e", - "metadata": {}, - "outputs": [], - "source": [ - "df_test['title0'] = df_test['title0'].replace('(?i)Tumor|Cancer|carcinoma', 1, regex=True)" - ] - }, - { - "cell_type": "code", - "execution_count": 136, - "id": "6c255d2e", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "title0\n", - "0 30\n", - "1 30\n", - "Name: count, dtype: int64" - ] - }, - "execution_count": 136, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "df_test['title0'].value_counts()" - ] - }, - { - "cell_type": "code", - "execution_count": 125, - "id": "636b44ab", - "metadata": {}, - "outputs": [], - "source": [ - "df_test = df_test[pd.to_numeric(df_test['title0'], errors='coerce').notnull()]#remove all non-numeric data from the column." - ] - }, - { - "cell_type": "code", - "execution_count": 64, - "id": "34896f9a", - "metadata": {}, - "outputs": [], - "source": [ - "df_test= df_test.drop(['index', 'Unnamed: 0'], axis=1)" - ] - }, - { - "cell_type": "code", - "execution_count": 65, - "id": "359b5bab", - "metadata": {}, - "outputs": [], - "source": [ - "df_test= df_test.rename(columns={\"title0\": \"index\"})" - ] - }, - { - "cell_type": "code", - "execution_count": 66, - "id": "dc14bb1c", - "metadata": {}, - "outputs": [], - "source": [ - "X_test=df_test.drop(\"index\",axis=1)\n", - "y_test=df_test['index']" - ] - }, - { - "cell_type": "code", - "execution_count": 67, - "id": "4c50c510", - "metadata": {}, - "outputs": [], - "source": [ - "metadata_train = pd.read_csv(\"DS/mRNA_DS_metadata_col_info.csv\")" - ] - }, - { - "cell_type": "code", - "execution_count": 68, - "id": "6730cf89", - "metadata": {}, - "outputs": [], - "source": [ - "df_train= df_train.merge(metadata_train, left_on=\"index\", right_on= \"Unnamed: 0\")" - ] - }, - { - "cell_type": "code", - "execution_count": 69, - "id": "7a8ad8ad", - "metadata": {}, - "outputs": [], - "source": [ - "df_train['title0'] = df_train['title0'].replace('(?i)mucosa|normal|healthy', 0, regex=True)\n" - ] - }, - { - "cell_type": "code", - "execution_count": 70, - "id": "a8cf8643", - "metadata": {}, - "outputs": [], - "source": [ - "df_train['title0'] = df_train['title0'].replace('(?i)Tumor|Cancer|carcinoma', 1, regex=True)" - ] - }, - { - "cell_type": "code", - "execution_count": 71, - "id": "c9e8772b", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "title0\n", - "0 111\n", - "1 108\n", - "Name: count, dtype: int64" - ] - }, - "execution_count": 71, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "df_train['title0'].value_counts()" - ] - }, - { - "cell_type": "code", - "execution_count": 72, - "id": "f5d203aa", - "metadata": {}, - "outputs": [], - "source": [ - "df_train = df_train[pd.to_numeric(df_train['title0'], errors='coerce').notnull()]#remove all non-numeric data from the column." - ] - }, - { - "cell_type": "code", - "execution_count": 73, - "id": "523bdaa6", - "metadata": {}, - "outputs": [], - "source": [ - "df_train= df_train.drop(['index', 'Unnamed: 0'], axis=1)" - ] - }, - { - "cell_type": "code", - "execution_count": 74, - "id": "46a6fb36", - "metadata": {}, - "outputs": [], - "source": [ - "df_train= df_train.rename(columns={\"title0\": \"index\"})" - ] - }, - { - "cell_type": "code", - "execution_count": 75, - "id": "e26f88c5", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "index\n", - "0 111\n", - "1 108\n", - "Name: count, dtype: int64" - ] - }, - "execution_count": 75, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "df_train['index'].value_counts()" - ] - }, - { - "cell_type": "code", - "execution_count": 76, - "id": "fbaf2507", - "metadata": {}, - "outputs": [], - "source": [ - "df_train= df_train.apply(pd.to_numeric)" - ] - }, - { - "cell_type": "code", - "execution_count": 77, - "id": "38a993d9", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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JPCODQODGiKKCPv26bsdScLCMcXo6GjMmTMHCxcuxE8+Iub169fjhhtuwE033YQtW7ZgxowZeOihh7B06dIa282fPx+ZmZnYuHEj7r77btx1113Yvn273+d9/fXX0aRJE9x9990+f9+sWTMAwNGjR/GnP/0Ja9euxcaNG3HFFVfg6quvxu7du1U//9GjR9G/f3+UlZXhnXfewebNmzF16lRUVVUBANatW4dbbrkFEyZMwLfffovnn38eS5curRO4zJgxA9dddx22bNmCsWPHBtyvYRERpKKiQgAQFRUVVjeFiExWVCSE0h8T+FZUZHVLI8fx48fFt99+K44fPx7aA5w+LURqqv830+USIi1N2U5no0ePFkOGDBFCCHHhhReKsWPHCiGEeOutt4Tn0jpixAhx+eWX1/i7KVOmiHPPPdf7//T0dDFq1Cjv/6uqqkRSUpJYvHix3+cePHiw6N69e0jt7tKli1i4cKHq53/++edFXFyc+OWXX3w+3mWXXSbmzJlT475XX31VJCcne/8PQEycODFo2wIdD2qv3+ypIaKIcMklyiwnfzmcLheQlqZsRzYhyZjiY489hpdffhnbtm2rcf+2bdvQr1+/Gvf169cPO3bsgLtazk/37t29/3a5XGjdurV3yYDBgwejSZMmaNKkCbp06QJAWVZAjaNHj+K+++5D586d0axZMzRp0gTbtm2r01MT6Pk3bdqE888/Hy1atPD5HJs3b8bDDz/sbWOTJk1wxx13YN++fTh27Jh3u8zMTFVtDhendBNRRIiOVqZtDx2qBDDVrwueQOfJJ1mvxlYkGVO89NJLMWjQIDzwwAMYM2aM5r+vX79+jf+7XC7v8M6LL76I48eP19iuY8eO+OSTT3Dq1Kk6f1vdfffdhw8++ADz5s1Dhw4dEBsbi6FDh+LkyZOqn9+zfIE/R48excyZM5Htox5Cw4YNvf9u3LhxwMfRC3tqiChiZGcDK1cCKSk1709NVe5nnRqbUbvwYRgLJKr16KOP4h//+Ac+//xz732dO3fGp59+WmO7Tz/9FB07dlS9tlFKSgo6dOiADh06ID09HQAwYsQIHD16FM8++6zPv/GseP7pp59izJgxuO6669CtWze0bt0apaWlml5X9+7dsWnTJr/TxHv27Int27d721j9FhVlfojBnhoiiijZ2cCQIawo7AieMcWyMt9z9V0u5fcmjCl269YNI0eOxNNPP+29b/LkyejduzdmzZqFG2+8EZ9//jmeeeYZv8GIWn369MHUqVMxefJklJWV4brrrkObNm2wc+dOPPfcc7j44osxYcIEnH322SgsLMTVV18Nl8uFhx56yNsDo9bw4cMxZ84cXHvttcjLy0NycjI2btyINm3a4KKLLsL06dNx1VVXoW3bthg6dCiioqKwefNmbN26FbNnzw7rdYaCPTVEFHGio4GsLGD4cOUnAxqb8owpAnWTpSwYU3z44YdrBA09e/bE8uXL8cYbb6Br166YPn06Hn744ZCGqGp77LHHkJ+fjy+++AKDBg1Cly5dMGnSJHTv3t07pfuJJ55A8+bN0bdvX1x99dUYNGgQevbsqel5GjRogH//+99ISkrCn/70J3Tr1g2PPvqot6dp0KBBePfdd/Hvf/8bvXv3xoUXXogFCxZ4e5XM5hJqM44c4PDhw4iPj0dFRQWaNm1qdXOIiCLaiRMnUFJSgnbt2tXIv9DM19oXaWlKQMMxRdsIdDyovX5z+ImIiOyNY4r0PwxqiIjI/jxjihTRmFNDREREjsCghoiIiByBw08kNbebw+RERKQOgxqSlq8JDampygxOTmggO2OwTmQMDj+RlCxceJfIUIWFQEYGMGAAMGKE8jMjg8c0kR5sG9Q8+uijcLlcmDhxotVNIZ253UoPja8KSp77Jk5UtiO5uN1AcTGwbJnyk+9RTQzWiYxly6Dmq6++wvPPP19jZVFyDkkW3iWN2AMRGIN1IuPZLqg5evQoRo4ciSVLlqB58+ZWN4cMIMnCu6RBpPZAaOmZYrBOZDzbBTU5OTm48sorMXDgwKDbVlZW4vDhwzVuJL9wF97lEIi5IrUHQmvPFIN1Z9q/fz/Gjx+P9u3bIyYmBmlpabj66quxdu1aq5sWkWw1++mNN97Ahg0b8NVXX6naPi8vDzNnzjS4VaS3cBbe5Ywp82npgXBKwVdPz1Tt49PTM7VyZd3jLdxgnQKzYkZZaWkp+vXrh2bNmmHu3Lno1q0bTp06hX/961/IycnBd999Z2wDQnTy5Ek0aNDA6mYYQ9jE7t27RVJSkti8ebP3vv79+4sJEyb4/ZsTJ06IiooK723Pnj0CgKioqDChxRSOggIhXC7lplw6lJvnvoIC/39Tfftgf0Phy8+vu8993fLzrW6pPk6fFiI11f/rdLmESEtTtvP1d76O0UB/52THjx8X3377rTh+/HhYj1NQUPc9SU01/jM/ePBgkZKSIo4ePVrnd7/++qsQQoj58+eLrl27ikaNGonU1FRx1113iSNHjni3e+mll0R8fLx4//33RadOnUTjxo3FoEGDxN69e2s83t///ndx7rnnigYNGojWrVuLnJycGs912223iZYtW4q4uDgxYMAAsWnTJu/vc3NzRY8ePcSSJUtERkaGcLlcOu8JfQQ6HioqKlRdv20z/LR+/XqUl5ejZ8+eqFevHurVq4ePPvoITz/9NOrVqwe3j77tmJgYNG3atMaN7CE7W/m2m5JS8/7UVN/fgiN1CEQGansWduwwth1mCTU3Jjpa6TEElN7G6jz/f/JJ1qvRyqp8rkOHDuH9999HTk4OGjduXOf3zZo1AwBERUXh6aefxjfffIOXX34ZH374IaZOnVpj22PHjmHevHl49dVX8fHHH2P37t247777vL9fvHgxcnJycOedd2LLli1455130KFDB+/vhw0bhvLycqxevRrr169Hz549cdlll+HQoUPebXbu3ImCggIUFhZi06ZN+u4MmRgVcent8OHDYsuWLTVumZmZYtSoUWLLli2qHkNtpEfyOH1aiKIi5Vt+UZH/b7FFRep6C4qKtD82BXb6tBApKcH3fWqqM/ZxuD1TvnoV0tIisycx3J6aUHvN9PDFF18IAKKwsFDT361YsUIkJCR4///SSy8JAGLnzp3e+xYtWiRatWrl/X+bNm3EtGnTfD7eunXrRNOmTcWJEydq3H/WWWeJ559/Xgih9NTUr19flJeXa2qr2fToqbFNTk1cXBy6du1a477GjRsjISGhzv3kHGoX3tWahMncG/1ERwN33gnk5gbe7qefnJFXE25uTHY2MGQIKwrrwcp8LuGrW9iHNWvWIC8vD9999x0OHz6M06dP48SJEzh27BgaNWoEAGjUqBHOOuss798kJyejvLwcAFBeXo69e/fisssu8/n4mzdvxtGjR5GQkFDj/uPHj+OHH37w/j89PR2JiYmaXqMd2SaoIQpEy4UmlCRPCuzss9Vt54SZPeEksnuoDdYpMCtnlJ199tlwuVwBk4FLS0tx1VVX4a677sIjjzyCFi1a4JNPPsFtt92GkydPeoOa+vXr1/g7l8vlDZpiY2MDtuPo0aNITk5GcXFxnd95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Cejw4cNIS0vDnj170LRpU6ubYyq+dr52vvbIwdfO167mtQshcOTIEbRp0wZRUf4zZyKqpyYqKgqpqalWN0OTpk2bRtzB7sHXztceafja+dojjZbXHqiHxoOJwkREROQIDGqIiIjIERjUSComJga5ubmIiYmxuimm42vna480fO187ZHGqNceUYnCRERE5FzsqSEiIiJHYFBDREREjsCghoiIiByBQQ0RERE5AoMam/jnP/+JPn36IDY2Fs2bN8e1115rdZNMVVlZifPOOw8ulwubNm2yujmGKy0txW233YZ27dohNjYWZ511FnJzc3Hy5Emrm2aYRYsWISMjAw0bNkSfPn3w5ZdfWt0kw+Xl5aF3796Ii4tDUlISrr32Wmzfvt3qZpnu0UcfhcvlwsSJE61uiinKysowatQoJCQkIDY2Ft26dcPXX39tdbMM53a78dBDD9U4r82aNSvoek5aRFRFYbsqKCjAHXfcgTlz5uAPf/gDTp8+ja1bt1rdLFNNnToVbdq0webNm61uiim+++47VFVV4fnnn0eHDh2wdetW3HHHHfj9998xb948q5unuzfffBOTJk3Cc889hz59+uDJJ5/EoEGDsH37diQlJVndPMN89NFHyMnJQe/evXH69Gn87W9/wx//+Ed8++23aNy4sdXNM8VXX32F559/Ht27d7e6Kab49ddf0a9fPwwYMACrV69GYmIiduzYgebNm1vdNMM99thjWLx4MV5++WV06dIFX3/9NW699VbEx8fj3nvv1edJBEnt1KlTIiUlRbz44otWN8Uy7733nujUqZP45ptvBACxceNGq5tkiccff1y0a9fO6mYY4oILLhA5OTne/7vdbtGmTRuRl5dnYavMV15eLgCIjz76yOqmmOLIkSPi7LPPFh988IHo37+/mDBhgtVNMtxf//pXcfHFF1vdDEtceeWVYuzYsTXuy87OFiNHjtTtOTj8JLkNGzagrKwMUVFROP/885GcnIzBgwdHTE/NgQMHcMcdd+DVV19Fo0aNrG6OpSoqKtCiRQurm6G7kydPYv369Rg4cKD3vqioKAwcOBCff/65hS0zX0VFBQA48n32JScnB1deeWWN997p3nnnHWRmZmLYsGFISkrC+eefjyVLlljdLFP07dsXa9euxffffw8A2Lx5Mz755BMMHjxYt+dgUCO5Xbt2AQBmzJiB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dq33vry8PHHOOed4/3/WWWeJ/Pz8Gs8za9YscdFFF/l93G+++UYAENu2bRNCCNGtWzcxY8YMn20uKioSAMSvv/4qhBBixIgR4vLLL6+xzZQpU8S5557r/X96eroYNWqU9/9VVVUiKSlJLF682Odz1FZ9vxCRcdhTQ0QhE0IEzU3p3r2799+tWrUCAHTr1q3GfeXl5QCUPJQffvgBt912G5o0aeK9zZ49Gz/88IPfx01OTgYA7+Pce++9mD17Nvr164fc3Fz897//9du+bdu2oV+/fjXu69evH3bs2AG32+3z+VwuF1q3bu19PiKSA4MaIgrZtm3b0K5du4Db1K9f3/tvTwBU+z7PLKqjR48CAJYsWYJNmzZ5b1u3bsV//vOfoI/reZzbb78du3btws0334wtW7YgMzMTCxcuDPVl1nm+2u0mIjkwqCGikHz44YfYsmULrr/+et0es1WrVmjTpg127dqFDh061LgFC55qS0tLw7hx41BYWIjJkydjyZIlPrfr3LkzPv300xr3ffrpp+jYsSOio6NDfi1EZL56VjeAiORXWVmJ/fv3w+1248CBA3j//feRl5eHq666CrfccouuzzVz5kzce++9iI+PxxVXXIHKykp8/fXX+PXXXzFp0iRVjzFx4kQMHjwYHTt2xK+//oqioiJ07tzZ57aTJ09G7969MWvWLNx44434/PPP8cwzz9SYcRWKo0ePYufOnd7/l5SUYNOmTWjRogXatm0b1mMTkW8MaogoqPfffx/JycmoV68emjdvjh49euDpp5/G6NGjERWlb4fv7bffjkaNGmHu3LmYMmUKGjdujG7dumHixImqH8PtdiMnJwc//fQTmjZtiiuuuAILFizwuW3Pnj2xfPlyTJ8+HbNmzUJycjIefvhhjBkzJqzX8fXXX2PAgAHe/3sCstGjR9eZWUVE+nAJIYTVjSAiIiIKF3NqiIiIyBEY1BAREZEjMKghIiIiR2BQQ0RERI7AoIaIiIgcgUENEREROQKDGiIiInIEBjVERETkCAxqiIiIyBEY1BAREZEjMKghIiIiR2BQQ0RERI7w/ykvUdcJKHKNAAAAAElFTkSuQmCC", - "text/plain": [ - "<Figure size 640x480 with 1 Axes>" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "from sklearn.manifold import TSNE\n", - "# Assuming your data is stored in the variable 'data'\n", - "tsne = TSNE(n_components=3)\n", - "embedded_data = tsne.fit_transform(df_train)\n", - "\n", - "# Step 2: Separate data points by class\n", - "class_1_indices = np.where(df_train['index'] == 0)[0]\n", - "class_2_indices = np.where(df_train['index'] == 1)[0]\n", - "\n", - "class_1_data = embedded_data[class_1_indices]\n", - "class_2_data = embedded_data[class_2_indices]\n", - "\n", - "# Step 3: Plot the t-SNE plot with different colors for each class\n", - "plt.scatter(class_1_data[:, 0], class_1_data[:, 1], color='red', label='Non-Cancer')\n", - "plt.scatter(class_2_data[:, 0], class_2_data[:, 1], color='blue', label='Cancer')\n", - "\n", - "plt.title('t-SNE Plot')\n", - "plt.xlabel('Dimension 1')\n", - "plt.ylabel('Dimension 2')\n", - "plt.legend()\n", - "plt.show()" - ] - }, - { - "cell_type": "code", - "execution_count": 78, - "id": "776cfbee", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "index\n", - "0 111\n", - "1 108\n", - "Name: count, dtype: int64" - ] - }, - "execution_count": 78, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "df_train['index'].value_counts()" - ] - }, - { - "cell_type": "code", - "execution_count": 79, - "id": "8c0011ea", - "metadata": {}, - "outputs": [], - "source": [ - "X=df_train.drop(\"index\",axis=1)\n", - "y=df_train['index']" - ] - }, - { - "cell_type": "code", - "execution_count": 80, - "id": "fc606979", - "metadata": {}, - "outputs": [], - "source": [ - "X=X.astype('int')" - ] - }, - { - "cell_type": "code", - "execution_count": 81, - "id": "93e28118", - "metadata": {}, - "outputs": [], - "source": [ - "y=y.astype('int')" - ] - }, - { - "cell_type": "markdown", - "id": "e9830b6c", - "metadata": {}, - "source": [ - "# Feature Selection" - ] - }, - { - "cell_type": "code", - "execution_count": 83, - "id": "1cc528fb", - "metadata": {}, - "outputs": [], - "source": [ - "# LASSO model:\n", - "lasso = Lasso(alpha=1)\n", - "# fitting the model:\n", - "lasso.fit(X, y)\n", - "# select all coefficients and the feature names\n", - "lasso_coefs = lasso.coef_\n", - "feature_names = X.columns\n", - "\n", - "# collect the selected features:\n", - "selected_feature_indices = np.nonzero(lasso_coefs)[0]\n", - "selected_features = [feature_names[i] for i in selected_feature_indices]\n", - "X_selected = X.iloc[:, selected_feature_indices]" - ] - }, - { - "cell_type": "code", - "execution_count": 84, - "id": "8afa29ae", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "98" - ] - }, - "execution_count": 84, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "len(selected_features)" - ] - }, - { - "cell_type": "markdown", - "id": "6cee6462", - "metadata": {}, - "source": [ - "# Test train split" - ] - }, - { - "cell_type": "code", - "execution_count": 85, - "id": "3af09ef8", - "metadata": {}, - "outputs": [], - "source": [ - "X_train = X_selected\n", - "y_train = y" - ] - }, - { - "cell_type": "code", - "execution_count": 86, - "id": "129430e6", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "(index\n", - " 0 30\n", - " 1 30\n", - " Name: count, dtype: int64,\n", - " index\n", - " 0 111\n", - " 1 108\n", - " Name: count, dtype: int64)" - ] - }, - "execution_count": 86, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "y_test.value_counts(),y_train.value_counts()" - ] - }, - { - "cell_type": "markdown", - "id": "1cfe2a06", - "metadata": {}, - "source": [ - "# Cross validation" - ] - }, - { - "cell_type": "code", - "execution_count": 87, - "id": "1fbca4b8", - "metadata": {}, - "outputs": [], - "source": [ - "from sklearn.svm import SVC\n", - "# we can add class_weight='balanced' to add panalize mistake\n", - "svm_model = SVC(kernel = \"linear\", probability=True,random_state=47)" - ] - }, - { - "cell_type": "code", - "execution_count": 102, - "id": "0502e118", - "metadata": {}, - "outputs": [], - "source": [ - "\n", - "# Defining parameter range\n", - "param_grid = {\n", - " 'C': [0.0005,0.0001,0.001,0.1]\n", - "}" - ] - }, - { - "cell_type": "code", - "execution_count": 103, - "id": "7f2d18b0", - "metadata": {}, - "outputs": [], - "source": [ - "\n", - "grid = GridSearchCV(svm_model, param_grid, refit=True, verbose=3)" - ] - }, - { - "cell_type": "code", - "execution_count": 104, - "id": "79790f1d", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Fitting 5 folds for each of 4 candidates, totalling 20 fits\n", - "[CV 1/5] END ..........................C=0.0005;, score=0.955 total time= 0.0s\n", - "[CV 2/5] END ..........................C=0.0005;, score=0.886 total time= 0.0s\n", - "[CV 3/5] END ..........................C=0.0005;, score=0.955 total time= 0.0s\n", - "[CV 4/5] END ..........................C=0.0005;, score=0.909 total time= 0.0s\n", - "[CV 5/5] END ..........................C=0.0005;, score=0.884 total time= 0.0s\n", - "[CV 1/5] END ..........................C=0.0001;, score=0.909 total time= 0.0s\n", - "[CV 2/5] END ..........................C=0.0001;, score=0.773 total time= 0.0s\n", - "[CV 3/5] END ..........................C=0.0001;, score=0.955 total time= 0.0s\n", - "[CV 4/5] END ..........................C=0.0001;, score=0.909 total time= 0.0s\n", - "[CV 5/5] END ..........................C=0.0001;, score=0.860 total time= 0.0s\n", - "[CV 1/5] END ...........................C=0.001;, score=0.955 total time= 0.0s\n", - "[CV 2/5] END ...........................C=0.001;, score=0.977 total time= 0.0s\n", - "[CV 3/5] END ...........................C=0.001;, score=0.955 total time= 0.0s\n", - "[CV 4/5] END ...........................C=0.001;, score=0.909 total time= 0.0s\n", - "[CV 5/5] END ...........................C=0.001;, score=0.884 total time= 0.0s\n", - "[CV 1/5] END .............................C=0.1;, score=0.864 total time= 0.0s\n", - "[CV 2/5] END .............................C=0.1;, score=0.955 total time= 0.0s\n", - "[CV 3/5] END .............................C=0.1;, score=0.977 total time= 0.0s\n", - "[CV 4/5] END .............................C=0.1;, score=0.977 total time= 0.0s\n", - "[CV 5/5] END .............................C=0.1;, score=0.953 total time= 0.0s\n" - ] - }, - { - "data": { - "text/html": [ - "<style>#sk-container-id-5 {color: black;background-color: white;}#sk-container-id-5 pre{padding: 0;}#sk-container-id-5 div.sk-toggleable {background-color: white;}#sk-container-id-5 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-5 label.sk-toggleable__label-arrow:before {content: \"▸\";float: left;margin-right: 0.25em;color: #696969;}#sk-container-id-5 label.sk-toggleable__label-arrow:hover:before {color: black;}#sk-container-id-5 div.sk-estimator:hover label.sk-toggleable__label-arrow:before {color: black;}#sk-container-id-5 div.sk-toggleable__content {max-height: 0;max-width: 0;overflow: hidden;text-align: left;background-color: #f0f8ff;}#sk-container-id-5 div.sk-toggleable__content pre {margin: 0.2em;color: black;border-radius: 0.25em;background-color: #f0f8ff;}#sk-container-id-5 input.sk-toggleable__control:checked~div.sk-toggleable__content {max-height: 200px;max-width: 100%;overflow: auto;}#sk-container-id-5 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {content: \"▾\";}#sk-container-id-5 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-5 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-5 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-5 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-5 div.sk-estimator:hover {background-color: #d4ebff;}#sk-container-id-5 div.sk-parallel-item::after {content: \"\";width: 100%;border-bottom: 1px solid gray;flex-grow: 1;}#sk-container-id-5 div.sk-label:hover label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-5 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-5 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-5 div.sk-item {position: relative;z-index: 1;}#sk-container-id-5 div.sk-parallel {display: flex;align-items: stretch;justify-content: center;background-color: white;position: relative;}#sk-container-id-5 div.sk-item::before, #sk-container-id-5 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-5 div.sk-parallel-item {display: flex;flex-direction: column;z-index: 1;position: relative;background-color: white;}#sk-container-id-5 div.sk-parallel-item:first-child::after {align-self: flex-end;width: 50%;}#sk-container-id-5 div.sk-parallel-item:last-child::after {align-self: flex-start;width: 50%;}#sk-container-id-5 div.sk-parallel-item:only-child::after {width: 0;}#sk-container-id-5 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-5 div.sk-label label {font-family: monospace;font-weight: bold;display: inline-block;line-height: 1.2em;}#sk-container-id-5 div.sk-label-container {text-align: center;}#sk-container-id-5 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-5 div.sk-text-repr-fallback {display: none;}</style><div id=\"sk-container-id-5\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>GridSearchCV(estimator=SVC(kernel='linear', probability=True, random_state=47),\n", - " param_grid={'C': [0.0005, 0.0001, 0.001, 0.1]}, verbose=3)</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-11\" type=\"checkbox\" ><label for=\"sk-estimator-id-11\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">GridSearchCV</label><div class=\"sk-toggleable__content\"><pre>GridSearchCV(estimator=SVC(kernel='linear', probability=True, random_state=47),\n", - " param_grid={'C': [0.0005, 0.0001, 0.001, 0.1]}, verbose=3)</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-12\" type=\"checkbox\" ><label for=\"sk-estimator-id-12\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">estimator: SVC</label><div class=\"sk-toggleable__content\"><pre>SVC(kernel='linear', probability=True, random_state=47)</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-13\" type=\"checkbox\" ><label for=\"sk-estimator-id-13\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">SVC</label><div class=\"sk-toggleable__content\"><pre>SVC(kernel='linear', probability=True, random_state=47)</pre></div></div></div></div></div></div></div></div></div></div>" - ], - "text/plain": [ - "GridSearchCV(estimator=SVC(kernel='linear', probability=True, random_state=47),\n", - " param_grid={'C': [0.0005, 0.0001, 0.001, 0.1]}, verbose=3)" - ] - }, - "execution_count": 104, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# Fitting the model for grid search\n", - "grid.fit(X_train, y_train)" - ] - }, - { - "cell_type": "code", - "execution_count": 105, - "id": "5d327876", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "{'C': 0.1}\n", - "SVC(C=0.1, kernel='linear', probability=True, random_state=47)\n" - ] - } - ], - "source": [ - "# print best parameter after tuning\n", - "print(grid.best_params_)\n", - " \n", - "# print how our model looks after hyper-parameter tuning\n", - "print(grid.best_estimator_)" - ] - }, - { - "cell_type": "code", - "execution_count": 106, - "id": "f8d67e2f", - "metadata": {}, - "outputs": [], - "source": [ - "# Select columns in df1 based on columns in df2\n", - "X_test = X_test.loc[:, X_train.columns]" - ] - }, - { - "cell_type": "code", - "execution_count": 107, - "id": "c8c233d6", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - " precision recall f1-score support\n", - "\n", - " 0 0.97 0.93 0.95 30\n", - " 1 0.94 0.97 0.95 30\n", - "\n", - " accuracy 0.95 60\n", - " macro avg 0.95 0.95 0.95 60\n", - "weighted avg 0.95 0.95 0.95 60\n", - "\n" - ] - } - ], - "source": [ - "from sklearn.metrics import classification_report, confusion_matrix\n", - "grid_predictions = grid.predict(X_test)\n", - "print(classification_report(y_test, grid_predictions))" - ] - }, - { - "cell_type": "code", - "execution_count": 108, - "id": "3b2776c0", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "<style>#sk-container-id-6 {color: black;background-color: white;}#sk-container-id-6 pre{padding: 0;}#sk-container-id-6 div.sk-toggleable {background-color: white;}#sk-container-id-6 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-6 label.sk-toggleable__label-arrow:before {content: \"▸\";float: left;margin-right: 0.25em;color: #696969;}#sk-container-id-6 label.sk-toggleable__label-arrow:hover:before {color: black;}#sk-container-id-6 div.sk-estimator:hover label.sk-toggleable__label-arrow:before {color: black;}#sk-container-id-6 div.sk-toggleable__content {max-height: 0;max-width: 0;overflow: hidden;text-align: left;background-color: #f0f8ff;}#sk-container-id-6 div.sk-toggleable__content pre {margin: 0.2em;color: black;border-radius: 0.25em;background-color: #f0f8ff;}#sk-container-id-6 input.sk-toggleable__control:checked~div.sk-toggleable__content {max-height: 200px;max-width: 100%;overflow: auto;}#sk-container-id-6 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {content: \"▾\";}#sk-container-id-6 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-6 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-6 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-6 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-6 div.sk-estimator:hover {background-color: #d4ebff;}#sk-container-id-6 div.sk-parallel-item::after {content: \"\";width: 100%;border-bottom: 1px solid gray;flex-grow: 1;}#sk-container-id-6 div.sk-label:hover label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-6 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-6 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-6 div.sk-item {position: relative;z-index: 1;}#sk-container-id-6 div.sk-parallel {display: flex;align-items: stretch;justify-content: center;background-color: white;position: relative;}#sk-container-id-6 div.sk-item::before, #sk-container-id-6 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-6 div.sk-parallel-item {display: flex;flex-direction: column;z-index: 1;position: relative;background-color: white;}#sk-container-id-6 div.sk-parallel-item:first-child::after {align-self: flex-end;width: 50%;}#sk-container-id-6 div.sk-parallel-item:last-child::after {align-self: flex-start;width: 50%;}#sk-container-id-6 div.sk-parallel-item:only-child::after {width: 0;}#sk-container-id-6 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-6 div.sk-label label {font-family: monospace;font-weight: bold;display: inline-block;line-height: 1.2em;}#sk-container-id-6 div.sk-label-container {text-align: center;}#sk-container-id-6 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-6 div.sk-text-repr-fallback {display: none;}</style><div id=\"sk-container-id-6\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>SVC(C=0.1, kernel='linear', probability=True, random_state=47)</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\"><div class=\"sk-estimator sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-14\" type=\"checkbox\" checked><label for=\"sk-estimator-id-14\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">SVC</label><div class=\"sk-toggleable__content\"><pre>SVC(C=0.1, kernel='linear', probability=True, random_state=47)</pre></div></div></div></div></div>" - ], - "text/plain": [ - "SVC(C=0.1, kernel='linear', probability=True, random_state=47)" - ] - }, - "execution_count": 108, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "model_svm = grid.best_estimator_\n", - "model_svm.fit(X_train,y_train)" - ] - }, - { - "cell_type": "code", - "execution_count": 109, - "id": "94871ada", - "metadata": {}, - "outputs": [], - "source": [ - "y_proba = model_svm.fit(X_train, y_train).predict_proba(X_test)[:,1]" - ] - }, - { - "cell_type": "code", - "execution_count": 110, - "id": "f8d4142d", - "metadata": {}, - "outputs": [], - "source": [ - "from sklearn.model_selection import StratifiedKFold\n", - "from sklearn.feature_selection import SelectKBest, f_classif\n", - "from sklearn.metrics import auc\n", - "def roc(X_train,y_train,model,label):\n", - " cv = StratifiedKFold(n_splits=6)\n", - " classifier = model\n", - " tprs = []\n", - " aucs = []\n", - " mean_fpr = np.linspace(0, 1, 100)\n", - "\n", - " fig, ax = plt.subplots(figsize=(6, 6))\n", - " for fold, (train, test) in enumerate(cv.split(X_train, y_train)):\n", - " classifier.fit(X_train.iloc[train], y_train.iloc[train])\n", - " viz = RocCurveDisplay.from_estimator(\n", - " classifier,\n", - " X_train.iloc[test],\n", - " y_train.iloc[test],\n", - " name=f\"ROC fold {fold}\",\n", - " alpha=0.3,\n", - " lw=1,\n", - " ax=ax,\n", - " )\n", - " interp_tpr = np.interp(mean_fpr, viz.fpr, viz.tpr)\n", - " interp_tpr[0] = 0.0\n", - " tprs.append(interp_tpr)\n", - " aucs.append(viz.roc_auc)\n", - " ax.plot([0, 1], [0, 1], \"k--\", label=\"chance level (AUC = 0.5)\")\n", - "\n", - " mean_tpr = np.mean(tprs, axis=0)\n", - " mean_tpr[-1] = 1.0\n", - " mean_auc = auc(mean_fpr, mean_tpr)\n", - " std_auc = np.std(aucs)\n", - " ax.plot(\n", - " mean_fpr,\n", - " mean_tpr,\n", - " color=\"b\",\n", - " label=r\"Mean ROC (AUC = %0.2f $\\pm$ %0.2f)\" % (mean_auc, std_auc),\n", - " lw=2,\n", - " alpha=0.8,\n", - " )\n", - "\n", - " std_tpr = np.std(tprs, axis=0)\n", - " tprs_upper = np.minimum(mean_tpr + std_tpr, 1)\n", - " tprs_lower = np.maximum(mean_tpr - std_tpr, 0)\n", - " ax.fill_between(\n", - " mean_fpr,\n", - " tprs_lower,\n", - " tprs_upper,\n", - " color=\"grey\",\n", - " alpha=0.2,\n", - " label=r\"$\\pm$ 1 std. dev.\",\n", - " )\n", - "\n", - " ax.set(\n", - " xlim=[-0.05, 1.05],\n", - " ylim=[-0.05, 1.05],\n", - " xlabel=\"False Positive Rate\",\n", - " ylabel=\"True Positive Rate\",\n", - " title=label,\n", - " )\n", - " ax.axis(\"square\")\n", - " ax.legend(loc=\"lower right\")\n", - " plt.show()" - ] - }, - { - "cell_type": "code", - "execution_count": 111, - "id": "802a96a5", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "<Figure size 600x600 with 1 Axes>" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "model = svm_model\n", - "label=\"ROC curve of training data\"\n", - "roc(X_train,y_train,model,label)" - ] - }, - { - "cell_type": "code", - "execution_count": 112, - "id": "5b8b6681", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "<Figure size 600x600 with 1 Axes>" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "label=\"ROC curve of testing data\"\n", - "roc(X_test,y_test,model,label)" - ] - }, - { - "cell_type": "code", - "execution_count": 99, - "id": "033ca70b", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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VJpt27bJMAy98MILCgkpWz6zfPlyr/OSk5OVnJys1NRUDRkyRAsWLNCdd96pa6+9Vt99951HUgJUB/Xq1dPOnTs9tmVlZbnX57Rt21ZOp1MHDx6k/YCAwaJHVJqkpCSVlJRo7ty52rdvn95++23Nnz//svufO3dOo0eP1oYNG/TDDz/o888/11dffeVuNUyaNEmbN2/W6NGjlZWVpb179+qDDz5g0SMC3s0336ytW7dq0aJF2rt3r6ZNm+aRQERHR2v8+PFKTU3VwoULlZubq6+//lpz587VwoULqzByXMlIGFBpOnbsqBdffFF/+tOf1K5dOy1evFgul+uy+4eGhurEiRO69957lZycrMGDB6tfv36aMWOGJKlDhw7KyMjQ999/r27duqlTp06aOnWq4uPjK+sjARXSt29fTZkyRRMnTtT111+vM2fO6N577/XYZ9asWZoyZYpcLpfatGmjlJQUrV69WomJiVUUNa50PN4aAAB4RYUBAAB4RcIAAAC8ImEAAABekTAAAACvSBgAAIBXJAwAAMArEgYAAOAVCQMAAPCKhAGoJoYPH64BAwa4X/fs2dP9aO/KtGHDBjkcDp06deqy+zgcDq1cubLcx5w+fbquueYaS3EdOHBADodDWVlZlo4D4NJIGAALhg8fLofDIYfDobCwMCUlJWnmzJk6f/6838/9/vvva9asWeXatzxf8gDwa3haJWBRSkqKFixYoKKiIn300UcaNWqUatasqSeeeOKifYuLixUWFmbLeevWrWvLcQCgPKgwABY5nU7FxcWpadOmevjhh9W7d2/97W9/k/RzG+Hpp59WfHy8WrVqJUk6dOiQBg8erNq1a6tu3brq37+/Dhw44D5maWmpxo0bp9q1a+uqq67SxIkT9cvHvvyyJVFUVKRJkyYpISFBTqdTSUlJeuutt3TgwAH16tVLklSnTh05HA4NHz5ckmQYhlwulxITExUREaGOHTvq3Xff9TjPRx99pOTkZEVERKhXr14ecZbXpEmTlJycrFq1aql58+aaMmWKSkpKLtrv9ddfV0JCgmrVqqXBgwfr9OnTHu+/+eabatOmjcLDw9W6dWu99tprPscCoGJIGACbRUREqLi42P36008/VXZ2ttauXatVq1appKREffv2VXR0tDZt2qTPP/9cUVFRSklJcc974YUXlJ6err/85S/KzMzUyZMntWLFil8977333qv//u//1pw5c7R79269/vrrioqKUkJCgt577z1JUnZ2to4ePapXXnlFkuRyubRo0SLNnz9fu3btUmpqqu655x5lZGRIKktsBg4cqNtvv11ZWVkaOXKkJk+e7PN/k+joaKWnp+u7777TK6+8ojfeeEMvvfSSxz45OTlavny5PvzwQ61Zs0bffPONHnnkEff7ixcv1tSpU/X0009r9+7deuaZZzRlyhQe9wxUFhNAhQ0bNszs37+/aZqmaRiGuXbtWtPpdJrjx493v9+gQQOzqKjIPeftt982W7VqZRqG4d5WVFRkRkREmJ988olpmqbZsGFD87nnnnO/X1JSYjZu3Nh9LtM0zR49epiPPfaYaZqmmZ2dbUoy165de8k4P/vsM1OS+Y9//MO9rbCw0KxVq5a5efNmj31HjBhhDhkyxDRN03ziiSfMtm3berw/adKki471S5LMFStWXPb9559/3uzcubP79bRp08zQ0FDz8OHD7m0ff/yxGRISYh49etQ0TdNs0aKFuWTJEo/jzJo1y+zatatpmqa5f/9+U5L5zTffXPa8ACqONQyARatWrVJUVJRKSkpkGIbuvvtuTZ8+3f1++/btPdYtbN++XTk5OYqOjvY4TmFhoXJzc3X69GkdPXpUXbp0cb9Xo0YNXXfddRe1JS7IyspSaGioevToUe64c3JydPbsWd16660e24uLi9WpUydJ0u7duz3ikKSuXbuW+xwXLFu2THPmzFFubq7y8/N1/vx5xcTEeOzTpEkTNWrUyOM8hmEoOztb0dHRys3N1YgRI/TAAw+49zl//rxiY2N9jgeA70gYAIt69eqltLQ0hYWFKT4+XjVqeP5vFRkZ6fE6Pz9fnTt31uLFiy86Vr169SoUQ0REhM9z8vPzJUmrV6/2+KKWytZl2GXLli0aOnSoZsyYob59+yo2NlZLly7VCy+84HOsb7zxxkUJTGhoqG2xArg8EgbAosjISCUlJZV7/2uvvVbLli1T/fr1L/or+4KGDRvqyy+/VPfu3SWV/SW9bds2XXvttZfcv3379jIMQxkZGerdu/dF71+ocJSWlrq3tW3bVk6nUwcPHrxsZaJNmzbuBZwXfPHFF94/5L/YvHmzmjZtqqeeesq97Ycffrhov4MHD+rIkSOKj493nyckJEStWrVSgwYNFB8fr3379mno0KE+nR+APVj0CFSyoUOH6uqrr1b//v21adMm7d+/Xxs2bNCYMWN0+PBhSdJjjz2mZ599VitXrtSePXv0yCOP/Oo9FJo1a6Zhw4bp/vvv18qVK93HXL58uSSpadOmcjgcWrVqlf7+978rPz9f0dHRGj9+vFJTU7Vw4ULl5ubq66+/1ty5c90LCR966CHt3btXEyZMUHZ2tpYsWaL09HSfPm/Lli118OBBLV26VLm5uZozZ84lF3CGh4dr2LBh2r59uzZt2qQxY8Zo8ODBiouLkyTNmDFDLpdLc+bM0ffff69vv/1WCxYs0IsvvuhTPAAqhoQBqGS1atXSxo0b1aRJEw0cOFBt2rTRiBEjVFhY6K44PP744/rP//xPDRs2TF27dlV0dLTuvPPOXz1uWlqafve73+mRRx5R69at9cADD6igoECS1KhRI82YMUOTJ09WgwYNNHr0aEnSrFmzNGXKFLlcLrVp00YpKSlavXq1EhMTJZWtK3jvvfe0cuVKdezYUfPnz9czzzzj0+e94447lJqaqtGjR+uaa67R5s2bNWXKlIv2S0pK0sCBA3XbbbepT58+6tChg8dlkyNHjtSbb76pBQsWqH379urRo4fS09PdsQLwL4d5uVVUAAAA/0SFAQAAeEXCAAAAvCJhAAAAXpEwAAAAr0gYAACAVyQMAADAKxIGAADgFQkDAADwioQBAAB4RcIAAAC8ImEAAABe/X/s2q/eAJZgMQAAAABJRU5ErkJggg==", - "text/plain": [ - "<Figure size 640x480 with 2 Axes>" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "#######CONFUSION MATRIX ###########\n", - "from sklearn import metrics\n", - "y_test_pred_svm = model_svm.predict(X_test)\n", - "confusion_matrix_test = metrics.confusion_matrix(y_test, y_test_pred_svm)\n", - "cm_display = metrics.ConfusionMatrixDisplay(confusion_matrix = confusion_matrix_test, display_labels = [False, True])\n", - "cm_display.plot()\n", - "plt.show()" - ] - }, - { - "cell_type": "code", - "execution_count": 100, - "id": "2f9bc4a1", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Accuracy : 0.95\n", - "Sensitivity : 0.9333333333333333\n", - "Specificity : 0.9666666666666667\n" - ] - } - ], - "source": [ - "total1=sum(sum(confusion_matrix_test))\n", - "#####from confusion matrix calculate accuracy\n", - "accuracy1=(confusion_matrix_test[0,0]+confusion_matrix_test[1,1])/total1\n", - "print ('Accuracy : ', accuracy1)\n", - "\n", - "sensitivity1 = confusion_matrix_test[0,0]/(confusion_matrix_test[0,0]+confusion_matrix_test[0,1])\n", - "print('Sensitivity : ', sensitivity1 )\n", - "\n", - "specificity1 = confusion_matrix_test[1,1]/(confusion_matrix_test[1,0]+confusion_matrix_test[1,1])\n", - "print('Specificity : ', specificity1)" - ] - }, - { - "cell_type": "code", - "execution_count": 227, - "id": "c1095af0", - "metadata": {}, - "outputs": [], - "source": [ - "# for important features:\n", - "important_feat = model_svm.coef_[0]\n", - "#get indices of those important features\n", - "idx = important_feat.argsort(kind= \"quicksort\")\n", - "idx= idx[::-1][:50]" - ] - }, - { - "cell_type": "code", - "execution_count": 228, - "id": "ae7e0162", - "metadata": {}, - "outputs": [], - "source": [ - "df1 = X_selected.T" - ] - }, - { - "cell_type": "code", - "execution_count": 229, - "id": "1d97f818", - "metadata": {}, - "outputs": [], - "source": [ - "top_met = df1.iloc[idx]" - ] - }, - { - "cell_type": "code", - "execution_count": 230, - "id": "4cd4227b", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "Index(['COL1A1', 'ECT2', 'COL5A2', 'MCM2', 'MMP10', 'RPN1', 'TRIP13', 'FSCN1',\n", - " 'HSPBAP1', 'IGF2BP2', 'EFNA1', 'IGFBP3', 'EMP1', 'TMPRSS11E', 'PSMB9',\n", - " 'GABRP', 'NT5C2', 'RHCG', 'PITX1', 'RUVBL1', 'CYP4B1', 'SLC2A1',\n", - " 'LYPD3', 'GALNT1', 'IL1RN', 'TAPBP', 'DHRS2', 'SPRR3', 'SPINK5',\n", - " 'SCNN1A', 'TYMP', 'LAMC2', 'LEPROTL1', 'TSPAN6', 'INPP1', 'STK24',\n", - " 'SERPINB2', 'CRNN', 'MYH10', 'ECM1', 'HOPX', 'TFAP2B', 'IFI35',\n", - " 'TMPRSS11D', 'UCHL1', 'KRT4', 'AQP3', 'ACLY', 'ATP6V1D', 'TST'],\n", - " dtype='object')" - ] - }, - "execution_count": 230, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "top_met.index" - ] - }, - { - "cell_type": "code", - "execution_count": 232, - "id": "8f6d88bb", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "Index(['ACLY', 'ACPP', 'AIM2', 'ALDH9A1', 'ALOX12', 'ANO1', 'AQP3', 'ATP6V1D',\n", - " 'CCNG2', 'CES2', 'CFD', 'CH25H', 'CLIC3', 'COL1A1', 'COL5A2', 'CRABP2',\n", - " 'CRISP3', 'CRNN', 'CYP4B1', 'DHRS1', 'DHRS2', 'DUOX1', 'DUSP5', 'ECM1',\n", - " 'ECT2', 'EFNA1', 'EMP1', 'ENTPD6', 'ERCC3', 'FLG', 'FSCN1', 'GABRP',\n", - " 'GALE', 'GALNT1', 'GPX3', 'HOPX', 'HSPB8', 'HSPBAP1', 'HSPD1', 'ID4',\n", - " 'IFI35', 'IGF2BP2', 'IGFBP3', 'IL1RN', 'INPP1', 'KANK1', 'KLK13',\n", - " 'KRT4', 'LAMC2', 'LCN2', 'LEPROTL1', 'LYPD3', 'MAL', 'MCM2', 'MMP10',\n", - " 'MUC1', 'MYH10', 'NDRG2', 'NT5C2', 'PCSK5', 'PHLDA1', 'PITX1',\n", - " 'PPP1R3C', 'PSMB9', 'PTN', 'RAB11FIP1', 'RANBP9', 'RHCG', 'RND3',\n", - " 'RPN1', 'RUVBL1', 'SCNN1A', 'SERPINB13', 'SERPINB2', 'SIM2', 'SLC2A1',\n", - " 'SLK', 'SLURP1', 'SPINK5', 'SPRR3', 'SSRP1', 'STK24', 'SYNPO2L',\n", - " 'TAPBP', 'TFAP2B', 'TGIF1', 'TIAM1', 'TJP1', 'TMF1', 'TMPRSS11D',\n", - " 'TMPRSS11E', 'TRIP13', 'TSPAN6', 'TST', 'TYMP', 'UCHL1', 'ZBTB16',\n", - " 'ZNF185'],\n", - " dtype='object')" - ] - }, - "execution_count": 232, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "X_selected.columns" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "5d9ff727", - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "8b304c6c", - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "c76098bb", - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "321b6028", - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "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.9.16" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/03_Machine_Learning/DS_mRNA_limma_dataset_xgb_final-F.ipynb b/03_Machine_Learning/DS_mRNA_limma_dataset_xgb_final-F.ipynb deleted file mode 100644 index a8bebcc89c546906eb88cca3bc25904ee19a8e7e..0000000000000000000000000000000000000000 --- a/03_Machine_Learning/DS_mRNA_limma_dataset_xgb_final-F.ipynb +++ /dev/null @@ -1,1123 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 1, - "id": "f097ad55", - "metadata": {}, - "outputs": [], - "source": [ - "import warnings\n", - "warnings.filterwarnings('ignore')\n", - "import pandas as pd\n", - "from sklearn.model_selection import train_test_split\n", - "#from sklearn.model_selection import cross_val_score\n", - "#from sklearn.metrics import accuracy_score\n", - "#import sklearn.metrics as metrics\n", - "#from sklearn.metrics import auc\n", - "from sklearn.metrics import RocCurveDisplay\n", - "#from sklearn.model_selection import KFold\n", - "import matplotlib.pyplot as plt\n", - "import numpy as np\n", - "from imblearn.over_sampling import SMOTE\n", - "from sklearn.linear_model import Lasso\n", - "import xgboost as xgb\n", - "from sklearn.model_selection import GridSearchCV\n", - "import pandas as pd\n", - "import numpy as np\n", - "\n", - "np.random.seed(7)" - ] - }, - { - "cell_type": "markdown", - "id": "73b6611a", - "metadata": {}, - "source": [ - "# Data Preprocessing" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "id": "0eeb7a35", - "metadata": {}, - "outputs": [], - "source": [ - "df_train = pd.read_csv(\"DS/mRNA_DS_preprocessed_training_data.csv\")" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "id": "c04fc6bc", - "metadata": {}, - "outputs": [], - "source": [ - "df_test = pd.read_csv(\"DS/mRNA_DS_test_data.csv\")" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "id": "683b63ce", - "metadata": {}, - "outputs": [], - "source": [ - "df_train = df_train.T\n", - "df_test = df_test.T" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "id": "6ecc5606", - "metadata": {}, - "outputs": [], - "source": [ - "#df_test = df_test[:-1]" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "id": "d9b0088e", - "metadata": {}, - "outputs": [], - "source": [ - "#Transform the input data\n", - "df_train.rename(columns=df_train.iloc[0], inplace = True)\n", - "df_train.drop(df_train.index[0], inplace = True)\n", - "df_train=df_train.reset_index()" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "id": "2e78017d", - "metadata": {}, - "outputs": [], - "source": [ - "#Transform the input data\n", - "df_test.rename(columns=df_test.iloc[-1], inplace = True)\n", - "df_test.drop(df_test.index[-1], inplace = True)\n", - "df_test=df_test.reset_index()" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "id": "7168825e", - "metadata": {}, - "outputs": [], - "source": [ - "metadata_test = pd.read_csv(\"DS/mRNA_DS_metadata_col_test_info.csv\")" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "id": "26c98c3e", - "metadata": {}, - "outputs": [], - "source": [ - "df_test= df_test.merge(metadata_test, left_on=\"index\", right_on= \"Unnamed: 0\")" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "id": "b42beaa4", - "metadata": {}, - "outputs": [], - "source": [ - "df_test['title0'] = df_test['title0'].replace('(?i)mucosa|normal|healthy', 0, regex=True)\n" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "id": "515cd9fc", - "metadata": {}, - "outputs": [], - "source": [ - "df_test['title0'] = df_test['title0'].replace('(?i)Tumor|Cancer|carcinoma', 1, regex=True)" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "id": "b4f38f66", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "title0\n", - "0 30\n", - "1 30\n", - "Name: count, dtype: int64" - ] - }, - "execution_count": 13, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "df_test['title0'].value_counts()" - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "id": "dcdefec2", - "metadata": {}, - "outputs": [], - "source": [ - "df_test = df_test[pd.to_numeric(df_test['title0'], errors='coerce').notnull()]#remove all non-numeric data from the column." - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "id": "ca48568a", - "metadata": {}, - "outputs": [], - "source": [ - "df_test= df_test.drop(['index', 'Unnamed: 0'], axis=1)" - ] - }, - { - "cell_type": "code", - "execution_count": 16, - "id": "d4b7e8b7", - "metadata": {}, - "outputs": [], - "source": [ - "df_test= df_test.rename(columns={\"title0\": \"index\"})" - ] - }, - { - "cell_type": "code", - "execution_count": 17, - "id": "299ca65d", - "metadata": {}, - "outputs": [], - "source": [ - "X_test=df_test.drop(\"index\",axis=1)\n", - "y_test=df_test['index']" - ] - }, - { - "cell_type": "code", - "execution_count": 18, - "id": "4c50c510", - "metadata": {}, - "outputs": [], - "source": [ - "metadata_train = pd.read_csv(\"DS/mRNA_DS_metadata_col_info.csv\")" - ] - }, - { - "cell_type": "code", - "execution_count": 19, - "id": "6730cf89", - "metadata": {}, - "outputs": [], - "source": [ - "df_train= df_train.merge(metadata_train, left_on=\"index\", right_on= \"Unnamed: 0\")" - ] - }, - { - "cell_type": "code", - "execution_count": 20, - "id": "7a8ad8ad", - "metadata": {}, - "outputs": [], - "source": [ - "df_train['title0'] = df_train['title0'].replace('(?i)mucosa|normal|healthy', 0, regex=True)\n" - ] - }, - { - "cell_type": "code", - "execution_count": 21, - "id": "a8cf8643", - "metadata": {}, - "outputs": [], - "source": [ - "df_train['title0'] = df_train['title0'].replace('(?i)Tumor|Cancer|carcinoma', 1, regex=True)" - ] - }, - { - "cell_type": "code", - "execution_count": 22, - "id": "c9e8772b", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "title0\n", - "0 111\n", - "1 108\n", - "Name: count, dtype: int64" - ] - }, - "execution_count": 22, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "df_train['title0'].value_counts()" - ] - }, - { - "cell_type": "code", - "execution_count": 23, - "id": "f5d203aa", - "metadata": {}, - "outputs": [], - "source": [ - "df_train = df_train[pd.to_numeric(df_train['title0'], errors='coerce').notnull()]#remove all non-numeric data from the column." - ] - }, - { - "cell_type": "code", - "execution_count": 24, - "id": "523bdaa6", - "metadata": {}, - "outputs": [], - "source": [ - "df_train= df_train.drop(['index', 'Unnamed: 0'], axis=1)" - ] - }, - { - "cell_type": "code", - "execution_count": 25, - "id": "46a6fb36", - "metadata": {}, - "outputs": [], - "source": [ - "df_train= df_train.rename(columns={\"title0\": \"index\"})" - ] - }, - { - "cell_type": "code", - "execution_count": 26, - "id": "e26f88c5", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "index\n", - "0 111\n", - "1 108\n", - "Name: count, dtype: int64" - ] - }, - "execution_count": 26, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "df_train['index'].value_counts()" - ] - }, - { - "cell_type": "code", - "execution_count": 27, - "id": "fbaf2507", - "metadata": {}, - "outputs": [], - "source": [ - "df_train= df_train.apply(pd.to_numeric)" - ] - }, - { - "cell_type": "code", - "execution_count": 29, - "id": "38a993d9", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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JPCODQODGiKKCPv26bsdScLCMcXo6GjMmTMHCxcuxE8+Iub169fjhhtuwE033YQtW7ZgxowZeOihh7B06dIa282fPx+ZmZnYuHEj7r77btx1113Yvn273+d9/fXX0aRJE9x9990+f9+sWTMAwNGjR/GnP/0Ja9euxcaNG3HFFVfg6quvxu7du1U//9GjR9G/f3+UlZXhnXfewebNmzF16lRUVVUBANatW4dbbrkFEyZMwLfffovnn38eS5curRO4zJgxA9dddx22bNmCsWPHBtyvYRERpKKiQgAQFRUVVjeFiExWVCSE0h8T+FZUZHVLI8fx48fFt99+K44fPx7aA5w+LURqqv830+USIi1N2U5no0ePFkOGDBFCCHHhhReKsWPHCiGEeOutt4Tn0jpixAhx+eWX1/i7KVOmiHPPPdf7//T0dDFq1Cjv/6uqqkRSUpJYvHix3+cePHiw6N69e0jt7tKli1i4cKHq53/++edFXFyc+OWXX3w+3mWXXSbmzJlT475XX31VJCcne/8PQEycODFo2wIdD2qv3+ypIaKIcMklyiwnfzmcLheQlqZsRzYhyZjiY489hpdffhnbtm2rcf+2bdvQr1+/Gvf169cPO3bsgLtazk/37t29/3a5XGjdurV3yYDBgwejSZMmaNKkCbp06QJAWVZAjaNHj+K+++5D586d0axZMzRp0gTbtm2r01MT6Pk3bdqE888/Hy1atPD5HJs3b8bDDz/sbWOTJk1wxx13YN++fTh27Jh3u8zMTFVtDhendBNRRIiOVqZtDx2qBDDVrwueQOfJJ1mvxlYkGVO89NJLMWjQIDzwwAMYM2aM5r+vX79+jf+7XC7v8M6LL76I48eP19iuY8eO+OSTT3Dq1Kk6f1vdfffdhw8++ADz5s1Dhw4dEBsbi6FDh+LkyZOqn9+zfIE/R48excyZM5Htox5Cw4YNvf9u3LhxwMfRC3tqiChiZGcDK1cCKSk1709NVe5nnRqbUbvwYRgLJKr16KOP4h//+Ac+//xz732dO3fGp59+WmO7Tz/9FB07dlS9tlFKSgo6dOiADh06ID09HQAwYsQIHD16FM8++6zPv/GseP7pp59izJgxuO6669CtWze0bt0apaWlml5X9+7dsWnTJr/TxHv27Int27d721j9FhVlfojBnhoiiijZ2cCQIawo7AieMcWyMt9z9V0u5fcmjCl269YNI0eOxNNPP+29b/LkyejduzdmzZqFG2+8EZ9//jmeeeYZv8GIWn369MHUqVMxefJklJWV4brrrkObNm2wc+dOPPfcc7j44osxYcIEnH322SgsLMTVV18Nl8uFhx56yNsDo9bw4cMxZ84cXHvttcjLy0NycjI2btyINm3a4KKLLsL06dNx1VVXoW3bthg6dCiioqKwefNmbN26FbNnzw7rdYaCPTVEFHGio4GsLGD4cOUnAxqb8owpAnWTpSwYU3z44YdrBA09e/bE8uXL8cYbb6Br166YPn06Hn744ZCGqGp77LHHkJ+fjy+++AKDBg1Cly5dMGnSJHTv3t07pfuJJ55A8+bN0bdvX1x99dUYNGgQevbsqel5GjRogH//+99ISkrCn/70J3Tr1g2PPvqot6dp0KBBePfdd/Hvf/8bvXv3xoUXXogFCxZ4e5XM5hJqM44c4PDhw4iPj0dFRQWaNm1qdXOIiCLaiRMnUFJSgnbt2tXIv9DM19oXaWlKQMMxRdsIdDyovX5z+ImIiOyNY4r0PwxqiIjI/jxjihTRmFNDREREjsCghoiIiByBw08kNbebw+RERKQOgxqSlq8JDampygxOTmggO2OwTmQMDj+RlCxceJfIUIWFQEYGMGAAMGKE8jMjg8c0kR5sG9Q8+uijcLlcmDhxotVNIZ253UoPja8KSp77Jk5UtiO5uN1AcTGwbJnyk+9RTQzWiYxly6Dmq6++wvPPP19jZVFyDkkW3iWN2AMRGIN1IuPZLqg5evQoRo4ciSVLlqB58+ZWN4cMIMnCu6RBpPZAaOmZYrBOZDzbBTU5OTm48sorMXDgwKDbVlZW4vDhwzVuJL9wF97lEIi5IrUHQmvPFIN1Z9q/fz/Gjx+P9u3bIyYmBmlpabj66quxdu1aq5sWkWw1++mNN97Ahg0b8NVXX6naPi8vDzNnzjS4VaS3cBbe5Ywp82npgXBKwVdPz1Tt49PTM7VyZd3jLdxgnQKzYkZZaWkp+vXrh2bNmmHu3Lno1q0bTp06hX/961/IycnBd999Z2wDQnTy5Ek0aNDA6mYYQ9jE7t27RVJSkti8ebP3vv79+4sJEyb4/ZsTJ06IiooK723Pnj0CgKioqDChxRSOggIhXC7lplw6lJvnvoIC/39Tfftgf0Phy8+vu8993fLzrW6pPk6fFiI11f/rdLmESEtTtvP1d76O0UB/52THjx8X3377rTh+/HhYj1NQUPc9SU01/jM/ePBgkZKSIo4ePVrnd7/++qsQQoj58+eLrl27ikaNGonU1FRx1113iSNHjni3e+mll0R8fLx4//33RadOnUTjxo3FoEGDxN69e2s83t///ndx7rnnigYNGojWrVuLnJycGs912223iZYtW4q4uDgxYMAAsWnTJu/vc3NzRY8ePcSSJUtERkaGcLlcOu8JfQQ6HioqKlRdv20z/LR+/XqUl5ejZ8+eqFevHurVq4ePPvoITz/9NOrVqwe3j77tmJgYNG3atMaN7CE7W/m2m5JS8/7UVN/fgiN1CEQGansWduwwth1mCTU3Jjpa6TEElN7G6jz/f/JJ1qvRyqp8rkOHDuH9999HTk4OGjduXOf3zZo1AwBERUXh6aefxjfffIOXX34ZH374IaZOnVpj22PHjmHevHl49dVX8fHHH2P37t247777vL9fvHgxcnJycOedd2LLli1455130KFDB+/vhw0bhvLycqxevRrr169Hz549cdlll+HQoUPebXbu3ImCggIUFhZi06ZN+u4MmRgVcent8OHDYsuWLTVumZmZYtSoUWLLli2qHkNtpEfyOH1aiKIi5Vt+UZH/b7FFRep6C4qKtD82BXb6tBApKcH3fWqqM/ZxuD1TvnoV0tIisycx3J6aUHvN9PDFF18IAKKwsFDT361YsUIkJCR4///SSy8JAGLnzp3e+xYtWiRatWrl/X+bNm3EtGnTfD7eunXrRNOmTcWJEydq3H/WWWeJ559/Xgih9NTUr19flJeXa2qr2fToqbFNTk1cXBy6du1a477GjRsjISGhzv3kHGoX3tWahMncG/1ERwN33gnk5gbe7qefnJFXE25uTHY2MGQIKwrrwcp8LuGrW9iHNWvWIC8vD9999x0OHz6M06dP48SJEzh27BgaNWoEAGjUqBHOOuss798kJyejvLwcAFBeXo69e/fisssu8/n4mzdvxtGjR5GQkFDj/uPHj+OHH37w/j89PR2JiYmaXqMd2SaoIQpEy4UmlCRPCuzss9Vt54SZPeEksnuoDdYpMCtnlJ199tlwuVwBk4FLS0tx1VVX4a677sIjjzyCFi1a4JNPPsFtt92GkydPeoOa+vXr1/g7l8vlDZpiY2MDtuPo0aNITk5GcXFxnd95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Cejw4cNIS0vDnj170LRpU6ubYyq+dr52vvbIwdfO167mtQshcOTIEbRp0wZRUf4zZyKqpyYqKgqpqalWN0OTpk2bRtzB7sHXztceafja+dojjZbXHqiHxoOJwkREROQIDGqIiIjIERjUSComJga5ubmIiYmxuimm42vna480fO187ZHGqNceUYnCRERE5FzsqSEiIiJHYFBDREREjsCghoiIiByBQQ0RERE5AoMam/jnP/+JPn36IDY2Fs2bN8e1115rdZNMVVlZifPOOw8ulwubNm2yujmGKy0txW233YZ27dohNjYWZ511FnJzc3Hy5Emrm2aYRYsWISMjAw0bNkSfPn3w5ZdfWt0kw+Xl5aF3796Ii4tDUlISrr32Wmzfvt3qZpnu0UcfhcvlwsSJE61uiinKysowatQoJCQkIDY2Ft26dcPXX39tdbMM53a78dBDD9U4r82aNSvoek5aRFRFYbsqKCjAHXfcgTlz5uAPf/gDTp8+ja1bt1rdLFNNnToVbdq0webNm61uiim+++47VFVV4fnnn0eHDh2wdetW3HHHHfj9998xb948q5unuzfffBOTJk3Cc889hz59+uDJJ5/EoEGDsH37diQlJVndPMN89NFHyMnJQe/evXH69Gn87W9/wx//+Ed8++23aNy4sdXNM8VXX32F559/Ht27d7e6Kab49ddf0a9fPwwYMACrV69GYmIiduzYgebNm1vdNMM99thjWLx4MV5++WV06dIFX3/9NW699VbEx8fj3nvv1edJBEnt1KlTIiUlRbz44otWN8Uy7733nujUqZP45ptvBACxceNGq5tkiccff1y0a9fO6mYY4oILLhA5OTne/7vdbtGmTRuRl5dnYavMV15eLgCIjz76yOqmmOLIkSPi7LPPFh988IHo37+/mDBhgtVNMtxf//pXcfHFF1vdDEtceeWVYuzYsTXuy87OFiNHjtTtOTj8JLkNGzagrKwMUVFROP/885GcnIzBgwdHTE/NgQMHcMcdd+DVV19Fo0aNrG6OpSoqKtCiRQurm6G7kydPYv369Rg4cKD3vqioKAwcOBCff/65hS0zX0VFBQA48n32JScnB1deeWWN997p3nnnHWRmZmLYsGFISkrC+eefjyVLlljdLFP07dsXa9euxffffw8A2Lx5Mz755BMMHjxYt+dgUCO5Xbt2AQBmzJiB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dq33vry8PHHOOed4/3/WWWeJ/Pz8Gs8za9YscdFFF/l93G+++UYAENu2bRNCCNGtWzcxY8YMn20uKioSAMSvv/4qhBBixIgR4vLLL6+xzZQpU8S5557r/X96eroYNWqU9/9VVVUiKSlJLF682Odz1FZ9vxCRcdhTQ0QhE0IEzU3p3r2799+tWrUCAHTr1q3GfeXl5QCUPJQffvgBt912G5o0aeK9zZ49Gz/88IPfx01OTgYA7+Pce++9mD17Nvr164fc3Fz897//9du+bdu2oV+/fjXu69evH3bs2AG32+3z+VwuF1q3bu19PiKSA4MaIgrZtm3b0K5du4Db1K9f3/tvTwBU+z7PLKqjR48CAJYsWYJNmzZ5b1u3bsV//vOfoI/reZzbb78du3btws0334wtW7YgMzMTCxcuDPVl1nm+2u0mIjkwqCGikHz44YfYsmULrr/+et0es1WrVmjTpg127dqFDh061LgFC55qS0tLw7hx41BYWIjJkydjyZIlPrfr3LkzPv300xr3ffrpp+jYsSOio6NDfi1EZL56VjeAiORXWVmJ/fv3w+1248CBA3j//feRl5eHq666CrfccouuzzVz5kzce++9iI+PxxVXXIHKykp8/fXX+PXXXzFp0iRVjzFx4kQMHjwYHTt2xK+//oqioiJ07tzZ57aTJ09G7969MWvWLNx44434/PPP8cwzz9SYcRWKo0ePYufOnd7/l5SUYNOmTWjRogXatm0b1mMTkW8MaogoqPfffx/JycmoV68emjdvjh49euDpp5/G6NGjERWlb4fv7bffjkaNGmHu3LmYMmUKGjdujG7dumHixImqH8PtdiMnJwc//fQTmjZtiiuuuAILFizwuW3Pnj2xfPlyTJ8+HbNmzUJycjIefvhhjBkzJqzX8fXXX2PAgAHe/3sCstGjR9eZWUVE+nAJIYTVjSAiIiIKF3NqiIiIyBEY1BAREZEjMKghIiIiR2BQQ0RERI7AoIaIiIgcgUENEREROQKDGiIiInIEBjVERETkCAxqiIiIyBEY1BAREZEjMKghIiIiR2BQQ0RERI7w/ykvUdcJKHKNAAAAAElFTkSuQmCC", - "text/plain": [ - "<Figure size 640x480 with 1 Axes>" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "from sklearn.manifold import TSNE\n", - "# Assuming your data is stored in the variable 'data'\n", - "tsne = TSNE(n_components=3)\n", - "embedded_data = tsne.fit_transform(df_train)\n", - "\n", - "# Step 2: Separate data points by class\n", - "class_1_indices = np.where(df_train['index'] == 0)[0]\n", - "class_2_indices = np.where(df_train['index'] == 1)[0]\n", - "\n", - "class_1_data = embedded_data[class_1_indices]\n", - "class_2_data = embedded_data[class_2_indices]\n", - "\n", - "# Step 3: Plot the t-SNE plot with different colors for each class\n", - "plt.scatter(class_1_data[:, 0], class_1_data[:, 1], color='red', label='Non-Cancer')\n", - "plt.scatter(class_2_data[:, 0], class_2_data[:, 1], color='blue', label='Cancer')\n", - "\n", - "plt.title('t-SNE Plot')\n", - "plt.xlabel('Dimension 1')\n", - "plt.ylabel('Dimension 2')\n", - "plt.legend()\n", - "plt.show()" - ] - }, - { - "cell_type": "code", - "execution_count": 30, - "id": "776cfbee", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "index\n", - "0 111\n", - "1 108\n", - "Name: count, dtype: int64" - ] - }, - "execution_count": 30, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "df_train['index'].value_counts()" - ] - }, - { - "cell_type": "code", - "execution_count": 31, - "id": "8c0011ea", - "metadata": {}, - "outputs": [], - "source": [ - "X=df_train.drop(\"index\",axis=1)\n", - "y=df_train['index']" - ] - }, - { - "cell_type": "code", - "execution_count": 32, - "id": "a10804ed", - "metadata": {}, - "outputs": [], - "source": [ - "X=X.astype('int')" - ] - }, - { - "cell_type": "code", - "execution_count": 33, - "id": "93e28118", - "metadata": {}, - "outputs": [], - "source": [ - "y=y.astype('int')" - ] - }, - { - "cell_type": "markdown", - "id": "e9830b6c", - "metadata": {}, - "source": [ - "# Feature Selection" - ] - }, - { - "cell_type": "code", - "execution_count": 35, - "id": "1cc528fb", - "metadata": {}, - "outputs": [], - "source": [ - "# LASSO model:\n", - "lasso = Lasso(alpha=1)\n", - "# fitting the model:\n", - "lasso.fit(X, y)\n", - "# select all coefficients and the feature names\n", - "lasso_coefs = lasso.coef_\n", - "feature_names = X.columns\n", - "\n", - "# collect the selected features:\n", - "selected_feature_indices = np.nonzero(lasso_coefs)[0]\n", - "selected_features = [feature_names[i] for i in selected_feature_indices]\n", - "X_selected = X.iloc[:, selected_feature_indices]" - ] - }, - { - "cell_type": "code", - "execution_count": 36, - "id": "8afa29ae", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "98" - ] - }, - "execution_count": 36, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "len(selected_features)" - ] - }, - { - "cell_type": "markdown", - "id": "6cee6462", - "metadata": {}, - "source": [ - "# Test train split" - ] - }, - { - "cell_type": "code", - "execution_count": 37, - "id": "cff9bd67", - "metadata": {}, - "outputs": [], - "source": [ - "X_train = X_selected\n", - "y_train = y" - ] - }, - { - "cell_type": "code", - "execution_count": 38, - "id": "129430e6", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "(index\n", - " 0 30\n", - " 1 30\n", - " Name: count, dtype: int64,\n", - " index\n", - " 0 111\n", - " 1 108\n", - " Name: count, dtype: int64)" - ] - }, - "execution_count": 38, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "y_test.value_counts(),y_train.value_counts()" - ] - }, - { - "cell_type": "markdown", - "id": "1cfe2a06", - "metadata": {}, - "source": [ - "# Cross validation" - ] - }, - { - "cell_type": "code", - "execution_count": 39, - "id": "059bf577", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Fitting 5 folds for each of 3 candidates, totalling 15 fits\n", - "[CV 1/5] END learning_rate=0.1, max_depth=3, n_estimators=100;, score=0.886 total time= 0.5s\n", - "[CV 2/5] END learning_rate=0.1, max_depth=3, n_estimators=100;, score=0.955 total time= 0.1s\n", - "[CV 3/5] END learning_rate=0.1, max_depth=3, n_estimators=100;, score=0.977 total time= 0.1s\n", - "[CV 4/5] END learning_rate=0.1, max_depth=3, n_estimators=100;, score=1.000 total time= 0.1s\n", - "[CV 5/5] END learning_rate=0.1, max_depth=3, n_estimators=100;, score=0.953 total time= 0.1s\n", - "[CV 1/5] END learning_rate=0.01, max_depth=3, n_estimators=100;, score=0.773 total time= 0.1s\n", - "[CV 2/5] END learning_rate=0.01, max_depth=3, n_estimators=100;, score=0.636 total time= 0.1s\n", - "[CV 3/5] END learning_rate=0.01, max_depth=3, n_estimators=100;, score=0.955 total time= 0.1s\n", - "[CV 4/5] END learning_rate=0.01, max_depth=3, n_estimators=100;, score=0.909 total time= 0.1s\n", - "[CV 5/5] END learning_rate=0.01, max_depth=3, n_estimators=100;, score=0.860 total time= 0.1s\n", - "[CV 1/5] END learning_rate=0.001, max_depth=3, n_estimators=100;, score=0.659 total time= 0.1s\n", - "[CV 2/5] END learning_rate=0.001, max_depth=3, n_estimators=100;, score=0.614 total time= 0.1s\n", - "[CV 3/5] END learning_rate=0.001, max_depth=3, n_estimators=100;, score=0.955 total time= 0.1s\n", - "[CV 4/5] END learning_rate=0.001, max_depth=3, n_estimators=100;, score=0.864 total time= 0.1s\n", - "[CV 5/5] END learning_rate=0.001, max_depth=3, n_estimators=100;, score=0.884 total time= 0.1s\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(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, eval_metric=None,\n", - " feature_types=None, 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", - " max_cat_threshold=None,\n", - " max_cat_to_onehot=None,\n", - " max_delta_step=None, max_depth=None,\n", - " max_leaves=None, min_child_weight=None,\n", - " missing=nan, monotone_constraints=None,\n", - " n_estimators=100, n_jobs=None,\n", - " num_parallel_tree=None, predictor=None,\n", - " random_state=42, ...),\n", - " param_grid={'learning_rate': [0.1, 0.01, 0.001], 'max_depth': [3],\n", - " 'n_estimators': [100]},\n", - " verbose=3)</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(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, eval_metric=None,\n", - " feature_types=None, 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", - " max_cat_threshold=None,\n", - " max_cat_to_onehot=None,\n", - " max_delta_step=None, max_depth=None,\n", - " max_leaves=None, min_child_weight=None,\n", - " missing=nan, monotone_constraints=None,\n", - " n_estimators=100, n_jobs=None,\n", - " num_parallel_tree=None, predictor=None,\n", - " random_state=42, ...),\n", - " param_grid={'learning_rate': [0.1, 0.01, 0.001], 'max_depth': [3],\n", - " 'n_estimators': [100]},\n", - " verbose=3)</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=None, feature_types=None,\n", - " gamma=None, gpu_id=None, grow_policy=None, importance_type=None,\n", - " interaction_constraints=None, learning_rate=None, max_bin=None,\n", - " max_cat_threshold=None, max_cat_to_onehot=None,\n", - " max_delta_step=None, max_depth=None, max_leaves=None,\n", - " min_child_weight=None, missing=nan, monotone_constraints=None,\n", - " n_estimators=100, n_jobs=None, num_parallel_tree=None,\n", - " predictor=None, random_state=42, ...)</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=None, feature_types=None,\n", - " gamma=None, gpu_id=None, grow_policy=None, importance_type=None,\n", - " interaction_constraints=None, learning_rate=None, max_bin=None,\n", - " max_cat_threshold=None, max_cat_to_onehot=None,\n", - " max_delta_step=None, max_depth=None, max_leaves=None,\n", - " min_child_weight=None, missing=nan, monotone_constraints=None,\n", - " n_estimators=100, n_jobs=None, num_parallel_tree=None,\n", - " predictor=None, random_state=42, ...)</pre></div></div></div></div></div></div></div></div></div></div>" - ], - "text/plain": [ - "GridSearchCV(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, eval_metric=None,\n", - " feature_types=None, 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", - " max_cat_threshold=None,\n", - " max_cat_to_onehot=None,\n", - " max_delta_step=None, max_depth=None,\n", - " max_leaves=None, min_child_weight=None,\n", - " missing=nan, monotone_constraints=None,\n", - " n_estimators=100, n_jobs=None,\n", - " num_parallel_tree=None, predictor=None,\n", - " random_state=42, ...),\n", - " param_grid={'learning_rate': [0.1, 0.01, 0.001], 'max_depth': [3],\n", - " 'n_estimators': [100]},\n", - " verbose=3)" - ] - }, - "execution_count": 39, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "model = xgb.XGBClassifier(random_state=42)\n", - "\n", - "# Defining parameter range\n", - "param_grid = {\n", - " 'max_depth': [3],\n", - " 'learning_rate': [0.1 ,0.01, 0.001],\n", - " 'n_estimators': [100]\n", - "}\n", - "\n", - "grid = GridSearchCV(model, param_grid, refit=True, verbose=3)\n", - "\n", - "# Fitting the model for grid search\n", - "grid.fit(X_train, y_train)" - ] - }, - { - "cell_type": "code", - "execution_count": 40, - "id": "5d327876", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "{'learning_rate': 0.1, 'max_depth': 3, 'n_estimators': 100}\n", - "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=None, feature_types=None,\n", - " gamma=None, gpu_id=None, grow_policy=None, importance_type=None,\n", - " interaction_constraints=None, learning_rate=0.1, max_bin=None,\n", - " max_cat_threshold=None, max_cat_to_onehot=None,\n", - " max_delta_step=None, max_depth=3, max_leaves=None,\n", - " min_child_weight=None, missing=nan, monotone_constraints=None,\n", - " n_estimators=100, n_jobs=None, num_parallel_tree=None,\n", - " predictor=None, random_state=42, ...)\n" - ] - } - ], - "source": [ - "# print best parameter after tuning\n", - "print(grid.best_params_)\n", - " \n", - "# print how our model looks after hyper-parameter tuning\n", - "print(grid.best_estimator_)" - ] - }, - { - "cell_type": "code", - "execution_count": 41, - "id": "29da15ed", - "metadata": { - "scrolled": true - }, - "outputs": [], - "source": [ - "# Select columns in df1 based on columns in df2\n", - "X_test = X_test.loc[:, X_train.columns]" - ] - }, - { - "cell_type": "code", - "execution_count": 42, - "id": "d77bf449", - "metadata": {}, - "outputs": [], - "source": [ - "X_test = X_test.astype('int')" - ] - }, - { - "cell_type": "code", - "execution_count": 43, - "id": "3b2776c0", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "<style>#sk-container-id-2 {color: black;background-color: white;}#sk-container-id-2 pre{padding: 0;}#sk-container-id-2 div.sk-toggleable {background-color: white;}#sk-container-id-2 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-2 label.sk-toggleable__label-arrow:before {content: \"▸\";float: left;margin-right: 0.25em;color: #696969;}#sk-container-id-2 label.sk-toggleable__label-arrow:hover:before {color: black;}#sk-container-id-2 div.sk-estimator:hover label.sk-toggleable__label-arrow:before {color: black;}#sk-container-id-2 div.sk-toggleable__content {max-height: 0;max-width: 0;overflow: hidden;text-align: left;background-color: #f0f8ff;}#sk-container-id-2 div.sk-toggleable__content pre {margin: 0.2em;color: black;border-radius: 0.25em;background-color: #f0f8ff;}#sk-container-id-2 input.sk-toggleable__control:checked~div.sk-toggleable__content {max-height: 200px;max-width: 100%;overflow: auto;}#sk-container-id-2 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {content: \"▾\";}#sk-container-id-2 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-2 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-2 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-2 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-2 div.sk-estimator:hover {background-color: #d4ebff;}#sk-container-id-2 div.sk-parallel-item::after {content: \"\";width: 100%;border-bottom: 1px solid gray;flex-grow: 1;}#sk-container-id-2 div.sk-label:hover label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-2 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-2 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-2 div.sk-item {position: relative;z-index: 1;}#sk-container-id-2 div.sk-parallel {display: flex;align-items: stretch;justify-content: center;background-color: white;position: relative;}#sk-container-id-2 div.sk-item::before, #sk-container-id-2 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-2 div.sk-parallel-item {display: flex;flex-direction: column;z-index: 1;position: relative;background-color: white;}#sk-container-id-2 div.sk-parallel-item:first-child::after {align-self: flex-end;width: 50%;}#sk-container-id-2 div.sk-parallel-item:last-child::after {align-self: flex-start;width: 50%;}#sk-container-id-2 div.sk-parallel-item:only-child::after {width: 0;}#sk-container-id-2 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-2 div.sk-label label {font-family: monospace;font-weight: bold;display: inline-block;line-height: 1.2em;}#sk-container-id-2 div.sk-label-container {text-align: center;}#sk-container-id-2 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-2 div.sk-text-repr-fallback {display: none;}</style><div id=\"sk-container-id-2\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><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=None, feature_types=None,\n", - " gamma=None, gpu_id=None, grow_policy=None, importance_type=None,\n", - " interaction_constraints=None, learning_rate=0.1, max_bin=None,\n", - " max_cat_threshold=None, max_cat_to_onehot=None,\n", - " max_delta_step=None, max_depth=3, max_leaves=None,\n", - " min_child_weight=None, missing=nan, monotone_constraints=None,\n", - " n_estimators=100, n_jobs=None, num_parallel_tree=None,\n", - " predictor=None, random_state=42, ...)</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\"><div class=\"sk-estimator sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-4\" type=\"checkbox\" checked><label for=\"sk-estimator-id-4\" 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=None, feature_types=None,\n", - " gamma=None, gpu_id=None, grow_policy=None, importance_type=None,\n", - " interaction_constraints=None, learning_rate=0.1, max_bin=None,\n", - " max_cat_threshold=None, max_cat_to_onehot=None,\n", - " max_delta_step=None, max_depth=3, max_leaves=None,\n", - " min_child_weight=None, missing=nan, monotone_constraints=None,\n", - " n_estimators=100, n_jobs=None, num_parallel_tree=None,\n", - " predictor=None, random_state=42, ...)</pre></div></div></div></div></div>" - ], - "text/plain": [ - "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=None, feature_types=None,\n", - " gamma=None, gpu_id=None, grow_policy=None, importance_type=None,\n", - " interaction_constraints=None, learning_rate=0.1, max_bin=None,\n", - " max_cat_threshold=None, max_cat_to_onehot=None,\n", - " max_delta_step=None, max_depth=3, max_leaves=None,\n", - " min_child_weight=None, missing=nan, monotone_constraints=None,\n", - " n_estimators=100, n_jobs=None, num_parallel_tree=None,\n", - " predictor=None, random_state=42, ...)" - ] - }, - "execution_count": 43, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "model_xgb = grid.best_estimator_\n", - "model_xgb.fit(X_train,y_train)" - ] - }, - { - "cell_type": "code", - "execution_count": 44, - "id": "94871ada", - "metadata": {}, - "outputs": [], - "source": [ - "y_proba = model_xgb.fit(X_train, y_train).predict_proba(X_test)[:,1]" - ] - }, - { - "cell_type": "code", - "execution_count": 45, - "id": "fddf8856", - "metadata": {}, - "outputs": [], - "source": [ - "from sklearn.model_selection import StratifiedKFold\n", - "from sklearn.feature_selection import SelectKBest, f_classif\n", - "from sklearn.metrics import auc\n", - "def roc(X_train,y_train,model,label):\n", - " cv = StratifiedKFold(n_splits=6)\n", - " classifier = model\n", - " tprs = []\n", - " aucs = []\n", - " mean_fpr = np.linspace(0, 1, 100)\n", - "\n", - " fig, ax = plt.subplots(figsize=(6, 6))\n", - " for fold, (train, test) in enumerate(cv.split(X_train, y_train)):\n", - " classifier.fit(X_train.iloc[train], y_train.iloc[train])\n", - " viz = RocCurveDisplay.from_estimator(\n", - " classifier,\n", - " X_train.iloc[test],\n", - " y_train.iloc[test],\n", - " name=f\"ROC fold {fold}\",\n", - " alpha=0.3,\n", - " lw=1,\n", - " ax=ax,\n", - " )\n", - " interp_tpr = np.interp(mean_fpr, viz.fpr, viz.tpr)\n", - " interp_tpr[0] = 0.0\n", - " tprs.append(interp_tpr)\n", - " aucs.append(viz.roc_auc)\n", - " ax.plot([0, 1], [0, 1], \"k--\", label=\"chance level (AUC = 0.5)\")\n", - "\n", - " mean_tpr = np.mean(tprs, axis=0)\n", - " mean_tpr[-1] = 1.0\n", - " mean_auc = auc(mean_fpr, mean_tpr)\n", - " std_auc = np.std(aucs)\n", - " ax.plot(\n", - " mean_fpr,\n", - " mean_tpr,\n", - " color=\"b\",\n", - " label=r\"Mean ROC (AUC = %0.2f $\\pm$ %0.2f)\" % (mean_auc, std_auc),\n", - " lw=2,\n", - " alpha=0.8,\n", - " )\n", - "\n", - " std_tpr = np.std(tprs, axis=0)\n", - " tprs_upper = np.minimum(mean_tpr + std_tpr, 1)\n", - " tprs_lower = np.maximum(mean_tpr - std_tpr, 0)\n", - " ax.fill_between(\n", - " mean_fpr,\n", - " tprs_lower,\n", - " tprs_upper,\n", - " color=\"grey\",\n", - " alpha=0.2,\n", - " label=r\"$\\pm$ 1 std. dev.\",\n", - " )\n", - "\n", - " ax.set(\n", - " xlim=[-0.05, 1.05],\n", - " ylim=[-0.05, 1.05],\n", - " xlabel=\"False Positive Rate\",\n", - " ylabel=\"True Positive Rate\",\n", - " title=label,\n", - " )\n", - " ax.axis(\"square\")\n", - " ax.legend(loc=\"lower right\")\n", - " plt.show()" - ] - }, - { - "cell_type": "code", - "execution_count": 46, - "id": "a7a0f6a7", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "<Figure size 600x600 with 1 Axes>" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "model = model_xgb\n", - "label=\"ROC curve of training data\"\n", - "roc(X_train,y_train,model,label)" - ] - }, - { - "cell_type": "code", - "execution_count": 47, - "id": "816f08dd", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAhUAAAIjCAYAAAC0x+nOAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAADKpklEQVR4nOzdd1hTdxcH8G8mKwKyxYVoXVTROnArFUVtqQMVt/hq1SpO1LoqaltbJ7YuWkWp1qoV29patXUrDtxbUUEFFVREQDZJfu8fNFciCZKQmIScz/PwKDf33px7geTk/BaPMcZACCGEEFJOfEMHQAghhJCKgZIKQgghhOgEJRWEEEII0QlKKgghhBCiE5RUEEIIIUQnKKkghBBCiE5QUkEIIYQQnaCkghBCCCE6QUkFIYQQQnSCkgpCiMFlZWVh1KhRcHNzA4/Hw+TJkw0dkloeHh4IDg42dBicBw8egMfjISoqytChEEJJBTEPUVFR4PF43JdQKETVqlURHByMx48fqzyGMYYtW7agQ4cOsLe3h7W1NRo1aoSFCxciOztb7XP9/vvv6N69O5ycnCAWi+Hu7o7+/fvj8OHD+ro8k7do0SJERUXhs88+w5YtWzB06NBS9/3jjz/0Gs+pU6cwf/58pKen6/V5DM1crpO8O0JDB0DIu7Rw4ULUqlULeXl5OHPmDKKiohATE4Pr16/D0tKS208mk2HQoEH49ddf0b59e8yfPx/W1tY4ceIEFixYgJ07d+LgwYNwdXXljmGM4X//+x+ioqLQtGlTTJ06FW5ubkhOTsbvv/+Ozp074+TJk2jTpo0hLt2oHT58GK1atUJYWNhb9120aBH69u2LXr166S2eU6dOYcGCBQgODoa9vb3SY3FxceDzK8bnsdKukxBtUFJBzEr37t3RvHlzAMCoUaPg5OSExYsX488//0T//v25/ZYsWYJff/0V06ZNw9KlS7nto0ePRv/+/dGrVy8EBwdj37593GPLly9HVFQUJk+ejBUrVoDH43GPzZkzB1u2bIFQaNg/uezsbNjY2Bg0BlWePXuGhg0bGjqMMrGwsDB0CIQYL0aIGdi0aRMDwM6dO6e0fc+ePQwAW7RoEbctJyeHVa5cmdWtW5cVFhaqPN+IESMYAHb69GnuGAcHB1a/fn0mlUq1jlMmk7GVK1ey999/n1lYWDAnJyfm7+/PxX3//n0GgG3atKnEsQBYWFgY931YWBgDwG7cuMEGDhzI7O3tWZMmTdjSpUsZAPbgwYMS55g5cyYTiUQsLS2N23bmzBnm7+/PbG1tmZWVFevQoQOLiYkp0/U8ffqU/e9//2MuLi7MwsKCNW7cmEVFRXGPHzlyhAEo8XX//n2V51O17/Dhw7nHHz16xEaMGMFcXFyYWCxmDRs2ZJGRkSXO8/3337OGDRsyKysrZm9vz5o1a8a2bt2qdN/UxVSzZk2l51T8bsXExLApU6YwJycnZm1tzXr16sWePXum9LwymYyFhYWxKlWqMCsrK9apUyd248aNEudU5+XLl2z48OHM1taW2dnZsWHDhrFLly6V+J24cuUKGz58OKtVqxazsLBgrq6ubMSIESw1NZXb523XuXHjRubr68ucnZ2ZWCxmDRo0YGvXrn1rjMS8UaWCmLUHDx4AACpXrsxti4mJwcuXLzFp0iS1lYVhw4Zh06ZN2LNnD1q1aoWYmBikpaVh8uTJEAgEWsczcuRIREVFoXv37hg1ahSkUilOnDiBM2fOcBUWTfXr1w/vvfceFi1aBMYYPv74Y8yYMQO//vorpk+frrTvr7/+iq5du3L34/Dhw+jevTuaNWuGsLAw8Pl8bNq0CR9++CFOnDiBli1bqn3e3NxcdOrUCffu3UNISAhq1aqFnTt3Ijg4GOnp6Zg0aRIaNGiALVu2YMqUKahWrRpCQ0MBAM7OzirPuWXLFowaNQotW7bE6NGjAQC1a9cGADx9+hStWrUCj8dDSEgInJ2dsW/fPowcORKZmZlc58/169dj4sSJ6Nu3LyZNmoS8vDxcvXoVsbGxGDRoEPr06YM7d+5g27ZtCA8Ph5OTU6kxKUyYMAGVK1dGWFgYHjx4gJUrVyIkJAQ7duzg9pk1axaWLFmCgIAA+Pv748qVK/D390deXl6p5waKmtd69uyJmJgYjB07Fg0aNMDvv/+O4cOHl9j3wIEDSEhIwIgRI+Dm5oYbN27gxx9/xI0bN3DmzBnweLy3Xue6devg5eWFTz75BEKhEH/99RfGjRsHuVyO8ePHvzVeYqYMndUQ8i4oPk0ePHiQPX/+nCUlJbHo6Gjm7OzMLCwsWFJSErfvypUrGQD2+++/qz1fWloaA8D69OnDGGPsu+++e+sxb3P48GEGgE2cOLHEY3K5nDGmXaVi4MCBJfZt3bo1a9asmdK2s2fPMgBs8+bN3HO+9957zN/fn3t+xoqqMrVq1WJdunQp9XoU9/Hnn3/mthUUFLDWrVsziUTCMjMzue01a9ZkH330UannU7CxsVH5qX7kyJGsSpUqSp/GGWNswIABzM7OjuXk5DDGGOvZsyfz8vIq9TkU1RxVFRN1lQo/Pz+l+zRlyhQmEAhYeno6Y4yxlJQUJhQKWa9evZTON3/+/BIVF1X++OMPBoAtWbKE2yaVSln79u1L/E4orrW4bdu2MQDs+PHjZbpOVefw9/dnnp6epcZJzFvF6G1ESBn5+fnB2dkZ1atXR9++fWFjY4M///wT1apV4/Z59eoVAKBSpUpqz6N4LDMzU+nf0o55m127doHH46nsrFi8f4amxo4dW2JbUFAQLly4gPj4eG7bjh07YGFhgZ49ewIALl++jLt372LQoEF48eIFUlNTkZqaiuzsbHTu3BnHjx+HXC5X+7x79+6Fm5sbBg4cyG0TiUSYOHEisrKycOzYMa2v6U2MMezatQsBAQFgjHGxpqamwt/fHxkZGbh48SIAwN7eHo8ePcK5c+d09vxAUX+b4j+n9u3bQyaT4eHDhwCAQ4cOQSqVYty4cUrHTZgwoUzn37t3L4RCIT777DNum0AgUHm8lZUV9/+8vDykpqaiVatWAMDdh7cpfo6MjAykpqaiY8eOSEhIQEZGRpnOQcwPJRXErKxZswYHDhxAdHQ0evTogdTU1BId7xSJgSK5UOXNxMPW1vatx7xNfHw83N3d4eDgoPU5VKlVq1aJbf369QOfz+dK84wx7Ny5E927d+eu5e7duwCA4cOHw9nZWelrw4YNyM/PL/XN5eHDh3jvvfdKjJRo0KAB97iuPH/+HOnp6fjxxx9LxDpixAgARZ1BAeDzzz+HRCJBy5Yt8d5772H8+PE4efJkuWOoUaOG0veKJqSXL18CeH29derUUdrPwcFBqflNnYcPH6JKlSqQSCRK2+vVq1di37S0NEyaNAmurq6wsrKCs7Mz93tQ1oTg5MmT8PPzg42NDezt7eHs7IzZs2drdA5ifqhPBTErLVu25Pom9OrVC+3atcOgQYMQFxfHvVgr3vSuXr2qdtji1atXAYAbsVC/fn0AwLVr1/Q61FFdxUImk6k9pvgnTgV3d3e0b98ev/76K2bPno0zZ84gMTERixcv5vZRVCGWLl2KJk2aqDz3m29whqKIdciQISr7GABA48aNART9fOPi4rBnzx7s378fu3btwtq1azFv3jwsWLBA6xjU9aVhjGl9Tm31798fp06dwvTp09GkSRNIJBLI5XJ069at1OqSQnx8PDp37oz69etjxYoVqF69OsRiMfbu3Yvw8PAynYOYJ0oqiNkSCAT45ptv4Ovri9WrV2PmzJkAgHbt2sHe3h6//PIL5syZo/LNYvPmzQCAjz/+mDumcuXK2LZtG2bPnq1VZ83atWvjn3/+QVpamtpqheIT7ZuTFWnzqT8oKAjjxo1DXFwcduzYAWtrawQEBCjFAxRVYfz8/DQ+f82aNXH16lXI5XKlasXt27e5x7WhKrFydnZGpUqVIJPJyhSrjY0NgoKCEBQUhIKCAvTp0wdff/01Zs2aBUtLy3I1N6mjuN579+4pVY9evHjBVTPedvyhQ4eQlZWllMzFxcUp7ffy5UscOnQICxYswLx587jtispTcequ86+//kJ+fj7+/PNPpQrMkSNH3honMW/U/EHMWqdOndCyZUusXLmS64FvbW2NadOmIS4uDnPmzClxzN9//42oqCj4+/tz7dTW1tb4/PPPcevWLXz++ecqP53+/PPPOHv2rNpYAgMDwRhT+WlZcT5bW1s4OTnh+PHjSo+vXbu27Bdd7PkEAgG2bduGnTt34uOPP1aaw6JZs2aoXbs2li1bhqysrBLHP3/+vNTz9+jRAykpKUqjH6RSKVatWgWJRIKOHTtqHDNQlBC8mVQJBAIEBgZi165duH79eqmxvnjxQukxsViMhg0bgjGGwsJC7jmAkslbeXTu3BlCoRDr1q1T2r569eoyHd+jRw9IpVKl42UyGVatWqW0nyKhffN3cOXKlSXOqe46VZ0jIyMDmzZtKlOsxHxRpYKYvenTp6Nfv36IioriOjXOnDkTly5dwuLFi3H69GkEBgbCysoKMTEx+Pnnn9GgQQP89NNPJc5z48YNLF++HEeOHEHfvn3h5uaGlJQU/PHHHzh79ixOnTqlNg5fX18MHToU33//Pe7evcuVqk+cOAFfX1+EhIQAKJq069tvv8WoUaPQvHlzHD9+HHfu3NH4ul1cXODr64sVK1bg1atXCAoKUnqcz+djw4YN6N69O7y8vDBixAhUrVoVjx8/xpEjR2Bra4u//vpL7flHjx6NH374AcHBwbhw4QI8PDwQHR2NkydPYuXKlVp3am3WrBkOHjyIFStWwN3dHbVq1YKPjw++/fZbHDlyBD4+Pvj000/RsGFDpKWl4eLFizh48CDS0tIAAF27doWbmxvatm0LV1dX3Lp1C6tXr8ZHH33ExdSsWTMARZOWDRgwACKRCAEBAeWaOMzV1RWTJk3C8uXL8cknn6Bbt264cuUK9u3bBycnp7dWRwICAtC2bVvMnDkTDx48QMOGDfHbb7+V6N9ga2uLDh06YMmSJSgsLETVqlXx77//4v79+yrvparr7Nq1K8RiMQICAjBmzBhkZWVh/fr1cHFxQXJystb3gJgBQw07IeRdUjf5FWNFExLVrl2b1a5dW2niKplMxjZt2sTatm3LbG1tmaWlJfPy8mILFixgWVlZap8rOjqade3alTk4ODChUMiqVKnCgoKC2NGjR98ap1QqZUuXLmX169dnYrGYOTs7s+7du7MLFy5w++Tk5LCRI0cyOzs7VqlSJda/f3/27NkztUNKnz9/rvb51q9fzwCwSpUqsdzcXJX7XLp0ifXp04c5OjoyCwsLVrNmTda/f3926NCht17P06dP2YgRI5iTkxMTi8WsUaNGKofDajKk9Pbt26xDhw7MysqqxFDMp0+fsvHjx7Pq1aszkUjE3NzcWOfOndmPP/7I7fPDDz+wDh06cNdTu3ZtNn36dJaRkaH0PF9++SWrWrUq4/P5ZZr86s3fLcXEXkeOHOG2SaVS9sUXXzA3NzdmZWXFPvzwQ3br1i3m6OjIxo4d+9Zrf/HiBRs6dCg3+dXQoUNVTn716NEj1rt3b2Zvb8/s7OxYv3792JMnT0r8jpR2nX/++Sdr3Lgxs7S0ZB4eHmzx4sVs48aNpU5ORgiPMQP0IiKEEAKgqOmhcuXK+Oqrr1Q2txFiSqhPBSGEvCO5ubkltin6OnTq1OndBkOIHlCfCkIIeUd27NiBqKgo9OjRAxKJBDExMdi2bRu6du2Ktm3bGjo8QsqNkgpCCHlHGjduDKFQiCVLliAzM5PrvPnVV18ZOjRCdIL6VBBCCCFEJ6hPBSGEEEJ0gpIKQgghhOiE2fWpkMvlePLkCSpVqqSXqXgJIYSQioQxhlevXsHd3b3EAoFvMruk4smTJ6hevbqhwyCEEEJMSlJSEqpVq1bqPmaXVCim4U1KSuKWeCaEEEKIapmZmahevXqZptY3u6RC0eRha2tLSQUhhBBSRmXpMkAdNQkhhBCiE5RUEEIIIUQnKKkghBBCiE5QUkEIIYQQnaCkghBCCCE6QUkFIYQQQnSCkgpCCCGE6AQlFYQQQgjRCUoqCCGEEKITlFQQQgghRCcoqSCEEEKITlBSQQghhBCdoKSCEEIIITpBSQUhhBBCdMKgScXx48cREBAAd3d38Hg8/PHHH2895ujRo/jggw9gYWGBOnXqICoqSu9xEkIIIeTtDJpUZGdnw9vbG2vWrCnT/vfv38dHH30EX19fXL58GZMnT8aoUaPwzz//6DlSQgghhLyN0JBP3r17d3Tv3r3M+0dERKBWrVpYvnw5AKBBgwaIiYlBeHg4/P399RUmIYSQdyA5Gdi0CcjIMHQkpq9RI2DIkHf/vAZNKjR1+vRp+Pn5KW3z9/fH5MmT1R6Tn5+P/Px87vvMzEy9xJbxKg1SWaFezm2OClJTkfPqFSCXGzoUQoie5RbKIWcMS7+rhQuX7cAYM3RIJkkmk0Eg4APgIS9XhCFDrN55DCaVVKSkpMDV1VVpm6urKzIzM5Gbmwsrq5I38JtvvsGCBQv0GlfGqzQcOfm7Xp/DnLCsbOSfewiptJBeXAip4BgD8mQMBYUinDw2ETJ5GnjgGToskyOVyfD0ZTqsLMSoXKkSMtN4AKq/8zhMKqnQxqxZszB16lTu+8zMTFSvrtsbrahQeL/fFraSyjo9tznKefwID27lQVi/GqzdXAwdDiFEj/IK5Lj3IhfZD9xgYesAuVwO3/ZpCB7yytChmYynz55h3NTpkMqTUcm+Cn5Y8z0at/jAILGYVFLh5uaGp0+fKm17+vQpbG1tVVYpAMDCwgIWFhbvIjzYSirD0d717TuSUslS0iCGAM4edWBZtZqhwyGE6FFWvgwiiywknHSH2NIKMpkMvfo7o9WHtQ0dmklISkrC4E8D8SQ5AZ6enjh6dI/OPzhrwqTmqWjdujUOHTqktO3AgQNo3bq1gSIiuiaVSpGRngEenweBQGDocAgh74BcDlw4X/Thz9KSoVkzavYsi6SkJHTq1AkJCYqE4qhBEwrAwElFVlYWLl++jMuXLwMoGjJ6+fJlJCYmAihquhg2bBi3/9ixY5GQkIAZM2bg9u3bWLt2LX799VdMmTLFEOETPUhPT0d+fh4lFISYkcQEC2RmFr0deXvnwsqK/v7fxhgTCsDAScX58+fRtGlTNG3aFAAwdepUNG3aFPPmzQMAJCcncwkGANSqVQt///03Dhw4AG9vbyxfvhwbNmyg4aQVRF5eHtLT02FhYQlQRy1CzMaty9bc/5s3zwGfb1JFdIM4f/48Hjx4YFQJBWDgPhWdOnUqtXe/qtkyO3XqhEuXLukxKt2QyWQoLKQhpmXFGMPLly8hlUphJRYZOhxCyDt060pRUsHjMTRvnk+VyjLo3bs3oqOj0bx5c6NJKAAT66hpSjIzM/Hs2TNDh2FS5HI5JBIJ5DnZhg6FEPKOJD8R4HmyCFYioF69QlSuDKpUqJGUlASBQAB3d3cARYmFsaGkQk8YY5DL5ahUqZKhQzEZPB4PPB4PNN0VIebj/LnXo/NatswFn8+npEIFRR8KgUCAo0ePcomFsaGkQo94PB79cRBCSCnOnX2dVDRvTkmFKm92ypTJZIYOSS36yekJzQRJCCGle/WKh5s3ivpQVXGXwt29AEKhEDweddRWMNZRHupQUqEnlFQQQkjpzp8XQy4vSiBatMgHY3IIhVRAVzC1hAKg5g9CzIJMBmzbZo2HD6lXPTEe9++/fgtq3jIfcjklFQqmmFAAlFQQYhYOHLDE1q3Wb9+REAOwspGjfoNCQAZKKv4jEAggEAhMKqEAKKnQGzkt2U2MyMmTYkOHQIhKPB7Q3j8DQiEgkzLqpPkfd3d3HD16FDKZzGQSCoCSCr2izkbEGOTm8nD5clFS4eQkx4oV6aBfTWIspJDiXuYrABLweOa95k9iYiLOnz+PPn36AIDRDhstDSUVhFRwFy6IIJUW/b9VqwI4O1MVjRiPrHwGZBZVd815GH5iYiJ8fX3x4MED7Ny5k0ssTI15/vQIMSOxsa/nAfDxyTdgJISoxxgz2zkqFAlFQkICPDw80KJFC0OHpDXz++m9IzSklBgDuRw4e7ao6cPKiqFxY1qPhhgnuVwOPp9vds0fxRMKU+uUqQolFXpEfSqIod26JURmZtHv4QcfFEJM/TWJkTLH5o+KllAAlFToDVUqiDGgpg9iKuRMDoFAYDZJxYsXLypcQgFQUkFIhXbmTFFpgs8HWrQoMHA0hKjHzGziKwcHB3z88ccVKqEAKKnQG6pUEEN7/JiPpKSi9un69Qthb0+/k8R4yeVyiEQiQ4fxzvB4PKxcuRJnz56tMAkFQEkFIRXW2WKrP7ZqRVUKYtwYYxW+UpGUlITx48cjP7+oKZLH48HR0dHAUelWxf4JGhBVKoihnT79ulemjw8lFcT4VeSRH8XX8gCANWvWGDgi/aBKhZ4wxmj0BzGYV694uPHfktLu7jJUry4zcESElI4xVNhOmm8uDjZz5kxDh6Q3VKkgRunoDU/cvV0VAhsbQ4dikjIy+FAsP9OyZQFNy02MHo9XMZMKU11tVFuUVBCjk/hIjMgjLSC0lYBnRh239KV1a2r6IMZNzuQVct0Pc0soAGr+0Ctq/tDOs1RKJHSlUaNCeHnRLJrEuFXEKbrlcjkCAgLMKqEAqFKhN9RRU3sFBa9fWIKCcvDxx3kGjMZ08flA5cpyavogRo/JGXgVbIpuPp+P1atXIyQkBH/99ZdZJBQAJRV6Q0mF9gqkr98FK1eWw8mJVtUkpCKTMzn4vIpRqSjeSb9du3a4ePFihbiusjKfKyUmo7DwdVJBXSoIqfiYvGiOClNvMk5KSkKrVq1w5coVbps5JRQAJRXECBVPKsRiqvgQUtHJmelP0a3olHn27FmMHj3abKvVlFToiVxOJXttUaWCEPNSNJum6faneHOUR3R0tMlXXbRFSYUemesvVXnlF77+taRKBSEVH2MMAhOtVJjjsNHSUFJBjI5UWrxSQUkFIRUdj8cDn2d6b0eUUJRkej9FUuEVFLxOKiwsStmREFJhmOJw0i+++IISijeYZr3JBJhrJx1dKN6nQiik+0hIRaZ4rTTFURKKRcG+/PJLSij+Q0mFHlGfCu0UUJ8KQsyGXF40RbepJBWZmZmwtbUFANjY2CAqKsqwARkZ0/gpErNSKC0+pNSAgRBC9E4uL5r4SiAw/rejpKQkNG3aFAsXLjR0KEbL+H+KJoiaPsqneJ8K6qhJSMXGGAOPb/yViuKdMn/66SdkZmYaOiSjZNw/RRNGiYX2lCe/MmAghBC9U0zRzTPipELVKA9FEwhRZrw/RWK2Cov1qaBKBSEVm1wuB5/PN9o+aDRsVDOUVOgBVSnKp0BK03QTYi6YXA6Bkc6mSQmF5mj0h54UX6mOaIam6dYfmUxGSS8xKjKZHAKBcbZzHjlyhBIKDVFSQYyOoqOmQMBgxM2sJkcqlSI7O9vkF24iFYtQJISgwDgrFcOGDQMA+Pr6UkJRRvTqQoyOok+FmPpT6JRMJoOFhQWqVq1KVTRiNF7lFeL5o1eGDoOTlJQEGxsbODg4AHidWJCyoaRCDxTlZXrh1o6iTwX1p9AtuVwOgUAAC5r7nBgRkZwHHozjtTIxMRG+vr6ws7PDwYMHucSClB0Vl/WE2q21p+hTIaIpunVKLpdDRJ1UCFFJkVAkJCQgIyMD2dnZhg7JJFFSQYyOok+FSCQ3cCQVC2OM+lMQokLxhII6ZZYPJRXE6Cj6VNAcFboll8spqSDkDZRQ6BYlFXpATR/lo1j7w4L6VOgUY8wkl5cmRF8oodA9SiqIUZHJAPl/rR7Up0K3eDweJRWEFFNQUID8/HxKKHSIaqF6RKM/NKe8mBj1qdAlxpjRL9pEyLtUp04dHD16FBYWFpRQ6Ai9whCjUlDw+v/Up0J3FOsrUFJBzF1SUhIOHDjAfV+nTh1KKHSIXmH0gPpUaE9phVJKKnRGkVRQ8wcxZ4q1PD7++GOlxILoDiUVekKJhXaKVyooqdAdqlQQc1d8cbBq1aqhfv36hg6pQqJXGD2iPhWaK16pEFJHTZ2hSgUxZ7Ta6LtDSQUxKsU7aorF1FFTVxSdNCnRJeaGEop3i5IKPaCmD+1RR039oCm6iTl69uwZJRTvGA0p1RNKLLRTvPnDgpIKnaHZNIk5cnR0RJs2bQCAEop3hF5liFEpnlTQPBW6wxijSgUxOwKBAFFRUXjx4gVcXFwMHY5ZoOYPPaAqhfby81//n5o/dIcmviLmIikpCZ9//jlkMhmAosSCEop3hyoVesIYo05xWlCuVFBSoSs8Ho+SClLhFe+UCQCLFy82cETmh15liFEpLHz9f5qnQjcUlTMaTkoqsjdHeYSEhBg6JLNESQUxKkpDSqlPhU4oqmZUqSAVFQ0bNR70KqMHik+G1PyhOZr8SvfkcjkEAgFVKkiFRAmFcaGkQk+os6Z2lKbpFtM91AW5XE6VClIhSaVSdOvWjRIKI0KvMsSoUEdN3VNUKiipIBWNUCjEsmXL0LBhQ0oojASN/iBGpXifCgvqU6ETitk0qTmOVETdu3dHly5daHI3I0EfXfSAmj60V7z5g/pU6AbNpkkqEkUfinv37nHb6PfbeFBSQYyK8oJilFToAq37QSoKRUJx7NgxjBo1ytDhEBUoqdAjKjdrTip9/X/qU6E7NPKDmLo3R3ls2bLF0CERFSipIEYlP7/4PBWUVOgKJRXElNGwUdNBSYUeUJ8K7SmN/hBSR01doHU/iCmjhMK00CuNnlBioZ3i03RT80f5KRIKSiqIqZoyZQolFCaEuszqEfWp0Bx11NQtxcRX1PxBTNWPP/4IAAgPD6eEwgRQUkGMSlHzR1EyIaIhpeVGE18RU5STkwNra2sAgIODA6Kjow0cESkreqXRA2r60J5ingoBn4HeB8uPKhXE1CQmJqJx48ZYs2aNoUMhWqCXbT2hxEI7iuYPkUBm4EgqBrlcTn0qiMlITEyEr68v4uPjER4ejpycHEOHRDRk8FeaNWvWwMPDA5aWlvDx8cHZs2dL3X/lypWoV68erKysUL16dUyZMgV5eXnvKNqyo/4U2uGSCiElFbrAGKOJr4hJSPovoVB0yjxy5AjXBEJMh0GTih07dmDq1KkICwvDxYsX4e3tDX9/fzx79kzl/r/88gtmzpyJsLAw3Lp1C5GRkdixYwdmz579jiMvHVUptKeY/IoqFbpBU3QTU/DsySN83K0rjfKoAAyaVKxYsQKffvopRowYgYYNGyIiIgLW1tbYuHGjyv1PnTqFtm3bYtCgQfDw8EDXrl0xcODAt1Y3DIESC+0oJr8SCWiOCl2gpIIYu6TEREz7XyAe3KeEoiIw2KtNQUEBLly4gFmzZnHb+Hw+/Pz8cPr0aZXHtGnTBj///DPOnj2Lli1bIiEhAXv37sXQoUPVPk9+fj7y8/O57zMzM3V3EcXJCoC8V0CeJZCfDX5BFngFBm9dMjmFBfYAk1Pzh44wxiAQCJBTIIVUTokuMT5//LEbyUkP4VGLEoqKwGBJRWpqKmQyGVxdXZW2u7q64vbt2yqPGTRoEFJTU9GuXTswxiCVSjF27NhSmz+++eYbLFiwQKexl1CQA6QnAo/PAxl2EOTlwib1BcQ51B6oKWm2I3gyQGQlA3iUlJUXj8dDnpTh/L0Xhg6FEJV8Ph6M8Rm5mPi/QZRQVAAmVRc9evQoFi1ahLVr18LHxwf37t3DpEmT8OWXX+KLL75QecysWbMwdepU7vvMzEzd/+LK//tU7doQcKoJaVYWcnjJENhW0u3zVHAyGSATSsAgg9DSEkxInV114r/k7P2qdrC2oKGlxPCePH4MWzs7SCQSAECbsM9hLTaptyOihsF+ik5OThAIBHj69KnS9qdPn8LNzU3lMV988QWGDh3KLXnbqFEjZGdnY/To0ZgzZ47KYXMWFhawsLDQ/QWoIrQGLO2AQj5kokwwMSUVmsjP5RW9AfIYRPT6Um6KOSoUfxfWFgLYWtJIEGJYSUlJ+KhrZ1StWhV79+7lEgtSMRisviwWi9GsWTMcOnSI2yaXy3Ho0CG0bt1a5TE5OTklEgfFpD7UMdL0KSa+AgAhLSZWboo5KgQCakYixqH44mCPHz9GRkaGoUMiOmbQz4NTp07F8OHD0bx5c7Rs2RIrV65EdnY2RowYAQAYNmwYqlatim+++QYAEBAQgBUrVqBp06Zc88cXX3yBgIAAo5sxkOap0JzSCqU0+qPcaOIrYkxUrTZatWpVQ4dFdMygSUVQUBCeP3+OefPmISUlBU2aNMH+/fu5zpuJiYlKL4hz584Fj8fD3Llz8fjxYzg7OyMgIABff/21oS5BJaqaaKd4pUIkoqSivBQrlPIoqSAGRsuXmw+Dt1yHhIQgJCRE5WNHjx5V+l4oFCIsLAxhYWHvILLyocRCc8UrFUK+HK+ysiGkRcW0xhiDRCKhSgUxKEoozIvBk4qKipo/NFd82XORsKiToZubm9E1bZkSkUiEQkMHQczay5cvkZ6eTgmFmaCkghgNpeYPoRw88GBlZQVLS0vDBVUBFOZRWkEMp3Hjxjhy5AgqV65MCYUZoKRCD6jpQztKHTX/G/1BFR9CTE9SUhIePXrEjeRr3LixgSMi7wo1tuoJJRaaU+pTQaM/CDFJij4UXbp0UbvkAqm4KKnQE/qErbliS7QUDSnl0X0kxJQU75Tp6uqKatWqGTok8o5RUkGMBlUqCDFdNMqDAJRU6AU1fWinsFh/QsXoD6pUEGL8KKEgCpRU6AklFppTGlJKlQpCTEJycjIlFIRDoz/0hD5ha06p+YMqFYSYBEdHR3h5eQEAJRSEkgp9oCqFdorPUyEWygwXCCGkzMRiMaKjo/HixQtUqVLF0OEQA6PmDz2hxEJz1FGTENOQlJSEr7/+mnudE4vFlFAQAFSpIEZEVZ8Kav4gxLgU75QJAHPmzDFwRMSYUKVCT+jNUHMlpumme0iIUXlzlMewYcMMHRIxMpRU6AE1fWineKVCSJUKQowKDRslZUFJhZ5QYqE5pbU/BFSpIMRYUEJByoqSCmI0ijd/CP8b/UGJBSGGVVBQAD8/P0ooSJlQUqEHjDF6M9QCjf4gxPiIxWLMnz8fdevWpYSCvBUlFXpATR/aUZqmW0CTXxFiLAYOHIhr165RQkHeipIKYjTy84v1qRBSpYIQQ0lKSkKPHj3w5MkTbptYLDZgRMRUUFJBjIZUqtz8QVUKQt49RafMffv2YdSoUYYOh5gYSir0gJo/tKPoqCkQAHz6zSTknXtzlMcPP/xg6JCIiaGXbj2gjpraUcxTIRIxgAF8yiwIeWdo2CjRBXrVJkZDkVSIxVTpIeRdooSC6AolFcRoSKVF/4qERUkFn6o9hLwTY8aMoYSC6AQlFXpAfSq0oxj9IRYzMNA9JORd2bBhA7p3704JBSk3WqVUT6hPheYU81SIREUJBd1DQvQnPz8fFhYWAAB3d3fs3bvXwBGRioAqFXpAlQrtKGbUFIsYQJ1dCdGbpKQkNGrUCFu3bjV0KKSCoaSCGAWZDJD/N9+VolJBCNE9RafMu3fvYsGCBcjPzzd0SKQCoaRCD6hSobniy56LFc0fNKSUEJ16c5THoUOHuCYQQnSBXrWJUSi+QqlIRN00CdE1GjZK3gVKKvSAKhWaK75CKXXUJES3KKEg7wolFXpCb4iaebNSQQjRnc2bN1NCQd4JGlKqB1Sp0FzxSoVYMU03j3JeQnRh9uzZAIBhw4ZRQkH0ipIKYhSUOmrSNN2ElFtycjIcHBxgYWEBHo+HOXPmGDokYgbooyAxCqqaP3h8akIiRBuJiYlo164d+vbtS0NGyTtFlQo9oFVKNVe8UlGUVFC1ghBtJCYmwtfXFwkJCQCAtLQ0VKlSxcBREXNBlQo9oD4VmpNKiyUVQgaAR4kZIRoqnlAoOmVSQkHeJUoqiFEoXqEt6lNBiRkhmlCVUFCnTPKuUVJBjEKJ0R9UqSCkzCihIMaCkgo9oOYPzSlWKAWoTwUhmnr8+DGePXtGCQUxOOqoqQfUUVNzJTpqSun+EVJWrVu3xr///otq1apRQkEMipIKYhRKTNMtpcSMkNIkJSXh5cuXaNy4MYCixIIQQ6PmD2IUis9TUdRRkxIKQtRRrOXh6+uLq1evGjocQjiUVOgB9anQnFLzx3/1M6pUEFJS8cXB7O3tUblyZUOHRAiHkgo9oTdEzSiN/hDLDRgJIcaLVhslxo6SCmIUlKbppkoFISVQQkFMASUVOkZNH9pRXlCMKhWEFPf48WNKKIhJoNEfekCJheaURn9QpYIQJfb29qhWrRoAUEJBjBolFcQovDn6o4AmvyKEY2Njg7179yI9PR1Vq1Y1dDiEqEXNH8QolJinAjzwaFgpMWNJSUlYtWoV972NjQ0lFMToUaVCxxRNH1S61wxN003Ia8U7ZQLAhAkTDBwRIWVDlQo9oD4VmsvPV7WgmOHiIcRQ3hzl0atXL0OHREiZUVJBjIJU+mbzByHmh4aNElNHSYWOUZVCO4qOmgIBwOMxmqWbmB1KKEhFQEmFHtAqpZpTzFNRtO5HEbqHxFzk5OTA19eXEgpi8iipIEbhdVIBULGHmBtra2tMmTIFtWvXpoSCmDRKKohRkEqL/i3en4IqFcScjB8/HlevXqWEgpg0Sip0jPpUaEcx+kPR/EHpBKnokpKSEBgYiBcvXnDbrK2tDRgRIeVXrnkq8vLyYGlpqatYiBlTzFMhEgEMNNcHqdjenIdi165dBo6IEN3QuFIhl8vx5ZdfomrVqpBIJNwfxRdffIHIyEidB2iq6A2x7Bh7PaNm8Y6ahFREb47yWLlypaFDIkRnNE4qvvrqK0RFRWHJkiUQi8Xc9vfffx8bNmzQaXDEPMhkgPy/hUlFIlbUhMTjgWa/IhUNDRslFZ3GScXmzZvx448/YvDgwRAIBNx2b29v3L59W6fBmSLqU6G54ut+FMtTCalQKKEg5kDjpOLx48eoU6dOie1yuRyFxRdwMGOUWGim+AqlitEfPPCoCYlUKEOHDqWEglR4GicVDRs2xIkTJ0psj46ORtOmTXUSVEVAb4hlR5UKYg42bNiAjh07UkJBKjSNR3/MmzcPw4cPx+PHjyGXy/Hbb78hLi4Omzdvxp49e/QRI6ng8vNf//91nwrDxUOIrkilUgiFRS+zderUwdGjRw0bECF6pnGlomfPnvjrr79w8OBB2NjYYN68ebh16xb++usvdOnSRR8xmhRq+tBc8cXEaJpuUlEkJiaicePG+Pvvvw0dCiHvjFbzVLRv3x4HDhzQdSwVBiUWmlFM0Q0opumm+0dMW2JiIreWx/Tp0+Hv789VLAipyDSuVHh6eirNAKeQnp4OT09PnQRFzIuqjpoAVSqIaSqeUHh6euKff/6hhIKYDY2TigcPHkAmk5XYnp+fj8ePH+skKGJelCsVVKUgpuvNhII6ZRJzU+b0+c8//+T+/88//8DOzo77XiaT4dChQ/Dw8NBpcKZIUbqnT9llV7xPhUhU7B5Sb01iQiihIESDpKJXr14Ait4shw8frvSYSCSCh4cHli9frtPgTBX1CdBM8dEfVKkgpmrt2rWUUBCzV+akQv7fPMq1atXCuXPn4OTkpLegiHlRnqeiaEgpDzwaVkpMytdffw2gaAlzSiiIudK499D9+/f1EUeFQVUKzRWfiFUkMlwchGjq2bNncHR0hEAggEAgwLfffmvokAgxKI07agJAdnY29u7di4iICHz//fdKX5pas2YNPDw8YGlpCR8fH5w9e7bU/dPT0zF+/HhUqVIFFhYWqFu3Lvbu3avNZegNY4z6VGigeEdNbppuHvVLIcYtKSkJrVu3RnBwsMrO64SYI40rFZcuXUKPHj2Qk5OD7OxsODg4IDU1FdbW1nBxccHEiRPLfK4dO3Zg6tSpiIiIgI+PD1auXAl/f3/ExcXBxcWlxP4FBQXo0qULXFxcEB0djapVq+Lhw4ewt7fX9DKIEaFpuompKb44GAC8ePFC5WsWIeZG46RiypQpCAgIQEREBOzs7HDmzBmIRCIMGTIEkyZN0uhcK1aswKeffooRI0YAACIiIvD3339j48aNmDlzZon9N27ciLS0NJw6dQqi/+rkxjji5P59EQ4erITcXK0KQWYnKen1r6GiTwUte06MlarVRimhIKSIxknF5cuX8cMPP4DP50MgECA/Px+enp5YsmQJhg8fjj59+pTpPAUFBbhw4QJmzZrFbePz+fDz88Pp06dVHvPnn3+idevWGD9+PHbv3g1nZ2cMGjQIn3/+udIy7MXl5+cjv9jwgszMTA2utuxkcjleFUghyy1ExI+Vce+uJainoebkfBlyCuUokMqRlS+FNI9Wvi2vnHwqzesKLV9OSOk0TipEIhH4/KJP4C4uLkhMTESDBg1gZ2eHpKSkMp8nNTUVMpkMrq6uSttdXV1x+/ZtlcckJCTg8OHDGDx4MPbu3Yt79+5h3LhxKCwsRFhYmMpjvvnmGyxYsKDMcWkjVyrD86wCXHuUAYG1De4/tkVOoZxSCg05VylEgd1L3H6aC4tsKfIT08F/JTd0WBWGkE+/keVBCQUhb6dxUtG0aVOcO3cO7733Hjp27Ih58+YhNTUVW7Zswfvvv6+PGDlyuRwuLi748ccfIRAI0KxZMzx+/BhLly5Vm1TMmjULU6dO5b7PzMzU+QuBVF7UufA9FwkcHO1hI+RBJuLDwVGOxUvTdPpcFVllBzn4fBtkPslGbpII9WrYw9LZ3tBhVQhCPg/WYpoqujzi4uLw6NEjSigIKYXGrzKLFi3Cq1evABSNyx42bBg+++wzvPfee4iMjCzzeZycnCAQCPD06VOl7U+fPoWbm5vKY6pUqQKRSKTU1NGgQQOkpKSgoKAAYhW9/CwsLGBhYVHmuMrDUixAJUshwOQQ8HmwsgBqVqVPh2VX9HOViviQCQWQWAhhbUljTIlx8PPzw99//4169epRQkGIGhonFc2bN+f+7+Ligv3792v1xGKxGM2aNcOhQ4e42TrlcjkOHTqEkJAQlce0bdsWv/zyC+RyOdcEc+fOHVSpUkVlQmEIjDHIZEWJBK0hpB2a64MYi6SkJOTn56NOnToAihILQoh6OhuecPHiRXz88ccaHTN16lSsX78eP/30E27duoXPPvsM2dnZ3GiQYcOGKXXk/Oyzz5CWloZJkybhzp07+Pvvv7Fo0SKMHz9eV5ehE4oh63wa/EGIyVL0oejUqRPu3btn6HAIMQkafZb+559/cODAAYjFYowaNQqenp64ffs2Zs6cib/++gv+/v4aPXlQUBCeP3+OefPmISUlBU2aNMH+/fu5zpuJiYlcRQIAqlevjn/++QdTpkxB48aNUbVqVUyaNAmff/65Rs+rb4qkQiikT9xaYQCPOhUSA3qzU+a7akIlxNSVOamIjIzEp59+CgcHB7x8+RIbNmzAihUrMGHCBAQFBeH69eto0KCBxgGEhISobe44evRoiW2tW7fGmTNnNH6ed0km44HHA9SMciWEGDEa5UGI9spcoP/uu++wePFipKam4tdff0VqairWrl2La9euISIiQquEoiKSyxn+W3uNkgpCTAwlFISUT5mTivj4ePTr1w8A0KdPHwiFQixduhTVqlXTW3CmqPgSAAIBNX9oi0ezfJB37NGjR5RQEFJOZU4qcnNzYW1tDaBooScLCwtUqVJFb4GZKuWkwnBxmDIGRrN0k3fO2toadnZ2lFAQUg4addTcsGEDJBIJAEAqlSIqKgpOTk5K+2iyoFhFREkFIabJwcEBBw8eRE5ODlVgCdFSmZOKGjVqYP369dz3bm5u2LJli9I+PB7P7JOKwsLXTR7U/KEdWlCMvCtJSUk4dOgQgoODARQlFg4ODoYNihATVuak4sGDB3oMo+KQSl//nyoVhBivN5cvVyQWhBDt0fRMOla8+YNm1NQenyoVRI/eHOXRuXNnQ4dESIVASYWO0egPHaBpuoke0bBRQvSHkgodK978QdN0a4nHA2hIKdEDSigI0S9629Mxav7QAapUED3IzMykhIIQPaOkQseKJxV8Pr05aoXHo0IF0TlbW1sMHz6cEgpC9EirpCI+Ph5z587FwIED8ezZMwDAvn37cOPGDZ0GZ4po9IcOUKWC6Mm8efNw6dIlSigI0RONk4pjx46hUaNGiI2NxW+//YasrCwAwJUrVxAWFqbzAE1N8aSCmj+0RCM/iI4kJiZi2LBh3OsUUFSxIIToh8ZJxcyZM/HVV19xS6ArfPjhh0a/eui7QKM/dINHiQUpp8TERPj6+mLLli0YN26cocMhxCxonFRcu3YNvXv3LrHdxcUFqampOgnKlFHzByGGp0goFJ0yv/76a0OHRIhZ0DipsLe3R3Jycontly5dQtWqVXUSlClTHv1BlQpC3rU3EwrqlEnIu6NxUjFgwAB8/vnnSElJAY/Hg1wux8mTJzFt2jQMGzZMHzGaFOXRH4aLgxBzRAkFIYal8dveokWLUL9+fVSvXh1ZWVlo2LAhOnTogDZt2mDu3Ln6iNGkUPOHbvBoTCnREGMM/fr1o4SCEAPSeHyCWCzG+vXr8cUXX+D69evIyspC06ZN8d577+kjPpNDHTV1gIaUEi3weDz8+OOPGD16NKKjoymhIMQANE4qYmJi0K5dO9SoUQM1atTQR0wmjSoVOsDj0ahSUmZyuRz8/9oavb29cebMGRo9RIiBaNz88eGHH6JWrVqYPXs2bt68qY+YTBpN060DVKkgZZSUlIQPPvgAMTEx3DZKKAgxHI2TiidPniA0NBTHjh3D+++/jyZNmmDp0qV49OiRPuIzOcoLitGbo1Z4PJoAi7yVYnGwK1euICQkBHK53NAhEWL2NE4qnJycEBISgpMnTyI+Ph79+vXDTz/9BA8PD3z44Yf6iNGkUKVCB6hSQd7izdVG//rrL64JhBBiOOX6K6xVqxZmzpyJb7/9Fo0aNcKxY8d0FZfJUu6oabg4TBpVKUgpaPlyQoyX1knFyZMnMW7cOFSpUgWDBg3C+++/j7///luXsZkkav4gRH8ooSDEuGlcoJ81axa2b9+OJ0+eoEuXLvjuu+/Qs2dPWFtb6yM+k0PNH+XDGKOOdkStxYsXU0JBiBHT+G3v+PHjmD59Ovr37w8nJyd9xGTSqPlDNyitIKqsWLECAPD5559TQkGIEdI4qTh58qQ+4qgwCgtf/58mv9Ico06a5A0vXryAg4MDeDwexGIxVq9ebeiQCCFqlCmp+PPPP9G9e3eIRCL8+eefpe77ySef6CQwU0XNH7pBTSAEeN2H4uOPP8bKlSvp94IQI1emt71evXohJSUFLi4u6NWrl9r9eDweZMXfVc2QXP76RY+aPwjRXvFOmXv27MG8efPg6Oho6LAIIaUoU1JRfFIZmmCmdIWFr8v3NPpDc4wx8MADo14VZk3VKA9KKAgxfhoPKd28eTPy8/NLbC8oKMDmzZt1EpQpo46ahJQPDRslxHRpnFSMGDECGRkZJba/evUKI0aM0ElQpky5TwVVKjTFGCsa+kGFCrNECQUhpk3jpELdPAKPHj2CnZ2dToIyZcWTCpo1mBDNnD9/Hg8ePKCEghATVebxCU2bNgWPxwOPx0Pnzp0hLDa0QSaT4f79++jWrZtegjQlxYeU0ugP7VAPf/PVu3dvREdHo3nz5pRQEGKCyvy2pxj1cfnyZfj7+0MikXCPicVieHh4IDAwUOcBmpqiSkXRmyLNU6E9SivMR1JSEvh8PqpWrQqgKLEghJimMicVYWFhAAAPDw8EBQXB0tJSb0GZMuqoWT40Tbd5UfSh4PP5OHr0KJdYEEJMk8at/sOHD6eEohTFFxSjpKIcKLGo8Ip3ypTL5TRcnZAKoEyVCgcHB9y5cwdOTk6oXLlyqZ8k09LSdBacKSr+ukjNH5qjabrNA43yIKRiKlNSER4ejkqVKnH/p/K0ejIZzaipCzzqVVFhUUJBSMVVpqRi+PDh3P+Dg4P1FUuFIJW+/qRNSQUhyiihIKRi07hPxcWLF3Ht2jXu+927d6NXr16YPXs2CgoKdBqcKVLuU0GlfE1xHTWpUFEhCQQCCAQCSigIqaA0TirGjBmDO3fuAAASEhIQFBQEa2tr7Ny5EzNmzNB5gKamePMHzVNBiDJ3d3ccPXqUEgpCKiiNk4o7d+6gSZMmAICdO3eiY8eO+OWXXxAVFYVdu3bpOj6TQ6M/yud1pYJKFRVFYmIifvvtN+57d3d3SigIqaC0mqZbMfTr4MGD6NGjBwCgevXqSE1N1W10Jkgme/1+SKuUEnOXmJgIX19f9OvXTymxIIRUTBonFc2bN8dXX32FLVu24NixY/joo48AAPfv34erq6vOAzQ1yguKGS4OU0ajiyoGRUKRkJAADw8PtGjRwtAhEUL0TOOkYuXKlbh48SJCQkIwZ84c1KlTBwAQHR2NNm3a6DxAU0MLiukGpRWmrXhCQZ0yCTEfGn+Wbty4sdLoD4WlS5dCQJ0IuI6afD4lFdqgabpNHyUUhJgvrQv0Fy5cwK1btwAADRs2xAcffKCzoEyZoqMm5VfEHL148YISCkLMmMZJxbNnzxAUFIRjx47B3t4eAJCeng5fX19s374dzs7Ouo7RpCiaP2iOCu0wxsCnEo/JcnBwQEBAAP766y9KKAgxQxq/ek+YMAFZWVm4ceMG0tLSkJaWhuvXryMzMxMTJ07UR4wm5XVSYdg4CDEEHo+H8PBwnDt3jhIKQsyQxknF/v37sXbtWjRo0IDb1rBhQ6xZswb79u3TaXCmiJKK8qN1P0xLUlISxo8fj/z8fABFiYWDg4OBoyKEGILGzR9yuRwikajEdpFIREsX43VHTWr+0E5RR01DR0HKqvhaHgCwZs0aA0dECDEkjSsVH374ISZNmoQnT55w2x4/fowpU6agc+fOOg3OFFFHTWIu3lwcbObMmYYOiRBiYBonFatXr0ZmZiY8PDxQu3Zt1K5dG7Vq1UJmZiZWrVqljxhNiqJYQ0mFdmhIqWmg1UYJIapo3PxRvXp1XLx4EYcOHeKGlDZo0AB+fn46D84USaVFb4hCITV/aIuSCuNGCQUhRB2NkoodO3bgzz//REFBATp37owJEyboKy6TpWj+oFGR2qOkwnjJ5XJ88sknlFAQQlQq81vfunXrMHDgQJw/fx53797F+PHjMX36dH3GZpIUzR9UqSgHSiqMFp/Px+rVq9GkSRNKKAghJZQ5qVi9ejXCwsIQFxeHy5cv46effsLatWv1GZtJKhr9waM+FVqiPhXGibHXSXLbtm1x4cIFSigIISWUOalISEjA8OHDue8HDRoEqVSK5ORkvQRmiuSMcfNUUPMHqSiSkpLQqlUrXLlyhdtGs54SQlQp8ytDfn4+bGxsXh/I50MsFiM3N1cvgZkixoq+ABr9oS3GGPg8esMyFopOmWfPnsXo0aOVKhaEEPImjTpqfvHFF7C2tua+LygowNdffw07Oztu24oVK3QXnYlRdNIEqE8FMX1vjvKIjo6mpilCSKnKnFR06NABcXFxStvatGnDzaQHUK99ufz19VOlohzM+9dIp2QyGQoLCzU+Ljk5GcOGDYNMJkO7du2wefNmODs7Iy8vTw9REkIMTSwW66RZs8xJxdGjR8v9ZBVd8ddumqZbO4wx8PiUVZQXYwwpKSlIT0/X+FipVIqnT59izpw5EAqFcHV1RV5eHu7fv6/7QAkhRoHP56NWrVoQi8XlOo/Gk18R9eSy1/+nSoV2eDye2Ve8dEGRULi4uMDa2lqje/ro0SPY29tDLBbDw8Oj3C8yhBDjJpfL8eTJEyQnJ6NGjRrleg2mpEKHZNT8UW7UEbD8ZDIZl1A4OjpqfHytWrWQmJiIqlWrUkJBiJlwdnbGkydPIJVKVS4aWlbUzV6HZMU6alLzh3aoSlF+ij4UxTtVv420WC9jgUCgkzIoIcR0KP7eZTLZW/YsHSUVOqT4WfB4VKkoD0osdKOs97GgoAC3bt1SWnmYEGJedPW6S0mFDsmkPABFFQpKKogpKCgoQFxcHPLz8/HixQuligUhhGhKq6TixIkTGDJkCFq3bo3Hjx8DALZs2YKYmBidBmdqpMWqRjRPhfaoUvFuFE8oLCwsUK9ePQiF1M2KEKI9jZOKXbt2wd/fH1ZWVrh06RLy8/MBABkZGVi0aJHOAzQlRet+FKFKBTFmqhIK6kOh7Pbt22jVqhUsLS3RpEmTMh0THByMXr16lbpPp06dMHny5HLHp8rQoUPN/nVYl/bv348mTZpArlgpkryVxknFV199hYiICKxfv16ph2jbtm1x8eJFnQZnamSy19UJSiq0R5UK/TLmhCI4OJgbViwSiVCrVi3MmDFD5aRbe/bsQceOHVGpUiVYW1ujRYsWiIqKUnneXbt2oVOnTrCzs4NEIkHjxo2xcOFCpKWlqY0lLCwMNjY2iIuLw6FDh3R1iWVy9OhRfPDBB7CwsECdOnXUXldxV65cwd69ezFx4sQSj23btg0CgQDjx48v8VhUVBTs7e1VnpPH4+GPP/5Q2qbNvSyvtLQ0DB48GLa2trC3t8fIkSORlZWldv8HDx5wv0dvfu3cuVNp36ioKDRu3BiWlpZwcXFRukfdunWDSCTC1q1b9XZtFY3GSUVcXBw6dOhQYrudnZ1WE+1UJEV9KorQ6A/t0JBS/cvMzDTKhEKhW7duSE5ORkJCAsLDw/HDDz8gLCxMaZ9Vq1ahZ8+eaNu2LWJjY3H16lUMGDAAY8eOxbRp05T2nTNnDoKCgtCiRQvs27cP169fx/Lly3HlyhVs2bJFbRzx8fFo164datasqdXQXG3dv38fH330EXx9fXH58mVMnjwZo0aNwj///FPqcatWrUK/fv0gkUhKPBYZGYkZM2Zg27Zt5ZoVVdt7WV6DBw/GjRs3cODAAezZswfHjx/H6NGj1e5fvXp1JCcnK30tWLAAEokE3bt35/ZbsWIF5syZg5kzZ+LGjRs4ePAg/P39lc4VHByM77//Xm/XVtFonFS4ubnh3r17JbbHxMTA09NTqyDWrFkDDw8PWFpawsfHB2fPni3Tcdu3bwePx3trufFdKT5PBS3iqB2a/Er/nJyc4OHhYZQJBQBYWFjAzc0N1atXR69eveDn54cDBw5wjyclJSE0NBSTJ0/GokWL0LBhQ9SpUwehoaFYunQpli9fjtjYWADA2bNnsWjRIixfvhxLly5FmzZt4OHhgS5dumDXrl1KKy8Xx+PxcOHCBSxcuBA8Hg/z588HAFy7dg0ffvghrKys4OjoiNGjR5f6iTk7OxvDhg2DRCJBlSpVsHz58rdef0REBGrVqoXly5ejQYMGCAkJQd++fREeHq72GJlMhujoaAQEBJR47P79+zh16hRmzpyJunXr4rfffntrDKpoey/L69atW9i/fz82bNgAHx8ftGvXDqtWrcL27dvVjlgSCARwc3NT+vr999/Rv39/Lul6+fIl5s6di82bN2PQoEGoXbs2GjdujE8++UTpXAEBATh//jzi4+P1cn0VjcZvfZ9++ikmTZqE2NhY8Hg8PHnyBFu3bsW0adPw2WefaRzAjh07MHXqVISFheHixYvw9vaGv78/nj17VupxDx48wLRp09C+fXuNn1NfZEoLihkuDlNGlQr9KCgoQH5BITLzir7EEjvkyXnc9/r8ksm1/5lev34dp06dUkp+oqOjUVhYWKIiAQBjxoyBRCLBtm3bAABbt26FRCLBuHHjVJ5fXdk/OTkZXl5eCA0NRXJyMqZNm4bs7Gz4+/ujcuXKOHfuHHbu3ImDBw8iJCREbfzTp0/HsWPHsHv3bvz77784evToW5uJT58+DT8/P6Vt/v7+OH36tNpjrl69ioyMDDRv3rzEY5s2bcJHH30EOzs7DBkyBJGRkaU+vzra3ksA8PLygkQiUftVvHrwptOnT8Pe3l7p2vz8/MDn87nk8W0uXLiAy5cvY+TIkdy2AwcOQC6X4/Hjx2jQoAGqVauG/v37IykpSenYGjVqwNXVFSdOnCjTc5k7jd/6Zs6cCblcjs6dOyMnJwcdOnSAhYUFpk2bhgkTJmgcwIoVK/Dpp59ixIgRAIqy9L///hsbN27EzJkzVR4jk8kwePBgLFiwACdOnDCaZpfiHTX5fHpz1AZVKnQvPz8fd+7cQZ6MhzShAwT8d9vhp6WnA2wtyz5D3549eyCRSCCVSpGfnw8+n4/Vq1dzj9+5cwd2dnaoUqVKiWPFYjE8PT1x584dAMDdu3fh6emp8QyBbm5uEAqFkEgkcHNzAwCsX78eeXl52Lx5M2xsbAAAq1evRkBAABYvXgxXV1elc2RlZSEyMhI///wzOnfuDAD46aefUK1atVKfOyUlpcS5XF1dkZmZidzcXFhZWZU45uHDhxAIBHBxcVHaLpfLERUVhVWrVgEABgwYgNDQUNy/fx+1atXS4I5ofy8BYO/evaUubKfqmhRSUlJKXJdQKISDgwNSUlLK9PyRkZFo0KAB2rRpw21LSEiAXC7HokWL8N1338HOzg5z585Fly5dcPXqVaVE1t3dHQ8fPizTc5k7jZMKHo+HOXPmYPr06bh37x6ysrLQsGFDle14b1NQUIALFy5g1qxZ3DY+nw8/P79Ss/KFCxfCxcUFI0eOfGv2mJ+fz41QAYrak/WFKhXlR5UK3VIkFPn5+RCJxGheww6id9zkYSPW7I/B19cX69atQ3Z2NsLDwyEUChEYGKjVc+vy9+nWrVvw9vbmEgqgqIO6XC5HXFxciUQgPj4eBQUF8PHx4bY5ODigXr16OotJITc3FxYWFiUS8gMHDiA7Oxs9evQAUNT01aVLF2zcuBFffvmlRs9RnntZs2ZNrY8tr9zcXPzyyy/44osvlLbL5XIUFhbi+++/R9euXQEUdWh1c3PDkSNHlPpWWFlZIScn553Gbaq0fusTi8Vo2LBhuZ48NTUVMplMZVZ++/ZtlcfExMQgMjISly9fLtNzfPPNN1iwYEG54iyr4n0qaJ4K7VCVQncKCgrw8OFDo+6UqYqNjQ3q1KkDANi4cSO8vb0RGRnJla7r1q2LjIwMPHnyBO7u7krHFhQUID4+Hr6+vty+MTExKCwsLNd6Bu+Sm5sbnj59qrTt6dOnsLW1VfuJ3snJCTk5OSgoKFD6GUdGRiItLU3pOLlcjqtXr2LBggXg8/mwtbVFdnY25HK50tLXigqwnZ0dgPLdSy8vr1I/6bdv3x779u1T+Zibm1uJ5nCpVIq0tDSuilSa6Oho5OTkYNiwYUrbFZWu4u9jzs7OcHJyQmJiotK+aWlpcHZ2futzES36VPj6+uLDDz9U+6VPr169wtChQ7F+/Xo4OTmV6ZhZs2YhIyOD+3qzvUyXilcqqKOm9nigxKK8pFIpHjx4YHIJxZv4fD5mz56NuXPnIjc3FwAQGBgIkUikstNjREQEsrOzMXDgQADAoEGDkJWVhbVr16o8vyZNpw0aNMCVK1eQnZ3NbTt58iT4fL7K6kPt2rUhEomU2v1fvnzJNc2o07p16xJDWA8cOIDWrVurPUYxj8bNmze5bS9evMDu3buxfft2XL58mfu6dOkSXr58iX///RcAUK9ePUil0hIf1BR9P+rWrQugfPdy7969SjG8+bVhwwa1x7Zu3Rrp6em4cOECt+3w4cOQy+VKVSB1IiMj8cknn5RICtq2bQugaESjQlpaGlJTU5UqK3l5eYiPj0fTpk3f+lxEi0rFm5PAFBYW4vLly7h+/brGvX+dnJwgEAhUZuWqMtD4+Hg8ePBAqYezYlISoVCIuLg41K5dW+kYCwsLWFhYaBSXtmS09DkxAk+ePMHTp09hb29v0gmFQr9+/TB9+nSsWbMG06ZNQ40aNbBkyRKEhobC0tISQ4cOhUgkwu7duzF79myEhoZybzY+Pj6YMWMGQkND8fjxY/Tu3Rvu7u64d+8eIiIi0K5dO0yaNKlMcQwePBhhYWEYPnw45s+fj+fPn2PChAkYOnRoiWorAEgkEowcORLTp0+Ho6MjXFxcMGfOHKVqgCpjx47F6tWrMWPGDPzvf//D4cOH8euvv+Lvv/9We4yzszM++OADxMTEcK/RW7ZsgaOjI/r371+iAtijRw9ERkaiW7du8PLyQteuXfG///0Py5cvh6enJ+Li4jB58mQEBQWhatWq5b6X5Wn+aNCgAbp164ZPP/0UERERKCwsREhICAYMGMBVqh4/fozOnTtj8+bNaNmyJXfsvXv3cPz4cezdu7fEeevWrYuePXti0qRJ+PHHH2Fra4tZs2ahfv36XKULAM6cOQMLC4tSkzrymsZJhbphTfPnzy91aJUqYrEYzZo1w6FDh7hhoXK5HIcOHVLZo7p+/fq4du2a0ra5c+fi1atX+O6771C9enWNnl/XinfUpOYP7VELSPlIpVIwxiAWi00+oQCKPjCEhIRgyZIl+Oyzz2BjY4PJkyfD09MTy5Ytw3fffQeZTAYvLy+sW7eO6/StsHjxYjRr1gxr1qxBREQE5HI5ateujb59+2r0Qcja2hr//PMPJk2ahBYtWsDa2hqBgYFYsWKF2mOWLl2KrKwsBAQEoFKlSggNDUVGRkapz1OrVi38/fffmDJlCr777jtUq1YNGzZsKDF/wptGjRqFzZs3c6+dGzduRO/evVU2KQYGBmLo0KFITU2Fk5MTduzYgbCwMIwZMwZPnjxBtWrV0Lt37xL9EHR1LzW1detWhISEoHPnzuDz+QgMDFSaO6KwsBBxcXEl+j1s3LgR1apV4/pMvGnz5s2YMmUKPvroI/D5fHTs2BH79+9Xat7Ztm0bBg8erNGqv+aMx3TUk+nevXto2bKlxrOq7dixA8OHD8cPP/yAli1bYuXKlfj1119x+/ZtuLq6YtiwYahatSq++eYblccHBwcjPT29xKxv6mRmZsLOzg4ZGRmwtbXVKFZ1HiTexv6/f4BIPAkrV7qBx+Nh/PhsBARoP8mMOWKMISsrC86WlZBy4jY8ujaFtUtlQ4dlcvLy8nDnzh14eHjo7HecGL/c3FzUq1cPO3bsoE/VOpKamop69erh/PnzGo+WMTV5eXncqCBLS0ulxzR539TZGIXTp0+XCKQsgoKC8Pz5c8ybNw8pKSlo0qQJ9u/fz5UTExMT31ouNBavF3jkUfNHOVBnTc0lJSXh9u3b6NKlCwBAJBKZfIWCaMbKygqbN29GamqqoUOpMB48eIC1a9dW+IRClzROKvr06aP0PWMMycnJOH/+fIlSWVmFhISonUDm6NGjpR5bljnx3xWplAfGisr31PyhORpOqp2kpCR06tQJjx49wp49e4xqQjjybnXq1MnQIVQozZs3VzmhGFFP46RCMbxIQdHzeeHChWrbrcxF8YXsqFKhPapUlJ0ioUhISICnpyfq169v6JAIIWZMo6RCJpNhxIgRaNSoESpXprbuN0mVFhQzYCDELLyZUBw9ehTVq1cv14JRhBBSHhp1VhAIBOjatavRTIttbIoPKaVpujXHGKNpustIXUJBCCGGpHEPyPfffx8JCQn6iMXkKQ8pNWAgpEJ79uwZJRSEEKOkcVLx1VdfYdq0adizZw+Sk5ORmZmp9GXOaPKr8qMqxds5OjqiXbt2lFAQQoxOmT9PL1y4EKGhodzCNJ988onSG4CidC0r/s5qZmiV0vLhRn9QYlEqgUCAjRs34sWLFyVWbySEEEMqc1KxYMECjB07FkeOHNFnPCZNSquUlhtVKlRLSkrC6tWrsWjRIggEApXLXBNCiKGV+a1P8SmyY8eOegvG1Mnl1KdCFyixUFa8UyZQNFUy0b/bt28jODgYly9fRv369cu0MnJZZvjt1KkTmjRpgpUrV+osVoUvvvgCT58+xY8//qjzc5uj1NRUNGzYEBcvXkS1atUMHY5J0KhPBb3Yl07R8sPjUfOHNhRNaOS1N0d5qJskrqIIDg7mRgCJRCLUqlULM2bMUDlMds+ePejYsSMqVaoEa2trtGjRQu1keLt27UKnTp1gZ2cHiUSCxo0bY+HChaUuKxAWFgYbGxvExcWVWDVUn5KTkzFo0CDUrVsXfD4fkydPLtNxKSkp+O677zBnzpwSj50+fRoCgQAfffRRiceOHj0KHo+nclSfh4dHieTnyJEj6NGjBxwdHWFtbY2GDRtyi4zpS15eHsaPHw9HR0dIJBIEBgaWWIjyTU+fPkVwcDDc3d1hbW2Nbt264e7duyX2O336ND788EPY2NjA1tYWHTp04FbEdXJywrBhwxAWFqaX66qINEoq6tatCwcHh1K/zBk1f+gGJRZFzHXYaLdu3ZCcnIyEhASEh4fjhx9+KPGivmrVKvTs2RNt27ZFbGwsrl69igEDBmDs2LGYNm2a0r5z5sxBUFAQWrRogX379uH69etYvnw5rly5gi1btqiNIz4+Hu3atUPNmjXh6Oiol2tVJT8/H87Ozpg7dy68vb3LfNyGDRvQpk0blSuCRkZGYsKECTh+/DiePHmidWw//PAD/Pz84Obmhl27duHmzZuIiIhARkaGyqXodWXKlCn466+/sHPnThw7dgxPnjwpMbtzcYwx9OrVCwkJCdi9ezcuXbqEmjVrws/PT2np+tOnT6Nbt27o2rUrzp49i3PnziEkJERpaYgRI0Zg69atGq9rZa40eutbsGBBiRk1yWtFzR9FFQoa/aE5mqb7NXNNKADAwsICbm5uAIDq1avDz88PBw4c4Jp9kpKSEBoaismTJ2PRokXccaGhoRCLxZg4cSL69esHHx8fnD17FosWLcLKlSuVluX28PBAly5d1M65o0hsL1y4gIULFyIsLAzz58/HtWvXMGnSJJw+fVpplVKJRKLyPNnZ2fjss8/w22+/oVKlSiUSHlU8PDzw3XffAShaZbOstm/fjs8++6zE9qysLOzYsQPnz59HSkoKoqKiMHv27DKfV+HRo0eYOHEiJk6cqLRatYeHBzp06KC3+YsyMjIQGRmJX375BR9++CEAYNOmTWjQoAHOnDmDVq1alTjm7t27OHPmDK5fvw4vLy8AwLp16+Dm5oZt27Zh1KhRAIqSlYkTJ2LmzJncsfXq1VM6l5eXF9zd3fH7779j5MiRernGikSjpGLAgAHUOawUNPpDN8y9UiGVStGtWzfdJxRyGVCQVf7zaEosAfjaZdnXr1/HqVOnlD59R0dHo7CwUOUb9JgxYzB79mxs27YNPj4+2Lp1KyQSCcaNG6fy/Pb29iq3Jycnw8/PD926dcO0adMgkUiQnZ0Nf39/tG7dGufOncOzZ88watQohISEqG12mT59Oo4dO4bdu3fDxcUFs2fPxsWLF9GkSRNNb0Wp0tLScPPmTZXrVPz666+oX78+6tWrhyFDhmDy5MmYNWuWxn9nO3fuREFBAWbMmKHycXX3EgC6d++OEydOqH28Zs2auHHjhsrHLly4gMLCQvj5+XHb6tevjxo1auD06dMqk4r8/HwAUFrkks/nw8LCAjExMRg1ahSePXuG2NhYDB48GG3atEF8fDzq16+Pr7/+Gu3atVM6X8uWLXHixAlKKsqgzEmFub/Ql0Xx0bTU/EG0JRQKsWzZMkybNg379+/XXYWiIAt4eEo359JEzTaAZdkrnHv27IFEIoFUKkV+fj74fD5Wr17NPX7nzh3Y2dmhSpUqJY4Vi8Xw9PTEnTt3ABR9YvX09IRIJNIoZDc3NwiFQkgkEq5qsn79euTl5WHz5s2wsbEBAKxevRoBAQFYvHgxt7KyQlZWFiIjI/Hzzz+jc+fOAICffvpJLx3+EhMTwRiDu7t7icciIyMxZMgQAEVNSxkZGTh27JjGi4/dvXsXtra2Ku/722zYsIHrp6BKaT+flJQUiMXiEkmLq6srUlJSVB6jSDpmzZqFH374ATY2NggPD8ejR4+QnJwMAFzH5/nz52PZsmVo0qQJNm/ejM6dO+P69et47733uPO5u7vj0qVLZb1cs6bx6A+iXvE+FdT8oTlumm6YZwJbvKNq9+7d0aVLFwh1mZ2KJUVv8O+aWHXTgDq+vr5Yt24dsrOzER4eDqFQiMDAQK2eWpevW7du3YK3tzeXUABA27ZtIZfLERcXVyKpiI+PR0FBAXx8fLhtDg4OJcrruqB4wy7+yRwA4uLicPbsWfz+++8AihLWoKAgREZGapxUlKcjddWqVbU6TlsikQi//fYbRo4cCQcHBwgEAvj5+aF79+7c74T8vxUgx4wZgxEjRgAAmjZtikOHDmHjxo345ptvuPNZWVkhJyfnnV6DqSpzR025XE5NH29RvPlDIKAkjJRdYmIiOnXqpNQ7XacJBVDUBGFp9+6/NGz6sLGxQZ06deDt7Y2NGzciNjYWkZGR3ON169ZFRkaGyg6HBQUFiI+PR926dbl9ExISUFhYWL57Z+ScnJwAAC9fvlTaHhkZCalUCnd3dwiFQgiFQqxbtw67du1CRkYGAMDW1hYAuO+LS09P5/rRKe674pO+Jrp37w6JRKL2S9HvQRU3NzcUFBSU6LPx9OlTroqkSrNmzXD58mWkp6cjOTkZ+/fvx4sXL+Dp6QkAXMWlYcOGSsc1aNAAiYmJStvS0tLg7OysySWbLY2n6SbqKScVBgzEhJljM1tiYiJ8fX1x/PhxjBo1iqqCxfD5fMyePRtz587lPo0HBgZCJBKpHG0QERGB7OxsDBw4EAAwaNAgZGVlYe3atSrPr0nnwgYNGuDKlStKowdOnjwJPp+vsvpQu3ZtiEQixMbGcttevnzJNc3oUu3atWFra4ubN29y26RSKTZv3ozly5fj8uXL3NeVK1fg7u6Obdu2AQDee+898Pl8XLhwQemcCQkJyMjI4BK0vn37QiwWY8mSJSpjKO1ebtiwQSmGN7/27t2r9thmzZpBJBIpDeuNi4tDYmIiWrdu/dZ7Y2dnB2dnZ9y9exfnz59Hz549ARR1MHV3d0dcXJzS/nfu3Ckxgub69eto2rTpW5+LaNhRk5Tuv2oaAKpUaIMrr5pRXqFIKBSdMn/++WezTKxK069fP0yfPh1r1qzBtGnTUKNGDSxZsgShoaGwtLTE0KFDIRKJsHv3bsyePRuhoaFck4OPjw9mzJjBzaPQu3dvuLu74969e4iIiEC7du2URoWUZvDgwQgLC8Pw4cMxf/58PH/+HBMmTMDQoUNLNH0AgEQiwciRIzF9+nQ4OjrCxcUFc+bMURquqI5ioq2srCw8f/4cly9fhlgsLvGpWoHP58PPzw8xMTHo1asXgKK+KS9fvsTIkSNLjNoLDAxEZGQkxo4di0qVKmHUqFEIDQ2FUChEo0aNkJSUhM8//xytWrVCmzZFTWbVq1dHeHg4QkJCkJmZiWHDhsHDwwOPHj3C5s2bIZFI1A4rLU/zh52dHUaOHImpU6fCwcEBtra2mDBhAlq3bq3USbN+/fr45ptv0Lt3bwBFHUudnZ1Ro0YNbtROr1690LVrVwBFH2CmT5+OsLAweHt7o0mTJvjpp59w+/ZtREdHc+fNycnBhQsXlEYaEfUoqdAhqZQqFeVlTm+obyYU5jRsVBNCoRAhISFYsmQJPvvsM9jY2GDy5Mnw9PTEsmXL8N1330Emk8HLywvr1q3j2scVFi9ejGbNmmHNmjWIiIiAXC5H7dq10bdvXwwfPrzMcVhbW+Off/7BpEmT0KJFC6UhpeosXboUWVlZCAgIQKVKlRAaGqqymeFNxT8VX7hwAb/88gtq1qyJBw8eqD1m1KhR+PTTT7FkyRLw+XxERkbCz89P5TQAgYGBWLJkCa5evYrGjRvju+++w7fffovPP/8cDx8+hJubG7p06YKvv/5a6W9y3LhxqFu3LpYtW4bevXsjNzcXHh4e+PjjjzF16tS3Xpe2wsPDwefzERgYiPz8fPj7+5eoPsXFxSnd2+TkZEydOhVPnz5FlSpVMGzYMHzxxRdKx0yePBl5eXmYMmUK0tLS4O3tjQMHDqB27drcPrt370aNGjXQvn17vV1fRcJjZlZrzczMhJ2dHTIyMri2xPJ6kHgb+//+ATEnZ+Hy5UoQCATYufMFJBKzurXllpeXBz6fDxdrOzz49xI8ujaFtUtlQ4elF/pMKPLy8nD//n3UqlWrRMc9UnExxuDj44MpU6ZwzT+k/Fq1aoWJEydi0KBBhg5Fr0p73dDkfZP6VOgQddQsH3Oapnvq1KlUoSA6xePx8OOPP0JafBgaKZfU1FT06dOHkjQNUPOHDlFHTVJWigWfwsPDKaEgOtOkSROdT6xlzpycnNRO9kVUo6RCh2jtj/Kp6JWKnJwcWFtbAyiar6B4ZzBCCKkIqPlDhxRLnxetUmrgYExURU0qEhMT0ahRI6WZIQkhpKKhtz4dUkzTTQmF9ipiUlG8U+bKlStpZj5CSIVFb386pOhTQf0ptFMRmz/eHOVx5MgRrgmEEEIqGkoqdEhRqRAKaeQHoXkoCCHmh5IKHVL0qaDmD+1VlEoFJRSEEHNEb386JP2v+YMqFdqpSM0ff/75JyUUhBCzQ0mFDsmkiqTCwIGYsIqSVISEhGDVqlWUUJiw27dvo1WrVrC0tCzz3A/BwcHc2hvqdOrUCZMnTy53fKoMHTqU1qjQof3796NJkybcMunk7Sip0CEa/VF+ppxUPH78GFlZWdz3ISEhlFBoKDg4GDweDzweDyKRCLVq1cKMGTOQl5dXYt89e/agY8eOqFSpEqytrdGiRQtERUWpPO+uXbvQqVMn2NnZQSKRoHHjxli4cCHS0tLUxhIWFgYbGxvExcUprZCpb7/99hu6dOkCZ2dn2NraonXr1vjnn3/eetyVK1ewd+9eTJw4scRj27Ztg0AgwPjx40s8FhUVBXt7e5Xn5PF4+OOPP5S2aXMvy+vrr79GmzZtYG1trTbWNzHGMG/ePFSpUgVWVlbw8/PD3bt3lfZJS0vD4MGDYWtrC3t7e4wcOVLpb7hbt24QiUTYunWrLi+nQqO3Px16PfqDmj+0YcrNH0lJSejQoQN69Oih9KJENNetWzckJycjISEB4eHh+OGHHxAWFqa0z6pVq9CzZ0+0bdsWsbGxuHr1KgYMGICxY8di2rRpSvvOmTMHQUFBaNGiBfbt24fr169j+fLluHLlCrZs2aI2jvj4eLRr1w41a9aEo6OjXq5VlePHj6NLly7Yu3cvLly4AF9fXwQEBODSpUulHrdq1Sr069cPEomkxGORkZGYMWMGtm3bpjJBKytt72V5FRQUoF+/fvjss8/KfMySJUvw/fffIyIiArGxsbCxsYG/v7/S9Q8ePBg3btzAgQMHsGfPHhw/fhyjR49WOk9wcDC+//57nV1LRUeFeh2SyWlIqTlKSkpCp06dkJCQAADIyMhQ+cJOysbCwgJubm4Aipbb9vPzw4EDB7B48WIARfc7NDQUkydPVir1h4aGQiwWY+LEiejXrx98fHxw9uxZLFq0CCtXrlRa4tzDwwNdunRBenq6yhgUye2FCxewcOFChIWFYf78+dwS2qdPn1ZapVTdzzs7OxufffYZfvvtN1SqVKlEwqPKypUrlb5ftGgRdu/ejb/++ktp9dLiZDIZoqOjVX6ivn//Pk6dOoVdu3bhyJEj+O2337RaHEvbe6kLCxYsAAC1lag3McawcuVKzJ07Fz179gQAbN68Ga6urvjjjz8wYMAA3Lp1C/v378e5c+fQvHlzAEWJWY8ePbBs2TK4u7sDAAICAhASEoL4+Hil1UuJalSp0CH5f80flFRohzEGvom1HRVPKBSdMqtWrWrosFSSyWV4VfDqnX/JFH8YWrh+/TpOnToFsVjMbYuOjkZhYaHKN+gxY8ZAIpFg27ZtAICtW7dCIpFg3LhxKs+vrpSenJwMLy8vhIaGIjk5GdOmTUN2djb8/f1RuXJlnDt3Djt37sTBgwcREhKiNv7p06fj2LFj2L17N/79918cPXoUFy9e1OAOAHK5HK9evYKDg4Pafa5evYqMjAzuzbG4TZs24aOPPoKdnR2GDBmCyMhIjZ5fQdt7CQBeXl6QSCRqv7p3765VTOrcv38fKSkp8PPz47bZ2dnBx8cHp0+fBgCcPn0a9vb2SvfMz88PfD4fsbGx3LYaNWrA1dUVJ06c0GmMFRVVKnSImj/Mi6qEwpj7UORIc3Dh6YV3/rzNXJuhkrhSmfffs2cPJBIJpFIp8vPzwefzlaY3v3PnDuzs7FClSpUSx4rFYnh6euLOnTsAgLt378LT0xMikUijmN3c3CAUCiGRSLiqyfr165GXl4fNmzfDxsYGALB69WoEBARg8eLFcHV1VTpHVlYWIiMj8fPPP6Nz584AgJ9++gnVqlXTKJZly5YhKysL/fv3V7vPw4cPIRAI4OLiorRdLpcjKioKq1atAgAMGDAAoaGh3BLXmtD2XgLA3r17UVhYqPZxKysrjc9ZmpSUFAAo8TNxdXXlHktJSSlxv4RCIRwcHLh9FNzd3fHw4UOdxlhRUVKhQzSjZvmZSp8KU0soAMBaaI1mrs0M8rya8PX1xbp165CdnY3w8HAIhUIEBgZq9dyM6S7Bv3XrFry9vbmEAgDatm0LuVyOuLi4Em9g8fHxKCgogI+PD7fNwcEB9erVK/Nz/vLLL1iwYAF2795d4g2wuNzcXFhYWJT4+zlw4ACys7PRo0cPAEWrbnbp0gUbN27El19+WeY4gPLdy5o1a2p9rDGwsrKi6fXLiJIKHZHLeZDLixYToyGl2jGljprp6enIyMgwmYQCAAR8gUYVA0OxsbFBnTp1AAAbN26Et7c3IiMjMXLkSABA3bp1kZGRgSdPnnDt3goFBQWIj4+Hr68vt29MTAwKCwu1+oRtSNu3b8eoUaOwc+dOpTK+Kk5OTsjJyUFBQYFSU1FkZCTS0tKUKgFyuRxXr17FggULwOfzYWtri+zsbMjlcqXmR0UfCTs7OwDlu5deXl6lftJv37499u3bp9E5S6OoLj19+lSpovX06VNueLCbmxuePXumdJxUKkVaWhp3vEJaWhqcnZ11Fl9FZloN2EaMsddvhtT8oR1TSSgAoFGjRjhy5IjJJBSmis/nY/bs2Zg7dy5yc3MBAIGBgRCJRFi+fHmJ/SMiIpCdnY2BAwcCAAYNGoSsrCysXbtW5fk16VzYoEEDXLlyBdnZ2dy2kydPgs/nq6w+1K5dGyKRSKl9/uXLl1zTTGm2bduGESNGYNu2bfjoo4/eur/ijfLmzZvcthcvXmD37t3Yvn07Ll++zH1dunQJL1++xL///gsAqFevHqRSKS5fvqx0TkXfj7p16wIo373cu3evUgxvfm3YsOGt16iJWrVqwc3NTWkocGZmJmJjY9G6dWsAQOvWrZGeno4LF143CR4+fBhyuVypupSXl4f4+Hi1nWSJMvpMrSNy+ev8zMT6GhoVY04skpKS8OjRI+5FqVGjRgaOyDz069cP06dPx5o1azBt2jTUqFEDS5YsQWhoKCwtLTF06FCIRCLs3r0bs2fPRmhoKPem4OPjgxkzZiA0NBSPHz9G79694e7ujnv37iEiIgLt2rVTGslQmsGDByMsLAzDhw/H/Pnz8fz5c0yYMAFDhw4t0fQBABKJBCNHjsT06dPh6OgIFxcXzJkz562dkX/55RcMHz4c3333HXx8fLj2fSsrK65q8CZnZ2d88MEHiImJ4RKMLVu2wNHREf379y/xd9WjRw9ERkaiW7du8PLyQteuXfG///0Py5cvh6enJ+Li4jB58mQEBQVxHY/Lcy/L2/yRmJiItLQ0JCYmQiaTcQlQnTp1uJE39evXxzfffIPevXuDx+Nh8uTJ+Oqrr/Dee++hVq1a+OKLL+Du7s5NTtagQQN069YNn376KSIiIlBYWIiQkBAMGDBAqQJ25swZWFhYcH/3pHT09qcjxZMKav6oeBR9KLp06cL1HifvhlAoREhICJYsWcJVCSZPnozff/8dJ06cQPPmzfH+++/jl19+wbp167Bs2TKl4xcvXoxffvkFsbGx8Pf3h5eXF6ZOnYrGjRtj+PDhZY7D2toa//zzD9LS0tCiRQv07dsXnTt3VupE+qalS5eiffv2CAgIgJ+fH9q1a4dmzUrv1/Ljjz9CKpVi/PjxqFKlCvf1tuRn1KhRSkNKN27cyL3BvikwMBB//vknUlNTAQA7duxAx44dMWbMGHh5eWHixIno2bNniQqCru6lpubNm4emTZsiLCwMWVlZaNq0KZo2bYrz589z+8TFxSEjI4P7fsaMGZgwYQJGjx6NFi1aICsrC/v374elpSW3z9atW1G/fn107twZPXr0QLt27fDjjz8qPfe2bdswePBgWl24jHhMlz2ZTEBmZibs7OyQkZEBW1tbnZzzQeJt/B4dhQ2RX4DH46NVKxkWLszUybnNSWZmJtzc3CAuYHjw7yV4dG0Ka5fKhg7L5Dpl5uXlcb37i7+AkootNzcX9erVw44dO+hTtY6kpqaiXr16OH/+vMajZUxNaa8bmrxvUqVCR+Ty10M+qPmj4jC1hIKYLysrK2zevJmrPpDye/DgAdauXVvhEwpdokK9jsio+UMnikq1xlE8o4SCmJpOnToZOoQKpXnz5ionFCPq0WdqHWHFkgoa/aEdY2qJS05OpoSCEEI0RJ+pdUQm40PxCZsmv9KOYnVKY+Do6AgvLy8AoISCEELKiJIKHVGep8KAgZgwY6pUiMViREdH48WLFyqngyaEEFISNX/oiJyaP8rN0JWKxMREfPXVV1xyIxaLKaEghBANUKVCR2RKSYUBAzFhhqxUJCYmwtfXl1u+fO7cuQaLhRBCTBVVKnSEyfncmAVKKrRjqCpF8YTC09NTr5P4EEJIRUZJhY4UddQEAB41f2jJEAuKvZlQUKdMQgjRHiUVOsIYzVNRXpRQEGNy+/ZttGrVCpaWltx6Gm8THBzMrS2hTqdOnTB58uRyx6fK0KFDsWjRIr2c2xzt378fTZo0gVwuN3QoJoOSCh15Xamgjprl8a4Si/z8fPj5+VFCYWSCg4O5DrsikQi1atXCjBkzkJeXV2LfPXv2oGPHjqhUqRKsra3RokULREVFqTzvrl270KlTJ9jZ2UEikaBx48ZYuHAh0tLS1MYSFhYGGxsbxMXFKa12qW8xMTFo27YtHB0dYWVlhfr16yM8PPytx125cgV79+7FxIkTSzy2bds2CAQCjB8/vsRjUVFRsLe3V3lOHo+HP/74Q2mbNveyvNLS0jB48GDY2trC3t4eI0eORFZWVqnHpKSkYOjQoXBzc4ONjQ0++OAD7Nq1S6PzduvWDSKRSGlNFVI6Sip0RM743ESQ1KfC+FlYWGDBggWoW7cuJRRGplu3bkhOTkZCQgLCw8Pxww8/ICwsTGmfVatWoWfPnmjbti1iY2Nx9epVDBgwAGPHjsW0adOU9p0zZw6CgoLQokUL7Nu3D9evX8fy5ctx5coVbNmyRW0c8fHxaNeuHWrWrAlHR0e9XKsqNjY2CAkJwfHjx3Hr1i3MnTsXc+fOLbHQ1ZtWrVqFfv36cat2FhcZGYkZM2Zg27ZtKhO0stL2XpbX4MGDcePGDRw4cAB79uzB8ePHMXr06FKPGTZsGOLi4vDnn3/i2rVr6NOnD/r3749Lly5pdN7g4GB8//33ermuioiSCh1hNPpDJ95lE8jAgQNx7do1SiiMjIWFBdzc3FC9enX06tULfn5+OHDgAPd4UlISQkNDMXnyZCxatAgNGzZEnTp1EBoaiqVLl2L58uWIjY0FAJw9exaLFi3C8uXLsXTpUrRp0wYeHh7o0qULdu3apbZTLo/Hw4ULF7Bw4ULweDzMnz8fAHDt2jV8+OGHsLKygqOjI0aPHl3qJ+bs7GwMGzYMEokEVapUwfLly996/U2bNsXAgQPh5eUFDw8PDBkyBP7+/jhx4oTaY2QyGaKjoxEQEFDisfv37+PUqVOYOXMm6tati99+++2tMaii7b0sr1u3bmH//v3YsGEDfHx80K5dO6xatQrbt2/HkydP1B536tQpTJgwAS1btoSnpyfmzp0Le3t7XLhwQaPzBgQE4Pz584iPj9fL9VU0lFToCDV/lM+7GE6alJSE7t274/Hjx9w2sVis9+c1Fkwmg+zVq3f+xWQyrWO+fv06Tp06pfRzio6ORmFhYYmKBACMGTMGEokE27ZtA1C0tLVEIsG4ceNUnl9d2T85ORleXl4IDQ1FcnIypk2bhuzsbPj7+6Ny5co4d+4cdu7ciYMHDyIkJERt/NOnT8exY8ewe/du/Pvvvzh69CguXryowR0ALl26hFOnTqFjx45q97l69SoyMjJUrlOxadMmfPTRR7Czs8OQIUMQGRmp0fMraHsvAcDLywsSiUTtV/fu3dUee/r0adjb2ytdm5+fH/h8Ppc8qtKmTRvs2LEDaWlpkMvl2L59O/Ly8rj1Ucp63ho1asDV1bXUpI68Rl0KdUROM2qWm6ItXR/pRfHFwUaNGoV9+/bp4VmMmzwnBznnzr/z57Vu0RyCSpXKvP+ePXsgkUgglUqRn58PPp+P1atXc4/fuXMHdnZ2KicmE4vF8PT0xJ07dwAAd+/ehaenJ0QikUYxu7m5QSgUQiKRwM3NDQCwfv165OXlYfPmzbCxsQEArF69GgEBAVi8eDFcXV2VzpGVlYXIyEj8/PPP6Ny5MwDgp59+QrVq1coUQ7Vq1fD8+XNIpVLMnz8fo0aNUrvvw4cPIRAI4OLiorRdLpcjKioKq1atAgAMGDAAoaGh3BLXmtD2XgLA3r17UVhYqPZxKysrtY+lpKSUuC6hUAgHBwekpKSoPe7XX39FUFAQHB0dIRQKYW1tjd9//x116tTR+Lzu7u54+PCh2ucir1FSoSNy2etMgpIKzemzUvHmaqNva5uuqPjW1rBu8e5XXORbW2u0v6+vL9atW4fs7GyEh4dDKBQiMDBQq+fW5e/VrVu34O3tzSUUANC2bVvI5XLExcWVSCri4+NRUFAAHx8fbpuDgwPq1atXpuc7ceIEsrKycObMGcycORN16tTBwIEDVe6bm5sLCwuLEs2HBw4cQHZ2Nnr06AEAcHJyQpcuXbBx40Z8+eWXZYpDoTz3smbNmlofq60vvvgC6enpOHjwIJycnPDHH3+gf//+OHHiBBo1aqTRuaysrJCTk6OnSCsWSip0hKbp1g1dVypo+fLXeAKBRhUDQ7GxseE+TW7cuBHe3t6IjIzEyJEjAQB169ZFRkYGnjx5And3d6VjCwoKEB8fD19fX27fmJgYFBYWavUJ25AUlYRGjRrh6dOnmD9/vtqkwsnJCTk5OSgoKFBqKoqMjERaWppSJUAul+Pq1atYsGAB+Hw+bG1tkZ2dDblcDj7/9etYeno6AMDOzg5A+e6ll5dXqZ/027dvr7Z66ObmhmfPniltk0qlSEtL46pIb4qPj8fq1atx/fp1bmFAb29vnDhxAmvWrEFERIRG501LS4Ozs/Nbr5NQnwqdKUoqaJVSY0IJhenj8/mYPXs25s6di9zcXABAYGAgRCKRyk6PERERyM7O5t58Bw0ahKysLKxdu1bl+RVvnGXRoEEDXLlyBdnZ2dy2kydPgs/nq6w+1K5dGyKRSKl9/uXLl1zTjCbkcjny8/PVPq6YR+PmzZvcthcvXmD37t3Yvn07Ll++zH1dunQJL1++xL///gsAqFevHqRSKS5fvqx0TkXfj7p16wIo373cu3evUgxvfm3YsEHtsa1bt0Z6ejrXwRIADh8+DLlcrlQFKk5RVSieJAGAQCDg5pwo63nz8vIQHx+Ppk2bqo2RvEaVCh2Ry4vKjjweTX6lLV2P/BgzZgwlFBVAv379MH36dKxZswbTpk1DjRo1sGTJEoSGhsLS0hJDhw6FSCTC7t27MXv2bISGhnJvCj4+PpgxYwZCQ0Px+PFj9O7dG+7u7rh37x4iIiLQrl07TJo0qUxxDB48GGFhYRg+fDjmz5+P58+fY8KECRg6dGiJpg8AkEgkGDlyJKZPnw5HR0e4uLhgzpw5Jd7o3rRmzRrUqFED9evXBwAcP34cy5YtUzn/hIKzszM++OADxMTEcAnGli1b4OjoiP79+5f42+rRowciIyPRrVs3eHl5oWvXrvjf//6H5cuXw9PTE3FxcZg8eTKCgoJQtWrVct/L8jR/NGjQAN26dcOnn36KiIgIFBYWIiQkBAMGDOAqVY8fP0bnzp2xefNmtGzZEvXr10edOnUwZswYLFu2DI6Ojvjjjz+4oaNlPS8AnDlzBhYWFmjdurXW12BOqFKhI3L56/IEn0/NH5pStNfqMrHYsGEDunfvTgmFiRMKhQgJCcGSJUu4KsHkyZPx+++/48SJE2jevDnef/99/PLLL1i3bh2WLVumdPzixYvxyy+/IDY2Fv7+/vDy8sLUqVPRuHFjjYZBWltb459//kFaWhpatGiBvn37onPnzkqdSN+0dOlStG/fHgEBAfDz80O7du3QrFmzUp9HLpdj1qxZaNKkCZo3b441a9Zg8eLFWLhwYanHjRo1SmmSpo0bN6J3794q/6YCAwPx559/IjU1FQCwY8cOdOzYEWPGjIGXlxcmTpyInj17lqgg6Opeamrr1q2oX78+OnfujB49eqBdu3ZKfaMKCwsRFxfHVShEIhH27t0LZ2dnBAQEoHHjxti8eTN++uknrn9JWc4LFE0cNnjwYFhr2DfIXPGYIZeGNIDMzEzY2dkhIyMDtra2Ojnng8Tb+GpBLE6d7gOBQITPP8/Ghx+qL1WSkmQyGfLy8lCjRg3IMnLw4N9L8OjaFNYulTU6T35+PiwsLPQUpWnIy8vjevdbWloaOhzyjuTm5qJevXrYsWMHfarWkdTUVNSrVw/nz5/XeLSMqSntdUOT902qVOiInNb+KBddVCqSkpLQqFEjmlKXmCUrKyts3ryZqz6Q8nvw4AHWrl1b4RMKXaK3Px2Ry/hQ1Hyo+UM75U0oFJ0yFyxYgL59+5p9xYKYH8XETkQ3mjdvrnJCMaIeVSp0pPiQUqpUaE+bxOLNUR6HDh2ihIIQQgyAkgodoXkqykfbrj00bJQQQowHJRU6IqcFxcpNMU13WVFCQQghxoWSCh2hya/KR5tKxZYtWyihIIQQI0Kt/zpCzR+6oUmlYtasWQCAoUOHUkJBCCFGgJIKHaFVSt+N5ORkODg4cIsnzZ4929AhEUII+Q8lFTry5iqlBQUFpc7VT5TJZDJYWlqWWqlQ9KFo2LAhoqOjaYQHIYQYGUoqdET2RvNHbm4u7OzsIKTxpWUmFArVJhXFO2UCRasGVqlS5V2GR8zM7du3ERwcjMuXL6N+/folFtxSJTg4GOnp6fjjjz/U7tOpUyc0adIEK1eu1FmsCkOHDkWDBg2ogqcj+/fvx8yZM3Hx4sW3rtlC/sPMTEZGBgPAMjIydHbO+w9vsYCP/2b162ew99/PY6dOpbCbN2+ytLQ0nT2HOcl+msZubDnEsp8W3b/ExETm6enJADBPT0+WmJho4AiNW25uLrt58ybLzc01dCgaGz58OENRj2cmFAqZh4cHmz59uspr+euvv1iHDh2YRCJhVlZWrHnz5mzTpk0qzxsdHc06duzIbG1tmY2NDWvUqBFbsGABe/HihdpY+vfvzz788EP24MEDlpqaWub4e/bsWeo+HTt2ZJMmTSrT+WJiYphAIGDe3t5v3ffy5cvMwcGBvXr1qsRjv/zyC+Pz+WzcuHElHtu0aROzs7NTeU4A7Pfff1faps29LK8XL16wQYMGsUqVKjE7Ozv2v//9T+V1FpecnMyGDBnCXF1dmbW1NWvatCmLjo5WuW9eXh7z9vZmANilS5eUHmvevDnbvHmzri7FaJX2uqHJ+yalXjoikys3f2g6PJKoRsNGzU+3bt2QnJyMhIQEhIeH44cffkBYWJjSPqtWrULPnj3Rtm1bxMbG4urVqxgwYADGjh2LadOmKe07Z84cBAUFoUWLFti3bx+uX7+O5cuX48qVK9iyZYvaOOLj49GuXTvUrFkTjo6OernW0qSnp2PYsGHo3LlzmfZftWoV+vXrB4lEUuKxyMhIzJgxA9u2bUNeXp7WMWl7L8tr8ODBuHHjBrfK6PHjxzF69OhSjxk2bBji4uLw559/4tq1a+jTpw/69++PS5culdh3xowZSiuTFhccHIzvv/9eJ9dhFvSR8Whq9erVrGbNmszCwoK1bNmSxcbGqt33xx9/ZO3atWP29vbM3t6ede7cudT936SvSkW3bv9wlYpz55LZrVu3dPoc5kRRqYi7eJUqFFow9UrFm5/0+/Tpw5o2bcp9n5iYyEQiEZs6dWqJ47///nsGgJ05c4YxxlhsbCwDwFauXKny+V6+fKlyO/6rlii+wsLCGGOMXb16lfn6+jJLS0vm4ODAPv30U6VPzG/Gn5WVxYYOHcpsbGyYm5sbW7ZsWZkrFUFBQWzu3LksLCzsrZUKqVTK7Ozs2J49e0o8lpCQwKysrFh6ejrz8fFhW7duVXq8rJUKbe9led28eZMBYOfOneO27du3j/F4PPb48WO1x9nY2JSoMDg4OLD169crbdu7dy+rX78+u3HjhspKxcOHDxkAdu/evfJfjBGrMJWKHTt2YOrUqQgLC8PFixfh7e0Nf39/PHv2TOX+R48excCBA3HkyBGcPn0a1atXR9euXfH48eN3HLkypmKabqpUlM+T5GQ8e/aMKhQ6Ipcz5OdK3/mXXK79EOvr16/j1KlTEIvF3Lbo6GgUFhaWqEgAwJgxYyCRSLBt2zYARUtbSyQSjBs3TuX57e3tVW5PTk6Gl5cXQkNDkZycjGnTpiE7Oxv+/v6oXLkyzp07h507d+LgwYMICQlRG//06dNx7Ngx7N69G//++y+OHj2KixcvvvW6N23ahISEhBIVGnWuXr2KjIwMletUbNq0CR999BHs7OwwZMgQREZGlumcb9L2XgKAl5cXJBKJ2q/u3burPfb06dOwt7dXujY/Pz/w+XzExsaqPa5NmzbYsWMH0tLSIJfLsX37duTl5Smtj/L06VN8+umn2LJli9qlzWvUqAFXV1ecOHFC7XOR1wzei3DFihX49NNPMWLECABAREQE/v77b2zcuBEzZ84ssf+bK1Bu2LABu3btwqFDhzBs2LB3ErMqsjdm1GSMUVJRTi2bt8CBAwdQtWpVSih0oDBfhid309/587q/Zw8Lq7K/1OzZswcSiQRSqRT5+fng8/lYvXo19/idO3dgZ2ensqOuWCyGp6cn7ty5AwC4e/cuPD09IRKJNIrZzc0NQqEQEokEbm5uAID169cjLy8Pmzdvho2NDQBg9erVCAgIwOLFi+Hq6qp0jqysLERGRuLnn3/mmjB++uknVKtWrdTnvnv3LmbOnIkTJ06UuaP3w4cPIRAI4OLiorRdLpcjKioKq1atAgAMGDAAoaGh3BLXmtD2XgLA3r17UVhYqPZxKysrtY+lpKSUuC6hUAgHBwekpKSoPe7XX39FUFAQHB0dIRQKYW1tjd9//x116tQBUPQaHRwcjLFjx6J58+Z48OCB2nO5u7vj4cOHah8nrxk0qSgoKMCFCxe4SYwAgM/nw8/PD6dPny7TOXJyclBYWAgHBweVj+fn5ysN7czMzCxf0GowGR9MXvSLKi+UQSqTozBPhnyBVC/PV1ElJiXi6YMkKH6arVq1Mmg8FYnIQgD39+wN8rya8PX1xbp165CdnY3w8HAIhUIEBgZq9dxMyzVlVLl16xa8vb25hAIA2rZtC7lcjri4uBJJRXx8PAoKCuDj48Ntc3BwQL169dQ+h0wmw6BBg7BgwQLUrVu3zLHl5uZyc7cUd+DAAWRnZ6NHjx4AACcnJ3Tp0gUbN27El19+WebzA+W7lzVr1tT6WG198cUXSE9Px8GDB+Hk5IQ//vgD/fv3x4kTJ9CoUSOsWrUKr169Unr/UcfKygo5OTnvIGrTZ9CkIjU1FTKZrMQfo6urK27fvl2mc3z++edwd3eHn5+fyse/+eYbLFiwoNyxlkZWIIc0zwIyKcBjDC+f5EDIL4SoMAsWFuqzc6LscfIjDB7VG5mZ6YicsQSegg8MHVKFwufzNKoYGIqNjQ33aXLjxo3w9vZGZGQkRo4cCQCoW7cuMjIy8OTJkxKd6woKChAfHw9fX19u35iYGBQWFmr1Cftde/XqFc6fP49Lly5xzSpyuRyMMQiFQvz777/48MMPSxzn5OSEnJwcFBQUKDUVRUZGIi0tTakSIJfLcfXqVSxYsAB8Ph+2trbIzs6GXC5XGjaZnp4OALCzswNQvnvp5eVV6if99u3bY9++fSofc3NzK9EcLpVKkZaWxlWR3hQfH4/Vq1fj+vXr8PLyAgB4e3vjxIkTWLNmDSIiInD48GGcPn26xHw3zZs3x+DBg/HTTz9x29LS0uDs7FymazV3xv8KU4pvv/0W27dvx9GjR2Fpaalyn1mzZmHq1Knc95mZmTovpTM5A5PzwBcCAhEPLjUtwJgU7tXtYKEmLqIsMSkRwz4LROKjB6hV0wPv1awEkZimJjV3fD4fs2fPxtSpUzFo0CBYWVkhMDAQn3/+OZYvX47ly5cr7R8REYHs7GwMHDgQADBo0CB8//33WLt2LSZNmlTi/Onp6aX2BSiuQYMGiIqKQnZ2NletOHnyJPh8vsrqQ+3atSESiRAbG4saNWoAAF6+fIk7d+6gY8eOKp/D1tYW165dU9q2du1aHD58GNHR0WqbLJo0aQIAuHnzJvf/Fy9eYPfu3di+fTv3xgoUVUPatWuHf//9F926dUO9evUglUpx+fJlfPDB60Re0fdDUTEpz70sT/NH69atkZ6ejgsXLqBZs2YAgMOHD0MulytVgYpTVBXenFtCIBBALpcDAL7//nt89dVX3GNPnjyBv78/duzYoXTevLw8xMfHo2nTpmpjJMXotv+oZvLz85lAICgxDnrYsGHsk08+KfXYpUuXMjs7O6UewWWhj9Efd+Ous7YtzrJ6dYtGf9y9m8ji4uJYXl6ezp6jInv48KHSKI/7N2+yzEOHmTQz09ChmaSKNvqjsLCQVa1alS1dupTbFh4ezvh8Pps9eza7desWu3fvHlu+fDmzsLBgoaGhSsfPmDGDCQQCNn36dHbq1Cn24MEDdvDgQda3b1+1IxkYY8zb25sb9cEYY9nZ2axKlSosMDCQXbt2jR0+fJh5enqy4cOHq41/7NixrGbNmuzQoUPs2rVr7JNPPmESiaTM81Qwxso0+oMxxj744AO2atUq7vvw8HBWpUoVJpfLS+zbv39/1rdvX+77rl27Mm9vb3bw4EGWkJDA9u3bx+rVq8eCgoKUjtP2XpZXt27dWNOmTVlsbCyLiYlh7733Hhs4cCD3+KNHj1i9evW4kYAFBQWsTp06rH379iw2Npbdu3ePLVu2jPF4PPb333+rfI779++rHP1x5MgRJpFIWHZ2tt6uzxjoavSHwYeUtmzZkoWEhHDfy2QyVrVqVfbNN9+oPWbx4sXM1taWnT59WuPn01dS0abZOVavbgZr1CiPJSQ8ZHfu3GH5+fk6e46K6s2EIjExkUkzMympKIeKllQwxtg333zDnJ2dWVZWFrdt9+7drH379szGxoZZWlqyZs2asY0bN6o8744dO1iHDh1YpUqVmI2NDWvcuDFbuHBhqcMg30wqGNN8SOmrV6/YkCFDmLW1NXN1dWVLlizRaPIrxsqeVKxdu5a1atWK+75Ro0YqJ7tirOh+iMVi9vz5c8ZY0XDQiRMnstq1azMrKyv23nvvsRkzZqicYEqbe1leL168YAMHDmQSiYTZ2tqyESNGKMWmSAiOHDnCbbtz5w7r06cPc3FxYdbW1qxx48alTmKlLqkYPXo0GzNmjK4vyehUmKRi+/btzMLCgkVFRbGbN2+y0aNHM3t7e5aSksIYY2zo0KFs5syZ3P7ffvstE4vFLDo6miUnJ3Nfb5tdTUFfSUWrDy6wuv8lFffvP2B3795lBQUFOnuOiujRo0cq56GgpKJ8TDmpINrLyclh1atXZ6dOnTJ0KBXG8+fPmYODA0tISDB0KHqnq6TC4H0qgoKC8Pz5c8ybNw8pKSlo0qQJ9u/fz3XeTExMVGoXW7duHQoKCtC3b1+l84SFhWH+/PnvMnQliiGlRZ2vGc2oWQb29vbc8Dqah4KQ8rGyssLmzZuRmppq6FAqjAcPHmDt2rUaD781ZwZPKgAgJCRE7QQyR48eVfq+tLHEhsTkRQmEUFg07IqSirezsbHB3r17kZ6ejqpVqxo6HEJMXvGJnUj5NW/eXOWEYkQ9g8+oWVEoKhUCQdGQLR6PR6vaqZCUlKQ0j76NjQ0lFIQQUkEYRaWiIpBzSQVVKtR5c/nyiRMnGjgiQgghukQfpXVErqJSQV57c7XR3r17GzokQgghOkZJhY4wVpRECP6br0kgoImbFGj5ckIIMQ+UVOiIrFjzB2OM+lP8hxIKQggxH/TOpyPFmz8YY1SpQNFUub6+vpRQEEKImaCkQkfYG0kF9akArK2tMWXKFNSuXZsSCmJybt++jVatWsHS0pJbT+NtgoOD0atXr1L36dSpEyZPnlzu+FQZOnQoFi1apJdzm6P9+/ejSZMm3Hoh5O0oqdARRfOHUEjNH8WNHz8eV69epYSClElwcDA3ckokEqFWrVqYMWMG8vLySuy7Z88edOzYEZUqVYK1tTVatGiBqKgolefdtWsXOnXqBDs7O0gkEjRu3BgLFy5EWlqa2ljCwsJgY2ODuLg4HDp0SFeX+FZHjx7l7kHxr5SUlFKPu3LlCvbu3atyVNW2bdsgEAgwfvz4Eo9FRUWpXQiMx+Phjz/+UNqmzb0sr6+//hpt2rSBtbV1mReAY4xh3rx5qFKlCqysrODn54e7d+8q7ZOWlobBgwfD1tYW9vb2GDlyJLKysrjHu3XrBpFIhK1bt+rycio0eufTkeLNH0X/mmfzR1JSEgIDA/HixQtum7W1tQEjIqamW7duSE5ORkJCAsLDw/HDDz8gLCxMaZ9Vq1ahZ8+eaNu2LWJjY3H16lUMGDAAY8eOxbRp05T2nTNnDoKCgtCiRQvs27cP169fx/Lly3HlyhVs2bJFbRzx8fFo164datasCUdHR71ca2ni4uKQnJzMfbm4uJS6/6pVq9CvXz9IJJISj0VGRmLGjBnYtm2bygStrLS9l+VVUFCAfv364bPPPivzMUuWLMH333+PiIgIxMbGwsbGBv7+/krXP3jwYNy4cQMHDhzAnj17cPz4cYwePVrpPMHBwUpz65C30PH04UZPX2t/1KyWyOrWTWe9e2exW7du6XVxHWOVmJjIreXRp08frc9Da3+Ujymv/aFqQbE+ffqwpk2bct8nJiYykUjEpk6dWuL477//ngFgZ86cYYwxFhsbywCoXUFT3d8pAKUvxcJimi4olpWVxYYOHcpsbGyYm5sbW7Zs2VsXFDty5AgDoNFriFQqZXZ2dmzPnj0lHktISGBWVlYsPT2d+fj4sK1btyo9vmnTJmZnZ6fyvAC4VaS1vZe6VFqsxcnlcubm5qa0sm16ejqzsLBg27ZtY4wxdvPmTQZAaaXrffv2MR6Pxx4/fsxte/jwIQPA7t27p7sLMUK6WvuDKhU6wJjy5FfMDPtUvDnKY+XKlYYOiVQA169fx6lTpyAWi7lt0dHRKCwsLFGRAIAxY8ZAIpFg27ZtAICtW7dCIpFg3LhxKs+vrpSenJwMLy8vhIaGIjk5GdOmTUN2djb8/f1RuXJlnDt3Djt37sTBgwfVLjEAANOnT8exY8ewe/du/Pvvvzh69CguXrxYpmtv0qQJqlSpgi5duuDkyZOl7nv16lVkZGSonFJ606ZN+Oijj2BnZ4chQ4YgMjKyTM//Jm3vJQB4eXlBIpGo/erevbtWMalz//59pKSkwM/Pj9tmZ2cHHx8fnD59GgBw+vRp2NvbK90zPz8/8Pl8xMbGcttq1KgBV1dXnDhxQqcxVlQ0o6YOFO/Do+hKYU5JBQ0bNQ1yuQyF5Sh9a0tkaQk+v+zNgXv27IFEIoFUKkV+fj74fD5Wr17NPX7nzh3Y2dmhSpUqJY4Vi8Xw9PTEnTt3AAB3796Fp6cnRCKRRjG7ublBKBRCIpHAzc0NALB+/Xrk5eVh8+bNsLGxAQCsXr0aAQEBWLx4MbcIokJWVhYiIyPx888/o3PnzgCAn376iVtET50qVaogIiICzZs3R35+PjZs2IBOnTohNjYWH3zwgcpjHj58CIFAUKKJRC6XIyoqCqtWrQIADBgwAKGhobh//77Gi2Rpey8BYO/evSgsLFT7uJWVlcbnLI2i/8mbPxNXV1fusZSUlBL3SygUwsHBoUT/FXd3dzx8+FCnMVZUlFTogEz2OoEQCs1rim5KKExHYV4eHt26/s6ft1qD92FhbVPm/X19fbFu3TpkZ2cjPDwcQqEQgYGBWj03Y0yr41S5desWvL29uYQCANq2bQu5XI64uLgSb2Dx8fEoKCiAj48Pt83BwQH16tUr9Xnq1auntE+bNm0QHx+P8PBwtf0WcnNzYWFhUeJ158CBA8jOzkaPHj0AAE5OTujSpQs2btyIL7/8smwX/p/y3MuaNWtqfawxsLKyQk5OjqHDMAmUVOiATPb6/4r+meYy+mPYsGGUUJgIkaUlqjV43yDPqwkbGxvUqVMHALBx40Z4e3sjMjISI0eOBADUrVsXGRkZePLkCdzd3ZWOLSgoQHx8PHx9fbl9Y2JiUFhYqNUnbGPRsmVLxMTEqH3cyckJOTk5KCgoUGoqioyMRFpamlIlQC6X4+rVq1iwYAH4fD5sbW2RnZ0NuVyu9LqVnp4OoKjZACjfvfTy8ir1k3779u2xb98+jc5ZGkV16enTp0oVradPn3LDg93c3PDs2TOl46RSKdLS0rjjFdLS0uDs7Kyz+Coy83jn0zNpsUpF8QXFzIGiNEsJhfHj8wWwsLZ551+aNH2UjJmP2bNnY+7cucjNzQUABAYGQiQSYfny5SX2j4iIQHZ2NgYOHAgAGDRoELKysrB27VqV51e8cZZFgwYNcOXKFWRnZ3PbTp48CT6fr7L6ULt2bYhEIqX2+ZcvX3JNM5q4fPmyyuYeBcUb5c2bN7ltL168wO7du7F9+3ZcvnyZ+7p06RJevnyJf//9F0BRZUQqleLy5ctK51T0/ahbty6A8t3LvXv3KsXw5teGDRvedgs0UqtWLbi5uSkNBc7MzERsbCxat24NAGjdujXS09Nx4cIFbp/Dhw9DLpcrVZfy8vIQHx+Ppk2b6jTGCkvnXUiNnD5Gf5w/e5NVd3/E6tZNZyNHZrDbt2+znJwcnZ3f2BQWFur1/DT6o3wq2uiPwsJCVrVqVaWe/OHh4YzP57PZs2ezW7dusXv37rHly5czCwsLFhoaqnT8jBkzmEAgYNOnT2enTp1iDx48YAcPHmR9+/ZVO5KBMca8vb25UR+MMZadnc2qVKnCAgMD2bVr19jhw4eZp6cnGz58uNr4x44dy2rWrMkOHTrErl27xj755BMmkUhKHf0RHh7O/vjjD3b37l127do1NmnSJMbn89nBgwdLvXcffPABW7VqldJ5qlSpwuRyeYl9+/fvz/r27ct937VrV+bt7c0OHjzIEhIS2L59+1i9evVYUFCQ0nHa3svyevjwIbt06RJbsGABk0gk7NKlS+zSpUtKI2/q1avHfvvtN+77b7/9ltnb27Pdu3ezq1evsp49e7JatWop/V1069aNNW3alMXGxrKYmBj23nvvsYEDByo995EjR5hEImHZ2dl6uz5joKvRH5RU6EDs6VtcUjF6dFFSYYov6GWRmJjIGjRooHLomq5QUlE+FS2pYIyxb775hjk7O7OsrCxu2+7du1n79u2ZjY0Ns7S0ZM2aNWMbN25Ued4dO3awDh06sEqVKjEbGxvWuHFjtnDhwlKHQb6ZVDCm+ZDSV69esSFDhjBra2vm6urKlixZ8tYhpYsXL2a1a9fmnqNTp07s8OHDavdXWLt2LWvVqhX3faNGjdi4ceNU7rtjxw4mFov/3959R0V1fXsA/84MzDBUReooCoiiRkDRSLD8sKCgxmCJGkWDJRp/sYbYGxoFLNFoLDEmKiaiWF5M8iwYNTaUaFTQRLAgIBYsWEA6zOz3h48bRgZkcGi6P2vNWs6955677xGYPeeecw89evSIiF5MB500aRI1btyY5HI5NWnShKZPn652bcWP1bYtX1dAQECJab4A6NixY0IZALRlyxbhvUqlonnz5pG1tTXJZDLq1q0bXbt2Ta3ex48f05AhQ8jY2JhMTU1p5MiRJa557Nix9Omnn1batdUUukoqREQ6HMlUC2RkZMDMzAzp6ekwNTXVSZ3Rp69h8CBjyI2N0bUrEBj4EA0bNoRMJtNJ/TVF8UGZzZs3x+XLl6Gnp/thOcrnz5H913kYvtsWEhMTndf/psvNzRVG9xtoOZ6B1V45OTlwdnbGzp07hS5+9nrS0tLg7OyM8+fPaz1bprYp6++GNp+bPKZCB5RqU0pfPKPiTRuo+fIsj0OHDlVKQsEYqxi5XI4ff/wRaWlp1R3KGyM5ORnr169/4xMKXeJPBR1QveFTSnnaKGO1Q+fOnas7hDdK27ZtNT5QjJXuzfo6XU0Ki00pFYvfrNkfnFAwxhgrL04qdEBZqD6l9E3qqVi/fj0nFIwxxsqFb3/oQPExFRLJi2XP35SkYvHixQCAzz77jBMKxhhjZeKkQgeKj6koGqhZm5OKBw8ewMLCAhKJBBKJBKGhodUdEmOMsVqAb3/oQOFLSUVtnvmRkpKC9u3bIyAgAMrizx9njDHGXoF7KnRApbb2R+1NKlJSUtClSxckJiYCeDFH++VFkhhjjLHS1M5PvxpGqar9PRXFE4qiQZmcUDDGGNNG7fv0q4GUhf/+uzYmFZoSCh6UyWqa5ORkiESiEgtf1QYLFiwQFv2qKmFhYahTp84ry23atAk9evSo/IDeAPn5+bC3t8f58+erO5Qaq3Z9+tVQwpgKenH7QyKp+KqMVY0TCsbeXrm5uZg3bx6CgoJK7Ltz5w6kUilatmxZYl9ZCV7nzp0xZcoUtW0xMTEYOHAgrK2tYWBggCZNmmDMmDEVWrG1vIgI8+fPh62tLeRyOby9vXHjxo0yj1mwYIEw0L7o1axZM2G/VCrF1KlTMWPGjEqLu7bjpEIHhDEVoto3puL69eu4c+cOJxSMvYX27NkDU1NTdOjQocS+sLAwDBo0SFgyvKL27duH9957D3l5eQgPD0d8fDy2bdsGMzMzzJs373XCL9OyZcvwzTffYMOGDTh79iyMjIzg4+OD3NzcMo975513kJqaKryioqLU9vv7+yMqKgpXrlyptNhrs9rz6VeDvTz7ozZNJ/X29sb+/fs5oXhLZGVllfp6+Y9tWWVzcnLKVVZbKpUKy5Ytg5OTE2QyGRo2bIjg4GC1MomJiejSpQsMDQ3h5uaG6OhoYd/jx48xZMgQ1K9fH4aGhnBxccGOHTvUju/cuTMmTZqE6dOnw9zcHDY2NliwYIFamWfPnuHTTz8Vvlm3bNkS+/btE/ZHRUWhU6dOkMvlsLOzw6RJk7S+3h9++AHNmzeHgYEBmjVrhvXr1wv72rdvX+Lb8KNHj6Cvr4+TJ08CAPLy8jB16lTUr18fRkZG8PDwwPHjx7WKISIiAn369CmxnYiwZcsWDB8+HEOHDsWmTZu0qrdIdnY2Ro4ciV69euG3336Dt7c3HBwc4OHhga+++grfffddhep9FSLCqlWrMHfuXPj5+cHV1RU//vgj7t27h19++aXMY/X09GBjYyO8LCws1PbXrVsXHTp0QERERKXEXttxUqEDKrXbHzX/Ed23b99W6wb09vbmhOItYWxsXOprwIABamWtrKxKLduzZ0+1svb29hrLaWvWrFlYsmQJ5s2bh7i4OGzfvr3EgOE5c+Zg6tSpiI2NRdOmTTFkyBAUFr4Y2JSbm4s2bdpg//79+OeffzB27FgMHz4c586dU6tj69atMDIywtmzZ7Fs2TJ8+eWXOHz4MIAXiU3Pnj1x+vRpbNu2DXFxcViyZIlwW/PmzZvw9fXFgAEDcPnyZezcuRNRUVGYMGFCua8zPDwc8+fPR3BwMOLj4xESEoJ58+Zh69atAF58G46IiEDxRaR37twJhUKBTp06AQAmTJiA6OhoRERE4PLlyxg4cCB8fX1f2cVfXFRUlMa1LY4dO4bs7Gx4e3tj2LBhiIiIqFCSeOjQIaSlpWH69Oka95c15mPcuHFl/ryW9fOVlJSE+/fvw9vbW9hmZmYGDw8PtSRUkxs3bkChUMDR0RH+/v5ISUkpUaZdu3Y4depUmfW8tXS7InvNp8268OW18btkslPcoaZNntGqVXd0WreupaSkkKOjIykUCrp+/Xp1h6NRYUYGZRz9gwozMqo7lFopJyeH4uLiKCcnp8Q+AKW+evXqpVbW0NCw1LJeXl5qZS0sLDSW00ZGRgbJZDL6/vvvNe5PSkoiAPTDDz8I265cuUIAKD4+vtR6e/fuTV988YXw3svLizp27KhW5t1336UZM2YQEdGhQ4dILBbTtWvXNNY3evRoGjt2rNq2U6dOkVgs1tjmRERBQUHk5uYmvG/cuDFt375drcyiRYvI09OTiIgePnxIenp6dPLkSWG/p6enEOOtW7dIIpHQ3bt31ero1q0bzZo1i4iItmzZQmZmZhrjISJ6+vQpAVA7R5GhQ4fSlClThPdubm60ZcsW4X3R/0VMTEyJY728vGjy5MlERLR06VICQE+ePCk1jtI8ePCAbty4UearNKdPnyYAdO/ePbXtAwcOpEGDBpV63IEDB2jXrl106dIlioyMJE9PT2rYsCFlvPS3aPXq1WRvb6/1NdVkZf3d0OZzk59ToQPC2h+imn374+XFwQwMDKo7JFbFMjMzS9338gDjhw8fllr25XFDycnJrxUXAMTHxyMvLw/dunUrs5yrq6vwb1tbWwAvYm3WrBmUSiVCQkKwa9cu3L17F/n5+cjLy4OhoWGpdRTVU3S9sbGxaNCgAZo2barx/JcuXcLly5cRHh4ubCMiqFQqJCUloXnz5mXGn5WVhZs3b2L06NEYM2aMsL2wsBBmZmYAAEtLS/To0QPh4eHo1KkTkpKSEB0dLdwu+Pvvv6FUKkvEmJeXh3r16pV5/iJFt7Be/jvw7Nkz/Pzzz2pjCYYNG4ZNmzZhxIgR5aq7CBXradGWlZUVrKysKnx8RRTvgXN1dYWHhwcaNWqEXbt2YfTo0cI+uVyO7OzsKo2ttuCkQgeKr/1RU5MKXm2UAYCRkVG1ly2NXC4vVzl9fX3h30W/ayrVi1/C5cuXY/Xq1Vi1ahVcXFxgZGSEKVOmID8/v9Q6iuopquNVcWRmZuLTTz/FpEmTSuxr2LDhK+MvSuy+//57eHh4qO0rntj5+/tj0qRJWLNmDbZv3w4XFxe4uLgIdUgkEly4cKFEMlje20716tWDSCTC06dP1bZv374dubm5arEVJU3Xr19H06ZNYWpqCgBIT08vUe+zZ8+E5Kgo6bl69So8PT3LFVeRcePGYdu2bWWWKS1JtrGxAfBiyYGixLPovTZTe+vUqYOmTZsiISFBbfuTJ09gaWlZ7nreJjymQgeEngr6d5XSmoQTClYbNGnSBHK5HEePHq1wHadPn4afnx+GDRsGNzc3ODo6aj1t0dXVFXfu3Cn1OHd3d8TFxcHJyanESyqVvrJ+a2trKBQKJCYmljjewcFBKOfn54fc3FxERkZi+/bt8Pf3F/a1bt0aSqUSDx8+LFFH0Qfqq0ilUrRo0QJxcXFq2zdt2oQvvvgCsbGxwuvSpUvo1KkTNm/eDAAwNzeHhYUFLly4oHZsRkYGEhIShGSiR48esLCwwLJlyzTG8OzZs1Lj+/LLL9Vi0PQqjYODA2xsbNR+lopmsWiT3GRmZuLmzZtqiQkA/PPPP2jdunW563mbcE+FDhTvqdDXr1mLid25c4cTClYrGBgYYMaMGZg+fTqkUik6dOiAR48e4cqVK2pdz2Vp0qQJ9uzZgzNnzqBu3bpYuXIlHjx4gBYtWpQ7Di8vL/znP//BgAEDsHLlSjg5OeHq1asQiUTw9fXFjBkz8N5772HChAn45JNPYGRkhLi4OBw+fBhr164t1zkWLlyISZMmwczMDL6+vsjLy8P58+fx9OlTBAYGAnjR+9O3b1/MmzcP8fHxGDJkiHB806ZN4e/vj48//hgrVqxA69at8ejRIxw9ehSurq7o3bt3ueLw8fFBVFSU8FyJ2NhYXLx4EeHh4WrPZwCAIUOG4Msvv8TixYuhp6eHwMBAhISEwNraGu+99x4eP36MRYsWwdLSEv379xeu4YcffsDAgQPxwQcfYNKkSXByckJaWhp27dqFlJSUUmdRvM7tD5FIhClTpmDx4sVo0qQJHBwcMG/ePCgUCvTt21co161bN/Tr108YZDt16lT06dMHjRo1wr179xAUFASJRKLW9gBw6tQpLFq0qEKxvek4qdABoacCL2Z/1KTnVBgaGsLMzIwTClYrzJs3D3p6epg/fz7u3bsHW1tbjBs3rtzHz507F4mJifDx8YGhoSHGjh2Lvn37auymL8v//M//YOrUqRgyZAiysrLg5OSEJUuWAHjRk3HixAnMmTMHnTp1AhGhcePGGDx4cLnr/+STT2BoaIjly5dj2rRpMDIygouLS4mHRvn7+6NXr174z3/+U+LWypYtW7B48WJ88cUXuHv3LiwsLPDee+/h/fffL3cco0ePRtu2bZGeng4zMzNs2rQJLVq0KJFQABA+fA8cOIAPPvgA06dPh7GxMZYuXYqbN2/C3NwcHTp0wLFjx9RuIfn5+eHMmTMIDQ3F0KFDkZGRATs7O3Tt2hWLFy8ud6zamj59OrKysjB27Fg8e/YMHTt2RGRkpNoYkps3byItLU14f+fOHQwZMgSPHz+GpaUlOnbsiD///FPtVkd0dDTS09Px4YcfVlrstZmIXmckTS2UkZEBMzMzpKenC/cFX9fSJXexbg0gNzLGvPkZGDjQCjKZTCd168KTJ0+QnZ2NBg0aVHco5aJ8/hzZf52H4bttITExqe5wap3c3FwkJSXBwcGBB+OyVxo4cCDc3d0xa9as6g6lVhg8eDDc3Nwwe/bs6g5Fp8r6u6HN52bN+Updi6mvUlr9z6m4ffs2wsLChPfm5ua1JqFgjFWt5cuXV+iZIm+j/Px8uLi44PPPP6/uUGosvv2hAy+eqPmiw0dPr3rHVBQflAlA6ylgjLG3i729PSZOnFjdYdQKUqkUc+fOre4wajTuqdCBmtJT8fIsj1fN92eMMcZ0iZMKHVDvqaiepIKnjTLGGKtunFTogPL/1/4gvEgqqnr2BycUjDHGagJOKnRAWez2R1WPqcjIyOCEgjHGWI3ASYUOqFT/JhF6VTz01dTUFCNHjuSEgjHGWLXjpEIH/n/VZQCAVCopvWAlmTt3LmJiYjihYIwxVq04qdCBf3sqCHp6lX/r4/bt2/j444/VFtPR1YO8GGOMsYri51ToQPExFVJp5eZpLz+H4scff6zU8zHGGGPlxT0VOlA0+wNApfZUvDzLIzg4uNLOxRhjjGmLkwodKCy29Lm+fuUkFTxtlDFWmsePH8PKygrJycnVHQqrgT766COsWLGiSs7FSYUOqIqWPhcBMpnuB2pyQsHeJiNGjIBIJNK4Oun48eMhEolqxOPni+IUiUTQ19eHg4MDpk+fjtzcXLVyt2/fxqhRo6BQKCCVStGoUSNMnjwZjx8/LlHn/fv3MXHiRDg6OkImk8HOzg59+vTB0aNHy4wlODgYfn5+sLe3L7EvOjoaEolE43LonTt3LrEyKgCEhYWhTp06OolNF9atWwd7e3sYGBjAw8MD586dK7WsUqnEvHnz4ODgALlcjsaNG2PRokUovnbm8+fPMWXKFDRq1AhyuRzt27fHX3/9VenXAWh3LQBw8uRJ9OnTBwqFAiKRCL/88ovW9c6dOxfBwcFar9ZbEZxU6MC/tz9EkOg4pyAiDBw4kBMK9laxs7NDREQEcnJyhG25ubnYvn17iSXAq5Ovry9SU1ORmJiIr7/+Gt999x2CgoKE/YmJiWjbti1u3LiBHTt2ICEhARs2bMDRo0fh6emJJ0+eCGWTk5PRpk0b/PHHH1i+fDn+/vtvREZGokuXLhg/fnypMWRnZ2PTpk0YPXq0xv2bNm3CxIkTcfLkSdy7d69C11nR2HRh586dCAwMRFBQEC5evAg3Nzf4+Pjg4cOHGssvXboU3377LdauXYv4+HgsXboUy5Ytw5o1a4Qyn3zyCQ4fPoyffvoJf//9N3r06AFvb2/cvXu33HF17txZbeHGyrgWAMjKyoKbmxvWrVtX4XpbtmyJxo0bY9u2bVrFWyH0lklPTycAlJ6errM6h/mnkZ3iNjVt8ozu3Hmms3qLXLp0iTw8PCglJUXndddEhRkZlHH0DyrMyKjuUGqlnJwciouLo5ycnOoOpUICAgLIz8+PWrZsSdu2bRO2h4eHk6urK/n5+VFAQAARESmVSgoJCSF7e3syMDAgV1dX2r17t1p9Bw8epA4dOpCZmRmZm5tT7969KSEhQa2Ml5cXTZw4kaZNm0Z169Yla2trCgoKKlecxfXv359at24tvPf19aUGDRpQdna2WrnU1FQyNDSkcePGCdt69uxJ9evXp8zMzBLnevr0aalx7N69mywtLTXue/78ORkbG9PVq1dp8ODBFBwcrLbfy8uLJk+eXOK4LVu2kJmZ2WvHpgvt2rWj8ePHC++VSiUpFAoKDQ3VWL537940atQotW39+/cnf39/IiLKzs4miURC+/btUyvj7u5Oc+bMKXdcXl5etGXLlnKXJ9L+Wl4GgPbu3VuhehcuXEgdO3Yste6y/m5o87nJsz90oPhATV2NqVCpVMLjvl1dXREdHV3tS6qz2m34cEBDj3ulq1cP+Okn7Y8bNWoUtmzZAn9/fwDA5s2bMXLkSBw/flwoExoaim3btmHDhg1o0qQJTp48iWHDhsHS0hJeXl4AXnzTCwwMhKurKzIzMzF//nz069cPsbGxao/U37p1KwIDA3H27FlER0djxIgR6NChA7p3716ueP/55x+cOXMGjRo1AgA8efIEhw4dQnBwMORyuVpZGxsb+Pv7Y+fOnVi/fj2ePn2KyMhIBAcHw8jIqETdL9+KKO7UqVNo06aNxn27du1Cs2bN4OzsjGHDhmHKlCmYNWuWVn9Lnjx5UuHYACAkJAQhISFllomLi9PYA5Wfn48LFy5g1qxZwjaxWAxvb29ER0drrKt9+/bYuHEjrl+/jqZNm+LSpUuIiorCypUrAQCFhYVQKpUwMDBQO04ulyMqKqrMOF9HRa5Fl/W2a9cOwcHByMvLg0wmq/D5XoWTCh0QxlRAN7M/UlJS0KdPH6xduxadOnUCUH0rn7I3x+PHQBm9rDXOsGHDMGvWLNy6dQsAcPr0aURERAhJRV5eHkJCQnDkyBF4enoCABwdHREVFYXvvvtOSCoGDBigVu/mzZthaWmJuLg4tGzZUtju6uoq3Lpo0qQJ1q5di6NHj5aZVOzbtw/GxsYoLCxEXl4exGIx1q5dCwC4ceMGiAjNmzfXeGzz5s3x9OlTPHr0CMnJySAiNGvWTOt2unXrFhQKhcZ9mzZtwrBhwwC8uFWTnp6OEydOoHPnzuWuPyEhocKxAcC4ceMwaNCgMsuUFn9aWhqUSiWsra3VtltbW+Pq1asaj5k5cyYyMjLQrFkzSCQSKJVKBAcHC8mpiYkJPD09sWjRIjRv3hzW1tbYsWMHoqOj4eTkVGqMLydHOTk5+PPPPzFhwgRhW2nJUUWvpTzKW69CoUB+fj7u378vJL6VgZMKHRBmfwDQ13+9YSopKSno0qULEhMTMXHiRFy8eLHKFyhjb6Z69WrXeS0tLdG7d2+EhYWBiNC7d29YWFgI+xMSEpCdnV3iQz8/Px+tW7cW3t+4cQPz58/H2bNnkZaWBtX/fwtISUkpkVQUZ2trW+a9bgDo0qULvv32W2RlZeHrr7+Gnp5eiSSGig0QLE15ypQmJyenxLduALh27RrOnTuHvXv3AgD09PQwePBgbNq0Sauk4nViAwBzc3OYm5u/Vh3a2LVrF8LDw7F9+3a88847iI2NxZQpU6BQKBAQEAAA+OmnnzBq1CjUr18fEokE7u7uGDJkCC5cuFBqvS8nR/7+/hgwYAD69+8vbCstOaoJinrLsrOzK/U8nFToQNHtD5GIIJFUvEeheELh6OiI//3f/+WEgulMRW5BVLdRo0YJ3wRfHqhW9ETZ/fv3o379+mr7infv9unTB40aNcL3338PhUIBlUqFli1bIj8/X+0YfX19tfcikUhIQEpjZGQkfLvdvHkz3NzchEGTTk5OEIlEiI+PR79+/UocGx8fj7p168LS0hJ6enoQiUQV+sZqYWGBp0+flti+adMmFBYWqn3QERFkMhnWrl0LMzMzmJqaapwR8OzZM5iZmQF40WtT0diA17v9YWFhAYlEggcPHqhtf/DgAWxsbDTWNW3aNMycORMfffQRAMDFxQW3bt1CaGiokFQ0btwYJ06cQFZWFjIyMmBra4vBgwfD0dGx1BhfTo7kcjmsrKzK7N143WvRZb1Fg4ItLS0rfK7y4E8sHSh6oqZEUvHbFC8nFDzLg7EXXfb5+fkoKCiAj4+P2r4WLVpAJpMhJSUFTk5Oaq+i353Hjx/j2rVrmDt3Lrp16ybccqgMYrEYs2fPxty5c5GTk4N69eqhe/fuWL9+vdosFuDF9Mzw8HAMHjwYIpEI5ubm8PHxwbp165CVlVWi7mfPnpV63tatWyMuLk5tW2FhIX788UesWLECsbGxwuvSpUtQKBTYsWMHAMDZ2RkXL14sUefFixfRtGlTAHit2IAX3/CLx6DpVdo3fKlUijZt2qhNW1WpVMLsGU2ys7NLfBmTSCQaE0QjIyPY2tri6dOnOHToEPz8/Mq8ltdRkWvRZb3//PMPGjRooNbbVyleOZTzDVMZsz969XxGdorb1LLlkwqNuL916xY5OjoSAHJ0dHxrZnmUhmd/vJ43ZfZHkfT0dLXf1+KzP+bMmUP16tWjsLAwSkhIoAsXLtA333xDYWFhRPRiFHy9evVo2LBhdOPGDTp69Ci9++67JUbRa5oFUfw85YmTiKigoIDq169Py5cvJyKi69evk4WFBXXq1IlOnDhBKSkpdPDgQWrZsiU1adKEHj9+LBx78+ZNsrGxoRYtWtCePXvo+vXrFBcXR6tXr6ZmzZqVGsfly5dJT0+Pnjx5Imzbu3cvSaVSevas5Gy06dOnU9u2bYVzGhgY0MSJE+nSpUt09epVWrFiBenp6dHBgwdfOzZdiIiIIJlMRmFhYRQXF0djx46lOnXq0P3794mIaM2aNdS1a1ehfEBAANWvX5/27dtHSUlJ9PPPP5OFhQVNnz5dKBMZGUkHDx6kxMRE+v3338nNzY08PDwoPz+/1DieP39OqampZb4KCwt1ei1F542JiaGYmBgCQCtXrqSYmBi6detWuestapeXZ8UUp6vZH5xU6ICPz4ukws31MeXm5mp9/Pjx4zmhKIaTitfzpiUVLyv+Ya9SqWjVqlXk7OxM+vr6ZGlpST4+PnTixAmh/OHDh6l58+Ykk8nI1dWVjh8/XmlJBRFRaGgoWVpaCtMvk5OTKSAggKytrUlfX5/s7Oxo4sSJlJaWVuLYe/fu0fjx46lRo0YklUqpfv369MEHH9CxY8dKjYPoxZTCDRs2CO/ff/996tWrl8ayZ8+eJQB06dIlIiI6d+4cde/enSwtLcnMzIw8PDw0TlusaGy6sGbNGmrYsCFJpVJq164d/fnnn8K+oKAgatSokfA+IyODJk+eTA0bNiQDAwNydHSkOXPmUF5enlBm586d5OjoSFKplGxsbGj8+PEaE7DigoKCCECZr6SkJJ1eCxHRsWPHNJ7r5Z/NsurNyckhMzMzio6OLjUuXSUVIqLXHIVTy2RkZMDMzAzp6ek6W9mzR/cMXI3LgKW1HH+eNS1xb/ZV8vPzERgYiBkzZvAtDwDK58+R/dd5GL7bFhITk+oOp9bJzc1FUlISHBwcNA7gY2+e/fv3Y9q0afjnn394HBYr4dtvv8XevXvx+++/l1qmrL8b2nxu8kBNHSgaUyHWYkzF48ePYW5uDpFIBKlUKkxDY4wxbfXu3Rs3btzA3bt3+YsJK0FfX1/tiaKViVNaHSia/SGRULmSitu3b6Ndu3aYNGnSa0/XYowxAJgyZQonFEyjTz75BM7OzlVyLk4qdKBQi6Si+OJgBw4cUHv2P2OMMVabcVKhA6qiKaXispMKTauN1quuJxIxxhhjOsZJhQ7821NR+pgKXr6cMcbYm46TCh1QFXv4lSacUDDGGHsbcFKhA0rVvz0Vmpw/fx7JycmcUDDGGHuj8ZRSHVAWlp1U9OvXD3v27EHbtm05oWCMMfbG4qTiNalUQNGsUD29f6eH3r59G2KxWFjoSNOCQowxxtibhG9/vKaiB18B/yYVRWMoOnfujLt371ZTZIwxxljV4p6K11RY+O+/xRJRiUGZr1o6mbGqpFQqq/RnUiwWQ1LafcE3TOfOndGqVSusWrWqRtTDWHWoEUnFunXrsHz5cty/fx9ubm5Ys2YN2rVrV2r53bt3Y968eUhOTkaTJk2wdOlS9OrVqwoj/lfxnoq8vGx07uzNszxYjaRUKnHnzh0UFBRU2Tn19fXRoEGDKk0sTp48ieXLl+PChQtITU3F3r170bdv3wrXxx/yjJVftd/+2LlzJwIDAxEUFISLFy/Czc0NPj4+ePjwocbyZ86cwZAhQzB69GjExMSgb9++6Nu3L/75558qjvyFoqSiUKnE8WNHOaFgNZZKpUJBQQHEYjGkUmmlv8RiMQoKCl67Z6Rz584ICwsrd/msrCy4ublh3bp1r3Vexpj2qj2pWLlyJcaMGYORI0eiRYsW2LBhAwwNDbF582aN5VevXg1fX19MmzYNzZs3x6JFi+Du7l5tC3IVFgIFBQV4mPYEmVnpnFCwGk9PT6/KXtWhZ8+eWLx4sVaDo/fs2QMXFxfI5XLUq1cP3t7eyMrKwogRI3DixAmsXr0aIpEIIpEIycnJyMrKwscffwxjY2PY2tpixYoVFYq1PPWoVCqEhobCwcEBcrkcbm5u2LNnDwBg48aNUCgUJRI3Pz8/jBo1qkIxMfY6qvX2R35+Pi5cuIBZs2YJ28RiMby9vREdHa3xmOjoaAQGBqpt8/HxwS+//KKxfF5eHvLy8oT3GRkZrx94MUolABEgAmBsJMfRffugqFMHyufPdXqet4kqO7u6Q2BvkdTUVAwZMgTLli1Dv3798Pz5c5w6dQpEhNWrV+P69eto2bIlvvzySwCApaUlJk6ciBMnTuDXX3+FlZUVZs+ejYsXL6JVq1ZanXvatGmvrCc0NBTbtm3Dhg0b0KRJE5w8eRLDhg2DpaUlBg4ciIkTJ+LYsWPo1q0bAODJkyeIjIzEgQMHdNVEjJVbtSYVaWlpUCqVsLa2VttubW2Nq1evajzm/v37Gsvfv39fY/nQ0FAsXLhQNwFrUFgI6IslsKlbFx3d2qBe6n1kp2qOhWlH9JYM8GPqQkJCEBISIrzPycnBn3/+iQkTJgjb4uLi0LBhQ52cLzU1FYWFhejfvz8aNWoEAHBxcRH2S6VSGBoawsbGBgCQmZmJTZs2Ydu2bcIH+datW9GgQQOtzlueevLy8hASEoIjR47A09MTAODo6IioqCh899132L59O3r27Int27cLdezZswcWFhbo0qVLBVuEsYqrEQM1K9OsWbPUejYyMjJ0emvCxgbYf0CFuzefoX4DBxgq5Dqr+20mkkggNjSs7jBYNRg3bhwGDRokvPf398eAAQPQv39/YZtCodDZ+dzc3NCtWze4uLjAx8cHPXr0wIcffoi6detqLH/z5k3k5+fDw8ND2GZubq710tLlqSchIQHZ2dno3r272rH5+flo3bo1gBftM2bMGKxfvx4ymQzh4eH46KOPIBZX+91t9haq1qTCwsICEokEDx48UNv+4MED4VvBy2xsbLQqL5PJIJPJdBOwBmIx0NDeBA3tW1XaORh7m5ibm8Pc3Fx4L5fLYWVlBScnp0o5n0QiweHDh3HmzBn8/vvvWLNmDebMmYOzZ8/CwcGhUs5ZXpmZmQCA/fv3Cw/SK1L0d61Pnz4gIuzfvx/vvvsuTp06ha+//rrKY2UMqOaBmlKpFG3atMHRo0eFbSqVCkePHhW6+l7m6empVh4ADh8+XGp5xhh7FZFIhA4dOmDhwoWIiYmBVCrF3r17Abz4O6UsNne8cePG0NfXx9mzZ4VtT58+xfXr17U6Z3nqadGiBWQyGVJSUuDk5KT2KupxNTAwQP/+/REeHo4dO3bA2dkZ7u7uFWoHxl5Xtd/+CAwMREBAANq2bYt27dph1apVyMrKwsiRIwEAH3/8MerXr4/Q0FAAwOTJk+Hl5YUVK1agd+/eiIiIwPnz57Fx48bqvAzGao3C4k9sq4HnyczMFL6hA0BERAQAqI2bsrS0LPXZF5mZmUhISBDeJyUlITY2Fubm5hrHYZw9exZHjx5Fjx49YGVlhbNnz+LRo0do3rw5AMDe3h5nz55FcnIyjI2NYW5ujtGjR2PatGmoV68erKysMGfOnBK3G9auXYu9e/eW+BJUxNjY+JX1mJiYYOrUqfj888+hUqnQsWNHpKen4/Tp0zA1NUVAQACAF7dA3n//fVy5cgXDhg0rca5XxcKYrlR7UjF48GA8evQI8+fPx/3799GqVStERkYKgzFTUlLUfsnat2+P7du3Y+7cuZg9ezaaNGmCX375BS1btqyuS2CsVhCLxdDX10dBQQHy8/Or5Jz6+vpa39v/6quvXjm4OikpCfb29hr3nT9/Xm2QYtGYqoCAAI3PuzA1NcXJkyexatUqZGRkoFGjRlixYgV69uwJAJg6dSoCAgLQokUL5OTkICkpCcuXL0dmZib69OkDExMTfPHFF0hPT1erNy0tDTdv3izzOspTz6JFi2BpaYnQ0FAkJiaiTp06cHd3x+zZs4UyXbt2hbm5Oa5du4ahQ4eWOE95YmFMF0RERK8u9ubIyMiAmZkZ0tPTYWpqWt3hMKZzubm5SEpKgoODAwwMDNT28WO6GWOalPV3Q5vPzWrvqWCMVR2JRMIf8oyxSsNzjhhjjDGmE5xUMMYYY0wnOKlgjDHGmE5wUsHYG+otG4PNGHsNuvp7wUkFY28YfX19AEA2L8zGGCunomnmrzuQm2d/MPaGkUgkqFOnDh4+fAgAMDQ0hEgkquaoGGM1lUqlwqNHj2BoaAg9vddLCzipYOwNVLQWTlFiwRhjZRGLxWjYsOFrfwHhpIKxN5BIJIKtrS2srKxQUFBQ3eEwxmo4qVSqk5VtOalg7A3GD7tijFUlHqjJGGOMMZ3gpIIxxhhjOsFJBWOMMcZ04q0bU1H0gI+MjIxqjoQxxhir+Yo+L8vzgKy3Lql4/vw5AMDOzq6aI2GMMcZqj+fPn8PMzKzMMiJ6y57lq1KpcO/ePZiYmOjsgUAZGRmws7PD7du3X7nWPHs1bk/d4vbULW5P3eL21K3KaE8iwvPnz6FQKF457fSt66kQi8Vo0KBBpdRtamrKvxQ6xO2pW9yeusXtqVvcnrql6/Z8VQ9FER6oyRhjjDGd4KSCMcYYYzrBSYUOyGQyBAUFQSaTVXcobwRuT93i9tQtbk/d4vbUrepuz7duoCZjjDHGKgf3VDDGGGNMJzipYIwxxphOcFLBGGOMMZ3gpIIxxhhjOsFJRTmtW7cO9vb2MDAwgIeHB86dO1dm+d27d6NZs2YwMDCAi4sLDhw4UEWR1g7atOf333+PTp06oW7duqhbty68vb1f2f5vG21/PotERERAJBKhb9++lRtgLaNtez579gzjx4+Hra0tZDIZmjZtyr/zxWjbnqtWrYKzszPkcjns7Ozw+eefIzc3t4qirdlOnjyJPn36QKFQQCQS4ZdffnnlMcePH4e7uztkMhmcnJwQFhZWeQESe6WIiAiSSqW0efNmunLlCo0ZM4bq1KlDDx480Fj+9OnTJJFIaNmyZRQXF0dz584lfX19+vvvv6s48ppJ2/YcOnQorVu3jmJiYig+Pp5GjBhBZmZmdOfOnSqOvGbStj2LJCUlUf369alTp07k5+dXNcHWAtq2Z15eHrVt25Z69epFUVFRlJSURMePH6fY2Ngqjrxm0rY9w8PDSSaTUXh4OCUlJdGhQ4fI1taWPv/88yqOvGY6cOAAzZkzh37++WcCQHv37i2zfGJiIhkaGlJgYCDFxcXRmjVrSCKRUGRkZKXEx0lFObRr147Gjx8vvFcqlaRQKCg0NFRj+UGDBlHv3r3Vtnl4eNCnn35aqXHWFtq258sKCwvJxMSEtm7dWlkh1ioVac/CwkJq3749/fDDDxQQEMBJRTHatue3335Ljo6OlJ+fX1Uh1iratuf48eOpa9euatsCAwOpQ4cOlRpnbVSepGL69On0zjvvqG0bPHgw+fj4VEpMfPvjFfLz83HhwgV4e3sL28RiMby9vREdHa3xmOjoaLXyAODj41Nq+bdJRdrzZdnZ2SgoKIC5uXllhVlrVLQ9v/zyS1hZWWH06NFVEWatUZH2/O233+Dp6Ynx48fD2toaLVu2REhICJRKZVWFXWNVpD3bt2+PCxcuCLdIEhMTceDAAfTq1atKYn7TVPXn0Vu3oJi20tLSoFQqYW1trbbd2toaV69e1XjM/fv3NZa/f/9+pcVZW1SkPV82Y8YMKBSKEr8ob6OKtGdUVBQ2bdqE2NjYKoiwdqlIeyYmJuKPP/6Av78/Dhw4gISEBHz22WcoKChAUFBQVYRdY1WkPYcOHYq0tDR07NgRRITCwkKMGzcOs2fProqQ3zilfR5lZGQgJycHcrlcp+fjngpWqyxZsgQRERHYu3cvDAwMqjucWuf58+cYPnw4vv/+e1hYWFR3OG8ElUoFKysrbNy4EW3atMHgwYMxZ84cbNiwobpDq5WOHz+OkJAQrF+/HhcvXsTPP/+M/fv3Y9GiRdUdGisH7ql4BQsLC0gkEjx48EBt+4MHD2BjY6PxGBsbG63Kv00q0p5FvvrqKyxZsgRHjhyBq6trZYZZa2jbnjdv3kRycjL69OkjbFOpVAAAPT09XLt2DY0bN67coGuwivx82traQl9fHxKJRNjWvHlz3L9/H/n5+ZBKpZUac01WkfacN28ehg8fjk8++QQA4OLigqysLIwdOxZz5syBWMzfhbVR2ueRqampznspAO6peCWpVIo2bdrg6NGjwjaVSoWjR4/C09NT4zGenp5q5QHg8OHDpZZ/m1SkPQFg2bJlWLRoESIjI9G2bduqCLVW0LY9mzVrhr///huxsbHC64MPPkCXLl0QGxsLOzu7qgy/xqnIz2eHDh2QkJAgJGcAcP36ddja2r7VCQVQsfbMzs4ukTgUJWzES1Vprco/jypl+OcbJiIigmQyGYWFhVFcXByNHTuW6tSpQ/fv3yciouHDh9PMmTOF8qdPnyY9PT366quvKD4+noKCgnhKaTHatueSJUtIKpXSnj17KDU1VXg9f/68ui6hRtG2PV/Gsz/UadueKSkpZGJiQhMmTKBr167Rvn37yMrKihYvXlxdl1CjaNueQUFBZGJiQjt27KDExET6/fffqXHjxjRo0KDquoQa5fnz5xQTE0MxMTEEgFauXEkxMTF069YtIiKaOXMmDR8+XChfNKV02rRpFB8fT+vWreMppTXBmjVrqGHDhiSVSqldu3b0559/Cvu8vLwoICBArfyuXbuoadOmJJVK6Z133qH9+/dXccQ1mzbt2ahRIwJQ4hUUFFT1gddQ2v58FsdJRUnatueZM2fIw8ODZDIZOTo6UnBwMBUWFlZx1DWXNu1ZUFBACxYsoMaNG5OBgQHZ2dnRZ599Rk+fPq36wGugY8eOafx7WNSGAQEB5OXlVeKYVq1akVQqJUdHR9qyZUulxcdLnzPGGGNMJ3hMBWOMMcZ0gpMKxhhjjOkEJxWMMcYY0wlOKhhjjDGmE5xUMMYYY0wnOKlgjDHGmE5wUsEYY4wxneCkgjHGGGM6wUkFY2+QsLAw1KlTp7rDqDCRSIRffvmlzDIjRoxA3759qyQexph2OKlgrIYZMWIERCJRiVdCQkJ1h4awsDAhHrFYjAYNGmDkyJF4+PChTupPTU1Fz549AQDJyckQiUSIjY1VK7N69WqEhYXp5HylWbBggXCdEokEdnZ2GDt2LJ48eaJVPZwAsbcNL33OWA3k6+uLLVu2qG2ztLSspmjUmZqa4tq1a1CpVLh06RJGjhyJe/fu4dChQ69dd2nLYRdnZmb22ucpj3feeQdHjhyBUqlEfHw8Ro0ahfT0dOzcubNKzs9YbcQ9FYzVQDKZDDY2NmoviUSClStXwsXFBUZGRrCzs8Nnn32GzMzMUuu5dOkSunTpAhMTE5iamqJNmzY4f/68sD8qKgqdOnWCXC6HnZ0dJk2ahKysrDJjE4lEsLGxgUKhQM+ePTFp0iQcOXIEOTk5UKlU+PLLL9GgQQPIZDK0atUKkZGRwrH5+fmYMGECbG1tYWBggEaNGiE0NFSt7qLbHw4ODgCA1q1bQyQSoXPnzgDUv/1v3LgRCoVCbdlxAPDz88OoUaOE97/++ivc3d1hYGAAR0dHLFy4EIWFhWVep56eHmxsbFC/fn14e3tj4MCBOHz4sLBfqVRi9OjRcHBwgFwuh7OzM1avXi3sX7BgAbZu3Ypff/1V6PU4fvw4AOD27dsYNGgQ6tSpA3Nzc/j5+SE5ObnMeBirDTipYKwWEYvF+Oabb3DlyhVs3boVf/zxB6ZPn15qeX9/fzRo0AB//fUXLly4gJkzZ0JfXx8AcPPmTfj6+mLAgAG4fPkydu7ciaioKEyYMEGrmORyOVQqFQoLC7F69WqsWLECX331FS5fvgwfHx988MEHuHHjBgDgm2++wW+//YZdu3bh2rVrCA8Ph729vcZ6z507BwA4cuQIUlNT8fPPP5coM3DgQDx+/BjHjh0Ttj158gSRkZHw9/cHAJw6dQoff/wxJk+ejLi4OHz33XcICwtDcHBwua8xOTkZhw4dglQqFbapVCo0aNAAu3fvRlxcHObPn4/Zs2dj165dAICpU6di0KBB8PX1RWpqKlJTU9G+fXsUFBTAx8cHJiYmOHXqFE6fPg1jY2P4+voiPz+/3DExViNV2vqnjLEKCQgIIIlEQkZGRsLrww8/1Fh29+7dVK9ePeH9li1byMzMTHhvYmJCYWFhGo8dPXo0jR07Vm3bqVOnSCwWU05OjsZjXq7/+vXr1LRpU2rbti0RESkUCgoODlY75t1336XPPvuMiIgmTpxIXbt2JZVKpbF+ALR3714iIkpKSiIAFBMTo1bm5aXa/fz8aNSoUcL77777jhQKBSmVSiIi6tatG4WEhKjV8dNPP5Gtra3GGIiIgoKCSCwWk5GRERkYGAjLS69cubLUY4iIxo8fTwMGDCg11qJzOzs7q7VBXl4eyeVyOnToUJn1M1bT8ZgKxmqgLl264NtvvxXeGxkZAXjxrT00NBRXr15FRkYGCgsLkZubi+zsbBgaGpaoJzAwEJ988gl++uknoQu/cePGAF7cGrl8+TLCw8OF8kQElUqFpKQkNG/eXGNs6enpMDY2hkqlQm5uLjp27IgffvgBGRkZuHfvHjp06KBWvkOHDrh06RKAF7cuunfvDmdnZ/j6+uL9999Hjx49Xqut/P39MWbMGKxfvx4ymQzh4eH46KOPIBaLhes8ffq0Ws+EUqkss90AwNnZGb/99htyc3Oxbds2xMbGYuLEiWpl1q1bh82bNyMlJQU5OTnIz89Hq1atyoz30qVLSEhIgImJidr23Nxc3Lx5swItwFjNwUkFYzWQkZERnJyc1LYlJyfj/fffx3//+18EBwfD3NwcUVFRGD16NPLz8zV+OC5YsABDhw7F/v37cfDgQQQFBSEiIgL9+vVDZmYmPv30U0yaNKnEcQ0bNiw1NhMTE1y8eBFisRi2traQy+UAgIyMjFdel7u7O5KSknDw4EEcOXIEgwYNgre3N/bs2fPKY0vTp08fEBH279+Pd999F6dOncLXX38t7M/MzMTChQvRv3//EscaGBiUWq9UKhX+D5YsWYLevXtj4cKFWLRoEQAgIiICU6dOxYoVK+Dp6QkTExMsX74cZ8+eLTPezMxMtGnTRi2ZK1JTBuMyVlGcVDBWS1y4cAEqlQorVqwQvoUX3b8vS9OmTdG0aVN8/vnnGDJkCLZs2YJ+/frB3d0dcXFxJZKXVxGLxRqPMTU1hUKhwOnTp+Hl5SVsP336NNq1a6dWbvDgwRg8eDA+/PBD+Pr64smTJzA3N1err2j8glKpLDMeAwMD9O/fH+Hh4UhISICzszPc3d2F/e7u7rh27ZrW1/myuXPnomvXrvjvf/8rXGf79u3x2WefCWVe7mmQSqUl4nd3d8fOnTthZWUFU1PT14qJsZqGB2oyVks4OTmhoKAAa9asQWJiIn766Sds2LCh1PI5OTmYMGECjh8/jlu3buH06dP466+/hNsaM2bMwJkzZzBhwgTExsbixo0b+PXXX7UeqFnctGnTsHTpUuzcuRPXrl3DzJkzERsbi8mTJwMAVq5ciR07duDq1au4fv06du/eDRsbG40P7LKysoJcLkdkZCQePHiA9PT0Us/r7++P/fv3Y/PmzcIAzSLz58/Hjz/+iIULF+LKlSuIj49HREQE5s6dq9W1eXp6wtXVFSEhIQCAJk2a4Pz58zh06BCuX7+OefPm4a+//lI7xt7eHpcvX8a1a9eQlpaGgoIC+Pv7w8LCAn5+fjh16hSSkpJw/PhxTJo0CXfu3NEqJsZqnOoe1MEYU6dpcF+RlStXkq2tLcnlcvLx8aEff/yRANDTp0+JSH0gZV5eHn300UdkZ2dHUqmUFAoFTZgwQW0Q5rlz56h79+5kbGxMRkZG5OrqWmKgZXEvD9R8mVKppAULFlD9+vVJX1+f3Nzc6ODBg8L+jRs3UqtWrcjIyIhMTU2pW7dudPHiRWE/ig3UJCL6/vvvyc7OjsRiMXl5eZXaPkqlkmxtbQkA3bx5s0RckZGR1L59e5LL5WRqakrt2rWjjRs3lnodQUFB5ObmVmL7jh07SCaTUUpKCuXm5tKIESPIzMyM6tSpQ//9739p5syZasc9fPhQaF8AdOzYMSIiSk1NpY8//pgsLCxIJpORo6MjjRkzhtLT00uNibHaQEREVL1pDWOMMcbeBHz7gzHGGGM6wUkFY4wxxnSCkwrGGGOM6QQnFYwxxhjTCU4qGGOMMaYTnFQwxhhjTCc4qWCMMcaYTnBSwRhjjDGd4KSCMcYYYzrBSQVjjDHGdIKTCsYYY4zpxP8BuVqVhF8WQWwAAAAASUVORK5CYII=", - "text/plain": [ - "<Figure size 600x600 with 1 Axes>" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "label=\"ROC curve of testing data\"\n", - "roc(X_test,y_test,model,label)" - ] - }, - { - "cell_type": "code", - "execution_count": 48, - "id": "169beac5", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - " precision recall f1-score support\n", - "\n", - " 0 0.91 1.00 0.95 30\n", - " 1 1.00 0.90 0.95 30\n", - "\n", - " accuracy 0.95 60\n", - " macro avg 0.95 0.95 0.95 60\n", - "weighted avg 0.95 0.95 0.95 60\n", - "\n" - ] - } - ], - "source": [ - "from sklearn.metrics import classification_report, confusion_matrix\n", - "grid_predictions = grid.predict(X_test)\n", - "print(classification_report(y_test, grid_predictions))" - ] - }, - { - "cell_type": "code", - "execution_count": 50, - "id": "aeeb0b36", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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kZo9e7aGDh2qqKgo5ebmasqUKYqLi1O/fv3cOg8JAwAANdjOnTvVu3dvx/LEiRMlSYmJiUpNTdWePXu0ePFinT59WtHR0erbt6/mzp3rdoujUgnDhx9+qJdeekm5ublauXKlmjZtqtdff12xsbG6+eabK3NIAAD8QxW3JHr16iXDuPxO77//vgfB/MTtSY9vvfWW+vXrp5CQEO3atUvFxcWSpDNnzuiJJ54wJSgAAGqsKn40dFVxO2GYN2+eFi5cqJdfflm1a9d2rL/pppv0ySefmBocAADwDW63JLKzs9WjR49L1kdEROj06dNmxAQAQI1V1ZMeq4rbFYaoqKhy793MyMhQy5YtTQkKAIAa6+KTHj0ZPsjthOHBBx/Uo48+qo8++kgWi0VfffWVli5dqkmTJunhhx/2RowAANQcfjqHwe2WxLRp02S323Xrrbfq3Llz6tGjh6xWqyZNmqSxY8d6I0YAAFDN3E4YLBaLHnvsMU2ePFk5OTkqKChQhw4dFBYW5o34AACoUfx1DkOlH9wUFBSkDh06mBkLAAA1n48/Grqy3E4YevfuLYvl8hMyNm3a5FFAAADA97idMHTt2tVpubS0VFlZWdq7d68SExPNigsAgJrJw5aE31QYnn322XLXJycnq6CgwOOAAACo0fy0JeH2bZWXc9999+m1114z63AAAMCHmPa2yu3btys4ONiswwEAUDP5aYXB7YRhyJAhTsuGYej48ePauXOnZsyYYVpgAADURNxW+aOIiAin5YCAALVt21Zz5sxR3759TQsMAAD4DrcShrKyMt1///3q1KmT6tWr562YAACAj3Fr0mNgYKD69u3LWykBALgcP32XhNt3SXTs2FGHDh3yRiwAANR4F+cweDJ8kdsJw7x58zRp0iStXbtWx48fV35+vtMAAAD+p8JzGObMmaM//OEPuv322yVJd955p9Mjog3DkMViUVlZmflRAgBQk/holcATFU4YZs+erYceekj/+c9/vBkPAAA129X+HAbDuHAFPXv29FowAADAN7l1W+WV3lIJAAB4cJMkqU2bNi6ThlOnTnkUEAAANdrV3pKQLsxj+PmTHgEAgP9zK2G455571KhRI2/FAgBAjXfVtySYvwAAQAX4aUuiwg9uuniXBAAAuPpUuMJgt9u9GQcAAP7BTysMbr/eGgAAXN5VP4cBAABUgJ9W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SY+oMnFxcSotLdULL7ygQ4cO6fXXX9fChQsvu/0PP/ygpKQkbd68WV988YW2bt2qjz/+2NFqmDp1qrZt26akpCRlZWXp4MGDeuedd5j0CJ93yy23aOfOnVqyZIkOHjyoWbNmOSUQ4eHhmjRpkiZMmKDFixcrNzdXn3zyiV544QUtXry4GiPH1YyEAVWmS5cueuaZZ/SXv/xFHTt21NKlS5WSknLZ7QMDA/Xdd99pxIgRatOmje6++24NGDBAs2fPliR17txZ6enp+vzzz9W9e3dde+21mjlzpqKjo6vqkoBK6devn2bMmKEpU6bohhtu0NmzZzVixAinbebOnasZM2YoJSVF7du3V//+/bVu3TrFxsZWU9S42vF6awAA4BIVBgAA4BIJAwAAcImEAQAAuETCAAAAXCJhAAAALpEwAAAAl0gYAACASyQMQA0xcuRIDRo0yLHcq1cvx5s6q9LmzZtlsVh0+vTpy25jsVi0evXqCh8zOTlZXbt29SiuI0eOyGKxKCsry6PjACgfCQPggZEjR8pischisSgoKEhxcXGaM2eOzp8/7/Vzv/3225o7d26Ftq3IlzwAXAkvnwI81L9/fy1atEjFxcX617/+pTFjxqh27dqaPn36JduWlJQoKCjIlPNGRkaachwAqAgqDICHrFaroqKi1KJFCz388MPq06eP3n33XUk/tREef/xxRUdHq23btpKkvLw83X333apbt64iIyM1cOBAHTlyxHHMsrIyTZw4UXXr1lX9+vU1ZcqUS16H/POWRHFxsaZOnaqYmBhZrVbFxcXp1Vdf1ZEjR9S7d29JUr169WSxWDRy5EhJkt1uV0pKimJjYxUSEqIuXbpo5cqVTuf517/+pTZt2igkJES9e/d2irOipk6dqjZt2qhOnTpq2bKlZsyY4fQ654teeuklxcTEqE6dOrr77rt15swZp89feeUVtW/fXsHBwWrXrp1efPFFt2MBUDkkDIDJQkJCVFJS4lj+4IMPlJ2drQ0bNmjt2rUqLS1Vv379FB4erg8//FBbt25VWFiY+vfv79jv6aefVlpaml577TVlZGTo1KlTWrVq1RXPO2LECP3zn//U/PnztX//fr300ksKCwtTTEyM3nrrLUlSdna2jh8/rueff16SlJKSoiVLlmjhwoX67LPPNGHCBN13331KT0+XdCGxGTJkiO644w5lZWVp9OjRmjZtmtv/TcLDw5WWlqZ9+/bp+eef18svv6xnn33WaZucnBy98cYbWrNmjdavX69du3bpkUcecXy+dOlSzZw5U48//rj279+vJ554QjNmzODtjUBVMQBUWmJiojFw4EDDMAzDbrcbGzZsMKxWqzFp0iTH540bNzaKi4sd+7z++utG27ZtDbvd7lhXXFxshISEGO+//75hGIbRpEkT48knn3R8XlpaajRr1sxxLsMwjJ49exqPPvqoYRiGkZ2dbUgyNmzYUG6c//nPfwxJxvfff+9YV1RUZNSpU8fYtm2b07ajRo0yhg0bZhiGYUyfPt3o0KGD0+dTp0695Fg/J8lYtWrVZT9/6qmnjPj4eMfyrFmzjMDAQOPYsWOOde+9954REBBgHD9+3DAMw2jVqpWxbNkyp+PMnTvXSEhIMAzDMA4fPmxIMnbt2nXZ8wKoPOYwAB5au3atwsLCVFpaKrvdrnvvvVfJycmOzzt16uQ0b2H37t3KyclReHi403GKioqUm5urM2fO6Pjx4+rWrZvjs1q1aun666+/pC1xUVZWlgIDA9WzZ88Kx52Tk6Nz587ptttuc1pfUlKia6+9VpK0f/9+pzgkKSEhocLnuGjFihWaP3++cnNzVVBQoPPnz8tmszlt07x5czVt2tTpPHa7XdnZ2QoPD1dubq5GjRqlBx980LHN+fPnFRER4XY8ANxHwgB4qHfv3kpNTVVQUJCio6NVq5bz/1ahoaFOywUFBYqPj9fSpUsvOVbDhg0rFUNISIjb+xQUFEiS1q1b5/RFLV2Yl2GW7du3a/jw4Zo9e7b69euniIgILV++XE8//bTbsb788suXJDCBgYGmxQrg8kgYAA+FhoYqLi6uwttfd911WrFihRo1anTJb9kXNWnSRB999JF69Ogh6cJv0pmZmbruuuvK3b5Tp06y2+1KT09Xnz59Lvn8YoWjrKzMsa5Dhw6yWq06evToZSsT7du3d0zgvGjHjh2uL/J/bNu2TS1atNBjjz3mWPfFF19cst3Ro0f11VdfKTo62nGegIAAtW3bVo0bN1Z0dLQOHTqk4cOHu3V+AOZg0iNQxYYPH64GDRpo4MCB+vDDD3X48GFt3rxZ48aN07FjxyRJjz76qP785z9r9erVOnDggB555JErPkPhmmuuUWJioh544AGtXr3accw33nhDktSiRQtZLBatXbtW33zzjQoKChQeHq5JkyZpwoQJWrx4sXJzc/XJJ5/ohRdecEwkfOihh3Tw4EFNnjxZ2dnZWrZsmdLS0ty63tatW+vo0aNavny5cnNzNX/+/HIncAYHBysxMVG7d+/Whx9+qHHjxunuu+9WVFSUJGn27NlKSUnR/Pnz9fnnn+vTTz/VokWL9Mwzz7gVD4DKIWEAqlidOnW0ZcsWNW/eXEOGDFH79u01atQoFRUVOSoOf/jDH/R///d/SkxMVEJCgsLDwzV48OArHjc1NVV33XWXHnnkEbVr104PPvigCgsLJUlNmzbV7NmzNW3aNDVu3FhJSUmSpLlz52rGjBlKSUlR+/bt1b9/f61bt06xsbGSLswreOutt7R69Wp16dJFCxcu1BNPPOHW9d55552aMGGCkpKS1LVrV23btk0zZsy4ZLu4uDgNGTJEt99+u/r27avOnTs73TY5evRovfLKK1q0aJE6deqknj17Ki0tzRErAO+yGJebRQUAAPAjKgwAAMAlEgYAAOASCQMAAHCJhAEAALhEwgAAAFwiYQAAAC6RMAAAAJdIGAAAgEskDAAAwCUSBgAA4BIJAwAAcImEAQAAuPT/AUUry5HtEYXzAAAAAElFTkSuQmCC", - "text/plain": [ - "<Figure size 640x480 with 2 Axes>" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "#######CONFUSION MATRIX ###########\n", - "from sklearn import metrics\n", - "y_test_pred_xgb = model_xgb.predict(X_test)\n", - "confusion_matrix_test = metrics.confusion_matrix(y_test, y_test_pred_xgb)\n", - "cm_display = metrics.ConfusionMatrixDisplay(confusion_matrix = confusion_matrix_test, display_labels = [False, True])\n", - "cm_display.plot()\n", - "plt.show()" - ] - }, - { - "cell_type": "code", - "execution_count": 51, - "id": "ca09e716", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Accuracy : 0.95\n", - "Sensitivity : 1.0\n", - "Specificity : 0.9\n" - ] - } - ], - "source": [ - "total1=sum(sum(confusion_matrix_test))\n", - "#####from confusion matrix calculate accuracy\n", - "accuracy1=(confusion_matrix_test[0,0]+confusion_matrix_test[1,1])/total1\n", - "print ('Accuracy : ', accuracy1)\n", - "\n", - "sensitivity1 = confusion_matrix_test[0,0]/(confusion_matrix_test[0,0]+confusion_matrix_test[0,1])\n", - "print('Sensitivity : ', sensitivity1 )\n", - "\n", - "specificity1 = confusion_matrix_test[1,1]/(confusion_matrix_test[1,0]+confusion_matrix_test[1,1])\n", - "print('Specificity : ', specificity1)" - ] - }, - { - "cell_type": "code", - "execution_count": 52, - "id": "c1095af0", - "metadata": {}, - "outputs": [], - "source": [ - "# for important features:\n", - "important_feat = model_xgb.feature_importances_\n", - "#get indices of those important features\n", - "idx = important_feat.argsort(kind= \"quicksort\")\n", - "idx= idx[::-1][:50]" - ] - }, - { - "cell_type": "code", - "execution_count": 53, - "id": "ae7e0162", - "metadata": {}, - "outputs": [], - "source": [ - "df1 = X_selected.T" - ] - }, - { - "cell_type": "code", - "execution_count": 54, - "id": "1d97f818", - "metadata": {}, - "outputs": [], - "source": [ - "top_met = df1.iloc[idx]" - ] - }, - { - "cell_type": "code", - "execution_count": 55, - "id": "4cd4227b", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "Index(['RUVBL1', 'TRIP13', 'COL1A1', 'NDRG2', 'MCM2', 'DUOX1', 'FSCN1',\n", - " 'TMPRSS11E', 'ANO1', 'IGFBP3', 'TIAM1', 'GPX3', 'HOPX', 'CFD',\n", - " 'PPP1R3C', 'TMPRSS11D', 'COL5A2', 'IL1RN', 'LYPD3', 'SLURP1', 'MYH10',\n", - " 'SERPINB2', 'TSPAN6', 'SIM2', 'ALOX12', 'TYMP', 'SPRR3', 'MMP10',\n", - " 'ERCC3', 'EMP1', 'FLG', 'GABRP', 'GALE', 'GALNT1', 'HSPB8', 'HSPBAP1',\n", - " 'HSPD1', 'ENTPD6', 'ACPP', 'AIM2', 'ALDH9A1', 'AQP3', 'ATP6V1D',\n", - " 'ZNF185', 'CES2', 'CH25H', 'CLIC3', 'CYP4B1', 'CRISP3', 'CRNN'],\n", - " dtype='object')" - ] - }, - "execution_count": 55, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "top_met.index" - ] - }, - { - "cell_type": "code", - "execution_count": 56, - "id": "8f6d88bb", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "Index(['ACLY', 'ACPP', 'AIM2', 'ALDH9A1', 'ALOX12', 'ANO1', 'AQP3', 'ATP6V1D',\n", - " 'CCNG2', 'CES2', 'CFD', 'CH25H', 'CLIC3', 'COL1A1', 'COL5A2', 'CRABP2',\n", - " 'CRISP3', 'CRNN', 'CYP4B1', 'DHRS1', 'DHRS2', 'DUOX1', 'DUSP5', 'ECM1',\n", - " 'ECT2', 'EFNA1', 'EMP1', 'ENTPD6', 'ERCC3', 'FLG', 'FSCN1', 'GABRP',\n", - " 'GALE', 'GALNT1', 'GPX3', 'HOPX', 'HSPB8', 'HSPBAP1', 'HSPD1', 'ID4',\n", - " 'IFI35', 'IGF2BP2', 'IGFBP3', 'IL1RN', 'INPP1', 'KANK1', 'KLK13',\n", - " 'KRT4', 'LAMC2', 'LCN2', 'LEPROTL1', 'LYPD3', 'MAL', 'MCM2', 'MMP10',\n", - " 'MUC1', 'MYH10', 'NDRG2', 'NT5C2', 'PCSK5', 'PHLDA1', 'PITX1',\n", - " 'PPP1R3C', 'PSMB9', 'PTN', 'RAB11FIP1', 'RANBP9', 'RHCG', 'RND3',\n", - " 'RPN1', 'RUVBL1', 'SCNN1A', 'SERPINB13', 'SERPINB2', 'SIM2', 'SLC2A1',\n", - " 'SLK', 'SLURP1', 'SPINK5', 'SPRR3', 'SSRP1', 'STK24', 'SYNPO2L',\n", - " 'TAPBP', 'TFAP2B', 'TGIF1', 'TIAM1', 'TJP1', 'TMF1', 'TMPRSS11D',\n", - " 'TMPRSS11E', 'TRIP13', 'TSPAN6', 'TST', 'TYMP', 'UCHL1', 'ZBTB16',\n", - " 'ZNF185'],\n", - " dtype='object')" - ] - }, - "execution_count": 56, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "X_selected.columns" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "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.9.16" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/03_Machine_Learning/DS_miRNA_limma_dataset_xgb_final-F.ipynb b/03_Machine_Learning/DS_miRNA_limma_dataset_xgb_final-F.ipynb deleted file mode 100644 index 45657d71aa1283f784d0dfce0591ca031d469ce8..0000000000000000000000000000000000000000 --- a/03_Machine_Learning/DS_miRNA_limma_dataset_xgb_final-F.ipynb +++ /dev/null @@ -1,1119 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 37, - "id": "f097ad55", - "metadata": {}, - "outputs": [], - "source": [ - "import warnings\n", - "warnings.filterwarnings('ignore')\n", - "import pandas as pd\n", - "from sklearn.model_selection import train_test_split\n", - "#from sklearn.model_selection import cross_val_score\n", - "#from sklearn.metrics import accuracy_score\n", - "#import sklearn.metrics as metrics\n", - "#from sklearn.metrics import auc\n", - "from sklearn.metrics import RocCurveDisplay\n", - "#from sklearn.model_selection import KFold\n", - "import matplotlib.pyplot as plt\n", - "import numpy as np\n", - "from imblearn.over_sampling import SMOTE\n", - "from sklearn.linear_model import Lasso\n", - "import xgboost as xgb\n", - "from sklearn.model_selection import GridSearchCV\n", - "import pandas as pd\n", - "import numpy as np\n", - "\n", - "#np.random.seed(7)" - ] - }, - { - "cell_type": "markdown", - "id": "73b6611a", - "metadata": {}, - "source": [ - "# Data Preprocessing" - ] - }, - { - "cell_type": "code", - "execution_count": 38, - "id": "0eeb7a35", - "metadata": {}, - "outputs": [], - "source": [ - "df = pd.read_csv(\"DS/miRNA_DS_preprocessed_data.csv\")" - ] - }, - { - "cell_type": "code", - "execution_count": 40, - "id": "6e7836e1", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "(230, 239)" - ] - }, - "execution_count": 40, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "df.shape" - ] - }, - { - "cell_type": "code", - "execution_count": 41, - "id": "683b63ce", - "metadata": {}, - "outputs": [], - "source": [ - "df = df.T" - ] - }, - { - "cell_type": "code", - "execution_count": 42, - "id": "2e78017d", - "metadata": {}, - "outputs": [], - "source": [ - "#Transform the input data\n", - "df.rename(columns=df.iloc[0], inplace = True)\n", - "df.drop(df.index[0], inplace = True)\n", - "df=df.reset_index()" - ] - }, - { - "cell_type": "code", - "execution_count": 44, - "id": "4c50c510", - "metadata": {}, - "outputs": [], - "source": [ - "metadata = pd.read_csv(\"DS/miRNA_DS_metadata_col_info.csv\")" - ] - }, - { - "cell_type": "code", - "execution_count": 46, - "id": "6730cf89", - "metadata": {}, - "outputs": [], - "source": [ - "df= df.merge(metadata, left_on=\"index\", right_on= \"Unnamed: 0\")" - ] - }, - { - "cell_type": "code", - "execution_count": 48, - "id": "7a8ad8ad", - "metadata": {}, - "outputs": [], - "source": [ - "df['title0'] = df['title0'].replace('(?i)mucosa|normal|healthy', 0, regex=True)\n" - ] - }, - { - "cell_type": "code", - "execution_count": 49, - "id": "a8cf8643", - "metadata": {}, - "outputs": [], - "source": [ - "df['title0'] = df['title0'].replace('(?i)Tumor|Cancer|carcinoma', 1, regex=True)" - ] - }, - { - "cell_type": "code", - "execution_count": 50, - "id": "5c852a3f", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "title0\n", - "1 119\n", - "0 119\n", - "Name: count, dtype: int64" - ] - }, - "execution_count": 50, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "df['title0'].value_counts()" - ] - }, - { - "cell_type": "code", - "execution_count": 51, - "id": "f5d203aa", - "metadata": {}, - "outputs": [], - "source": [ - "df = df[pd.to_numeric(df['title0'], errors='coerce').notnull()]#remove all non-numeric data from the column." - ] - }, - { - "cell_type": "code", - "execution_count": 53, - "id": "523bdaa6", - "metadata": {}, - "outputs": [], - "source": [ - "df= df.drop(['index', 'Unnamed: 0'], axis=1)" - ] - }, - { - "cell_type": "code", - "execution_count": 54, - "id": "46a6fb36", - "metadata": {}, - "outputs": [], - "source": [ - "df= df.rename(columns={\"title0\": \"index\"})" - ] - }, - { - "cell_type": "code", - "execution_count": 55, - "id": "e26f88c5", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "index\n", - "1 119\n", - "0 119\n", - "Name: count, dtype: int64" - ] - }, - "execution_count": 55, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "df['index'].value_counts()" - ] - }, - { - "cell_type": "code", - "execution_count": 56, - "id": "fbaf2507", - "metadata": {}, - "outputs": [], - "source": [ - "df= df.apply(pd.to_numeric)" - ] - }, - { - "cell_type": "code", - "execution_count": 57, - "id": "f3f7adb5", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "index\n", - "1 119\n", - "0 119\n", - "Name: count, dtype: int64" - ] - }, - "execution_count": 57, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "df['index'].value_counts()" - ] - }, - { - "cell_type": "code", - "execution_count": 58, - "id": "6a50f416", - "metadata": {}, - "outputs": [], - "source": [ - "X=df.drop(\"index\",axis=1)\n", - "y=df['index']" - ] - }, - { - "cell_type": "code", - "execution_count": 59, - "id": "e644ab0e", - "metadata": {}, - "outputs": [], - "source": [ - "y=y.astype('int')" - ] - }, - { - "cell_type": "markdown", - "id": "6cee6462", - "metadata": {}, - "source": [ - "# Test train split" - ] - }, - { - "cell_type": "code", - "execution_count": 62, - "id": "1da48142", - "metadata": {}, - "outputs": [], - "source": [ - "# split data into training and testing data-sets\n", - "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state=7)" - ] - }, - { - "cell_type": "code", - "execution_count": 63, - "id": "129430e6", - "metadata": { - "scrolled": true - }, - "outputs": [ - { - "data": { - "text/plain": [ - "(index\n", - " 0 30\n", - " 1 30\n", - " Name: count, dtype: int64,\n", - " index\n", - " 0 89\n", - " 1 89\n", - " Name: count, dtype: int64)" - ] - }, - "execution_count": 63, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "y_test.value_counts(),y_train.value_counts()" - ] - }, - { - "cell_type": "markdown", - "id": "1cfe2a06", - "metadata": {}, - "source": [ - "# Cross validation" - ] - }, - { - "cell_type": "code", - "execution_count": 64, - "id": "d3550b5e", - "metadata": { - "scrolled": true - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Fitting 5 folds for each of 36 candidates, totalling 180 fits\n", - "[CV 1/5] END gamma=0.1, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=1.0;, score=1.000 total time= 0.2s\n", - "[CV 2/5] END gamma=0.1, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=1.0;, score=1.000 total time= 0.1s\n", - "[CV 3/5] END gamma=0.1, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=1.0;, score=0.972 total time= 0.1s\n", - "[CV 4/5] END gamma=0.1, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=1.0;, score=0.971 total time= 0.1s\n", - "[CV 5/5] END gamma=0.1, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=1.0;, score=0.971 total time= 0.1s\n", - "[CV 1/5] END gamma=0.1, learning_rate=0.1, max_depth=3, n_estimators=200, subsample=1.0;, score=1.000 total time= 0.2s\n", - "[CV 2/5] END gamma=0.1, learning_rate=0.1, max_depth=3, n_estimators=200, subsample=1.0;, score=1.000 total time= 0.2s\n", - "[CV 3/5] END gamma=0.1, learning_rate=0.1, max_depth=3, n_estimators=200, subsample=1.0;, score=0.972 total time= 0.3s\n", - "[CV 4/5] END gamma=0.1, learning_rate=0.1, max_depth=3, n_estimators=200, subsample=1.0;, score=0.971 total time= 0.2s\n", - "[CV 5/5] END gamma=0.1, learning_rate=0.1, max_depth=3, n_estimators=200, subsample=1.0;, score=0.971 total time= 0.3s\n", - "[CV 1/5] END gamma=0.1, learning_rate=0.1, max_depth=5, n_estimators=100, subsample=1.0;, score=1.000 total time= 0.1s\n", - "[CV 2/5] END gamma=0.1, learning_rate=0.1, max_depth=5, n_estimators=100, subsample=1.0;, score=1.000 total time= 0.1s\n", - "[CV 3/5] END gamma=0.1, learning_rate=0.1, max_depth=5, n_estimators=100, subsample=1.0;, score=0.972 total time= 0.1s\n", - "[CV 4/5] END gamma=0.1, learning_rate=0.1, max_depth=5, n_estimators=100, subsample=1.0;, score=0.971 total time= 0.1s\n", - "[CV 5/5] END gamma=0.1, learning_rate=0.1, max_depth=5, n_estimators=100, subsample=1.0;, score=0.971 total time= 0.1s\n", - "[CV 1/5] END gamma=0.1, learning_rate=0.1, max_depth=5, n_estimators=200, subsample=1.0;, score=1.000 total time= 0.2s\n", - "[CV 2/5] END gamma=0.1, learning_rate=0.1, max_depth=5, n_estimators=200, subsample=1.0;, score=1.000 total time= 0.2s\n", - "[CV 3/5] END gamma=0.1, learning_rate=0.1, max_depth=5, n_estimators=200, subsample=1.0;, score=0.972 total time= 0.2s\n", - "[CV 4/5] END gamma=0.1, learning_rate=0.1, max_depth=5, n_estimators=200, subsample=1.0;, score=0.971 total time= 0.2s\n", - "[CV 5/5] END gamma=0.1, learning_rate=0.1, max_depth=5, n_estimators=200, subsample=1.0;, score=0.971 total time= 0.2s\n", - "[CV 1/5] END gamma=0.1, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=1.0;, score=0.944 total time= 0.2s\n", - "[CV 2/5] END gamma=0.1, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=1.0;, score=0.889 total time= 0.2s\n", - "[CV 3/5] END gamma=0.1, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=1.0;, score=0.972 total time= 0.2s\n", - "[CV 4/5] END gamma=0.1, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=1.0;, score=0.971 total time= 0.2s\n", - "[CV 5/5] END gamma=0.1, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=1.0;, score=0.943 total time= 0.2s\n", - "[CV 1/5] END gamma=0.1, learning_rate=0.01, max_depth=3, n_estimators=200, subsample=1.0;, score=1.000 total time= 0.4s\n", - "[CV 2/5] END gamma=0.1, learning_rate=0.01, max_depth=3, n_estimators=200, subsample=1.0;, score=0.917 total time= 0.3s\n", - "[CV 3/5] END gamma=0.1, learning_rate=0.01, max_depth=3, n_estimators=200, subsample=1.0;, score=0.972 total time= 0.3s\n", - "[CV 4/5] END gamma=0.1, learning_rate=0.01, max_depth=3, n_estimators=200, subsample=1.0;, score=0.971 total time= 0.3s\n", - "[CV 5/5] END gamma=0.1, learning_rate=0.01, max_depth=3, n_estimators=200, subsample=1.0;, score=0.943 total time= 0.4s\n", - "[CV 1/5] END gamma=0.1, learning_rate=0.01, max_depth=5, n_estimators=100, subsample=1.0;, score=0.944 total time= 0.2s\n", - "[CV 2/5] END gamma=0.1, learning_rate=0.01, max_depth=5, n_estimators=100, subsample=1.0;, score=0.889 total time= 0.2s\n", - "[CV 3/5] END gamma=0.1, learning_rate=0.01, max_depth=5, n_estimators=100, subsample=1.0;, score=0.972 total time= 0.2s\n", - "[CV 4/5] END gamma=0.1, learning_rate=0.01, max_depth=5, n_estimators=100, subsample=1.0;, score=0.971 total time= 0.2s\n", - "[CV 5/5] END gamma=0.1, learning_rate=0.01, max_depth=5, n_estimators=100, subsample=1.0;, score=0.943 total time= 0.1s\n", - "[CV 1/5] END gamma=0.1, learning_rate=0.01, max_depth=5, n_estimators=200, subsample=1.0;, score=1.000 total time= 0.3s\n", - "[CV 2/5] END gamma=0.1, learning_rate=0.01, max_depth=5, n_estimators=200, subsample=1.0;, score=0.917 total time= 0.3s\n", - "[CV 3/5] END gamma=0.1, learning_rate=0.01, max_depth=5, n_estimators=200, subsample=1.0;, score=0.972 total time= 0.3s\n", - "[CV 4/5] END gamma=0.1, learning_rate=0.01, max_depth=5, n_estimators=200, subsample=1.0;, score=0.971 total time= 0.4s\n", - "[CV 5/5] END gamma=0.1, learning_rate=0.01, max_depth=5, n_estimators=200, subsample=1.0;, score=0.943 total time= 0.3s\n", - "[CV 1/5] END gamma=0.1, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=1.0;, score=0.944 total time= 0.1s\n", - "[CV 2/5] END gamma=0.1, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=1.0;, score=0.889 total time= 0.2s\n", - "[CV 3/5] END gamma=0.1, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=1.0;, score=0.972 total time= 0.1s\n", - "[CV 4/5] END gamma=0.1, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=1.0;, score=0.971 total time= 0.2s\n", - "[CV 5/5] END gamma=0.1, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=1.0;, score=0.943 total time= 0.1s\n", - "[CV 1/5] END gamma=0.1, learning_rate=0.001, max_depth=3, n_estimators=200, subsample=1.0;, score=0.944 total time= 0.4s\n", - "[CV 2/5] END gamma=0.1, learning_rate=0.001, max_depth=3, n_estimators=200, subsample=1.0;, score=0.889 total time= 0.3s\n", - "[CV 3/5] END gamma=0.1, learning_rate=0.001, max_depth=3, n_estimators=200, subsample=1.0;, score=0.972 total time= 0.4s\n", - "[CV 4/5] END gamma=0.1, learning_rate=0.001, max_depth=3, n_estimators=200, subsample=1.0;, score=0.971 total time= 0.3s\n", - "[CV 5/5] END gamma=0.1, learning_rate=0.001, max_depth=3, n_estimators=200, subsample=1.0;, score=0.943 total time= 0.3s\n", - "[CV 1/5] END gamma=0.1, learning_rate=0.001, max_depth=5, n_estimators=100, subsample=1.0;, score=0.944 total time= 0.1s\n", - "[CV 2/5] END gamma=0.1, learning_rate=0.001, max_depth=5, n_estimators=100, subsample=1.0;, score=0.889 total time= 0.2s\n", - "[CV 3/5] END gamma=0.1, learning_rate=0.001, max_depth=5, n_estimators=100, subsample=1.0;, score=0.972 total time= 0.1s\n", - "[CV 4/5] END gamma=0.1, learning_rate=0.001, max_depth=5, n_estimators=100, subsample=1.0;, score=0.971 total time= 0.2s\n", - "[CV 5/5] END gamma=0.1, learning_rate=0.001, max_depth=5, n_estimators=100, subsample=1.0;, score=0.943 total time= 0.2s\n", - "[CV 1/5] END gamma=0.1, learning_rate=0.001, max_depth=5, n_estimators=200, subsample=1.0;, score=0.944 total time= 0.4s\n", - "[CV 2/5] END gamma=0.1, learning_rate=0.001, max_depth=5, n_estimators=200, subsample=1.0;, score=0.889 total time= 0.4s\n", - "[CV 3/5] END gamma=0.1, learning_rate=0.001, max_depth=5, n_estimators=200, subsample=1.0;, score=0.972 total time= 0.4s\n", - "[CV 4/5] END gamma=0.1, learning_rate=0.001, max_depth=5, n_estimators=200, subsample=1.0;, score=0.971 total time= 0.4s\n", - "[CV 5/5] END gamma=0.1, learning_rate=0.001, max_depth=5, n_estimators=200, subsample=1.0;, score=0.943 total time= 0.4s\n", - "[CV 1/5] END gamma=0.01, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=1.0;, score=1.000 total time= 0.1s\n", - "[CV 2/5] END gamma=0.01, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=1.0;, score=1.000 total time= 0.1s\n", - "[CV 3/5] END gamma=0.01, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=1.0;, score=0.972 total time= 0.2s\n", - "[CV 4/5] END gamma=0.01, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=1.0;, score=0.971 total time= 0.1s\n", - "[CV 5/5] END gamma=0.01, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=1.0;, score=0.971 total time= 0.1s\n", - "[CV 1/5] END gamma=0.01, learning_rate=0.1, max_depth=3, n_estimators=200, subsample=1.0;, score=1.000 total time= 0.2s\n", - "[CV 2/5] END gamma=0.01, learning_rate=0.1, max_depth=3, n_estimators=200, subsample=1.0;, score=1.000 total time= 0.2s\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[CV 3/5] END gamma=0.01, learning_rate=0.1, max_depth=3, n_estimators=200, subsample=1.0;, score=0.972 total time= 0.3s\n", - "[CV 4/5] END gamma=0.01, learning_rate=0.1, max_depth=3, n_estimators=200, subsample=1.0;, score=0.971 total time= 0.2s\n", - "[CV 5/5] END gamma=0.01, learning_rate=0.1, max_depth=3, n_estimators=200, subsample=1.0;, score=0.971 total time= 0.2s\n", - "[CV 1/5] END gamma=0.01, learning_rate=0.1, max_depth=5, n_estimators=100, subsample=1.0;, score=1.000 total time= 0.1s\n", - "[CV 2/5] END gamma=0.01, learning_rate=0.1, max_depth=5, n_estimators=100, subsample=1.0;, score=1.000 total time= 0.1s\n", - "[CV 3/5] END gamma=0.01, learning_rate=0.1, max_depth=5, n_estimators=100, subsample=1.0;, score=0.972 total time= 0.1s\n", - "[CV 4/5] END gamma=0.01, learning_rate=0.1, max_depth=5, n_estimators=100, subsample=1.0;, score=0.971 total time= 0.1s\n", - "[CV 5/5] END gamma=0.01, learning_rate=0.1, max_depth=5, n_estimators=100, subsample=1.0;, score=0.971 total time= 0.1s\n", - "[CV 1/5] END gamma=0.01, learning_rate=0.1, max_depth=5, n_estimators=200, subsample=1.0;, score=1.000 total time= 0.2s\n", - "[CV 2/5] END gamma=0.01, learning_rate=0.1, max_depth=5, n_estimators=200, subsample=1.0;, score=1.000 total time= 0.2s\n", - "[CV 3/5] END gamma=0.01, learning_rate=0.1, max_depth=5, n_estimators=200, subsample=1.0;, score=0.972 total time= 0.2s\n", - "[CV 4/5] END gamma=0.01, learning_rate=0.1, max_depth=5, n_estimators=200, subsample=1.0;, score=0.971 total time= 0.2s\n", - "[CV 5/5] END gamma=0.01, learning_rate=0.1, max_depth=5, n_estimators=200, subsample=1.0;, score=0.971 total time= 0.2s\n", - "[CV 1/5] END gamma=0.01, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=1.0;, score=0.944 total time= 0.2s\n", - "[CV 2/5] END gamma=0.01, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=1.0;, score=0.917 total time= 0.2s\n", - "[CV 3/5] END gamma=0.01, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=1.0;, score=0.972 total time= 0.2s\n", - "[CV 4/5] END gamma=0.01, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=1.0;, score=0.971 total time= 0.2s\n", - "[CV 5/5] END gamma=0.01, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=1.0;, score=0.943 total time= 0.2s\n", - "[CV 1/5] END gamma=0.01, learning_rate=0.01, max_depth=3, n_estimators=200, subsample=1.0;, score=1.000 total time= 0.3s\n", - "[CV 2/5] END gamma=0.01, learning_rate=0.01, max_depth=3, n_estimators=200, subsample=1.0;, score=0.917 total time= 0.3s\n", - "[CV 3/5] END gamma=0.01, learning_rate=0.01, max_depth=3, n_estimators=200, subsample=1.0;, score=0.972 total time= 0.4s\n", - "[CV 4/5] END gamma=0.01, learning_rate=0.01, max_depth=3, n_estimators=200, subsample=1.0;, score=0.971 total time= 0.4s\n", - "[CV 5/5] END gamma=0.01, learning_rate=0.01, max_depth=3, n_estimators=200, subsample=1.0;, score=0.943 total time= 0.4s\n", - "[CV 1/5] END gamma=0.01, learning_rate=0.01, max_depth=5, n_estimators=100, subsample=1.0;, score=0.944 total time= 0.2s\n", - "[CV 2/5] END gamma=0.01, learning_rate=0.01, max_depth=5, n_estimators=100, subsample=1.0;, score=0.917 total time= 0.2s\n", - "[CV 3/5] END gamma=0.01, learning_rate=0.01, max_depth=5, n_estimators=100, subsample=1.0;, score=0.972 total time= 0.2s\n", - "[CV 4/5] END gamma=0.01, learning_rate=0.01, max_depth=5, n_estimators=100, subsample=1.0;, score=0.971 total time= 0.2s\n", - "[CV 5/5] END gamma=0.01, learning_rate=0.01, max_depth=5, n_estimators=100, subsample=1.0;, score=0.943 total time= 0.2s\n", - "[CV 1/5] END gamma=0.01, learning_rate=0.01, max_depth=5, n_estimators=200, subsample=1.0;, score=1.000 total time= 0.3s\n", - "[CV 2/5] END gamma=0.01, learning_rate=0.01, max_depth=5, n_estimators=200, subsample=1.0;, score=0.917 total time= 0.3s\n", - "[CV 3/5] END gamma=0.01, learning_rate=0.01, max_depth=5, n_estimators=200, subsample=1.0;, score=0.972 total time= 0.4s\n", - "[CV 4/5] END gamma=0.01, learning_rate=0.01, max_depth=5, n_estimators=200, subsample=1.0;, score=0.971 total time= 0.3s\n", - "[CV 5/5] END gamma=0.01, learning_rate=0.01, max_depth=5, n_estimators=200, subsample=1.0;, score=0.943 total time= 0.3s\n", - "[CV 1/5] END gamma=0.01, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=1.0;, score=0.944 total time= 0.1s\n", - "[CV 2/5] END gamma=0.01, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=1.0;, score=0.889 total time= 0.2s\n", - "[CV 3/5] END gamma=0.01, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=1.0;, score=0.972 total time= 0.3s\n", - "[CV 4/5] END gamma=0.01, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=1.0;, score=0.971 total time= 0.2s\n", - "[CV 5/5] END gamma=0.01, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=1.0;, score=0.943 total time= 0.2s\n", - "[CV 1/5] END gamma=0.01, learning_rate=0.001, max_depth=3, n_estimators=200, subsample=1.0;, score=0.944 total time= 0.4s\n", - "[CV 2/5] END gamma=0.01, learning_rate=0.001, max_depth=3, n_estimators=200, subsample=1.0;, score=0.889 total time= 0.4s\n", - "[CV 3/5] END gamma=0.01, learning_rate=0.001, max_depth=3, n_estimators=200, subsample=1.0;, score=0.972 total time= 0.3s\n", - "[CV 4/5] END gamma=0.01, learning_rate=0.001, max_depth=3, n_estimators=200, subsample=1.0;, score=0.971 total time= 0.3s\n", - "[CV 5/5] END gamma=0.01, learning_rate=0.001, max_depth=3, n_estimators=200, subsample=1.0;, score=0.943 total time= 0.3s\n", - "[CV 1/5] END gamma=0.01, learning_rate=0.001, max_depth=5, n_estimators=100, subsample=1.0;, score=0.944 total time= 0.2s\n", - "[CV 2/5] END gamma=0.01, learning_rate=0.001, max_depth=5, n_estimators=100, subsample=1.0;, score=0.889 total time= 0.1s\n", - "[CV 3/5] END gamma=0.01, learning_rate=0.001, max_depth=5, n_estimators=100, subsample=1.0;, score=0.972 total time= 0.2s\n", - "[CV 4/5] END gamma=0.01, learning_rate=0.001, max_depth=5, n_estimators=100, subsample=1.0;, score=0.971 total time= 0.2s\n", - "[CV 5/5] END gamma=0.01, learning_rate=0.001, max_depth=5, n_estimators=100, subsample=1.0;, score=0.943 total time= 0.1s\n", - "[CV 1/5] END gamma=0.01, learning_rate=0.001, max_depth=5, n_estimators=200, subsample=1.0;, score=0.944 total time= 0.3s\n", - "[CV 2/5] END gamma=0.01, learning_rate=0.001, max_depth=5, n_estimators=200, subsample=1.0;, score=0.889 total time= 0.4s\n", - "[CV 3/5] END gamma=0.01, learning_rate=0.001, max_depth=5, n_estimators=200, subsample=1.0;, score=0.972 total time= 0.4s\n", - "[CV 4/5] END gamma=0.01, learning_rate=0.001, max_depth=5, n_estimators=200, subsample=1.0;, score=0.971 total time= 0.3s\n", - "[CV 5/5] END gamma=0.01, learning_rate=0.001, max_depth=5, n_estimators=200, subsample=1.0;, score=0.943 total time= 0.4s\n", - "[CV 1/5] END gamma=0.001, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=1.0;, score=1.000 total time= 0.1s\n", - "[CV 2/5] END gamma=0.001, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=1.0;, score=1.000 total time= 0.1s\n", - "[CV 3/5] END gamma=0.001, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=1.0;, score=0.972 total time= 0.2s\n", - "[CV 4/5] END gamma=0.001, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=1.0;, score=0.971 total time= 0.2s\n", - "[CV 5/5] END gamma=0.001, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=1.0;, score=0.971 total time= 0.2s\n", - "[CV 1/5] END gamma=0.001, learning_rate=0.1, max_depth=3, n_estimators=200, subsample=1.0;, score=1.000 total time= 0.2s\n", - "[CV 2/5] END gamma=0.001, learning_rate=0.1, max_depth=3, n_estimators=200, subsample=1.0;, score=1.000 total time= 0.2s\n", - "[CV 3/5] END gamma=0.001, learning_rate=0.1, max_depth=3, n_estimators=200, subsample=1.0;, score=0.972 total time= 0.2s\n", - "[CV 4/5] END gamma=0.001, learning_rate=0.1, max_depth=3, n_estimators=200, subsample=1.0;, score=0.971 total time= 0.2s\n", - "[CV 5/5] END gamma=0.001, learning_rate=0.1, max_depth=3, n_estimators=200, subsample=1.0;, score=0.971 total time= 0.2s\n", - "[CV 1/5] END gamma=0.001, learning_rate=0.1, max_depth=5, n_estimators=100, subsample=1.0;, score=1.000 total time= 0.1s\n", - "[CV 2/5] END gamma=0.001, learning_rate=0.1, max_depth=5, n_estimators=100, subsample=1.0;, score=1.000 total time= 0.2s\n", - "[CV 3/5] END gamma=0.001, learning_rate=0.1, max_depth=5, n_estimators=100, subsample=1.0;, score=0.972 total time= 0.1s\n", - "[CV 4/5] END gamma=0.001, learning_rate=0.1, max_depth=5, n_estimators=100, subsample=1.0;, score=0.971 total time= 0.1s\n", - "[CV 5/5] END gamma=0.001, learning_rate=0.1, max_depth=5, n_estimators=100, subsample=1.0;, score=0.971 total time= 0.1s\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[CV 1/5] END gamma=0.001, learning_rate=0.1, max_depth=5, n_estimators=200, subsample=1.0;, score=1.000 total time= 0.2s\n", - "[CV 2/5] END gamma=0.001, learning_rate=0.1, max_depth=5, n_estimators=200, subsample=1.0;, score=1.000 total time= 0.2s\n", - "[CV 3/5] END gamma=0.001, learning_rate=0.1, max_depth=5, n_estimators=200, subsample=1.0;, score=0.972 total time= 0.2s\n", - "[CV 4/5] END gamma=0.001, learning_rate=0.1, max_depth=5, n_estimators=200, subsample=1.0;, score=0.971 total time= 0.2s\n", - "[CV 5/5] END gamma=0.001, learning_rate=0.1, max_depth=5, n_estimators=200, subsample=1.0;, score=0.971 total time= 0.2s\n", - "[CV 1/5] END gamma=0.001, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=1.0;, score=0.944 total time= 0.2s\n", - "[CV 2/5] END gamma=0.001, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=1.0;, score=0.889 total time= 0.1s\n", - "[CV 3/5] END gamma=0.001, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=1.0;, score=0.972 total time= 0.2s\n", - "[CV 4/5] END gamma=0.001, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=1.0;, score=0.971 total time= 0.2s\n", - "[CV 5/5] END gamma=0.001, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=1.0;, score=0.943 total time= 0.2s\n", - "[CV 1/5] END gamma=0.001, learning_rate=0.01, max_depth=3, n_estimators=200, subsample=1.0;, score=1.000 total time= 0.4s\n", - "[CV 2/5] END gamma=0.001, learning_rate=0.01, max_depth=3, n_estimators=200, subsample=1.0;, score=0.917 total time= 0.3s\n", - "[CV 3/5] END gamma=0.001, learning_rate=0.01, max_depth=3, n_estimators=200, subsample=1.0;, score=0.972 total time= 0.3s\n", - "[CV 4/5] END gamma=0.001, learning_rate=0.01, max_depth=3, n_estimators=200, subsample=1.0;, score=0.971 total time= 0.3s\n", - "[CV 5/5] END gamma=0.001, learning_rate=0.01, max_depth=3, n_estimators=200, subsample=1.0;, score=0.943 total time= 0.3s\n", - "[CV 1/5] END gamma=0.001, learning_rate=0.01, max_depth=5, n_estimators=100, subsample=1.0;, score=0.944 total time= 0.2s\n", - "[CV 2/5] END gamma=0.001, learning_rate=0.01, max_depth=5, n_estimators=100, subsample=1.0;, score=0.889 total time= 0.2s\n", - "[CV 3/5] END gamma=0.001, learning_rate=0.01, max_depth=5, n_estimators=100, subsample=1.0;, score=0.972 total time= 0.1s\n", - "[CV 4/5] END gamma=0.001, learning_rate=0.01, max_depth=5, n_estimators=100, subsample=1.0;, score=0.971 total time= 0.2s\n", - "[CV 5/5] END gamma=0.001, learning_rate=0.01, max_depth=5, n_estimators=100, subsample=1.0;, score=0.943 total time= 0.2s\n", - "[CV 1/5] END gamma=0.001, learning_rate=0.01, max_depth=5, n_estimators=200, subsample=1.0;, score=1.000 total time= 0.4s\n", - "[CV 2/5] END gamma=0.001, learning_rate=0.01, max_depth=5, n_estimators=200, subsample=1.0;, score=0.917 total time= 0.4s\n", - "[CV 3/5] END gamma=0.001, learning_rate=0.01, max_depth=5, n_estimators=200, subsample=1.0;, score=0.972 total time= 0.4s\n", - "[CV 4/5] END gamma=0.001, learning_rate=0.01, max_depth=5, n_estimators=200, subsample=1.0;, score=0.971 total time= 0.4s\n", - "[CV 5/5] END gamma=0.001, learning_rate=0.01, max_depth=5, n_estimators=200, subsample=1.0;, score=0.943 total time= 0.4s\n", - "[CV 1/5] END gamma=0.001, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=1.0;, score=0.944 total time= 0.2s\n", - "[CV 2/5] END gamma=0.001, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=1.0;, score=0.889 total time= 0.2s\n", - "[CV 3/5] END gamma=0.001, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=1.0;, score=0.972 total time= 0.2s\n", - "[CV 4/5] END gamma=0.001, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=1.0;, score=0.971 total time= 0.2s\n", - "[CV 5/5] END gamma=0.001, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=1.0;, score=0.943 total time= 0.2s\n", - "[CV 1/5] END gamma=0.001, learning_rate=0.001, max_depth=3, n_estimators=200, subsample=1.0;, score=0.944 total time= 0.3s\n", - "[CV 2/5] END gamma=0.001, learning_rate=0.001, max_depth=3, n_estimators=200, subsample=1.0;, score=0.889 total time= 0.3s\n", - "[CV 3/5] END gamma=0.001, learning_rate=0.001, max_depth=3, n_estimators=200, subsample=1.0;, score=0.972 total time= 0.4s\n", - "[CV 4/5] END gamma=0.001, learning_rate=0.001, max_depth=3, n_estimators=200, subsample=1.0;, score=0.971 total time= 0.4s\n", - "[CV 5/5] END gamma=0.001, learning_rate=0.001, max_depth=3, n_estimators=200, subsample=1.0;, score=0.943 total time= 0.3s\n", - "[CV 1/5] END gamma=0.001, learning_rate=0.001, max_depth=5, n_estimators=100, subsample=1.0;, score=0.944 total time= 0.2s\n", - "[CV 2/5] END gamma=0.001, learning_rate=0.001, max_depth=5, n_estimators=100, subsample=1.0;, score=0.889 total time= 0.2s\n", - "[CV 3/5] END gamma=0.001, learning_rate=0.001, max_depth=5, n_estimators=100, subsample=1.0;, score=0.972 total time= 0.2s\n", - "[CV 4/5] END gamma=0.001, learning_rate=0.001, max_depth=5, n_estimators=100, subsample=1.0;, score=0.971 total time= 0.2s\n", - "[CV 5/5] END gamma=0.001, learning_rate=0.001, max_depth=5, n_estimators=100, subsample=1.0;, score=0.943 total time= 0.2s\n", - "[CV 1/5] END gamma=0.001, learning_rate=0.001, max_depth=5, n_estimators=200, subsample=1.0;, score=0.944 total time= 0.4s\n", - "[CV 2/5] END gamma=0.001, learning_rate=0.001, max_depth=5, n_estimators=200, subsample=1.0;, score=0.889 total time= 0.3s\n", - "[CV 3/5] END gamma=0.001, learning_rate=0.001, max_depth=5, n_estimators=200, subsample=1.0;, score=0.972 total time= 0.3s\n", - "[CV 4/5] END gamma=0.001, learning_rate=0.001, max_depth=5, n_estimators=200, subsample=1.0;, score=0.971 total time= 0.4s\n", - "[CV 5/5] END gamma=0.001, learning_rate=0.001, max_depth=5, n_estimators=200, subsample=1.0;, score=0.943 total time= 0.4s\n" - ] - }, - { - "data": { - "text/html": [ - "<style>#sk-container-id-3 {color: black;background-color: white;}#sk-container-id-3 pre{padding: 0;}#sk-container-id-3 div.sk-toggleable {background-color: white;}#sk-container-id-3 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-3 label.sk-toggleable__label-arrow:before {content: \"▸\";float: left;margin-right: 0.25em;color: #696969;}#sk-container-id-3 label.sk-toggleable__label-arrow:hover:before {color: black;}#sk-container-id-3 div.sk-estimator:hover label.sk-toggleable__label-arrow:before {color: black;}#sk-container-id-3 div.sk-toggleable__content {max-height: 0;max-width: 0;overflow: hidden;text-align: left;background-color: #f0f8ff;}#sk-container-id-3 div.sk-toggleable__content pre {margin: 0.2em;color: black;border-radius: 0.25em;background-color: #f0f8ff;}#sk-container-id-3 input.sk-toggleable__control:checked~div.sk-toggleable__content {max-height: 200px;max-width: 100%;overflow: auto;}#sk-container-id-3 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {content: \"▾\";}#sk-container-id-3 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-3 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-3 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-3 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-3 div.sk-estimator:hover {background-color: #d4ebff;}#sk-container-id-3 div.sk-parallel-item::after {content: \"\";width: 100%;border-bottom: 1px solid gray;flex-grow: 1;}#sk-container-id-3 div.sk-label:hover label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-3 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-3 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-3 div.sk-item {position: relative;z-index: 1;}#sk-container-id-3 div.sk-parallel {display: flex;align-items: stretch;justify-content: center;background-color: white;position: relative;}#sk-container-id-3 div.sk-item::before, #sk-container-id-3 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-3 div.sk-parallel-item {display: flex;flex-direction: column;z-index: 1;position: relative;background-color: white;}#sk-container-id-3 div.sk-parallel-item:first-child::after {align-self: flex-end;width: 50%;}#sk-container-id-3 div.sk-parallel-item:last-child::after {align-self: flex-start;width: 50%;}#sk-container-id-3 div.sk-parallel-item:only-child::after {width: 0;}#sk-container-id-3 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-3 div.sk-label label {font-family: monospace;font-weight: bold;display: inline-block;line-height: 1.2em;}#sk-container-id-3 div.sk-label-container {text-align: center;}#sk-container-id-3 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-3 div.sk-text-repr-fallback {display: none;}</style><div id=\"sk-container-id-3\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>GridSearchCV(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, eval_metric=None,\n", - " feature_types=None, gamma=None,\n", - " gpu_id=None, grow_policy=None,\n", - " importance_type=None,\n", - " interaction_constraints=None,\n", - " learning_rate=None, max_b...\n", - " max_cat_to_onehot=None,\n", - " max_delta_step=None, max_depth=None,\n", - " max_leaves=None, min_child_weight=None,\n", - " missing=nan, monotone_constraints=None,\n", - " n_estimators=100, n_jobs=None,\n", - " num_parallel_tree=None, predictor=None,\n", - " random_state=42, ...),\n", - " param_grid={'gamma': [0.1, 0.01, 0.001],\n", - " 'learning_rate': [0.1, 0.01, 0.001],\n", - " 'max_depth': [3, 5], 'n_estimators': [100, 200],\n", - " 'subsample': [1.0]},\n", - " verbose=3)</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-5\" type=\"checkbox\" ><label for=\"sk-estimator-id-5\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">GridSearchCV</label><div class=\"sk-toggleable__content\"><pre>GridSearchCV(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, eval_metric=None,\n", - " feature_types=None, gamma=None,\n", - " gpu_id=None, grow_policy=None,\n", - " importance_type=None,\n", - " interaction_constraints=None,\n", - " learning_rate=None, max_b...\n", - " max_cat_to_onehot=None,\n", - " max_delta_step=None, max_depth=None,\n", - " max_leaves=None, min_child_weight=None,\n", - " missing=nan, monotone_constraints=None,\n", - " n_estimators=100, n_jobs=None,\n", - " num_parallel_tree=None, predictor=None,\n", - " random_state=42, ...),\n", - " param_grid={'gamma': [0.1, 0.01, 0.001],\n", - " 'learning_rate': [0.1, 0.01, 0.001],\n", - " 'max_depth': [3, 5], 'n_estimators': [100, 200],\n", - " 'subsample': [1.0]},\n", - " verbose=3)</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-6\" type=\"checkbox\" ><label for=\"sk-estimator-id-6\" 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=None, feature_types=None,\n", - " gamma=None, gpu_id=None, grow_policy=None, importance_type=None,\n", - " interaction_constraints=None, learning_rate=None, max_bin=None,\n", - " max_cat_threshold=None, max_cat_to_onehot=None,\n", - " max_delta_step=None, max_depth=None, max_leaves=None,\n", - " min_child_weight=None, missing=nan, monotone_constraints=None,\n", - " n_estimators=100, n_jobs=None, num_parallel_tree=None,\n", - " predictor=None, random_state=42, ...)</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-7\" type=\"checkbox\" ><label for=\"sk-estimator-id-7\" 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=None, feature_types=None,\n", - " gamma=None, gpu_id=None, grow_policy=None, importance_type=None,\n", - " interaction_constraints=None, learning_rate=None, max_bin=None,\n", - " max_cat_threshold=None, max_cat_to_onehot=None,\n", - " max_delta_step=None, max_depth=None, max_leaves=None,\n", - " min_child_weight=None, missing=nan, monotone_constraints=None,\n", - " n_estimators=100, n_jobs=None, num_parallel_tree=None,\n", - " predictor=None, random_state=42, ...)</pre></div></div></div></div></div></div></div></div></div></div>" - ], - "text/plain": [ - "GridSearchCV(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, eval_metric=None,\n", - " feature_types=None, gamma=None,\n", - " gpu_id=None, grow_policy=None,\n", - " importance_type=None,\n", - " interaction_constraints=None,\n", - " learning_rate=None, max_b...\n", - " max_cat_to_onehot=None,\n", - " max_delta_step=None, max_depth=None,\n", - " max_leaves=None, min_child_weight=None,\n", - " missing=nan, monotone_constraints=None,\n", - " n_estimators=100, n_jobs=None,\n", - " num_parallel_tree=None, predictor=None,\n", - " random_state=42, ...),\n", - " param_grid={'gamma': [0.1, 0.01, 0.001],\n", - " 'learning_rate': [0.1, 0.01, 0.001],\n", - " 'max_depth': [3, 5], 'n_estimators': [100, 200],\n", - " 'subsample': [1.0]},\n", - " verbose=3)" - ] - }, - "execution_count": 64, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "model = xgb.XGBClassifier(random_state=42)\n", - "\n", - "# Defining parameter range\n", - "param_grid = {\n", - " 'max_depth': [3,5],\n", - " 'learning_rate': [0.1 ,0.01, 0.001],\n", - " 'n_estimators': [100,200],\n", - " 'gamma': [ 0.1,0.01,0.001],\n", - " 'subsample': [1.0]\n", - "}\n", - "\n", - "\n", - "grid = GridSearchCV(model, param_grid, refit=True, verbose=3)\n", - "\n", - "# Fitting the model for grid search\n", - "grid.fit(X_train, y_train)\n" - ] - }, - { - "cell_type": "code", - "execution_count": 65, - "id": "556e249c", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "{'gamma': 0.1, 'learning_rate': 0.1, 'max_depth': 3, 'n_estimators': 100, 'subsample': 1.0}\n", - "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=None, feature_types=None,\n", - " gamma=0.1, gpu_id=None, grow_policy=None, importance_type=None,\n", - " interaction_constraints=None, learning_rate=0.1, max_bin=None,\n", - " max_cat_threshold=None, max_cat_to_onehot=None,\n", - " max_delta_step=None, max_depth=3, max_leaves=None,\n", - " min_child_weight=None, missing=nan, monotone_constraints=None,\n", - " n_estimators=100, n_jobs=None, num_parallel_tree=None,\n", - " predictor=None, random_state=42, ...)\n" - ] - } - ], - "source": [ - "# print best parameter after tuning\n", - "print(grid.best_params_)\n", - " \n", - "# print how our model looks after hyper-parameter tuning\n", - "print(grid.best_estimator_)" - ] - }, - { - "cell_type": "code", - "execution_count": 66, - "id": "0686e808", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "<style>#sk-container-id-4 {color: black;background-color: white;}#sk-container-id-4 pre{padding: 0;}#sk-container-id-4 div.sk-toggleable {background-color: white;}#sk-container-id-4 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-4 label.sk-toggleable__label-arrow:before {content: \"▸\";float: left;margin-right: 0.25em;color: #696969;}#sk-container-id-4 label.sk-toggleable__label-arrow:hover:before {color: black;}#sk-container-id-4 div.sk-estimator:hover label.sk-toggleable__label-arrow:before {color: black;}#sk-container-id-4 div.sk-toggleable__content {max-height: 0;max-width: 0;overflow: hidden;text-align: left;background-color: #f0f8ff;}#sk-container-id-4 div.sk-toggleable__content pre {margin: 0.2em;color: black;border-radius: 0.25em;background-color: #f0f8ff;}#sk-container-id-4 input.sk-toggleable__control:checked~div.sk-toggleable__content {max-height: 200px;max-width: 100%;overflow: auto;}#sk-container-id-4 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {content: \"▾\";}#sk-container-id-4 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-4 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-4 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-4 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-4 div.sk-estimator:hover {background-color: #d4ebff;}#sk-container-id-4 div.sk-parallel-item::after {content: \"\";width: 100%;border-bottom: 1px solid gray;flex-grow: 1;}#sk-container-id-4 div.sk-label:hover label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-4 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-4 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-4 div.sk-item {position: relative;z-index: 1;}#sk-container-id-4 div.sk-parallel {display: flex;align-items: stretch;justify-content: center;background-color: white;position: relative;}#sk-container-id-4 div.sk-item::before, #sk-container-id-4 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-4 div.sk-parallel-item {display: flex;flex-direction: column;z-index: 1;position: relative;background-color: white;}#sk-container-id-4 div.sk-parallel-item:first-child::after {align-self: flex-end;width: 50%;}#sk-container-id-4 div.sk-parallel-item:last-child::after {align-self: flex-start;width: 50%;}#sk-container-id-4 div.sk-parallel-item:only-child::after {width: 0;}#sk-container-id-4 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-4 div.sk-label label {font-family: monospace;font-weight: bold;display: inline-block;line-height: 1.2em;}#sk-container-id-4 div.sk-label-container {text-align: center;}#sk-container-id-4 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-4 div.sk-text-repr-fallback {display: none;}</style><div id=\"sk-container-id-4\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><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=None, feature_types=None,\n", - " gamma=0.1, gpu_id=None, grow_policy=None, importance_type=None,\n", - " interaction_constraints=None, learning_rate=0.1, max_bin=None,\n", - " max_cat_threshold=None, max_cat_to_onehot=None,\n", - " max_delta_step=None, max_depth=3, max_leaves=None,\n", - " min_child_weight=None, missing=nan, monotone_constraints=None,\n", - " n_estimators=100, n_jobs=None, num_parallel_tree=None,\n", - " predictor=None, random_state=42, ...)</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\"><div class=\"sk-estimator sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-8\" type=\"checkbox\" checked><label for=\"sk-estimator-id-8\" 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=None, feature_types=None,\n", - " gamma=0.1, gpu_id=None, grow_policy=None, importance_type=None,\n", - " interaction_constraints=None, learning_rate=0.1, max_bin=None,\n", - " max_cat_threshold=None, max_cat_to_onehot=None,\n", - " max_delta_step=None, max_depth=3, max_leaves=None,\n", - " min_child_weight=None, missing=nan, monotone_constraints=None,\n", - " n_estimators=100, n_jobs=None, num_parallel_tree=None,\n", - " predictor=None, random_state=42, ...)</pre></div></div></div></div></div>" - ], - "text/plain": [ - "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=None, feature_types=None,\n", - " gamma=0.1, gpu_id=None, grow_policy=None, importance_type=None,\n", - " interaction_constraints=None, learning_rate=0.1, max_bin=None,\n", - " max_cat_threshold=None, max_cat_to_onehot=None,\n", - " max_delta_step=None, max_depth=3, max_leaves=None,\n", - " min_child_weight=None, missing=nan, monotone_constraints=None,\n", - " n_estimators=100, n_jobs=None, num_parallel_tree=None,\n", - " predictor=None, random_state=42, ...)" - ] - }, - "execution_count": 66, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "model_xgb = grid.best_estimator_\n", - "model_xgb.fit(X_train,y_train)" - ] - }, - { - "cell_type": "code", - "execution_count": 67, - "id": "ac776bef", - "metadata": {}, - "outputs": [], - "source": [ - "y_proba = model_xgb.fit(X_train, y_train).predict_proba(X_test)" - ] - }, - { - "cell_type": "markdown", - "id": "3ea57532", - "metadata": {}, - "source": [ - "# classification report" - ] - }, - { - "cell_type": "code", - "execution_count": 68, - "id": "18becbe2", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - " precision recall f1-score support\n", - "\n", - " 0 0.97 0.97 0.97 30\n", - " 1 0.97 0.97 0.97 30\n", - "\n", - " accuracy 0.97 60\n", - " macro avg 0.97 0.97 0.97 60\n", - "weighted avg 0.97 0.97 0.97 60\n", - "\n" - ] - } - ], - "source": [ - "from sklearn.metrics import classification_report, confusion_matrix\n", - "grid_predictions = grid.predict(X_test)\n", - "print(classification_report(y_test, grid_predictions))" - ] - }, - { - "cell_type": "code", - "execution_count": 69, - "id": "c0193b78", - "metadata": {}, - "outputs": [], - "source": [ - "classes = model_xgb.classes_" - ] - }, - { - "cell_type": "code", - "execution_count": 70, - "id": "d723c69f", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "array([0, 1])" - ] - }, - "execution_count": 70, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "classes" - ] - }, - { - "cell_type": "code", - "execution_count": 71, - "id": "4643393d", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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O1dZWVlatmxZOGIEAACXEHRrfc2aNVq2bJkGDBigsWPH6oYbblCnTp3Url07LV++XKNHjw5HnAAA2BOjq9aDrshPnjypDh06SKqbDz958qQk6frrr9fmzZtDGx0AACFy/sludrZoFHQi79Chgw4cOCBJ6tq1q9566y1JdZX6+ZeoAACAhhF0Ih87dqw+//xzSdK0adO0aNEiJSYmavLkyXr44YdDHiAAACHRwIvdNm/erGHDhikrK0uGYWj16tV+348ZM0aGYfhtQ4YMCfrHCnqOfPLkyb7/zsvL01dffaXdu3erU6dO6tWrV9ABAAAQiyorK5Wbm6u77rpLI0eOvOgxQ4YM0dKlS32fPR5P0NexdR+5JLVr107t2rWzexoAAMLKkM23nwV5/NChQzV06NCfPMbj8SgzM7P+QSnARL5w4cKAT3j//ffXOxgAAKJdeXm532ePx1OvSlqSNm7cqJYtW6pZs2b61a9+pSeffFLNmzcP6hwBJfLnn38+oJMZhhGRRH5r555qZFzR4NcFGsL7R4siHQIQNuVnTDXr3EAXC9HtZ9nZ2X67Z8+erTlz5gR9uiFDhmjkyJHKyclRaWmpZsyYoaFDh2r79u2Kj48P+DwBJfLzq9QBAHCsED2itayszO9x5PWtxu+44w7ff/fs2VO9evVSx44dtXHjRt10000BnyfoVesAALhZamqq31bfRP73OnTooBYtWqikpCSocbYXuwEA4AhR/tKUw4cP6/vvv1erVq2CGkciBwC4gt2nswU7tqKiwq+6PnDggIqKipSenq709HTNnTtXt912mzIzM1VaWqpHHnlEnTp10uDBg4O6DokcAIAw2LVrlwYOHOj7PGXKFElSfn6+Fi9erD179uiNN97QqVOnlJWVpUGDBumJJ54IulVPIgcAuEMDt9YHDBggy7r0oPfff99GMD+q12K3LVu26M4771S/fv105MgRSdIf/vAHbd26NSRBAQAQcryPvM7bb7+twYMHKykpSZ999pmqq6slSadPn9bTTz8d8gABAMClBZ3In3zySS1ZskSvvPKKrrjix4ewXHfddfr0009DGhwAAKESq68xDXqOvLi4WP37979gf1pamk6dOhWKmAAACL0QPdkt2gRdkWdmZl70ZvWtW7eqQ4cOIQkKAICQY468zvjx4/XAAw9o586dMgxDR48e1fLlyzV1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", - "text/plain": [ - "<Figure size 640x480 with 2 Axes>" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "#######CONFUSION MATRIX ###########\n", - "from sklearn import metrics\n", - "y_test_pred_xgb = model_xgb.predict(X_test)\n", - "confusion_matrix_test = metrics.confusion_matrix(y_test, y_test_pred_xgb)\n", - "cm_display = metrics.ConfusionMatrixDisplay(confusion_matrix = confusion_matrix_test)\n", - "cm_display.plot()\n", - "plt.show()" - ] - }, - { - "cell_type": "code", - "execution_count": 72, - "id": "5ad4efb1", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Accuracy : 0.9666666666666667\n", - "Sensitivity : 0.9666666666666667\n", - "Specificity : 0.9666666666666667\n" - ] - } - ], - "source": [ - "total1=sum(sum(confusion_matrix_test))\n", - "#####from confusion matrix calculate accuracy\n", - "accuracy1=(confusion_matrix_test[0,0]+confusion_matrix_test[1,1])/total1\n", - "print ('Accuracy : ', accuracy1)\n", - "\n", - "sensitivity1 = confusion_matrix_test[0,0]/(confusion_matrix_test[0,0]+confusion_matrix_test[0,1])\n", - "print('Sensitivity : ', sensitivity1 )\n", - "\n", - "specificity1 = confusion_matrix_test[1,1]/(confusion_matrix_test[1,0]+confusion_matrix_test[1,1])\n", - "print('Specificity : ', specificity1)" - ] - }, - { - "cell_type": "markdown", - "id": "6603d82c", - "metadata": {}, - "source": [ - "# ROC curve" - ] - }, - { - "cell_type": "code", - "execution_count": 73, - "id": "0e2a2694", - "metadata": {}, - "outputs": [], - "source": [ - "from sklearn.model_selection import StratifiedKFold\n", - "from sklearn.feature_selection import SelectKBest, f_classif\n", - "from sklearn.metrics import auc\n", - "def roc(X_train,y_train,model,label):\n", - " cv = StratifiedKFold(n_splits=6)\n", - " classifier = model\n", - " tprs = []\n", - " aucs = []\n", - " mean_fpr = np.linspace(0, 1, 100)\n", - "\n", - " fig, ax = plt.subplots(figsize=(6, 6))\n", - " for fold, (train, test) in enumerate(cv.split(X_train, y_train)):\n", - " classifier.fit(X_train.iloc[train], y_train.iloc[train])\n", - " viz = RocCurveDisplay.from_estimator(\n", - " classifier,\n", - " X_train.iloc[test],\n", - " y_train.iloc[test],\n", - " name=f\"ROC fold {fold}\",\n", - " alpha=0.3,\n", - " lw=1,\n", - " ax=ax,\n", - " )\n", - " interp_tpr = np.interp(mean_fpr, viz.fpr, viz.tpr)\n", - " interp_tpr[0] = 0.0\n", - " tprs.append(interp_tpr)\n", - " aucs.append(viz.roc_auc)\n", - " ax.plot([0, 1], [0, 1], \"k--\", label=\"chance level (AUC = 0.5)\")\n", - "\n", - " mean_tpr = np.mean(tprs, axis=0)\n", - " mean_tpr[-1] = 1.0\n", - " mean_auc = auc(mean_fpr, mean_tpr)\n", - " std_auc = np.std(aucs)\n", - " ax.plot(\n", - " mean_fpr,\n", - " mean_tpr,\n", - " color=\"b\",\n", - " label=r\"Mean ROC (AUC = %0.2f $\\pm$ %0.2f)\" % (mean_auc, std_auc),\n", - " lw=2,\n", - " alpha=0.8,\n", - " )\n", - "\n", - " std_tpr = np.std(tprs, axis=0)\n", - " tprs_upper = np.minimum(mean_tpr + std_tpr, 1)\n", - " tprs_lower = np.maximum(mean_tpr - std_tpr, 0)\n", - " ax.fill_between(\n", - " mean_fpr,\n", - " tprs_lower,\n", - " tprs_upper,\n", - " color=\"grey\",\n", - " alpha=0.2,\n", - " label=r\"$\\pm$ 1 std. dev.\",\n", - " )\n", - "\n", - " ax.set(\n", - " xlim=[-0.05, 1.05],\n", - " ylim=[-0.05, 1.05],\n", - " xlabel=\"False Positive Rate\",\n", - " ylabel=\"True Positive Rate\",\n", - " title=label,\n", - " )\n", - " ax.axis(\"square\")\n", - " ax.legend(loc=\"lower right\")\n", - " plt.show()" - ] - }, - { - "cell_type": "code", - "execution_count": 74, - "id": "d4cc8e6d", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "<Figure size 600x600 with 1 Axes>" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "model = model_xgb\n", - "label=\"ROC curve of training data\"\n", - "roc(X_train,y_train,model,label)" - ] - }, - { - "cell_type": "code", - "execution_count": 75, - "id": "1199e2e4", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "<Figure size 600x600 with 1 Axes>" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "label=\"ROC curve of testing data\"\n", - "roc(X_test,y_test,model,label)" - ] - }, - { - "cell_type": "markdown", - "id": "bee03388", - "metadata": {}, - "source": [ - "# Feature importance" - ] - }, - { - "cell_type": "code", - "execution_count": 284, - "id": "6688e037", - "metadata": {}, - "outputs": [], - "source": [ - "# for important features:\n", - "important_feat = model_xgb.feature_importances_\n", - "#get indices of those important features\n", - "idx = important_feat.argsort(kind= \"quicksort\")\n", - "idx= idx[::-1][:50]" - ] - }, - { - "cell_type": "code", - "execution_count": 285, - "id": "4e6a7ea1", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "array([ 66, 65, 84, 94, 140, 32, 169, 137, 23, 212, 10, 166, 13,\n", - " 36, 56, 126, 48, 57, 42, 208, 37, 113, 29, 160, 22, 96,\n", - " 162, 229, 189, 101, 104, 127, 135, 21, 79, 78, 77, 76, 75,\n", - " 74, 73, 72, 202, 71, 69, 68, 67, 64, 63, 62])" - ] - }, - "execution_count": 285, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "idx" - ] - }, - { - "cell_type": "code", - "execution_count": 286, - "id": "f2101fe1", - "metadata": {}, - "outputs": [], - "source": [ - "df1 = X.T" - ] - }, - { - "cell_type": "code", - "execution_count": 287, - "id": "2cbf1166", - "metadata": {}, - "outputs": [], - "source": [ - "top_met = df1.iloc[idx]" - ] - }, - { - "cell_type": "code", - "execution_count": 288, - "id": "2370b2df", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "Index(['hsa-miR-18b-5p', 'hsa-miR-18a-5p', 'hsa-miR-21-5p', 'hsa-miR-25-3p',\n", - " 'hsa-miR-424-5p', 'hsa-miR-130b-3p', 'hsa-miR-455-3p', 'hsa-miR-378i',\n", - " 'hsa-miR-1268a', 'hsa-miR-93-5p', 'hsa-miR-106b-5p', 'hsa-miR-451a',\n", - " 'hsa-miR-10b-5p', 'hsa-miR-140-3p', 'hsa-miR-15b-5p', 'hsa-miR-3651',\n", - " 'hsa-miR-150-5p', 'hsa-miR-16-2-3p', 'hsa-miR-145-5p', 'hsa-miR-7-5p',\n", - " 'hsa-miR-140-5p', 'hsa-miR-3198', 'hsa-miR-1290', 'hsa-miR-4465',\n", - " 'hsa-miR-126-3p', 'hsa-miR-26b-5p', 'hsa-miR-4497', 'mr_1',\n", - " 'hsa-miR-497-5p', 'hsa-miR-29c-3p', 'hsa-miR-30a-5p', 'hsa-miR-3656',\n", - " 'hsa-miR-378a-3p', 'hsa-miR-125b-5p', 'hsa-miR-200c-3p',\n", - " 'hsa-miR-200b-3p', 'hsa-miR-19b-3p', 'hsa-miR-19a-3p',\n", - " 'hsa-miR-199a-5p', 'hsa-miR-199a-3p', 'hsa-miR-1973', 'hsa-miR-197-5p',\n", - " 'hsa-miR-642a-3p', 'hsa-miR-197-3p', 'hsa-miR-193b-3p',\n", - " 'hsa-miR-193a-5p', 'hsa-miR-1915-3p', 'hsa-miR-188-5p',\n", - " 'hsa-miR-185-5p', 'hsa-miR-181b-5p'],\n", - " dtype='object')" - ] - }, - "execution_count": 288, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "top_met.index" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "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.9.16" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/03_Machine_Learning/mRNA_TCGA_limma_dataset_svm_final.ipynb b/03_Machine_Learning/mRNA_TCGA_limma_dataset_svm_final.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..bb1b54666d7acddabd8f5b8f004f331fb8d01e55 --- /dev/null +++ b/03_Machine_Learning/mRNA_TCGA_limma_dataset_svm_final.ipynb @@ -0,0 +1,936 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "id": "f097ad55", + "metadata": {}, + "outputs": [], + "source": [ + "import warnings\n", + "warnings.filterwarnings('ignore')\n", + "import pandas as pd\n", + "from sklearn.model_selection import train_test_split\n", + "from sklearn.metrics import RocCurveDisplay\n", + "import matplotlib.pyplot as plt\n", + "import numpy as np\n", + "from imblearn.over_sampling import SMOTE\n", + "from sklearn.linear_model import Lasso\n", + "import xgboost as xgb\n", + "from sklearn.model_selection import GridSearchCV\n", + "import pandas as pd\n", + "import numpy as np\n", + "\n", + "np.random.seed(7)" + ] + }, + { + "cell_type": "markdown", + "id": "73b6611a", + "metadata": {}, + "source": [ + "# Data Preprocessing" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "0eeb7a35", + "metadata": {}, + "outputs": [], + "source": [ + "df_train = pd.read_csv(\"DS/mRNA_DS_preprocessed_training_data.csv\")" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "a6ab23aa", + "metadata": {}, + "outputs": [], + "source": [ + "df_test = pd.read_csv(\"DS/mRNA_TCGA_DS_test_data.csv\")" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "683b63ce", + "metadata": {}, + "outputs": [], + "source": [ + "df_train = df_train.T\n", + "df_test = df_test.T" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "a701e30d", + "metadata": {}, + "outputs": [], + "source": [ + "#df_test = df_test[:-1]" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "77d974be", + "metadata": {}, + "outputs": [], + "source": [ + "#Transform the input data\n", + "df_train.rename(columns=df_train.iloc[0], inplace = True)\n", + "df_train.drop(df_train.index[0], inplace = True)\n", + "df_train=df_train.reset_index()" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "610fbe2d", + "metadata": {}, + "outputs": [], + "source": [ + "df_train=df_train.drop(['ACPP'], axis=1)" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "2e78017d", + "metadata": {}, + "outputs": [], + "source": [ + "#Transform the input data\n", + "df_test.rename(columns=df_test.iloc[0], inplace = True)\n", + "df_test.drop(df_test.index[0], inplace = True)\n", + "df_test=df_test.reset_index()" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "ea60801d", + "metadata": {}, + "outputs": [], + "source": [ + "metadata_test = pd.read_csv(\"DS/mRNA_TCGA_DS_col_data.csv\")" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "58d531b9", + "metadata": {}, + "outputs": [], + "source": [ + "df_test= df_test.merge(metadata_test, left_on=\"index\", right_on= \"Unnamed: 0\")" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "id": "5eeaaa39", + "metadata": {}, + "outputs": [], + "source": [ + "df_test= df_test.rename(columns={\"group_assignments\": \"title0\"})" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "id": "7910f2fa", + "metadata": {}, + "outputs": [], + "source": [ + "df_test['title0'] = df_test['title0'].replace('(?i)Control|mucosa|normal|healthy', 0, regex=True)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "id": "c102e10e", + "metadata": {}, + "outputs": [], + "source": [ + "df_test['title0'] = df_test['title0'].replace('(?i)Tumor|Cancer|carcinoma', 1, regex=True)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "ed00d2ce", + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": 19, + "id": "6c255d2e", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "title0\n", + "1 184\n", + "0 13\n", + "Name: count, dtype: int64" + ] + }, + "execution_count": 19, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_test['title0'].value_counts()" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "id": "636b44ab", + "metadata": {}, + "outputs": [], + "source": [ + "df_test = df_test[pd.to_numeric(df_test['title0'], errors='coerce').notnull()]#remove all non-numeric data from the column." + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "id": "34896f9a", + "metadata": {}, + "outputs": [], + "source": [ + "df_test= df_test.drop(['index', 'Unnamed: 0'], axis=1)" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "id": "359b5bab", + "metadata": {}, + "outputs": [], + "source": [ + "df_test= df_test.rename(columns={\"title0\": \"index\"})" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "id": "e8befa4e", + "metadata": {}, + "outputs": [], + "source": [ + "# Select 13 rows of class 0\n", + "class_0 = df_test[df_test['index'] == 0].head(13)\n", + "\n", + "# Select 13 rows of class 1\n", + "class_1 = df_test[df_test['index'] == 1].head(27)\n", + "\n", + "# Concatenate the selected rows\n", + "df_test = pd.concat([class_0, class_1])" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "id": "fc9ca29c", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "index\n", + "1 27\n", + "0 13\n", + "Name: count, dtype: int64" + ] + }, + "execution_count": 24, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_test['index'].value_counts()" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "id": "dc14bb1c", + "metadata": {}, + "outputs": [], + "source": [ + "X_test=df_test.drop(\"index\",axis=1)\n", + "y_test=df_test['index']" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "id": "4c50c510", + "metadata": {}, + "outputs": [], + "source": [ + "metadata_train = pd.read_csv(\"DS/mRNA_DS_metadata_col_info.csv\")" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "id": "6730cf89", + "metadata": {}, + "outputs": [], + "source": [ + "df_train= df_train.merge(metadata_train, left_on=\"index\", right_on= \"Unnamed: 0\")" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "id": "7a8ad8ad", + "metadata": {}, + "outputs": [], + "source": [ + "df_train['title0'] = df_train['title0'].replace('(?i)mucosa|normal|healthy', 0, regex=True)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "id": "a8cf8643", + "metadata": {}, + "outputs": [], + "source": [ + "df_train['title0'] = df_train['title0'].replace('(?i)Tumor|Cancer|carcinoma', 1, regex=True)" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "id": "f5d203aa", + "metadata": {}, + "outputs": [], + "source": [ + "df_train = df_train[pd.to_numeric(df_train['title0'], errors='coerce').notnull()]#remove all non-numeric data from the column." + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "id": "523bdaa6", + "metadata": {}, + "outputs": [], + "source": [ + "df_train= df_train.drop(['index', 'Unnamed: 0'], axis=1)" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "id": "46a6fb36", + "metadata": {}, + "outputs": [], + "source": [ + "df_train= df_train.rename(columns={\"title0\": \"index\"})" + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "id": "fbaf2507", + "metadata": {}, + "outputs": [], + "source": [ + "df_train= df_train.apply(pd.to_numeric)" + ] + }, + { + "cell_type": "code", + "execution_count": 44, + "id": "776cfbee", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "index\n", + "0 111\n", + "1 108\n", + "Name: count, dtype: int64" + ] + }, + "execution_count": 44, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_train['index'].value_counts()" + ] + }, + { + "cell_type": "code", + "execution_count": 45, + "id": "8c0011ea", + "metadata": {}, + "outputs": [], + "source": [ + "X=df_train.drop(\"index\",axis=1)\n", + "y=df_train['index']" + ] + }, + { + "cell_type": "code", + "execution_count": 46, + "id": "fc606979", + "metadata": {}, + "outputs": [], + "source": [ + "X=X.astype('int')" + ] + }, + { + "cell_type": "code", + "execution_count": 47, + "id": "93e28118", + "metadata": {}, + "outputs": [], + "source": [ + "y=y.astype('int')" + ] + }, + { + "cell_type": "markdown", + "id": "e9830b6c", + "metadata": {}, + "source": [ + "# Feature Selection" + ] + }, + { + "cell_type": "code", + "execution_count": 48, + "id": "1cc528fb", + "metadata": {}, + "outputs": [], + "source": [ + "# LASSO model:\n", + "lasso = Lasso(alpha=1)\n", + "# fitting the model:\n", + "lasso.fit(X, y)\n", + "# select all coefficients and the feature names\n", + "lasso_coefs = lasso.coef_\n", + "feature_names = X.columns\n", + "\n", + "# collect the selected features:\n", + "selected_feature_indices = np.nonzero(lasso_coefs)[0]\n", + "selected_features = [feature_names[i] for i in selected_feature_indices]\n", + "X_selected = X.iloc[:, selected_feature_indices]" + ] + }, + { + "cell_type": "code", + "execution_count": 49, + "id": "8afa29ae", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "98" + ] + }, + "execution_count": 49, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "len(selected_features)" + ] + }, + { + "cell_type": "markdown", + "id": "6cee6462", + "metadata": {}, + "source": [ + "# Test train split" + ] + }, + { + "cell_type": "code", + "execution_count": 50, + "id": "3af09ef8", + "metadata": {}, + "outputs": [], + "source": [ + "X_train = X_selected\n", + "y_train = y" + ] + }, + { + "cell_type": "code", + "execution_count": 51, + "id": "129430e6", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(index\n", + " 1 27\n", + " 0 13\n", + " Name: count, dtype: int64,\n", + " index\n", + " 0 111\n", + " 1 108\n", + " Name: count, dtype: int64)" + ] + }, + "execution_count": 51, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "y_test.value_counts(),y_train.value_counts()" + ] + }, + { + "cell_type": "markdown", + "id": "1cfe2a06", + "metadata": {}, + "source": [ + "# Cross validation" + ] + }, + { + "cell_type": "code", + "execution_count": 52, + "id": "1fbca4b8", + "metadata": {}, + "outputs": [], + "source": [ + "from sklearn.svm import SVC\n", + "# we can add class_weight='balanced' to add panalize mistake\n", + "svm_model = SVC(kernel = \"linear\", probability=True,random_state=47)" + ] + }, + { + "cell_type": "code", + "execution_count": 53, + "id": "0502e118", + "metadata": {}, + "outputs": [], + "source": [ + "\n", + "# Defining parameter range\n", + "param_grid = {\n", + " 'C': [0.0005,0.0001,0.001,0.1]\n", + "}" + ] + }, + { + "cell_type": "code", + "execution_count": 54, + "id": "7f2d18b0", + "metadata": {}, + "outputs": [], + "source": [ + "\n", + "grid = GridSearchCV(svm_model, param_grid, refit=True, verbose=3)" + ] + }, + { + "cell_type": "code", + "execution_count": 55, + "id": "79790f1d", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Fitting 5 folds for each of 4 candidates, totalling 20 fits\n", + "[CV 1/5] END ..........................C=0.0005;, score=0.955 total time= 0.0s\n", + "[CV 2/5] END ..........................C=0.0005;, score=0.932 total time= 0.0s\n", + "[CV 3/5] END ..........................C=0.0005;, score=0.955 total time= 0.0s\n", + "[CV 4/5] END ..........................C=0.0005;, score=0.932 total time= 0.0s\n", + "[CV 5/5] END ..........................C=0.0005;, score=0.884 total time= 0.0s\n", + "[CV 1/5] END ..........................C=0.0001;, score=0.932 total time= 0.0s\n", + "[CV 2/5] END ..........................C=0.0001;, score=0.795 total time= 0.0s\n", + "[CV 3/5] END ..........................C=0.0001;, score=0.955 total time= 0.0s\n", + "[CV 4/5] END ..........................C=0.0001;, score=0.886 total time= 0.0s\n", + "[CV 5/5] END ..........................C=0.0001;, score=0.860 total time= 0.0s\n", + "[CV 1/5] END ...........................C=0.001;, score=0.977 total time= 0.0s\n", + "[CV 2/5] END ...........................C=0.001;, score=0.977 total time= 0.0s\n", + "[CV 3/5] END ...........................C=0.001;, score=0.977 total time= 0.0s\n", + "[CV 4/5] END ...........................C=0.001;, score=0.932 total time= 0.0s\n", + "[CV 5/5] END ...........................C=0.001;, score=0.884 total time= 0.0s\n", + "[CV 1/5] END .............................C=0.1;, score=0.705 total time= 0.0s\n", + "[CV 2/5] END .............................C=0.1;, score=0.886 total time= 0.0s\n", + "[CV 3/5] END .............................C=0.1;, score=0.977 total time= 0.0s\n", + "[CV 4/5] END .............................C=0.1;, score=0.977 total time= 0.0s\n", + "[CV 5/5] END .............................C=0.1;, score=0.953 total time= 0.0s\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(estimator=SVC(kernel='linear', probability=True, random_state=47),\n", + " param_grid={'C': [0.0005, 0.0001, 0.001, 0.1]}, verbose=3)</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(estimator=SVC(kernel='linear', probability=True, random_state=47),\n", + " param_grid={'C': [0.0005, 0.0001, 0.001, 0.1]}, verbose=3)</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: SVC</label><div class=\"sk-toggleable__content\"><pre>SVC(kernel='linear', probability=True, random_state=47)</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\">SVC</label><div class=\"sk-toggleable__content\"><pre>SVC(kernel='linear', probability=True, random_state=47)</pre></div></div></div></div></div></div></div></div></div></div>" + ], + "text/plain": [ + "GridSearchCV(estimator=SVC(kernel='linear', probability=True, random_state=47),\n", + " param_grid={'C': [0.0005, 0.0001, 0.001, 0.1]}, verbose=3)" + ] + }, + "execution_count": 55, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Fitting the model for grid search\n", + "grid.fit(X_train, y_train)" + ] + }, + { + "cell_type": "markdown", + "id": "bc91d663", + "metadata": {}, + "source": [ + "# classification" + ] + }, + { + "cell_type": "code", + "execution_count": 56, + "id": "5d327876", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'C': 0.001}\n", + "SVC(C=0.001, kernel='linear', probability=True, random_state=47)\n" + ] + } + ], + "source": [ + "# print best parameter after tuning\n", + "print(grid.best_params_)\n", + " \n", + "# print how our model looks after hyper-parameter tuning\n", + "print(grid.best_estimator_)" + ] + }, + { + "cell_type": "code", + "execution_count": 57, + "id": "f8d67e2f", + "metadata": {}, + "outputs": [], + "source": [ + "# Select columns in df1 based on columns in df2\n", + "X_test = X_test.loc[:, X_train.columns]" + ] + }, + { + "cell_type": "code", + "execution_count": 58, + "id": "e91a687d", + "metadata": {}, + "outputs": [], + "source": [ + "X_test=X_test.dropna(axis=1)" + ] + }, + { + "cell_type": "code", + "execution_count": 59, + "id": "3b2776c0", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<style>#sk-container-id-2 {color: black;background-color: white;}#sk-container-id-2 pre{padding: 0;}#sk-container-id-2 div.sk-toggleable {background-color: white;}#sk-container-id-2 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-2 label.sk-toggleable__label-arrow:before {content: \"▸\";float: left;margin-right: 0.25em;color: #696969;}#sk-container-id-2 label.sk-toggleable__label-arrow:hover:before {color: black;}#sk-container-id-2 div.sk-estimator:hover label.sk-toggleable__label-arrow:before {color: black;}#sk-container-id-2 div.sk-toggleable__content {max-height: 0;max-width: 0;overflow: hidden;text-align: left;background-color: #f0f8ff;}#sk-container-id-2 div.sk-toggleable__content pre {margin: 0.2em;color: black;border-radius: 0.25em;background-color: #f0f8ff;}#sk-container-id-2 input.sk-toggleable__control:checked~div.sk-toggleable__content {max-height: 200px;max-width: 100%;overflow: auto;}#sk-container-id-2 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {content: \"▾\";}#sk-container-id-2 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-2 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-2 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-2 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-2 div.sk-estimator:hover {background-color: #d4ebff;}#sk-container-id-2 div.sk-parallel-item::after {content: \"\";width: 100%;border-bottom: 1px solid gray;flex-grow: 1;}#sk-container-id-2 div.sk-label:hover label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-2 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-2 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-2 div.sk-item {position: relative;z-index: 1;}#sk-container-id-2 div.sk-parallel {display: flex;align-items: stretch;justify-content: center;background-color: white;position: relative;}#sk-container-id-2 div.sk-item::before, #sk-container-id-2 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-2 div.sk-parallel-item {display: flex;flex-direction: column;z-index: 1;position: relative;background-color: white;}#sk-container-id-2 div.sk-parallel-item:first-child::after {align-self: flex-end;width: 50%;}#sk-container-id-2 div.sk-parallel-item:last-child::after {align-self: flex-start;width: 50%;}#sk-container-id-2 div.sk-parallel-item:only-child::after {width: 0;}#sk-container-id-2 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-2 div.sk-label label {font-family: monospace;font-weight: bold;display: inline-block;line-height: 1.2em;}#sk-container-id-2 div.sk-label-container {text-align: center;}#sk-container-id-2 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-2 div.sk-text-repr-fallback {display: none;}</style><div id=\"sk-container-id-2\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>SVC(C=0.001, kernel='linear', probability=True, random_state=47)</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\"><div class=\"sk-estimator sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-4\" type=\"checkbox\" checked><label for=\"sk-estimator-id-4\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">SVC</label><div class=\"sk-toggleable__content\"><pre>SVC(C=0.001, kernel='linear', probability=True, random_state=47)</pre></div></div></div></div></div>" + ], + "text/plain": [ + "SVC(C=0.001, kernel='linear', probability=True, random_state=47)" + ] + }, + "execution_count": 59, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "model_svm = grid.best_estimator_\n", + "model_svm.fit(X_train,y_train)" + ] + }, + { + "cell_type": "code", + "execution_count": 60, + "id": "eb9cd20a", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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2xUTE+O2vfjii+rYsaMiIiIUFxenMWPGKD8//5LX2LlzpxITE+VwOBQVFaUuXbpo+/btrs/T09PVvXt3hYeHKy4uTuPGjVNBQUFlfD1Aktz+fkdHR8tms7n29+/fL4fDoY8//lhdunSR3W5Xenq6Ro4cqYEDB7pdZ/z48erVq5dr3zAMOZ1OxcfHKzw8XJ07d9Z7771XuV8O+C8kDKhUISEhmjdvnvbs2aPFixdr48aNmjx58iXPHzZsmJo1a6avvvpKO3bs0NSpU1WnTh1JUnZ2tpKSkjRkyBDt2rVLy5cvV3p6upKTkyvr6wBemTp1qp544gnt27dPnTp18mqM0+nUkiVLtHDhQu3Zs0cpKSm6++67lZaWVsHRAhdHXQwVZs2aNW7l2H79+undd9917V911VV67LHHNHr0aL3yyisXvcaRI0c0adIktWvXTpLUunVr12dOp1PDhg3T+PHjXZ/NmzdPPXv21IIFC4L2BTCofmbPnq1bb73V6/OLioo0d+5cbdiwQd26dZMktWzZUunp6Xr11VfVs2fPigoVuCQSBlSYxMRELViwwLUfERGhDRs2yOl0av/+/crLy9O5c+dUWFios2fPqm7duhdcY8KECRo1apTefPNN9e7dW3fccYdatWolqaxdsWvXLi1dutR1vmmaMgxDhw4dUvv27Sv+SwJeuP766306PysrS2fPnr0gySguLta1115rZWiA10gYUGEiIiKUkJDg2j98+LB+85vf6IEHHtDjjz+uBg0aKD09Xffdd5+Ki4svmjDMnDlTv//977V27Vp9/PHHmjFjht555x0NGjRI+fn5+tOf/qRx48ZdMK558+YV+t0AX0RERLjth4SE6Oer8peUlLj+fH5ez9q1a9W0aVO383j/BKoKCQMqzY4dO2QYhp599lmFhJRNn1mxYoXHcW3atFGbNm2UkpKioUOHatGiRRo0aJCuu+467d271y0pAaqDhg0bavfu3W7HMjIyXPNzOnToILvdriNHjtB+QMBg0iMqTUJCgkpKSjR//nwdPHhQb775phYuXHjJ83/88UclJydr06ZN+u6777R161Z99dVXrlbDlClTtG3bNiUnJysjI0MHDhzQhx9+yKRHBLybb75Z27dv15IlS3TgwAHNmDHDLYFwOByaOHGiUlJStHjxYmVnZ+vrr7/W/PnztXjx4iqMHDUZCQMqTefOnfXcc8/pySef1NVXX62lS5fK6XRe8vxatWrp1KlTGj58uNq0aaM777xT/fr106xZsyRJnTp1Ulpamr799lt1795d1157raZPn67Y2NjK+kpAufTt21fTpk3T5MmTdcMNN+jMmTMaPny42zlz5szRtGnT5HQ61b59eyUlJWnt2rWKj4+voqhR0/F6awAA4BEVBgAA4BEJAwAA8IiEAQAAeETCAAAAPCJhAAAAHpEwAAAAj0gYAACARyQMQDUxcuRIDRw40LXfq1cv15s6K9OmTZtks9l0+vTpS55js9m0atUqr685c+ZMXXPNNX7FdfjwYdlsNmVkZPh1HQAXR8IA+GHkyJGy2Wyy2WwKDQ1VQkKCZs+erXPnzlX4vT/44APNmTPHq3O9+SEPAJfDy6cAPyUlJWnRokUqKirSRx99pLFjx6pOnTp65JFHLji3uLhYoaGhlty3QYMGllwHALxBhQHwk91uV0xMjFq0aKEHHnhAvXv31t///ndJ/2kjPP7444qNjVXbtm0lSUePHtWdd96pevXqqUGDBhowYIAOHz7sumZpaakmTJigevXq6YorrtDkyZMveB3yz1sSRUVFmjJliuLi4mS325WQkKA33nhDhw8fVmJioiSpfv36stlsGjlypCTJMAw5nU7Fx8crPDxcnTt31nvvved2n48++kht2rRReHi4EhMT3eL01pQpU9SmTRvVrVtXLVu21LRp09xe53zeq6++qri4ONWtW1d33nmncnNz3T5//fXX1b59e4WFhaldu3Z65ZVXfI4FQPmQMAAWCw8PV3FxsWv/008/VWZmptavX681a9aopKREffv2lcPh0JYtW7R161ZFRkYqKSnJNe7ZZ59Vamqq/va3vyk9PV0//PCDVq5cedn7Dh8+XG+//bbmzZunffv26dVXX1VkZKTi4uL0/vvvS5IyMzOVk5OjF198UZLkdDq1ZMkSLVy4UHv27FFKSoruvvtupaWlSSpLbAYPHqz+/fsrIyNDo0aN0tSpU33+38ThcCg1NVV79+7Viy++qNdee03PP/+82zlZWVlasWKFVq9erXXr1umbb77RmDFjXJ8vXbpU06dP1+OPP659+/Zp7ty5mjZtGm9vBCqLCaDcRowYYQ4YMMA0TdM0DMNcv369abfbzYkTJ7o+b9y4sVlUVOQa8+abb5pt27Y1DcNwHSsqKjLDw8PNTz75xDRN02zSpIn51FNPuT4vKSkxmzVr5rqXaZpmz549zYceesg0TdPMzMw0JZnr16+/aJyfffaZKcn897//7TpWWFho1q1b19y2bZvbuffdd585dOhQ0zRN85FHHjE7dOjg9vmUKVMuuNbPSTJXrlx5yc+ffvpps0uXLq79GTNmmLVq1TKPHTvmOvbxxx+bISEhZk5OjmmaptmqVStz2bJlbteZM2eO2a1bN9M0TfPQoUOmJPObb7655H0BlB9zGAA/rVmzRpGRkSopKZFhGPr973+vmTNnuj7v2LGj27yFnTt3KisrSw6Hw+06hYWFys7OVm5urnJyctS1a1fXZ7Vr19b1119/QVvivIyMDNWqVUs9e/b0Ou6srCydPXtWt956q9vx4uJiXXvttZKkffv2ucUhSd26dfP6HuctX75c8+bNU3Z2tvLz83Xu3DlFRUW5ndO8eXM1bdrU7T6GYSgzM1MOh0PZ2dm67777dP/997vOOXfunKKjo32OB4DvSBgAPyUmJmrBggUKDQ1VbGysatd2/88qIiLCbT8/P19dunTR0qVLL7hWw4YNyxVDeHi4z2Py8/MlSWvXrnX7QS2Vzcuwyueff65hw4Zp1qxZ6tu3r6Kjo/XOO+/o2Wef9TnW11577YIEplatWpbFCuDSSBgAP0VERCghIcHr86+77jotX75cjRo1uuC37POaNGmiL7/8Uj169JBU9pv0jh07dN111130/I4dO8owDKWlpal3794XfH6+wlFaWuo61qFDB9ntdh05cuSSlYn27du7JnCe98UXX3j+kv9l27ZtatGihR599FHXse++++6C844cOaLjx48rNjbWdZ+QkBC1bdtWjRs3VmxsrA4ePKhhw4b5dH8A1mDSI1DJhg0bpiuvvFIDBgzQli1bdOjQIW3atEnjxo3TsWPHJEkPPfSQnnjiCa1atUr79+/XmDFjLruGwlVXXaURI0bo3nvv1apVq1zXXLFihSSpRYsWstlsWrNmjf75z38qPz9fDodDEydOVEpKihYvXqzs7Gx9/fXXmj9/vmsi4ejRo3XgwAFNmjRJmZmZWrZsmVJTU336vq1bt9aRI0f0zjvvKDs7W/PmzbvoBM6wsDCNGDFCO3fu1JYtWzRu3DjdeeediomJkSTNmjVLTqdT8+bN07fffqt//OMfWrRokZ577jmf4gFQPiQMQCWrW7euNm/erObNm2vw4MFq37697rvvPhUWFroqDg8//LD+8Ic/aMSIEerWrZscDocGDRp02esuWLBAv/3tbzVmzBi1a9dO999/vwoKCiRJTZs21axZszR16lQ1btxYycnJkqQ5c+Zo2rRpcjqdat++vZKSkrR27VrFx8dLKptX8P7772vVqlXq3LmzFi5cqLlz5/r0fW+//XalpKQoOTlZ11xzjbZt26Zp06ZdcF5CQoIGDx6s2267TX369FGnTp3cHpscNWqUXn/9dS1atEgdO3ZUz549lZqa6ooVQMWymZeaRQUAAPATKgwAAMAjEgYAAOARCQMAAPCIhAEAAHhEwgAAADwiYQAAAB6RMAAAAI9IGAAAgEckDAAAwCMSBgAA4BEJAwAA8IiEAQAAePT/Abvl/HA9pBryAAAAAElFTkSuQmCC", + "text/plain": [ + "<Figure size 640x480 with 2 Axes>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "#######CONFUSION MATRIX ###########\n", + "from sklearn import metrics\n", + "y_test_pred_svm = model_svm.predict(X_test)\n", + "confusion_matrix_test = metrics.confusion_matrix(y_test, y_test_pred_svm)\n", + "cm_display = metrics.ConfusionMatrixDisplay(confusion_matrix = confusion_matrix_test, display_labels = [False, True])\n", + "cm_display.plot()\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 61, + "id": "94871ada", + "metadata": {}, + "outputs": [], + "source": [ + "y_proba = model_svm.fit(X_train, y_train).predict_proba(X_test)[:,1]" + ] + }, + { + "cell_type": "code", + "execution_count": 62, + "id": "2d5767d3", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Accuracy : 0.725\n", + "Sensitivity : 0.3076923076923077\n", + "Specificity : 0.9259259259259259\n" + ] + } + ], + "source": [ + "total1=sum(sum(confusion_matrix_test))\n", + "#####from confusion matrix calculate accuracy\n", + "accuracy1=(confusion_matrix_test[0,0]+confusion_matrix_test[1,1])/total1\n", + "print ('Accuracy : ', accuracy1)\n", + "\n", + "sensitivity1 = confusion_matrix_test[0,0]/(confusion_matrix_test[0,0]+confusion_matrix_test[0,1])\n", + "print('Sensitivity : ', sensitivity1 )\n", + "\n", + "specificity1 = confusion_matrix_test[1,1]/(confusion_matrix_test[1,0]+confusion_matrix_test[1,1])\n", + "print('Specificity : ', specificity1)" + ] + }, + { + "cell_type": "code", + "execution_count": 63, + "id": "66858777", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " precision recall f1-score support\n", + "\n", + " 0 0.67 0.31 0.42 13\n", + " 1 0.74 0.93 0.82 27\n", + "\n", + " accuracy 0.73 40\n", + " macro avg 0.70 0.62 0.62 40\n", + "weighted avg 0.71 0.72 0.69 40\n", + "\n" + ] + } + ], + "source": [ + "from sklearn.metrics import classification_report, confusion_matrix\n", + "grid_predictions = grid.predict(X_test)\n", + "print(classification_report(y_test, grid_predictions))" + ] + }, + { + "cell_type": "code", + "execution_count": 66, + "id": "c1095af0", + "metadata": {}, + "outputs": [], + "source": [ + "# for important features:\n", + "important_feat = model_svm.coef_[0]\n", + "#get indices of those important features\n", + "idx = important_feat.argsort(kind= \"quicksort\")\n", + "idx= idx[::-1][:50]" + ] + }, + { + "cell_type": "code", + "execution_count": 67, + "id": "ae7e0162", + "metadata": {}, + "outputs": [], + "source": [ + "df1 = X_selected.T" + ] + }, + { + "cell_type": "code", + "execution_count": 68, + "id": "1d97f818", + "metadata": {}, + "outputs": [], + "source": [ + "top_met = df1.iloc[idx]" + ] + }, + { + "cell_type": "code", + "execution_count": 69, + "id": "4cd4227b", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Index(['COL1A1', 'ECT2', 'COL7A1', 'IGF2BP2', 'COL5A2', 'NUSAP1', 'MCM2',\n", + " 'IGFBP3', 'FSCN1', 'LAMB3', 'RPN1', 'AGRN', 'EFNA1', 'LAMC2', 'TAPBP',\n", + " 'HSPBAP1', 'TGIF1', 'TYMP', 'ANO1', 'LCN2', 'UCHL1', 'AURKA', 'AIM2',\n", + " 'RUVBL1', 'TSPAN6', 'MYH10', 'DHRS2', 'IFI35', 'ERCC3', 'ENTPD6',\n", + " 'SLC2A1', 'PITX1', 'SSRP1', 'PCSK5', 'HSPD1', 'IL1RN', 'SERPINB13',\n", + " 'LYPD3', 'ACLY', 'SCNN1A', 'TMF1', 'GALNT1', 'SPRR3', 'ITPKC', 'STK24',\n", + " 'NT5C2', 'PTN', 'EMP1', 'TMPRSS11D', 'TST'],\n", + " dtype='object')" + ] + }, + "execution_count": 69, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "top_met.index" + ] + }, + { + "cell_type": "code", + "execution_count": 70, + "id": "8f6d88bb", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Index(['ACLY', 'ACTG2', 'AGRN', 'AIM2', 'ALDH9A1', 'ALOX12', 'ANO1', 'AQP3',\n", + " 'ATP6V1D', 'AURKA', 'CCNG2', 'CES2', 'CFD', 'CH25H', 'CLIC3', 'COL1A1',\n", + " 'COL5A2', 'COL7A1', 'CRABP2', 'CRCT1', 'CRISP3', 'CRNN', 'CYP4B1',\n", + " 'DHRS1', 'DHRS2', 'DUOX1', 'DUSP5', 'ECM1', 'ECT2', 'EFNA1', 'EMP1',\n", + " 'ENTPD6', 'ERCC3', 'FLG', 'FSCN1', 'GALE', 'GALNT1', 'GPX3', 'HOPX',\n", + " 'HSPB8', 'HSPBAP1', 'HSPD1', 'ID4', 'IFI35', 'IGF2BP2', 'IGFBP3',\n", + " 'IL1RN', 'INPP1', 'ITPKC', 'KANK1', 'KLK13', 'KRT4', 'LAMB3', 'LAMC2',\n", + " 'LCN2', 'LYPD3', 'MAL', 'MCM2', 'MUC1', 'MYH10', 'NDRG2', 'NT5C2',\n", + " 'NUSAP1', 'PCSK5', 'PHLDA1', 'PITX1', 'PPP1R3C', 'PTN', 'RAB11FIP1',\n", + " 'RANBP9', 'RHCG', 'RND3', 'RPN1', 'RUVBL1', 'SCNN1A', 'SERPINB13',\n", + " 'SERPINB2', 'SIM2', 'SLC2A1', 'SLK', 'SPRR3', 'SSRP1', 'STK24',\n", + " 'SYNPO2L', 'TAPBP', 'TFAP2B', 'TGIF1', 'TIAM1', 'TJP1', 'TMF1',\n", + " 'TMPRSS11D', 'TMPRSS11E', 'TSPAN6', 'TST', 'TYMP', 'UCHL1', 'ZBTB16',\n", + " 'ZNF185'],\n", + " dtype='object')" + ] + }, + "execution_count": 70, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "X_selected.columns" + ] + }, + { + "cell_type": "code", + "execution_count": 72, + "id": "5d9ff727", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAr4AAAIjCAYAAADlfxjoAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAABwi0lEQVR4nO3deZyN5f/H8dfMmBUz9n00KEvZ11ApKW0S9U1ZU+lblsqkskWp6JeUklIqJCLtUiRF2ZJlRES2ryUjk2UwZj3X74+rGYahOePM3HPOeT8fj3nM3Pfc55zPcRjv+ZxrCTDGGEREREREfFyg0wWIiIiIiBQEBV8RERER8QsKviIiIiLiFxR8RURERMQvKPiKiIiIiF9Q8BURERERv6DgKyIiIiJ+QcFXRERERPyCgq+IiIiI+AUFXxERERHxCwq+IiKFwIYNG7jjjju46KKLCAsLo3Llylx33XVMmDCBtWvXEhAQwPDhw895+z/++IOAgABiY2MBePrppwkICCAwMJA9e/acdX1iYiLh4eEEBATQv3//fHteIiKFiYKviIjDli9fTtOmTVm/fj19+vTh9ddf5/777ycwMJBXX32Vxo0bU7t2bT788MNz3sfMmTMB6N69e7bzoaGhOd7u008/9eyTEBHxAkWcLkBExN89//zzREVF8csvv1CiRIls3/vrr78A6NatG0899RQrV67k8ssvP+s+PvzwQ2rXrk3jxo2znb/pppv48MMPeeKJJ7KdnzlzJjfffDOffPKJZ5+MiEghpo6viIjDtm/fzmWXXXZW6AUoV64cYIMvnOrsnm7NmjVs2bIl65rTde3albi4OH7//fesc/Hx8Xz//fd07drVQ89ARMQ7KPiKiDjsoosuYs2aNWzcuPGc11SrVo1WrVrx0UcfkZGRke17mWE4pyB71VVXUaVKlWyBefbs2RQrVoybb77ZQ89ARMQ7KPiKiDhs0KBBJCUl0bBhQ1q1asWTTz7Jt99+S1paWrbrunXrxoEDB1i0aFHWOZfLxezZs2nZsiXVq1c/674DAgK46667so3znTFjBp07dyY0NDT/npSISCGk4Csi4rDrrruOFStWcOutt7J+/XpefPFF2rdvT+XKlfnyyy+zruvSpQvBwcHZurdLlixh3759OQ5zyNS1a1e2bdvGL7/8kvVZwxxExB8p+IqIFALNmjXj008/5fDhw6xatYohQ4Zw7Ngx7rjjDjZt2gRA6dKlad++PZ999hnJycmAHeZQpEgR7rzzznPed6NGjahduzYzZ85kxowZVKhQgbZt2xbI8xIRKUwUfEVECpGQkBCaNWvG6NGjefPNN0lLS2POnDlZ3+/evTuJiYl89dVXpKam8sknn3D99ddTtmzZ895v165dmT17NjNnzqRLly4EBurHv4j4H/3kExEppJo2bQrA/v37s87deuutFC9enJkzZ/LNN99w+PDh8w5zyNS1a1f279/P1q1bNcxBRPyW1vEVEXHYDz/8wNVXX01AQEC2819//TUAtWrVyjoXHh5Op06dmD17NklJSRQtWpSOHTv+62PUqFGD8ePHc/LkSZo3b+7ZJyAi4iUUfEVEHDZgwACSkpLo1KkTtWvXJjU1leXLlzN79mxiYmLo3bt3tuu7d+/O+++/z4IFC+jWrRtFixbN1eM88sgj+VG+iIjXUPAVEXHYSy+9xJw5c/j66695++23SU1NpWrVqvTt25fhw4eftbFF27ZtqVixIvv378/VMAcREbECjDHG6SJERERERPKbJreJiIiIiF9Q8BURERERv6DgKyIiIiJ+QcFXRERERPyCgq+IiIiI+AUFXxERERHxC363jq/L5eLPP/+kePHiZ+2SJCIiIiLOM8Zw7NgxKlWqRGCg5/q0fhd8//zzT6Kjo50uQ0RERET+xZ49e6hSpYrH7s/vgm/x4sUB+wcZGRnpcDUiIiIicqbExESio6Ozcpun+F3wzRzeEBkZqeArIiIiUoh5eliqJreJiIiIiF9Q8BURERERv6DgKyIiIiJ+QcFXRERERPyCgq+IiIiI+AUFXxERERHxCwq+IiIiIuIXFHxFRERExC8o+IqIiIiIX1DwFRERERG/oOArIiIiIn5BwVdERERE/IKCr4iIiIj4BQVfEREREfELCr4iIiIi4hccDb4//vgjHTp0oFKlSgQEBPD555//620WL15M48aNCQ0N5eKLL2bq1Kn5XqeIiIiIeD9Hg++JEydo0KABEydOzNX1O3fu5Oabb+aaa64hLi6ORx99lPvvv58FCxbkc6UiIiIi4u2KOPngN954IzfeeGOur580aRLVqlVj3LhxANSpU4elS5fyyiuv0L59+/wqU0RERPzQ5s32QwpeUlL+3K+jwdddK1asoF27dtnOtW/fnkcf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xEcp+OaShjn4mG+/hXr14Isv7O5rR486XZGIiIjkMwXfXNLENh+RnAwDB0L79hAfD3XqaMUGERERP1Eogu/EiROJiYkhLCyMFi1asGrVqnNeO3nyZK688kpKlixJyZIladeu3Xmv9xR1fH3Axo3QvDmMH2+P+/aF1auhYUMnqxIREZEC4njwnT17NrGxsYwcOZK1a9fSoEED2rdvz19//ZXj9YsXL+buu+/mhx9+YMWKFURHR3P99dezb9++fK1THV8v9/ff0LIlbNgAZcvC3Ll26+GICKcrExERkQISYEzmtHZntGjRgmbNmvH6668D4HK5iI6OZsCAAQwePPhfb5+RkUHJkiV5/fXX6dmz579en5iYSFRUFEePHiUyMjJXNZ44AcWK2a8TEqB06VzdTAqbZ5+FFStgyhQoX97pakREROQc8pLXcsPR5cxSU1NZs2YNQ4YMyToXGBhIu3btWLFiRa7uIykpibS0NEqVKpXj91NSUkhJSck6TszDtrNbt9rPZcoo9HqVuXOhWjWoW9ceDx0KgYF26TIRERHxO44OdUhISCAjI4PyZ3TfypcvT3x8fK7u48knn6RSpUq0a9cux++PGTOGqKiorI/o6Gi369T4Xi+TlAQPPQS33grdutkJbWC3H1boFRER8VuOj/G9EC+88AKzZs3is88+IywsLMdrhgwZwtGjR7M+9uzZ4/bjZI7vVfD1AmvXQuPGMGmSPW7XTmFXREREAIeHOpQpU4agoCAOHDiQ7fyBAweoUKHCeW/70ksv8cILL/Ddd99Rv379c14XGhpKaGjoBdWZ2fHVxLZCzOWCl16C4cMhLQ0qVoT337fBV0RERASHO74hISE0adKERYsWZZ1zuVwsWrSIli1bnvN2L774Is8++yzz58+nadOm+V6nhjoUcocP24D75JM29HbqZFdvUOgVERGR0zja8QWIjY2lV69eNG3alObNmzN+/HhOnDhB7969AejZsyeVK1dmzJgxAPzf//0fI0aMYObMmcTExGSNBS5WrBjFMpde8CCXSx3fQi8y0gbeiAh47TW4914NbxAREZGzOB58u3TpwsGDBxkxYgTx8fE0bNiQ+fPnZ0142717N4GBpxrTb775Jqmpqdxxxx3Z7mfkyJE8/fTTHq9v3z47V6pIEbtAgBQSx45BcDCEhdlJazNmQEoKXHKJ05WJiIhI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zHZNTjUaY8yGDRvMDTfcYIoWLWrKlStnunfvbg4ePJh1u2+++ca0bt3aREVFmVKlSpmbb77ZbNu27bw1XqjmzZubfv36ZR1nZGSYSpUqmTFjxpzzNhUrVjSvv/56tnOdO3c23bp1c/t+r7nmGjN8+PAcHyenf3OZTs9rnuTXHd8CWcosKcmO3+3QAQ4etKs3rFkD/fur0ysiUsglJUGxYs58XMjmcRs3bmT58uWEhIRknfv4449JS0s7q7ML8N///pdixYrx4YcfAjBjxgyKFStG3759c7z/Eud4m/T48eO0adOGffv28eWXX7J+/XqeeOIJXC6XW/VPmzaNkJAQli1bxqRJk+jWrRtz587l+PHjWdcsWLCApKQkOnXqBMCYMWN4//33mTRpEr/99hsDBw6ke/fuLFmy5JyP89NPP9G0adNs55KTk2nSpAnz5s1j48aNPPDAA/To0eOs4QFn1njkyBHatm1Lo0aNWL16NfPnz+fAgQPceeedWbc5ceIEsbGxrF69mkWLFhEYGEinTp3O++czevRoihUrdt6P3bt353jb1NRU1qxZQ7t27bLOBQYG0q5dO1asWHHOx0xJSSEsLCzbufDwcJYuXer2/TZv3pyffvrpnI9V0Px6VYd8X8ps/367Hm9mwo6NhdGjITQ0nx5QRET81VdffUWxYsVIT08nJSWFwMBAXn/99azvb926laioKCpWrHjWbUNCQqhevTpbt24F4I8//qB69eoEBwe7VcPMmTM5ePAgv/zyC6VKlQLg4osvdvu5XHLJJbz44otZxzVq1KBo0aJ89tln9OjRI+uxbr31VooXL05KSgqjR4/mu+++o2XLlgBUr16dpUuX8tZbb9GmTZscH+d///vfWcG3cuXK2X45GDBgAAsWLOCjjz6iefPm56zxueeeo1GjRowePTrr3HvvvUd0dDRbt26lZs2a3H777dke67333qNs2bJs2rSJunXr5ljjgw8+mC0856RSpUo5nk9ISCAjI4Py5ctnO1++fHl+z8wmOWjfvj0vv/wyV111FTVq1GDRokV8+umnZGRkuH2/lSpV4n//+9956y9ICr7kY8e3fHmoWBGOHoVp0+C66/LpgUREJD9ERMBpTcYCf2x3XHPNNbz55pucOHGCV155hSJFipwVtHLLGJOn28XFxdGoUaOs0JtXTZo0yXZcpEgR7rzzTmbMmEGPHj04ceIEX3zxBbNmzQJg27ZtJCUlcd0Z/8+mpqbS6DyrJZ08efKszmZGRgajR4/mo48+Yt++faSmppKSknLWbn5n1rh+/Xp++OEHihUrdtbjbN++nZo1a/LHH38wYsQIfv75ZxISErI6vbt37z5n8C1VqtQF/3m669VXX6VPnz7Url2bgIAAatSoQe/evXnvvffcvq/w8HCSLuTtCw/z2+DrcsE/v9h6tuO7dy+UKmV/YgUG2nV5g4OhTBkPPoiIiBSEgAAoWtTpKnKnaNGiWd3V9957jwYNGvDuu+9y3333AVCzZk2OHj3Kn3/+eVaHMDU1le3bt3PNNddkXbt06VLS0tLc6vqGh4ef9/uBgYFnheq0tLQcn8uZunXrRps2bfjrr79YuHAh4eHh3HDDDQBZQyDmzZtH5cqVs90u9DzvspYpU4bDhw9nOzd27FheffVVxo8fT7169ShatCiPPvroWRPYzqzx+PHjdOjQgf/7v/8763Eyu+wdOnTgoosuYvLkyVSqVAmXy0XdunXPOzlu9OjR2brIOdm0aRNVq1bN8fkFBQVx4MCBbOcPHDhAhQoVznl/ZcuW5fPPPyc5OZm///6bSpUqMXjwYKpXr+72/R46dIiyZcuet/6C5LdjfPfssYsqhIRATIyH7nTOHDuG9/TxUxUrKvSKiEiBCgwMZOjQoQwfPpyTJ08CcPvttxMcHMy4cePOun7SpEmcOHGCu+++G4CuXbty/Phx3njjjRzv/8iRIzmer1+/PnFxcedc7qxs2bLs378/27m405f3PI9WrVoRHR3N7NmzmTFjBv/5z3+yQvmll15KaGgou3fv5uKLL872ER0dfc77bNSoEZs2bcp2btmyZXTs2JHu3bvToEGDbENAzqdx48b89ttvxMTEnFVD0aJF+fvvv9myZQvDhw/n2muvpU6dOmeF7pw8+OCDxMXFnffjXEMdQkJCaNKkCYsWLco653K5WLRoUdaQkPMJCwujcuXKpKen88knn9CxY0e373fjxo3n7boXOI9OlfMCmbMEP/74qAFjLrvMA3eamGhM7952xQYwpnlzY5KSPHDHIiJSUM43w7ywy2m1hLS0NFO5cmUzduzYrHOvvPKKCQwMNEOHDjWbN28227ZtM+PGjTOhoaHmsccey3b7J554wgQFBZnHH3/cLF++3Ozatct899135o477jjnag8pKSmmZs2a5sorrzRLly4127dvNx9//LFZvny5McaY+fPnm4CAADNt2jSzdetWM2LECBMZGXnWqg6PPPJIjvc/bNgwc+mll5oiRYqYn3766azvlS5d2kydOtVs27bNrFmzxrz22mtm6tSp5/xz+/LLL025cuVMenp61rmBAwea6Ohos2zZMrNp0yZz//33m8jIyGx/vjnVuG/fPlO2bFlzxx13mFWrVplt27aZ+fPnm3vuucekp6ebjIwMU7p0adO9e3fzxx9/mEWLFplmzZoZwHz22WfnrPFCzZo1y4SGhpqpU6eaTZs2mQceeMCUKFHCxMfHZ13To0cPM3jw4KzjlStXmk8++cRs377d/Pjjj6Zt27amWrVq2VbzyM39GmPMRRddZN5///0ca3NiVQe/Db4vvGCDb+fOF3iHK1YYU6OGDbwBAcYMG2ZMaqpHahURkYLja8HXGGPGjBljypYta44fP5517osvvjBXXnmlKVq0qAkLCzNNmjQx7733Xo73O3v2bHPVVVeZ4sWLm6JFi5r69eubUaNGnXc5s127dpnbb7/dREZGmoiICNO0aVPz888/Z31/xIgRpnz58iYqKsoMHDjQ9O/fP9fBd9OmTQYwF110kXGdsd6by+Uy48ePN7Vq1TLBwcGmbNmypn379mbJkiXnrDUtLc1UqlTJzJ8/P+vc33//bTp27GiKFStmypUrZ4YPH2569uz5r8HXGGO2bt1qOnXqZEqUKGHCw8NN7dq1zaOPPppV68KFC02dOnVMaGioqV+/vlm8eHG+B19jjJkwYYKpWrWqCQkJMc2bN89aXu7059OrV6+s48WLF2fVWbp0adOjRw+zb98+t+93+fLlpkSJEibpHM1AJ4JvgDF5HMHupRITE4mKiuLee4/y3nuRDBliF1pwW3q6veGoUZCRAVWrwvTpcNVVHq9ZRETyX3JyMjt37qRatWpnTXgS3zVx4kS+/PJLFixY4HQpPqdLly40aNCAoUOH5vj98/2by8xrR48eJTIy0mM1+e3ktj/+sJ/zPLHt4EF49VUbeu++G954o4C2fxMRERFP+e9//8uRI0c4duyYT29bXNBSU1OpV68eAwcOdLqUbPw2+GaOU8/zUmYVK8J778GxY9C9u8fqEhERkYJTpEgRhg0b5nQZPickJIThw4c7XcZZ/HZVh8wVOHIdfI8csZ3dL744da5jR4VeERERES/ht8EX7P4SuRqdsGSJXaZs1ix48EG7DpqIiIiIeBW/Dr7/Or43NRWGDIFrrrEL/9aoAZ9/Dpr0ICLis/xszreIY5z4t+a3Y3zhX4Y5bNkC3brBmjX2+N577WS2HLYiFBER75e5GUJSUtK/7kAmIhcuc8e6oKCgAntMBd+c7NkDjRtDUhKULAmTJ0Me9zsXERHvEBQURIkSJfjrr78AiIiIICAgwOGqRHyTy+Xi4MGDREREUKRIwcVRvw6+5xzqEB1tJ61t2wbTpkGVKgVal4iIOKNChQoAWeFXRPJPYGAgVatWLdBfMP06+Gbr+C5cCJddBpn7Xb/2GgQHQ6BfD4MWEfErAQEBVKxYkXLlypGWluZ0OSI+LSQkhMACzll+G3yDgyEmBrtCw5AhMH48tGsHCxbYsBsa6nCFIiLilKCgoAIddygiBaNQtDMnTpxITEwMYWFhtGjRglWrVp33+jlz5lC7dm3CwsKoV68eX3/9tduPWaMGBG3eCM2b29ALULMm6Dd8EREREZ/kePCdPXs2sbGxjBw5krVr19KgQQPat29/zvFVy5cv5+677+a+++5j3bp13Hbbbdx2221s3LjRrcftV2QSNG0KGzZA2bIwdy5MnKhOr4iIiIiPCjAOL1jYokULmjVrxuuvvw7YWX7R0dEMGDCAwYMHn3V9ly5dOHHiBF999VXWucsvv5yGDRsyadKkf328xMREoqKiOApEAtx4I0yZYnezEBERERHHZeW1o0eJjIz02P06OsY3NTWVNWvWMGTIkKxzgYGBtGvXjhUrVuR4mxUrVhAbG5vtXPv27fn8889zvD4lJYWUlJSs46NHjwJwOCgYxjwPDzwAAQGQmHiBz0ZEREREPCHxn1zm6f6so8E3ISGBjIwMyp/RbS1fvjy///57jreJj4/P8fr4+Pgcrx8zZgzPPPPMWedjMtLgiSfsh4iIiIgUOn///TdRUVEeuz+fX9VhyJAh2TrER44c4aKLLmL37t0e/YOUwikxMZHo6Gj27Nnj0bdKpHDS6+1f9Hr7F73e/uXo0aNUrVqVUqVKefR+HQ2+ZcqUISgoiAMHDmQ7f+DAgaxFxM9UoUIFt64PDQ0lNIcJa1FRUfqH40ciIyP1evsRvd7+Ra+3f9Hr7V88vc6vo6s6hISE0KRJExYtWpR1zuVysWjRIlq2bJnjbVq2bJnteoCFCxee83oRERERESgEQx1iY2Pp1asXTZs2pXnz5owfP54TJ07Qu3dvAHr27EnlypUZM2YMAI888ght2rRh3Lhx3HzzzcyaNYvVq1fz9ttvO/k0RERERKSQczz4dunShYMHDzJixAji4+Np2LAh8+fPz5rAtnv37mxt7latWjFz5kyGDx/O0KFDueSSS/j888+pW7durh4vNDSUkSNH5jj8QXyPXm//otfbv+j19i96vf1Lfr3ejq/jKyIiIiJSEBzfuU1EREREpCAo+IqIiIiIX1DwFRERERG/oOArIiIiIn7BJ4PvxIkTiYmJISwsjBYtWrBq1arzXj9nzhxq165NWFgY9erV4+uvvy6gSsUT3Hm9J0+ezJVXXknJkiUpWbIk7dq1+9e/H1K4uPvvO9OsWbMICAjgtttuy98CxaPcfb2PHDlCv379qFixIqGhodSsWVM/072Iu6/3+PHjqVWrFuHh4URHRzNw4ECSk5MLqFq5ED/++CMdOnSgUqVKBAQE8Pnnn//rbRYvXkzjxo0JDQ3l4osvZurUqe4/sPExs2bNMiEhIea9994zv/32m+nTp48pUaKEOXDgQI7XL1u2zAQFBZkXX3zRbNq0yQwfPtwEBwebDRs2FHDlkhfuvt5du3Y1EydONOvWrTObN28299xzj4mKijJ79+4t4MolL9x9vTPt3LnTVK5c2Vx55ZWmY8eOBVOsXDB3X++UlBTTtGlTc9NNN5mlS5eanTt3msWLF5u4uLgCrlzywt3Xe8aMGSY0NNTMmDHD7Ny50yxYsMBUrFjRDBw4sIArl7z4+uuvzbBhw8ynn35qAPPZZ5+d9/odO3aYiIgIExsbazZt2mQmTJhggoKCzPz58916XJ8Lvs2bNzf9+vXLOs7IyDCVKlUyY8aMyfH6O++809x8883ZzrVo0cL897//zdc6xTPcfb3PlJ6ebooXL26mTZuWXyWKB+Xl9U5PTzetWrUy77zzjunVq5eCrxdx9/V+8803TfXq1U1qampBlSge5O7r3a9fP9O2bdts52JjY03r1q3ztU7xvNwE3yeeeMJcdtll2c516dLFtG/f3q3H8qmhDqmpqaxZs4Z27dplnQsMDKRdu3asWLEix9usWLEi2/UA7du3P+f1Unjk5fU+U1JSEmlpaZQqVSq/yhQPyevrPWrUKMqVK8d9991XEGWKh+Tl9f7yyy9p2bIl/fr1o3z58tStW5fRo0eTkZFRUGVLHuXl9W7VqhVr1qzJGg6xY8cOvv76a2666aYCqVkKlqfymuM7t3lSQkICGRkZWbu+ZSpfvjy///57jreJj4/P8fr4+Ph8q1M8Iy+v95mefPJJKlWqdNY/Jil88vJ6L126lHfffZe4uLgCqFA8KS+v944dO/j+++/p1q0bX3/9Ndu2baNv376kpaUxcuTIgihb8igvr3fXrl1JSEjgiiuuwBhDeno6Dz74IEOHDi2IkqWAnSuvJSYmcvLkScLDw3N1Pz7V8RVxxwsvvMCsWbP47LPPCAsLc7oc8bBjx47Ro0cPJk+eTJkyZZwuRwqAy+WiXLlyvP322zRp0oQuXbowbNgwJk2a5HRpkg8WL17M6NGjeeONN1i7di2ffvop8+bN49lnn3W6NCnEfKrjW6ZMGYKCgjhw4EC28wcOHKBChQo53qZChQpuXS+FR15e70wvvfQSL7zwAt999x3169fPzzLFQ9x9vbdv386uXbvo0KFD1jmXywVAkSJF2LJlCzVq1MjfoiXP8vLvu2LFigQHBxMUFJR1rk6dOsTHx5OamkpISEi+1ix5l5fX+6mnnqJHjx7cf//9ANSrV48TJ07wwAMPMGzYMAID1dvzJefKa5GRkbnu9oKPdXxDQkJo0qQJixYtyjrncrlYtGgRLVu2zPE2LVu2zHY9wMKFC895vRQeeXm9AV588UWeffZZ5s+fT9OmTQuiVPEAd1/v2rVrs2HDBuLi4rI+br31Vq655hri4uKIjo4uyPLFTXn59926dWu2bduW9QsOwNatW6lYsaJCbyGXl9c7KSnprHCb+UuPnS8lvsRjec29eXeF36xZs0xoaKiZOnWq2bRpk3nggQdMiRIlTHx8vDHGmB49epjBgwdnXb9s2TJTpEgR89JLL5nNmzebkSNHajkzL+Lu6/3CCy+YkJAQ8/HHH5v9+/dnfRw7dsyppyBucPf1PpNWdfAu7r7eu3fvNsWLFzf9+/c3W7ZsMV999ZUpV66cee6555x6CuIGd1/vkSNHmuLFi5sPP/zQ7Nixw3z77bemRo0a5s4773TqKYgbjh07ZtatW2fWrVtnAPPyyy+bdevWmf/973/GGGMGDx5sevTokXV95nJmjz/+uNm8ebOZOHGiljPLNGHCBFO1alUTEhJimjdvblauXJn1vTZt2phevXplu/6jjz4yNWvWNCEhIeayyy4z8+bNK+CK5UK483pfdNFFBjjrY+TIkQVfuOSJu/++T6fg633cfb2XL19uWrRoYUJDQ0316tXN888/b9LT0wu4askrd17vtLQ08/TTT5saNWqYsLAwEx0dbfr27WsOHz5c8IWL23744Ycc/z/OfI179epl2rRpc9ZtGjZsaEJCQkz16tXNlClT3H7cAGP0foCIiIiI+D6fGuMrIiIiInIuCr4iIiIi4hcUfEVERETELyj4ioiIiIhfUPAVEREREb+g4CsiIiIifkHBV0RERET8goKviIiIiPgFBV8REWDq1KmUKFHC6TLyLCAggM8///y819xzzz3cdtttBVKPiEhhpOArIj7jnnvuISAg4KyPbdu2OV0aU6dOzaonMDCQKlWq0Lt3b/766y+P3P/+/fu58cYbAdi1axcBAQHExcVlu+bVV19l6tSpHnm8c3n66aeznmdQUBDR0dE88MADHDp0yK37UUgXkfxQxOkCREQ86YYbbmDKlCnZzpUtW9aharKLjIxky5YtuFwu1q9fT+/evfnzzz9ZsGDBBd93hQoV/vWaqKioC36c3Ljsssv47rvvyMjIYPPmzdx7770cPXqU2bNnF8jji4icizq+IuJTQkNDqVChQraPoKAgXn75ZerVq0fRokWJjo6mb9++HD9+/Jz3s379eq655hqKFy9OZGQkTZo0YfXq1VnfX7p0KVdeeSXh4eFER0fz8MMPc+LEifPWFhAQQIUKFahUqRI33ngjDz/8MN999x0nT57E5XIxatQoqlSpQmhoKA0bNmT+/PlZt01NTaV///5UrFiRsLAwLrroIsaMGZPtvjOHOlSrVg2ARo0aERAQwNVXXw1k76K+/fbbVKpUCZfLla3Gjh07cu+992Ydf/HFFzRu3JiwsDCqV6/OM888Q3p6+nmfZ5EiRahQoQKVK1emXbt2/Oc//2HhwoVZ38/IyOC+++6jWrVqhIeHU6tWLV599dWs7z/99NNMmzaNL774Iqt7vHjxYgD27NnDnXfeSYkSJShVqhQdO3Zk165d561HRCSTgq+I+IXAwEBee+01fvvtN6ZNm8b333/PE088cc7ru3XrRpUqVfjll19Ys2YNgwcPJjg4GIDt27dzww03cPvtt/Prr78ye/Zsli5dSv/+/d2qKTw8HJfLRXp6Oq+++irjxo3jpZde4tdff6V9+/bceuut/PHHHwC89tprfPnll3z00Uds2bKFGTNmEBMTk+P9rlq1CoDvvvuO/fv38+mnn551zX/+8x/+/vtvfvjhh6xzhw4dYv78+XTr1g2An376iZ49e/LII4+wadMm3nrrLaZOncrzzz+f6+e4a9cuFixYQEhISNY5l8tFlSpVmDNnDps2bWLEiBEMHTqUjz76CIBBgwZx5513csMNN7B//372799Pq1atSEtLo3379hQvXpyffvqJZcuWUaxYMW644QZSU1NzXZOI+DEjIuIjevXqZYKCgkzRokWzPu64444cr50zZ44pXbp01vGUKVNMVFRU1nHx4sXN1KlTc7ztfffdZx544IFs53766ScTGBhoTp48meNtzrz/rVu3mpo1a5qmTZsaY4ypVKmSef7557PdplmzZqZv377GGGMGDBhg2rZta1wuV473D5jPPvvMGGPMzp07DWDWrVuX7ZpevXqZjh07Zh137NjR3HvvvVnHb731lqlUqZLJyMgwxhhz7bXXmtGjR2e7j+nTp5uKFSvmWIMxxowcOdIEBgaaokWLmrCwMAMYwLz88svnvI0xxvTr18/cfvvt56w187Fr1aqV7c8gJSXFhIeHmwULFpz3/kVEjDFGY3xFxKdcc801vPnmm1nHRYsWBWz3c8yYMfz+++8kJiaSnp5OcnIySUlJREREnHU/sbGx3H///UyfPj3r7foaNWoAdhjEr7/+yowZM7KuN8bgcrnYuXMnderUybG2o0ePUqxYMVwuF8nJyVxxxRW88847JCYm8ueff9K6dets17du3Zr169cDdpjCddddR61atbjhhhu45ZZbuP766y/oz6pbt2706dOHN954g9DQUGbMmMFdd91FYGBg1vNctmxZtg5vRkbGef/cAGrVqsWXX35JcnIyH3zwAXFxcQwYMCDbNRMnTuS9995j9+7dnDx5ktTUVBo2bHjeetevX8+2bdsoXrx4tvPJycls3749D38CIuJvFHxFxKcULVqUiy++ONu5Xbt2ccstt/DQQw/x/PPPU6pUKZYuXcp9991HampqjgHu6aefpmvXrsybN49vvvmGkSNHMmvWLDp16sTx48f573//y8MPP3zW7apWrXrO2ooXL87atWsJDAykYsWKhIeHA5CYmPivz6tx48bs3LmTb775hu+++44777yTdu3a8fHHH//rbc+lQ4cOGGOYN28ezZo146effuKVV17J+v7x48d55pln6Ny581m3DQsLO+f9hoSEZL0GL7zwAjfffDPPPPMMzz77LACzZs1i0KBBjBs3jpYtW1K8eHHGjh3Lzz//fN56jx8/TpMmTbL9wpGpsExgFJHCTcFXRHzemjVrcLlcjBs3LqubmTme9Hxq1qxJzZo1GThwIHfffTdTpkyhU6dONG7cmE2bNp0VsP9NYGBgjreJjIykUqVKLFu2jDZt2mSdX7ZsGc2bN892XZcuXejSpQt33HEHN9xwA4cOHaJUqVLZ7i9zPG1GRsZ56wkLC6Nz587MmDGDbdu2UatWLRo3bpz1/caNG7Nlyxa3n+eZhg8fTtu2bXnooYeynmerVq3o27dv1jVndmxDQkLOqr9x48bMnj2bcuXKERkZeUE1iYh/0uQ2EfF5F198MWlpaUyYMIEdO3Ywffp0Jk2adM7rT548Sf/+/Vm8eDH/+9//WLZsGb/88kvWEIYnn3yS5cuX079/f+Li4vjjjz/44osv3J7cdrrHH3+c//u//2P27Nls2bKFwYMHExcXxyOPPALAyy+/zIcffsjvv//O1q1bmTNnDhUqVMhx041y5coRHh7O/PnzOXDgAEePHj3n43br1o158+bx3nvvZU1qyzRixAjef/99nnnmGX777Tc2b97MrFmzGD58uFvPrWXLltSvX5/Ro0cDcMkll7B69WoWLFjA1q1beeqpp/jll1+y3SYmJoZff/2VLVu2kJCQQFpaGt26daNMmTJ07NiRn376iZ07d7J48WIefvhh9u7d61ZNIuKfFHxFxOc1aNCAl19+mf/7v/+jbt26zJgxI9tSYGcKCgri77//pmfPntSsWZM777yTG2+8kWeeeQaA+vXrs2TJErZu3cqVV15Jo0aNGDFiBJUqVcpzjQ8//DCxsbE89thj1KtXj/nz5/Pll19yySWXAHaYxIsvvkjTpk1p1qwZu3bt4uuvv87qYJ+uSJEivPbaa7z11ltUqlSJjh07nvNx27ZtS6lSpdiyZQtdu3bN9r327dvz1Vdf8e2339KsWTMuv/xyXnnlFS666CK3n9/AgQN555132LNnD//973/p3LkzXbp0oUWLFvz999/Zur8Affr0oVatWjRt2pSyZcuybNkyIiIi+PHHH6latSqdO3emTp063HfffSQnJ6sDLCK5EmCMMU4XISIiIiKS39TxFRERERG/oOArIiIiIn5BwVdERERE/IKCr4iIiIj4BQVfEREREfELCr4iIiIi4hcUfEVERETELyj4ioiIiIhfUPAVEREREb+g4CsiIiIifkHBV0RERET8wv8D8zUh+trmaZ4AAAAASUVORK5CYII=", + "text/plain": [ + "<Figure size 800x600 with 1 Axes>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from sklearn.metrics import roc_curve, auc\n", + "# Calculate the false positive rate (FPR), true positive rate (TPR), and thresholds\n", + "fpr, tpr, thresholds = roc_curve(y_test, y_proba)\n", + "\n", + "# Calculate the area under the ROC curve (AUC)\n", + "roc_auc = auc(fpr, tpr)\n", + "\n", + "# Plot the ROC curve\n", + "plt.figure(figsize=(8, 6))\n", + "plt.plot(fpr, tpr, color='blue', label='ROC curve (area = %0.2f)' % roc_auc)\n", + "plt.plot([0, 1], [0, 1], color='red', linestyle='--')\n", + "plt.xlim([0.0, 1.0])\n", + "plt.ylim([0.0, 1.05])\n", + "plt.xlabel('False Positive Rate')\n", + "plt.ylabel('True Positive Rate')\n", + "plt.title('SVM')\n", + "plt.legend(loc='lower right')\n", + "plt.show()" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "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.9.16" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/03_Machine_Learning/mRNA_TCGA_limma_dataset_xgb_final.ipynb b/03_Machine_Learning/mRNA_TCGA_limma_dataset_xgb_final.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..9f76496637de6a1c38ed6292d945dc31efca39b9 --- /dev/null +++ b/03_Machine_Learning/mRNA_TCGA_limma_dataset_xgb_final.ipynb @@ -0,0 +1,1482 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 3, + "id": "f097ad55", + "metadata": {}, + "outputs": [], + "source": [ + "import warnings\n", + "warnings.filterwarnings('ignore')\n", + "import pandas as pd\n", + "from sklearn.model_selection import train_test_split\n", + "#from sklearn.model_selection import cross_val_score\n", + "#from sklearn.metrics import accuracy_score\n", + "#import sklearn.metrics as metrics\n", + "#from sklearn.metrics import auc\n", + "from sklearn.metrics import RocCurveDisplay\n", + "#from sklearn.model_selection import KFold\n", + "import matplotlib.pyplot as plt\n", + "import numpy as np\n", + "from imblearn.over_sampling import SMOTE\n", + "from sklearn.linear_model import Lasso\n", + "import xgboost as xgb\n", + "from sklearn.model_selection import GridSearchCV\n", + "import pandas as pd\n", + "import numpy as np\n", + "\n", + "np.random.seed(7)" + ] + }, + { + "cell_type": "markdown", + "id": "73b6611a", + "metadata": {}, + "source": [ + "# Data Preprocessing" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "0eeb7a35", + "metadata": {}, + "outputs": [], + "source": [ + "df_train = pd.read_csv(\"DS/mRNA_DS_preprocessed_training_data.csv\")" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "c04fc6bc", + "metadata": {}, + "outputs": [], + "source": [ + "df_test = pd.read_csv(\"DS/mRNA_TCGA_DS_test_data.csv\")" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "683b63ce", + "metadata": {}, + "outputs": [], + "source": [ + "df_train = df_train.T\n", + "df_test = df_test.T" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "6ecc5606", + "metadata": {}, + "outputs": [], + "source": [ + "#df_test = df_test[:-1]" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "d9b0088e", + "metadata": {}, + "outputs": [], + "source": [ + "#Transform the input data\n", + "df_train.rename(columns=df_train.iloc[0], inplace = True)\n", + "df_train.drop(df_train.index[0], inplace = True)\n", + "df_train=df_train.reset_index()" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "50511de4", + "metadata": {}, + "outputs": [], + "source": [ + "df_train=df_train.drop(['ACPP'], axis=1)" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "2e78017d", + "metadata": {}, + "outputs": [], + "source": [ + "#Transform the input data\n", + "df_test.rename(columns=df_test.iloc[0], inplace = True)\n", + "df_test.drop(df_test.index[0], inplace = True)\n", + "df_test=df_test.reset_index()" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "7168825e", + "metadata": {}, + "outputs": [], + "source": [ + "#read metadata\n", + "metadata_test = pd.read_csv(\"DS/mRNA_TCGA_DS_col_data.csv\")" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "26c98c3e", + "metadata": {}, + "outputs": [], + "source": [ + "df_test= df_test.merge(metadata_test, left_on=\"index\", right_on= \"Unnamed: 0\")" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "0d82a6ce", + "metadata": {}, + "outputs": [], + "source": [ + "df_test= df_test.rename(columns={\"group_assignments\": \"title0\"})" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "b42beaa4", + "metadata": {}, + "outputs": [], + "source": [ + "df_test['title0'] = df_test['title0'].replace('(?i)control|mucosa|normal|healthy', 0, regex=True)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "515cd9fc", + "metadata": {}, + "outputs": [], + "source": [ + "df_test['title0'] = df_test['title0'].replace('(?i)Tumor|Cancer|carcinoma', 1, regex=True)" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "id": "dcdefec2", + "metadata": {}, + "outputs": [], + "source": [ + "df_test = df_test[pd.to_numeric(df_test['title0'], errors='coerce').notnull()]#remove all non-numeric data from the column." + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "id": "ca48568a", + "metadata": {}, + "outputs": [], + "source": [ + "df_test= df_test.drop(['index', 'Unnamed: 0'], axis=1)" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "id": "d4b7e8b7", + "metadata": {}, + "outputs": [], + "source": [ + "df_test= df_test.rename(columns={\"title0\": \"index\"})" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "id": "5fc874c4", + "metadata": {}, + "outputs": [], + "source": [ + "# Select 13 rows of class 0\n", + "class_0 = df_test[df_test['index'] == 0].head(13)\n", + "\n", + "# Select 13 rows of class 1\n", + "class_1 = df_test[df_test['index'] == 1].head(27)\n", + "\n", + "# Concatenate the selected rows\n", + "df_test = pd.concat([class_0, class_1])" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "id": "299ca65d", + "metadata": {}, + "outputs": [], + "source": [ + "X_test=df_test.drop(\"index\",axis=1)\n", + "y_test=df_test['index']" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "id": "4c50c510", + "metadata": {}, + "outputs": [], + "source": [ + "metadata_train = pd.read_csv(\"DS/mRNA_DS_metadata_col_info.csv\")" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "id": "6730cf89", + "metadata": {}, + "outputs": [], + "source": [ + "df_train= df_train.merge(metadata_train, left_on=\"index\", right_on= \"Unnamed: 0\")" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "id": "7a8ad8ad", + "metadata": {}, + "outputs": [], + "source": [ + "df_train['title0'] = df_train['title0'].replace('(?i)mucosa|normal|healthy', 0, regex=True)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "id": "a8cf8643", + "metadata": {}, + "outputs": [], + "source": [ + "df_train['title0'] = df_train['title0'].replace('(?i)Tumor|Cancer|carcinoma', 1, regex=True)" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "id": "f5d203aa", + "metadata": {}, + "outputs": [], + "source": [ + "df_train = df_train[pd.to_numeric(df_train['title0'], errors='coerce').notnull()]#remove all non-numeric data from the column." + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "id": "523bdaa6", + "metadata": {}, + "outputs": [], + "source": [ + "df_train= df_train.drop(['index', 'Unnamed: 0'], axis=1)" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "id": "46a6fb36", + "metadata": {}, + "outputs": [], + "source": [ + "df_train= df_train.rename(columns={\"title0\": \"index\"})" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "id": "fbaf2507", + "metadata": {}, + "outputs": [], + "source": [ + "df_train= df_train.apply(pd.to_numeric)" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "id": "776cfbee", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "index\n", + "0 111\n", + "1 108\n", + "Name: count, dtype: int64" + ] + }, + "execution_count": 30, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_train['index'].value_counts()" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "id": "8c0011ea", + "metadata": {}, + "outputs": [], + "source": [ + "X=df_train.drop(\"index\",axis=1)\n", + "y=df_train['index']" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "id": "a10804ed", + "metadata": {}, + "outputs": [], + "source": [ + "X=X.astype('int')" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "id": "93e28118", + "metadata": {}, + "outputs": [], + "source": [ + "y=y.astype('int')" + ] + }, + { + "cell_type": "markdown", + "id": "e9830b6c", + "metadata": {}, + "source": [ + "# Feature Selection" + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "id": "1cc528fb", + "metadata": {}, + "outputs": [], + "source": [ + "# LASSO model:\n", + "lasso = Lasso(alpha=1)\n", + "# fitting the model:\n", + "lasso.fit(X, y)\n", + "# select all coefficients and the feature names\n", + "lasso_coefs = lasso.coef_\n", + "feature_names = X.columns\n", + "\n", + "# collect the selected features:\n", + "selected_feature_indices = np.nonzero(lasso_coefs)[0]\n", + "selected_features = [feature_names[i] for i in selected_feature_indices]\n", + "X_selected = X.iloc[:, selected_feature_indices]" + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "id": "8afa29ae", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "98" + ] + }, + "execution_count": 36, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "len(selected_features)" + ] + }, + { + "cell_type": "markdown", + "id": "6cee6462", + "metadata": {}, + "source": [ + "# Test train split" + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "id": "cff9bd67", + "metadata": {}, + "outputs": [], + "source": [ + "X_train = X_selected\n", + "y_train = y" + ] + }, + { + "cell_type": "code", + "execution_count": 38, + "id": "129430e6", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(index\n", + " 1 27\n", + " 0 13\n", + " Name: count, dtype: int64,\n", + " index\n", + " 0 111\n", + " 1 108\n", + " Name: count, dtype: int64)" + ] + }, + "execution_count": 38, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "y_test.value_counts(),y_train.value_counts()" + ] + }, + { + "cell_type": "markdown", + "id": "1cfe2a06", + "metadata": {}, + "source": [ + "# Cross validation" + ] + }, + { + "cell_type": "code", + "execution_count": 39, + "id": "059bf577", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Fitting 5 folds for each of 72 candidates, totalling 360 fits\n", + "[CV 1/5] END gamma=0.1, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=0.8;, score=0.886 total time= 0.1s\n", + "[CV 2/5] END gamma=0.1, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=0.8;, score=0.955 total time= 0.1s\n", + "[CV 3/5] END gamma=0.1, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=0.8;, score=0.977 total time= 0.1s\n", + "[CV 4/5] END gamma=0.1, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=0.8;, score=0.932 total time= 0.1s\n", + "[CV 5/5] END gamma=0.1, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=0.8;, score=0.930 total time= 0.1s\n", + "[CV 1/5] END gamma=0.1, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=1;, score=0.886 total time= 0.1s\n", + "[CV 2/5] END gamma=0.1, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=1;, score=0.955 total time= 0.1s\n", + "[CV 3/5] END gamma=0.1, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=1;, score=0.977 total time= 0.1s\n", + "[CV 4/5] END gamma=0.1, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=1;, score=0.932 total time= 0.1s\n", + "[CV 5/5] END gamma=0.1, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=1;, score=0.953 total time= 0.1s\n", + "[CV 1/5] END gamma=0.1, learning_rate=0.1, max_depth=3, n_estimators=200, subsample=0.8;, score=0.864 total time= 0.1s\n", + "[CV 2/5] END gamma=0.1, learning_rate=0.1, max_depth=3, n_estimators=200, subsample=0.8;, score=0.977 total time= 0.1s\n", + "[CV 3/5] END gamma=0.1, learning_rate=0.1, max_depth=3, n_estimators=200, subsample=0.8;, score=0.977 total time= 0.1s\n", + "[CV 4/5] END gamma=0.1, learning_rate=0.1, max_depth=3, n_estimators=200, subsample=0.8;, score=0.932 total time= 0.2s\n", + "[CV 5/5] END gamma=0.1, learning_rate=0.1, max_depth=3, n_estimators=200, subsample=0.8;, score=0.953 total time= 0.1s\n", + "[CV 1/5] END gamma=0.1, learning_rate=0.1, max_depth=3, n_estimators=200, subsample=1;, score=0.886 total time= 0.1s\n", + "[CV 2/5] END gamma=0.1, learning_rate=0.1, max_depth=3, n_estimators=200, subsample=1;, score=0.955 total time= 0.1s\n", + "[CV 3/5] END gamma=0.1, learning_rate=0.1, max_depth=3, n_estimators=200, subsample=1;, score=0.977 total time= 0.1s\n", + "[CV 4/5] END gamma=0.1, learning_rate=0.1, max_depth=3, n_estimators=200, subsample=1;, score=0.932 total time= 0.1s\n", + "[CV 5/5] END gamma=0.1, learning_rate=0.1, max_depth=3, n_estimators=200, subsample=1;, score=0.953 total time= 0.2s\n", + "[CV 1/5] END gamma=0.1, learning_rate=0.1, max_depth=5, n_estimators=100, subsample=0.8;, score=0.886 total time= 0.1s\n", + "[CV 2/5] END gamma=0.1, learning_rate=0.1, max_depth=5, n_estimators=100, subsample=0.8;, score=0.977 total time= 0.1s\n", + "[CV 3/5] END gamma=0.1, learning_rate=0.1, max_depth=5, n_estimators=100, subsample=0.8;, score=0.977 total time= 0.1s\n", + "[CV 4/5] END gamma=0.1, learning_rate=0.1, max_depth=5, n_estimators=100, subsample=0.8;, score=0.932 total time= 0.1s\n", + "[CV 5/5] END gamma=0.1, learning_rate=0.1, max_depth=5, n_estimators=100, subsample=0.8;, score=0.953 total time= 0.1s\n", + "[CV 1/5] END gamma=0.1, learning_rate=0.1, max_depth=5, n_estimators=100, subsample=1;, score=0.909 total time= 0.1s\n", + "[CV 2/5] END gamma=0.1, learning_rate=0.1, max_depth=5, n_estimators=100, subsample=1;, score=0.977 total time= 0.1s\n", + "[CV 3/5] END gamma=0.1, learning_rate=0.1, max_depth=5, n_estimators=100, subsample=1;, score=0.977 total time= 0.1s\n", + "[CV 4/5] END gamma=0.1, learning_rate=0.1, max_depth=5, n_estimators=100, subsample=1;, score=0.909 total time= 0.1s\n", + "[CV 5/5] END gamma=0.1, learning_rate=0.1, max_depth=5, n_estimators=100, subsample=1;, score=0.953 total time= 0.1s\n", + "[CV 1/5] END gamma=0.1, learning_rate=0.1, max_depth=5, n_estimators=200, subsample=0.8;, score=0.818 total time= 0.2s\n", + "[CV 2/5] END gamma=0.1, learning_rate=0.1, max_depth=5, n_estimators=200, subsample=0.8;, score=0.977 total time= 0.1s\n", + "[CV 3/5] END gamma=0.1, learning_rate=0.1, max_depth=5, n_estimators=200, subsample=0.8;, score=0.977 total time= 0.2s\n", + "[CV 4/5] END gamma=0.1, learning_rate=0.1, max_depth=5, n_estimators=200, subsample=0.8;, score=0.932 total time= 0.1s\n", + "[CV 5/5] END gamma=0.1, learning_rate=0.1, max_depth=5, n_estimators=200, subsample=0.8;, score=0.953 total time= 0.1s\n", + "[CV 1/5] END gamma=0.1, learning_rate=0.1, max_depth=5, n_estimators=200, subsample=1;, score=0.886 total time= 0.2s\n", + "[CV 2/5] END gamma=0.1, learning_rate=0.1, max_depth=5, n_estimators=200, subsample=1;, score=0.977 total time= 0.1s\n", + "[CV 3/5] END gamma=0.1, learning_rate=0.1, max_depth=5, n_estimators=200, subsample=1;, score=0.977 total time= 0.1s\n", + "[CV 4/5] END gamma=0.1, learning_rate=0.1, max_depth=5, n_estimators=200, subsample=1;, score=0.932 total time= 0.2s\n", + "[CV 5/5] END gamma=0.1, learning_rate=0.1, max_depth=5, n_estimators=200, subsample=1;, score=0.953 total time= 0.2s\n", + "[CV 1/5] END gamma=0.1, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=0.8;, score=0.795 total time= 0.1s\n", + "[CV 2/5] END gamma=0.1, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=0.8;, score=0.977 total time= 0.2s\n", + "[CV 3/5] END gamma=0.1, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=0.8;, score=0.977 total time= 0.1s\n", + "[CV 4/5] END gamma=0.1, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=0.8;, score=0.909 total time= 0.1s\n", + "[CV 5/5] END gamma=0.1, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=0.8;, score=0.884 total time= 0.1s\n", + "[CV 1/5] END gamma=0.1, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=1;, score=0.773 total time= 0.1s\n", + "[CV 2/5] END gamma=0.1, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=1;, score=0.932 total time= 0.1s\n", + "[CV 3/5] END gamma=0.1, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=1;, score=0.955 total time= 0.1s\n", + "[CV 4/5] END gamma=0.1, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=1;, score=0.886 total time= 0.1s\n", + "[CV 5/5] END gamma=0.1, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=1;, score=0.907 total time= 0.1s\n", + "[CV 1/5] END gamma=0.1, learning_rate=0.01, max_depth=3, n_estimators=200, subsample=0.8;, score=0.886 total time= 0.1s\n", + "[CV 2/5] END gamma=0.1, learning_rate=0.01, max_depth=3, n_estimators=200, subsample=0.8;, score=0.977 total time= 0.1s\n", + "[CV 3/5] END gamma=0.1, learning_rate=0.01, max_depth=3, n_estimators=200, subsample=0.8;, score=0.977 total time= 0.1s\n", + "[CV 4/5] END gamma=0.1, learning_rate=0.01, max_depth=3, n_estimators=200, subsample=0.8;, score=0.909 total time= 0.1s\n", + "[CV 5/5] END gamma=0.1, learning_rate=0.01, max_depth=3, n_estimators=200, subsample=0.8;, score=0.884 total time= 0.3s\n", + "[CV 1/5] END gamma=0.1, learning_rate=0.01, max_depth=3, n_estimators=200, subsample=1;, score=0.886 total time= 0.2s\n", + "[CV 2/5] END gamma=0.1, learning_rate=0.01, max_depth=3, n_estimators=200, subsample=1;, score=0.955 total time= 0.2s\n", + "[CV 3/5] END gamma=0.1, learning_rate=0.01, max_depth=3, n_estimators=200, subsample=1;, score=0.955 total time= 0.2s\n", + "[CV 4/5] END gamma=0.1, learning_rate=0.01, max_depth=3, n_estimators=200, subsample=1;, score=0.932 total time= 0.2s\n", + "[CV 5/5] END gamma=0.1, learning_rate=0.01, max_depth=3, n_estimators=200, subsample=1;, score=0.907 total time= 0.2s\n", + "[CV 1/5] END gamma=0.1, learning_rate=0.01, max_depth=5, n_estimators=100, subsample=0.8;, score=0.773 total time= 0.1s\n", + "[CV 2/5] END gamma=0.1, learning_rate=0.01, max_depth=5, n_estimators=100, subsample=0.8;, score=0.932 total time= 0.1s\n", + "[CV 3/5] END gamma=0.1, learning_rate=0.01, max_depth=5, n_estimators=100, subsample=0.8;, score=0.955 total time= 0.1s\n", + "[CV 4/5] END gamma=0.1, learning_rate=0.01, max_depth=5, n_estimators=100, subsample=0.8;, score=0.909 total time= 0.1s\n", + "[CV 5/5] END gamma=0.1, learning_rate=0.01, max_depth=5, n_estimators=100, subsample=0.8;, score=0.884 total time= 0.1s\n", + "[CV 1/5] END gamma=0.1, learning_rate=0.01, max_depth=5, n_estimators=100, subsample=1;, score=0.659 total time= 0.1s\n", + "[CV 2/5] END gamma=0.1, learning_rate=0.01, max_depth=5, n_estimators=100, subsample=1;, score=0.795 total time= 0.1s\n", + "[CV 3/5] END gamma=0.1, learning_rate=0.01, max_depth=5, n_estimators=100, subsample=1;, score=0.955 total time= 0.1s\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[CV 4/5] END gamma=0.1, learning_rate=0.01, max_depth=5, n_estimators=100, subsample=1;, score=0.909 total time= 0.1s\n", + "[CV 5/5] END gamma=0.1, learning_rate=0.01, max_depth=5, n_estimators=100, subsample=1;, score=0.884 total time= 0.1s\n", + "[CV 1/5] END gamma=0.1, learning_rate=0.01, max_depth=5, n_estimators=200, subsample=0.8;, score=0.841 total time= 0.2s\n", + "[CV 2/5] END gamma=0.1, learning_rate=0.01, max_depth=5, n_estimators=200, subsample=0.8;, score=0.977 total time= 0.2s\n", + "[CV 3/5] END gamma=0.1, learning_rate=0.01, max_depth=5, n_estimators=200, subsample=0.8;, score=0.977 total time= 0.2s\n", + "[CV 4/5] END gamma=0.1, learning_rate=0.01, max_depth=5, n_estimators=200, subsample=0.8;, score=0.932 total time= 0.1s\n", + "[CV 5/5] END gamma=0.1, learning_rate=0.01, max_depth=5, n_estimators=200, subsample=0.8;, score=0.884 total time= 0.2s\n", + "[CV 1/5] END gamma=0.1, learning_rate=0.01, max_depth=5, n_estimators=200, subsample=1;, score=0.841 total time= 0.3s\n", + "[CV 2/5] END gamma=0.1, learning_rate=0.01, max_depth=5, n_estimators=200, subsample=1;, score=0.955 total time= 0.3s\n", + "[CV 3/5] END gamma=0.1, learning_rate=0.01, max_depth=5, n_estimators=200, subsample=1;, score=0.955 total time= 0.2s\n", + "[CV 4/5] END gamma=0.1, learning_rate=0.01, max_depth=5, n_estimators=200, subsample=1;, score=0.932 total time= 0.2s\n", + "[CV 5/5] END gamma=0.1, learning_rate=0.01, max_depth=5, n_estimators=200, subsample=1;, score=0.884 total time= 0.2s\n", + "[CV 1/5] END gamma=0.1, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=0.8;, score=0.659 total time= 0.1s\n", + "[CV 2/5] END gamma=0.1, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=0.8;, score=0.818 total time= 0.1s\n", + "[CV 3/5] END gamma=0.1, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=0.8;, score=0.932 total time= 0.1s\n", + "[CV 4/5] END gamma=0.1, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=0.8;, score=0.909 total time= 0.1s\n", + "[CV 5/5] END gamma=0.1, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=0.8;, score=0.884 total time= 0.1s\n", + "[CV 1/5] END gamma=0.1, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=1;, score=0.659 total time= 0.1s\n", + "[CV 2/5] END gamma=0.1, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=1;, score=0.773 total time= 0.1s\n", + "[CV 3/5] END gamma=0.1, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=1;, score=0.955 total time= 0.1s\n", + "[CV 4/5] END gamma=0.1, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=1;, score=0.864 total time= 0.1s\n", + "[CV 5/5] END gamma=0.1, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=1;, score=0.884 total time= 0.1s\n", + "[CV 1/5] END gamma=0.1, learning_rate=0.001, max_depth=3, n_estimators=200, subsample=0.8;, score=0.682 total time= 0.1s\n", + "[CV 2/5] END gamma=0.1, learning_rate=0.001, max_depth=3, n_estimators=200, subsample=0.8;, score=0.841 total time= 0.2s\n", + "[CV 3/5] END gamma=0.1, learning_rate=0.001, max_depth=3, n_estimators=200, subsample=0.8;, score=0.932 total time= 0.3s\n", + "[CV 4/5] END gamma=0.1, learning_rate=0.001, max_depth=3, n_estimators=200, subsample=0.8;, score=0.909 total time= 0.2s\n", + "[CV 5/5] END gamma=0.1, learning_rate=0.001, max_depth=3, n_estimators=200, subsample=0.8;, score=0.884 total time= 0.2s\n", + "[CV 1/5] END gamma=0.1, learning_rate=0.001, max_depth=3, n_estimators=200, subsample=1;, score=0.659 total time= 0.2s\n", + "[CV 2/5] END gamma=0.1, learning_rate=0.001, max_depth=3, n_estimators=200, subsample=1;, score=0.773 total time= 0.2s\n", + "[CV 3/5] END gamma=0.1, learning_rate=0.001, max_depth=3, n_estimators=200, subsample=1;, score=0.955 total time= 0.2s\n", + "[CV 4/5] END gamma=0.1, learning_rate=0.001, max_depth=3, n_estimators=200, subsample=1;, score=0.909 total time= 0.2s\n", + "[CV 5/5] END gamma=0.1, learning_rate=0.001, max_depth=3, n_estimators=200, subsample=1;, score=0.884 total time= 0.2s\n", + "[CV 1/5] END gamma=0.1, learning_rate=0.001, max_depth=5, n_estimators=100, subsample=0.8;, score=0.659 total time= 0.1s\n", + "[CV 2/5] END gamma=0.1, learning_rate=0.001, max_depth=5, n_estimators=100, subsample=0.8;, score=0.818 total time= 0.1s\n", + "[CV 3/5] END gamma=0.1, learning_rate=0.001, max_depth=5, n_estimators=100, subsample=0.8;, score=0.932 total time= 0.1s\n", + "[CV 4/5] END gamma=0.1, learning_rate=0.001, max_depth=5, n_estimators=100, subsample=0.8;, score=0.909 total time= 0.1s\n", + "[CV 5/5] END gamma=0.1, learning_rate=0.001, max_depth=5, n_estimators=100, subsample=0.8;, score=0.884 total time= 0.2s\n", + "[CV 1/5] END gamma=0.1, learning_rate=0.001, max_depth=5, n_estimators=100, subsample=1;, score=0.659 total time= 0.1s\n", + "[CV 2/5] END gamma=0.1, learning_rate=0.001, max_depth=5, n_estimators=100, subsample=1;, score=0.773 total time= 0.1s\n", + "[CV 3/5] END gamma=0.1, learning_rate=0.001, max_depth=5, n_estimators=100, subsample=1;, score=0.955 total time= 0.1s\n", + "[CV 4/5] END gamma=0.1, learning_rate=0.001, max_depth=5, n_estimators=100, subsample=1;, score=0.864 total time= 0.1s\n", + "[CV 5/5] END gamma=0.1, learning_rate=0.001, max_depth=5, n_estimators=100, subsample=1;, score=0.930 total time= 0.1s\n", + "[CV 1/5] END gamma=0.1, learning_rate=0.001, max_depth=5, n_estimators=200, subsample=0.8;, score=0.659 total time= 0.1s\n", + "[CV 2/5] END gamma=0.1, learning_rate=0.001, max_depth=5, n_estimators=200, subsample=0.8;, score=0.841 total time= 0.2s\n", + "[CV 3/5] END gamma=0.1, learning_rate=0.001, max_depth=5, n_estimators=200, subsample=0.8;, score=0.932 total time= 0.2s\n", + "[CV 4/5] END gamma=0.1, learning_rate=0.001, max_depth=5, n_estimators=200, subsample=0.8;, score=0.909 total time= 0.2s\n", + "[CV 5/5] END gamma=0.1, learning_rate=0.001, max_depth=5, n_estimators=200, subsample=0.8;, score=0.884 total time= 0.2s\n", + "[CV 1/5] END gamma=0.1, learning_rate=0.001, max_depth=5, n_estimators=200, subsample=1;, score=0.659 total time= 0.3s\n", + "[CV 2/5] END gamma=0.1, learning_rate=0.001, max_depth=5, n_estimators=200, subsample=1;, score=0.773 total time= 0.2s\n", + "[CV 3/5] END gamma=0.1, learning_rate=0.001, max_depth=5, n_estimators=200, subsample=1;, score=0.955 total time= 0.3s\n", + "[CV 4/5] END gamma=0.1, learning_rate=0.001, max_depth=5, n_estimators=200, subsample=1;, score=0.864 total time= 0.2s\n", + "[CV 5/5] END gamma=0.1, learning_rate=0.001, max_depth=5, n_estimators=200, subsample=1;, score=0.930 total time= 0.4s\n", + "[CV 1/5] END gamma=0.01, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=0.8;, score=0.886 total time= 0.1s\n", + "[CV 2/5] END gamma=0.01, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=0.8;, score=0.955 total time= 0.1s\n", + "[CV 3/5] END gamma=0.01, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=0.8;, score=0.977 total time= 0.1s\n", + "[CV 4/5] END gamma=0.01, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=0.8;, score=0.932 total time= 0.1s\n", + "[CV 5/5] END gamma=0.01, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=0.8;, score=0.930 total time= 0.1s\n", + "[CV 1/5] END gamma=0.01, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=1;, score=0.886 total time= 0.1s\n", + "[CV 2/5] END gamma=0.01, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=1;, score=0.955 total time= 0.1s\n", + "[CV 3/5] END gamma=0.01, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=1;, score=0.977 total time= 0.1s\n", + "[CV 4/5] END gamma=0.01, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=1;, score=0.932 total time= 0.1s\n", + "[CV 5/5] END gamma=0.01, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=1;, score=0.953 total time= 0.1s\n", + "[CV 1/5] END gamma=0.01, learning_rate=0.1, max_depth=3, n_estimators=200, subsample=0.8;, score=0.841 total time= 0.2s\n", + "[CV 2/5] END gamma=0.01, learning_rate=0.1, max_depth=3, n_estimators=200, subsample=0.8;, score=0.977 total time= 0.1s\n", + "[CV 3/5] END gamma=0.01, learning_rate=0.1, max_depth=3, n_estimators=200, subsample=0.8;, score=0.977 total time= 0.2s\n", + "[CV 4/5] END gamma=0.01, learning_rate=0.1, max_depth=3, n_estimators=200, subsample=0.8;, score=0.932 total time= 0.1s\n", + "[CV 5/5] END gamma=0.01, learning_rate=0.1, max_depth=3, n_estimators=200, subsample=0.8;, score=0.953 total time= 0.2s\n", + "[CV 1/5] END gamma=0.01, learning_rate=0.1, max_depth=3, n_estimators=200, subsample=1;, score=0.886 total time= 0.1s\n", + "[CV 2/5] END gamma=0.01, learning_rate=0.1, max_depth=3, n_estimators=200, subsample=1;, score=0.955 total time= 0.1s\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[CV 3/5] END gamma=0.01, learning_rate=0.1, max_depth=3, n_estimators=200, subsample=1;, score=0.977 total time= 0.1s\n", + "[CV 4/5] END gamma=0.01, learning_rate=0.1, max_depth=3, n_estimators=200, subsample=1;, score=0.955 total time= 0.1s\n", + "[CV 5/5] END gamma=0.01, learning_rate=0.1, max_depth=3, n_estimators=200, subsample=1;, score=0.953 total time= 0.2s\n", + "[CV 1/5] END gamma=0.01, learning_rate=0.1, max_depth=5, n_estimators=100, subsample=0.8;, score=0.909 total time= 0.1s\n", + "[CV 2/5] END gamma=0.01, learning_rate=0.1, max_depth=5, n_estimators=100, subsample=0.8;, score=0.977 total time= 0.1s\n", + "[CV 3/5] END gamma=0.01, learning_rate=0.1, max_depth=5, n_estimators=100, subsample=0.8;, score=0.977 total time= 0.1s\n", + "[CV 4/5] END gamma=0.01, learning_rate=0.1, max_depth=5, n_estimators=100, subsample=0.8;, score=0.932 total time= 0.1s\n", + "[CV 5/5] END gamma=0.01, learning_rate=0.1, max_depth=5, n_estimators=100, subsample=0.8;, score=0.953 total time= 0.1s\n", + "[CV 1/5] END gamma=0.01, learning_rate=0.1, max_depth=5, n_estimators=100, subsample=1;, score=0.909 total time= 0.1s\n", + "[CV 2/5] END gamma=0.01, learning_rate=0.1, max_depth=5, n_estimators=100, subsample=1;, score=0.977 total time= 0.1s\n", + "[CV 3/5] END gamma=0.01, learning_rate=0.1, max_depth=5, n_estimators=100, subsample=1;, score=0.977 total time= 0.1s\n", + "[CV 4/5] END gamma=0.01, learning_rate=0.1, max_depth=5, n_estimators=100, subsample=1;, score=0.932 total time= 0.1s\n", + "[CV 5/5] END gamma=0.01, learning_rate=0.1, max_depth=5, n_estimators=100, subsample=1;, score=0.953 total time= 0.1s\n", + "[CV 1/5] END gamma=0.01, learning_rate=0.1, max_depth=5, n_estimators=200, subsample=0.8;, score=0.932 total time= 0.1s\n", + "[CV 2/5] END gamma=0.01, learning_rate=0.1, max_depth=5, n_estimators=200, subsample=0.8;, score=0.977 total time= 0.1s\n", + "[CV 3/5] END gamma=0.01, learning_rate=0.1, max_depth=5, n_estimators=200, subsample=0.8;, score=0.977 total time= 0.1s\n", + "[CV 4/5] END gamma=0.01, learning_rate=0.1, max_depth=5, n_estimators=200, subsample=0.8;, score=0.932 total time= 0.1s\n", + "[CV 5/5] END gamma=0.01, learning_rate=0.1, max_depth=5, n_estimators=200, subsample=0.8;, score=0.953 total time= 0.1s\n", + "[CV 1/5] END gamma=0.01, learning_rate=0.1, max_depth=5, n_estimators=200, subsample=1;, score=0.864 total time= 0.2s\n", + "[CV 2/5] END gamma=0.01, learning_rate=0.1, max_depth=5, n_estimators=200, subsample=1;, score=0.977 total time= 0.2s\n", + "[CV 3/5] END gamma=0.01, learning_rate=0.1, max_depth=5, n_estimators=200, subsample=1;, score=0.977 total time= 0.1s\n", + "[CV 4/5] END gamma=0.01, learning_rate=0.1, max_depth=5, n_estimators=200, subsample=1;, score=0.932 total time= 0.1s\n", + "[CV 5/5] END gamma=0.01, learning_rate=0.1, max_depth=5, n_estimators=200, subsample=1;, score=0.953 total time= 0.1s\n", + "[CV 1/5] END gamma=0.01, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=0.8;, score=0.795 total time= 0.1s\n", + "[CV 2/5] END gamma=0.01, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=0.8;, score=0.932 total time= 0.1s\n", + "[CV 3/5] END gamma=0.01, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=0.8;, score=0.977 total time= 0.1s\n", + "[CV 4/5] END gamma=0.01, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=0.8;, score=0.909 total time= 0.1s\n", + "[CV 5/5] END gamma=0.01, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=0.8;, score=0.884 total time= 0.1s\n", + "[CV 1/5] END gamma=0.01, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=1;, score=0.773 total time= 0.1s\n", + "[CV 2/5] END gamma=0.01, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=1;, score=0.932 total time= 0.1s\n", + "[CV 3/5] END gamma=0.01, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=1;, score=0.955 total time= 0.1s\n", + "[CV 4/5] END gamma=0.01, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=1;, score=0.886 total time= 0.1s\n", + "[CV 5/5] END gamma=0.01, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=1;, score=0.884 total time= 0.1s\n", + "[CV 1/5] END gamma=0.01, learning_rate=0.01, max_depth=3, n_estimators=200, subsample=0.8;, score=0.886 total time= 0.1s\n", + "[CV 2/5] END gamma=0.01, learning_rate=0.01, max_depth=3, n_estimators=200, subsample=0.8;, score=0.977 total time= 0.1s\n", + "[CV 3/5] END gamma=0.01, learning_rate=0.01, max_depth=3, n_estimators=200, subsample=0.8;, score=0.977 total time= 0.2s\n", + "[CV 4/5] END gamma=0.01, learning_rate=0.01, max_depth=3, n_estimators=200, subsample=0.8;, score=0.909 total time= 0.2s\n", + "[CV 5/5] END gamma=0.01, learning_rate=0.01, max_depth=3, n_estimators=200, subsample=0.8;, score=0.884 total time= 0.2s\n", + "[CV 1/5] END gamma=0.01, learning_rate=0.01, max_depth=3, n_estimators=200, subsample=1;, score=0.886 total time= 0.2s\n", + "[CV 2/5] END gamma=0.01, learning_rate=0.01, max_depth=3, n_estimators=200, subsample=1;, score=0.955 total time= 0.2s\n", + "[CV 3/5] END gamma=0.01, learning_rate=0.01, max_depth=3, n_estimators=200, subsample=1;, score=0.955 total time= 0.2s\n", + "[CV 4/5] END gamma=0.01, learning_rate=0.01, max_depth=3, n_estimators=200, subsample=1;, score=0.909 total time= 0.2s\n", + "[CV 5/5] END gamma=0.01, learning_rate=0.01, max_depth=3, n_estimators=200, subsample=1;, score=0.907 total time= 0.1s\n", + "[CV 1/5] END gamma=0.01, learning_rate=0.01, max_depth=5, n_estimators=100, subsample=0.8;, score=0.773 total time= 0.1s\n", + "[CV 2/5] END gamma=0.01, learning_rate=0.01, max_depth=5, n_estimators=100, subsample=0.8;, score=0.932 total time= 0.2s\n", + "[CV 3/5] END gamma=0.01, learning_rate=0.01, max_depth=5, n_estimators=100, subsample=0.8;, score=0.955 total time= 0.1s\n", + "[CV 4/5] END gamma=0.01, learning_rate=0.01, max_depth=5, n_estimators=100, subsample=0.8;, score=0.909 total time= 0.1s\n", + "[CV 5/5] END gamma=0.01, learning_rate=0.01, max_depth=5, n_estimators=100, subsample=0.8;, score=0.884 total time= 0.1s\n", + "[CV 1/5] END gamma=0.01, learning_rate=0.01, max_depth=5, n_estimators=100, subsample=1;, score=0.659 total time= 0.1s\n", + "[CV 2/5] END gamma=0.01, learning_rate=0.01, max_depth=5, n_estimators=100, subsample=1;, score=0.795 total time= 0.1s\n", + "[CV 3/5] END gamma=0.01, learning_rate=0.01, max_depth=5, n_estimators=100, subsample=1;, score=0.955 total time= 0.1s\n", + "[CV 4/5] END gamma=0.01, learning_rate=0.01, max_depth=5, n_estimators=100, subsample=1;, score=0.909 total time= 0.1s\n", + "[CV 5/5] END gamma=0.01, learning_rate=0.01, max_depth=5, n_estimators=100, subsample=1;, score=0.884 total time= 0.1s\n", + "[CV 1/5] END gamma=0.01, learning_rate=0.01, max_depth=5, n_estimators=200, subsample=0.8;, score=0.841 total time= 0.1s\n", + "[CV 2/5] END gamma=0.01, learning_rate=0.01, max_depth=5, n_estimators=200, subsample=0.8;, score=0.955 total time= 0.2s\n", + "[CV 3/5] END gamma=0.01, learning_rate=0.01, max_depth=5, n_estimators=200, subsample=0.8;, score=0.977 total time= 0.2s\n", + "[CV 4/5] END gamma=0.01, learning_rate=0.01, max_depth=5, n_estimators=200, subsample=0.8;, score=0.932 total time= 0.3s\n", + "[CV 5/5] END gamma=0.01, learning_rate=0.01, max_depth=5, n_estimators=200, subsample=0.8;, score=0.884 total time= 0.1s\n", + "[CV 1/5] END gamma=0.01, learning_rate=0.01, max_depth=5, n_estimators=200, subsample=1;, score=0.841 total time= 0.1s\n", + "[CV 2/5] END gamma=0.01, learning_rate=0.01, max_depth=5, n_estimators=200, subsample=1;, score=0.932 total time= 0.2s\n", + "[CV 3/5] END gamma=0.01, learning_rate=0.01, max_depth=5, n_estimators=200, subsample=1;, score=0.955 total time= 0.3s\n", + "[CV 4/5] END gamma=0.01, learning_rate=0.01, max_depth=5, n_estimators=200, subsample=1;, score=0.932 total time= 0.2s\n", + "[CV 5/5] END gamma=0.01, learning_rate=0.01, max_depth=5, n_estimators=200, subsample=1;, score=0.884 total time= 0.2s\n", + "[CV 1/5] END gamma=0.01, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=0.8;, score=0.659 total time= 0.1s\n", + "[CV 2/5] END gamma=0.01, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=0.8;, score=0.818 total time= 0.1s\n", + "[CV 3/5] END gamma=0.01, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=0.8;, score=0.932 total time= 0.1s\n", + "[CV 4/5] END gamma=0.01, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=0.8;, score=0.909 total time= 0.1s\n", + "[CV 5/5] END gamma=0.01, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=0.8;, score=0.884 total time= 0.1s\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[CV 1/5] END gamma=0.01, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=1;, score=0.659 total time= 0.2s\n", + "[CV 2/5] END gamma=0.01, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=1;, score=0.773 total time= 0.1s\n", + "[CV 3/5] END gamma=0.01, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=1;, score=0.955 total time= 0.1s\n", + "[CV 4/5] END gamma=0.01, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=1;, score=0.864 total time= 0.1s\n", + "[CV 5/5] END gamma=0.01, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=1;, score=0.884 total time= 0.1s\n", + "[CV 1/5] END gamma=0.01, learning_rate=0.001, max_depth=3, n_estimators=200, subsample=0.8;, score=0.682 total time= 0.1s\n", + "[CV 2/5] END gamma=0.01, learning_rate=0.001, max_depth=3, n_estimators=200, subsample=0.8;, score=0.841 total time= 0.2s\n", + "[CV 3/5] END gamma=0.01, learning_rate=0.001, max_depth=3, n_estimators=200, subsample=0.8;, score=0.932 total time= 0.2s\n", + "[CV 4/5] END gamma=0.01, learning_rate=0.001, max_depth=3, n_estimators=200, subsample=0.8;, score=0.909 total time= 0.2s\n", + "[CV 5/5] END gamma=0.01, learning_rate=0.001, max_depth=3, n_estimators=200, subsample=0.8;, score=0.884 total time= 0.2s\n", + "[CV 1/5] END gamma=0.01, learning_rate=0.001, max_depth=3, n_estimators=200, subsample=1;, score=0.659 total time= 0.1s\n", + "[CV 2/5] END gamma=0.01, learning_rate=0.001, max_depth=3, n_estimators=200, subsample=1;, score=0.773 total time= 0.1s\n", + "[CV 3/5] END gamma=0.01, learning_rate=0.001, max_depth=3, n_estimators=200, subsample=1;, score=0.955 total time= 0.1s\n", + "[CV 4/5] END gamma=0.01, learning_rate=0.001, max_depth=3, n_estimators=200, subsample=1;, score=0.909 total time= 0.2s\n", + "[CV 5/5] END gamma=0.01, learning_rate=0.001, max_depth=3, n_estimators=200, subsample=1;, score=0.884 total time= 0.1s\n", + "[CV 1/5] END gamma=0.01, learning_rate=0.001, max_depth=5, n_estimators=100, subsample=0.8;, score=0.659 total time= 0.1s\n", + "[CV 2/5] END gamma=0.01, learning_rate=0.001, max_depth=5, n_estimators=100, subsample=0.8;, score=0.818 total time= 0.1s\n", + "[CV 3/5] END gamma=0.01, learning_rate=0.001, max_depth=5, n_estimators=100, subsample=0.8;, score=0.932 total time= 0.1s\n", + "[CV 4/5] END gamma=0.01, learning_rate=0.001, max_depth=5, n_estimators=100, subsample=0.8;, score=0.909 total time= 0.1s\n", + "[CV 5/5] END gamma=0.01, learning_rate=0.001, max_depth=5, n_estimators=100, subsample=0.8;, score=0.884 total time= 0.1s\n", + "[CV 1/5] END gamma=0.01, learning_rate=0.001, max_depth=5, n_estimators=100, subsample=1;, score=0.659 total time= 0.1s\n", + "[CV 2/5] END gamma=0.01, learning_rate=0.001, max_depth=5, n_estimators=100, subsample=1;, score=0.773 total time= 0.1s\n", + "[CV 3/5] END gamma=0.01, learning_rate=0.001, max_depth=5, n_estimators=100, subsample=1;, score=0.955 total time= 0.2s\n", + "[CV 4/5] END gamma=0.01, learning_rate=0.001, max_depth=5, n_estimators=100, subsample=1;, score=0.864 total time= 0.1s\n", + "[CV 5/5] END gamma=0.01, learning_rate=0.001, max_depth=5, n_estimators=100, subsample=1;, score=0.930 total time= 0.1s\n", + "[CV 1/5] END gamma=0.01, learning_rate=0.001, max_depth=5, n_estimators=200, subsample=0.8;, score=0.659 total time= 0.1s\n", + "[CV 2/5] END gamma=0.01, learning_rate=0.001, max_depth=5, n_estimators=200, subsample=0.8;, score=0.841 total time= 0.1s\n", + "[CV 3/5] END gamma=0.01, learning_rate=0.001, max_depth=5, n_estimators=200, subsample=0.8;, score=0.932 total time= 0.2s\n", + "[CV 4/5] END gamma=0.01, learning_rate=0.001, max_depth=5, n_estimators=200, subsample=0.8;, score=0.909 total time= 0.1s\n", + "[CV 5/5] END gamma=0.01, learning_rate=0.001, max_depth=5, n_estimators=200, subsample=0.8;, score=0.884 total time= 0.2s\n", + "[CV 1/5] END gamma=0.01, learning_rate=0.001, max_depth=5, n_estimators=200, subsample=1;, score=0.659 total time= 0.2s\n", + "[CV 2/5] END gamma=0.01, learning_rate=0.001, max_depth=5, n_estimators=200, subsample=1;, score=0.773 total time= 0.3s\n", + "[CV 3/5] END gamma=0.01, learning_rate=0.001, max_depth=5, n_estimators=200, subsample=1;, score=0.955 total time= 0.2s\n", + "[CV 4/5] END gamma=0.01, learning_rate=0.001, max_depth=5, n_estimators=200, subsample=1;, score=0.864 total time= 0.2s\n", + "[CV 5/5] END gamma=0.01, learning_rate=0.001, max_depth=5, n_estimators=200, subsample=1;, score=0.930 total time= 0.2s\n", + "[CV 1/5] END gamma=0.001, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=0.8;, score=0.886 total time= 0.1s\n", + "[CV 2/5] END gamma=0.001, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=0.8;, score=0.955 total time= 0.2s\n", + "[CV 3/5] END gamma=0.001, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=0.8;, score=0.977 total time= 0.1s\n", + "[CV 4/5] END gamma=0.001, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=0.8;, score=0.932 total time= 0.1s\n", + "[CV 5/5] END gamma=0.001, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=0.8;, score=0.930 total time= 0.1s\n", + "[CV 1/5] END gamma=0.001, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=1;, score=0.886 total time= 0.1s\n", + "[CV 2/5] END gamma=0.001, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=1;, score=0.955 total time= 0.1s\n", + "[CV 3/5] END gamma=0.001, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=1;, score=0.977 total time= 0.1s\n", + "[CV 4/5] END gamma=0.001, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=1;, score=0.932 total time= 0.1s\n", + "[CV 5/5] END gamma=0.001, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=1;, score=0.953 total time= 0.1s\n", + "[CV 1/5] END gamma=0.001, learning_rate=0.1, max_depth=3, n_estimators=200, subsample=0.8;, score=0.818 total time= 0.2s\n", + "[CV 2/5] END gamma=0.001, learning_rate=0.1, max_depth=3, n_estimators=200, subsample=0.8;, score=0.977 total time= 0.1s\n", + "[CV 3/5] END gamma=0.001, learning_rate=0.1, max_depth=3, n_estimators=200, subsample=0.8;, score=0.977 total time= 0.1s\n", + "[CV 4/5] END gamma=0.001, learning_rate=0.1, max_depth=3, n_estimators=200, subsample=0.8;, score=0.932 total time= 0.1s\n", + "[CV 5/5] END gamma=0.001, learning_rate=0.1, max_depth=3, n_estimators=200, subsample=0.8;, score=0.953 total time= 0.2s\n", + "[CV 1/5] END gamma=0.001, learning_rate=0.1, max_depth=3, n_estimators=200, subsample=1;, score=0.886 total time= 0.2s\n", + "[CV 2/5] END gamma=0.001, learning_rate=0.1, max_depth=3, n_estimators=200, subsample=1;, score=0.955 total time= 0.1s\n", + "[CV 3/5] END gamma=0.001, learning_rate=0.1, max_depth=3, n_estimators=200, subsample=1;, score=0.977 total time= 0.2s\n", + "[CV 4/5] END gamma=0.001, learning_rate=0.1, max_depth=3, n_estimators=200, subsample=1;, score=0.955 total time= 0.2s\n", + "[CV 5/5] END gamma=0.001, learning_rate=0.1, max_depth=3, n_estimators=200, subsample=1;, score=0.953 total time= 0.1s\n", + "[CV 1/5] END gamma=0.001, learning_rate=0.1, max_depth=5, n_estimators=100, subsample=0.8;, score=0.932 total time= 0.1s\n", + "[CV 2/5] END gamma=0.001, learning_rate=0.1, max_depth=5, n_estimators=100, subsample=0.8;, score=0.977 total time= 0.1s\n", + "[CV 3/5] END gamma=0.001, learning_rate=0.1, max_depth=5, n_estimators=100, subsample=0.8;, score=0.977 total time= 0.1s\n", + "[CV 4/5] END gamma=0.001, learning_rate=0.1, max_depth=5, n_estimators=100, subsample=0.8;, score=0.932 total time= 0.1s\n", + "[CV 5/5] END gamma=0.001, learning_rate=0.1, max_depth=5, n_estimators=100, subsample=0.8;, score=0.953 total time= 0.1s\n", + "[CV 1/5] END gamma=0.001, learning_rate=0.1, max_depth=5, n_estimators=100, subsample=1;, score=0.909 total time= 0.1s\n", + "[CV 2/5] END gamma=0.001, learning_rate=0.1, max_depth=5, n_estimators=100, subsample=1;, score=0.977 total time= 0.1s\n", + "[CV 3/5] END gamma=0.001, learning_rate=0.1, max_depth=5, n_estimators=100, subsample=1;, score=0.977 total time= 0.2s\n", + "[CV 4/5] END gamma=0.001, learning_rate=0.1, max_depth=5, n_estimators=100, subsample=1;, score=0.932 total time= 0.1s\n", + "[CV 5/5] END gamma=0.001, learning_rate=0.1, max_depth=5, n_estimators=100, subsample=1;, score=0.953 total time= 0.1s\n", + "[CV 1/5] END gamma=0.001, learning_rate=0.1, max_depth=5, n_estimators=200, subsample=0.8;, score=0.864 total time= 0.2s\n", + "[CV 2/5] END gamma=0.001, learning_rate=0.1, max_depth=5, n_estimators=200, subsample=0.8;, score=0.977 total time= 0.1s\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[CV 3/5] END gamma=0.001, learning_rate=0.1, max_depth=5, n_estimators=200, subsample=0.8;, score=0.977 total time= 0.1s\n", + "[CV 4/5] END gamma=0.001, learning_rate=0.1, max_depth=5, n_estimators=200, subsample=0.8;, score=0.932 total time= 0.1s\n", + "[CV 5/5] END gamma=0.001, learning_rate=0.1, max_depth=5, n_estimators=200, subsample=0.8;, score=0.953 total time= 0.2s\n", + "[CV 1/5] END gamma=0.001, learning_rate=0.1, max_depth=5, n_estimators=200, subsample=1;, score=0.864 total time= 0.1s\n", + "[CV 2/5] END gamma=0.001, learning_rate=0.1, max_depth=5, n_estimators=200, subsample=1;, score=0.977 total time= 0.1s\n", + "[CV 3/5] END gamma=0.001, learning_rate=0.1, max_depth=5, n_estimators=200, subsample=1;, score=0.977 total time= 0.1s\n", + "[CV 4/5] END gamma=0.001, learning_rate=0.1, max_depth=5, n_estimators=200, subsample=1;, score=0.932 total time= 0.2s\n", + "[CV 5/5] END gamma=0.001, learning_rate=0.1, max_depth=5, n_estimators=200, subsample=1;, score=0.953 total time= 0.1s\n", + "[CV 1/5] END gamma=0.001, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=0.8;, score=0.795 total time= 0.1s\n", + "[CV 2/5] END gamma=0.001, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=0.8;, score=0.932 total time= 0.1s\n", + "[CV 3/5] END gamma=0.001, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=0.8;, score=0.977 total time= 0.1s\n", + "[CV 4/5] END gamma=0.001, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=0.8;, score=0.909 total time= 0.1s\n", + "[CV 5/5] END gamma=0.001, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=0.8;, score=0.884 total time= 0.1s\n", + "[CV 1/5] END gamma=0.001, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=1;, score=0.773 total time= 0.1s\n", + "[CV 2/5] END gamma=0.001, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=1;, score=0.932 total time= 0.1s\n", + "[CV 3/5] END gamma=0.001, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=1;, score=0.955 total time= 0.1s\n", + "[CV 4/5] END gamma=0.001, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=1;, score=0.886 total time= 0.1s\n", + "[CV 5/5] END gamma=0.001, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=1;, score=0.884 total time= 0.1s\n", + "[CV 1/5] END gamma=0.001, learning_rate=0.01, max_depth=3, n_estimators=200, subsample=0.8;, score=0.886 total time= 0.1s\n", + "[CV 2/5] END gamma=0.001, learning_rate=0.01, max_depth=3, n_estimators=200, subsample=0.8;, score=0.977 total time= 0.1s\n", + "[CV 3/5] END gamma=0.001, learning_rate=0.01, max_depth=3, n_estimators=200, subsample=0.8;, score=0.977 total time= 0.2s\n", + "[CV 4/5] END gamma=0.001, learning_rate=0.01, max_depth=3, n_estimators=200, subsample=0.8;, score=0.909 total time= 0.2s\n", + "[CV 5/5] END gamma=0.001, learning_rate=0.01, max_depth=3, n_estimators=200, subsample=0.8;, score=0.884 total time= 0.2s\n", + "[CV 1/5] END gamma=0.001, learning_rate=0.01, max_depth=3, n_estimators=200, subsample=1;, score=0.886 total time= 0.1s\n", + "[CV 2/5] END gamma=0.001, learning_rate=0.01, max_depth=3, n_estimators=200, subsample=1;, score=0.955 total time= 0.2s\n", + "[CV 3/5] END gamma=0.001, learning_rate=0.01, max_depth=3, n_estimators=200, subsample=1;, score=0.955 total time= 0.2s\n", + "[CV 4/5] END gamma=0.001, learning_rate=0.01, max_depth=3, n_estimators=200, subsample=1;, score=0.909 total time= 0.2s\n", + "[CV 5/5] END gamma=0.001, learning_rate=0.01, max_depth=3, n_estimators=200, subsample=1;, score=0.907 total time= 0.1s\n", + "[CV 1/5] END gamma=0.001, learning_rate=0.01, max_depth=5, n_estimators=100, subsample=0.8;, score=0.773 total time= 0.1s\n", + "[CV 2/5] END gamma=0.001, learning_rate=0.01, max_depth=5, n_estimators=100, subsample=0.8;, score=0.932 total time= 0.1s\n", + "[CV 3/5] END gamma=0.001, learning_rate=0.01, max_depth=5, n_estimators=100, subsample=0.8;, score=0.955 total time= 0.1s\n", + "[CV 4/5] END gamma=0.001, learning_rate=0.01, max_depth=5, n_estimators=100, subsample=0.8;, score=0.909 total time= 0.1s\n", + "[CV 5/5] END gamma=0.001, learning_rate=0.01, max_depth=5, n_estimators=100, subsample=0.8;, score=0.884 total time= 0.1s\n", + "[CV 1/5] END gamma=0.001, learning_rate=0.01, max_depth=5, n_estimators=100, subsample=1;, score=0.659 total time= 0.1s\n", + "[CV 2/5] END gamma=0.001, learning_rate=0.01, max_depth=5, n_estimators=100, subsample=1;, score=0.795 total time= 0.1s\n", + "[CV 3/5] END gamma=0.001, learning_rate=0.01, max_depth=5, n_estimators=100, subsample=1;, score=0.955 total time= 0.1s\n", + "[CV 4/5] END gamma=0.001, learning_rate=0.01, max_depth=5, n_estimators=100, subsample=1;, score=0.909 total time= 0.1s\n", + "[CV 5/5] END gamma=0.001, learning_rate=0.01, max_depth=5, n_estimators=100, subsample=1;, score=0.884 total time= 0.1s\n", + "[CV 1/5] END gamma=0.001, learning_rate=0.01, max_depth=5, n_estimators=200, subsample=0.8;, score=0.841 total time= 0.2s\n", + "[CV 2/5] END gamma=0.001, learning_rate=0.01, max_depth=5, n_estimators=200, subsample=0.8;, score=0.955 total time= 0.2s\n", + "[CV 3/5] END gamma=0.001, learning_rate=0.01, max_depth=5, n_estimators=200, subsample=0.8;, score=0.977 total time= 0.2s\n", + "[CV 4/5] END gamma=0.001, learning_rate=0.01, max_depth=5, n_estimators=200, subsample=0.8;, score=0.932 total time= 0.2s\n", + "[CV 5/5] END gamma=0.001, learning_rate=0.01, max_depth=5, n_estimators=200, subsample=0.8;, score=0.884 total time= 0.2s\n", + "[CV 1/5] END gamma=0.001, learning_rate=0.01, max_depth=5, n_estimators=200, subsample=1;, score=0.841 total time= 0.2s\n", + "[CV 2/5] END gamma=0.001, learning_rate=0.01, max_depth=5, n_estimators=200, subsample=1;, score=0.909 total time= 0.2s\n", + "[CV 3/5] END gamma=0.001, learning_rate=0.01, max_depth=5, n_estimators=200, subsample=1;, score=0.955 total time= 0.2s\n", + "[CV 4/5] END gamma=0.001, learning_rate=0.01, max_depth=5, n_estimators=200, subsample=1;, score=0.932 total time= 0.2s\n", + "[CV 5/5] END gamma=0.001, learning_rate=0.01, max_depth=5, n_estimators=200, subsample=1;, score=0.884 total time= 0.2s\n", + "[CV 1/5] END gamma=0.001, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=0.8;, score=0.659 total time= 0.1s\n", + "[CV 2/5] END gamma=0.001, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=0.8;, score=0.818 total time= 0.1s\n", + "[CV 3/5] END gamma=0.001, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=0.8;, score=0.932 total time= 0.1s\n", + "[CV 4/5] END gamma=0.001, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=0.8;, score=0.909 total time= 0.1s\n", + "[CV 5/5] END gamma=0.001, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=0.8;, score=0.884 total time= 0.1s\n", + "[CV 1/5] END gamma=0.001, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=1;, score=0.659 total time= 0.1s\n", + "[CV 2/5] END gamma=0.001, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=1;, score=0.773 total time= 0.1s\n", + "[CV 3/5] END gamma=0.001, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=1;, score=0.955 total time= 0.1s\n", + "[CV 4/5] END gamma=0.001, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=1;, score=0.864 total time= 0.1s\n", + "[CV 5/5] END gamma=0.001, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=1;, score=0.884 total time= 0.1s\n", + "[CV 1/5] END gamma=0.001, learning_rate=0.001, max_depth=3, n_estimators=200, subsample=0.8;, score=0.682 total time= 0.2s\n", + "[CV 2/5] END gamma=0.001, learning_rate=0.001, max_depth=3, n_estimators=200, subsample=0.8;, score=0.841 total time= 0.2s\n", + "[CV 3/5] END gamma=0.001, learning_rate=0.001, max_depth=3, n_estimators=200, subsample=0.8;, score=0.932 total time= 0.2s\n", + "[CV 4/5] END gamma=0.001, learning_rate=0.001, max_depth=3, n_estimators=200, subsample=0.8;, score=0.909 total time= 0.1s\n", + "[CV 5/5] END gamma=0.001, learning_rate=0.001, max_depth=3, n_estimators=200, subsample=0.8;, score=0.884 total time= 0.1s\n", + "[CV 1/5] END gamma=0.001, learning_rate=0.001, max_depth=3, n_estimators=200, subsample=1;, score=0.659 total time= 0.2s\n", + "[CV 2/5] END gamma=0.001, learning_rate=0.001, max_depth=3, n_estimators=200, subsample=1;, score=0.773 total time= 0.2s\n", + "[CV 3/5] END gamma=0.001, learning_rate=0.001, max_depth=3, n_estimators=200, subsample=1;, score=0.955 total time= 0.2s\n", + "[CV 4/5] END gamma=0.001, learning_rate=0.001, max_depth=3, n_estimators=200, subsample=1;, score=0.909 total time= 0.2s\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[CV 5/5] END gamma=0.001, learning_rate=0.001, max_depth=3, n_estimators=200, subsample=1;, score=0.884 total time= 0.2s\n", + "[CV 1/5] END gamma=0.001, learning_rate=0.001, max_depth=5, n_estimators=100, subsample=0.8;, score=0.659 total time= 0.1s\n", + "[CV 2/5] END gamma=0.001, learning_rate=0.001, max_depth=5, n_estimators=100, subsample=0.8;, score=0.818 total time= 0.1s\n", + "[CV 3/5] END gamma=0.001, learning_rate=0.001, max_depth=5, n_estimators=100, subsample=0.8;, score=0.932 total time= 0.1s\n", + "[CV 4/5] END gamma=0.001, learning_rate=0.001, max_depth=5, n_estimators=100, subsample=0.8;, score=0.909 total time= 0.1s\n", + "[CV 5/5] END gamma=0.001, learning_rate=0.001, max_depth=5, n_estimators=100, subsample=0.8;, score=0.884 total time= 0.1s\n", + "[CV 1/5] END gamma=0.001, learning_rate=0.001, max_depth=5, n_estimators=100, subsample=1;, score=0.659 total time= 0.1s\n", + "[CV 2/5] END gamma=0.001, learning_rate=0.001, max_depth=5, n_estimators=100, subsample=1;, score=0.773 total time= 0.1s\n", + "[CV 3/5] END gamma=0.001, learning_rate=0.001, max_depth=5, n_estimators=100, subsample=1;, score=0.955 total time= 0.1s\n", + "[CV 4/5] END gamma=0.001, learning_rate=0.001, max_depth=5, n_estimators=100, subsample=1;, score=0.864 total time= 0.1s\n", + "[CV 5/5] END gamma=0.001, learning_rate=0.001, max_depth=5, n_estimators=100, subsample=1;, score=0.930 total time= 0.1s\n", + "[CV 1/5] END gamma=0.001, learning_rate=0.001, max_depth=5, n_estimators=200, subsample=0.8;, score=0.659 total time= 0.1s\n", + "[CV 2/5] END gamma=0.001, learning_rate=0.001, max_depth=5, n_estimators=200, subsample=0.8;, score=0.841 total time= 0.2s\n", + "[CV 3/5] END gamma=0.001, learning_rate=0.001, max_depth=5, n_estimators=200, subsample=0.8;, score=0.932 total time= 0.3s\n", + "[CV 4/5] END gamma=0.001, learning_rate=0.001, max_depth=5, n_estimators=200, subsample=0.8;, score=0.909 total time= 0.2s\n", + "[CV 5/5] END gamma=0.001, learning_rate=0.001, max_depth=5, n_estimators=200, subsample=0.8;, score=0.884 total time= 0.2s\n", + "[CV 1/5] END gamma=0.001, learning_rate=0.001, max_depth=5, n_estimators=200, subsample=1;, score=0.659 total time= 0.1s\n", + "[CV 2/5] END gamma=0.001, learning_rate=0.001, max_depth=5, n_estimators=200, subsample=1;, score=0.773 total time= 0.2s\n", + "[CV 3/5] END gamma=0.001, learning_rate=0.001, max_depth=5, n_estimators=200, subsample=1;, score=0.955 total time= 0.2s\n", + "[CV 4/5] END gamma=0.001, learning_rate=0.001, max_depth=5, n_estimators=200, subsample=1;, score=0.864 total time= 0.5s\n", + "[CV 5/5] END gamma=0.001, learning_rate=0.001, max_depth=5, n_estimators=200, subsample=1;, score=0.930 total time= 0.2s\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(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, eval_metric=None,\n", + " feature_types=None, gamma=None,\n", + " gpu_id=None, grow_policy=None,\n", + " importance_type=None,\n", + " interaction_constraints=None,\n", + " learning_rate=None, max_b...\n", + " max_cat_to_onehot=None,\n", + " max_delta_step=None, max_depth=None,\n", + " max_leaves=None, min_child_weight=None,\n", + " missing=nan, monotone_constraints=None,\n", + " n_estimators=100, n_jobs=None,\n", + " num_parallel_tree=None, predictor=None,\n", + " random_state=42, ...),\n", + " param_grid={'gamma': [0.1, 0.01, 0.001],\n", + " 'learning_rate': [0.1, 0.01, 0.001],\n", + " 'max_depth': [3, 5], 'n_estimators': [100, 200],\n", + " 'subsample': [0.8, 1]},\n", + " verbose=3)</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(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, eval_metric=None,\n", + " feature_types=None, gamma=None,\n", + " gpu_id=None, grow_policy=None,\n", + " importance_type=None,\n", + " interaction_constraints=None,\n", + " learning_rate=None, max_b...\n", + " max_cat_to_onehot=None,\n", + " max_delta_step=None, max_depth=None,\n", + " max_leaves=None, min_child_weight=None,\n", + " missing=nan, monotone_constraints=None,\n", + " n_estimators=100, n_jobs=None,\n", + " num_parallel_tree=None, predictor=None,\n", + " random_state=42, ...),\n", + " param_grid={'gamma': [0.1, 0.01, 0.001],\n", + " 'learning_rate': [0.1, 0.01, 0.001],\n", + " 'max_depth': [3, 5], 'n_estimators': [100, 200],\n", + " 'subsample': [0.8, 1]},\n", + " verbose=3)</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=None, feature_types=None,\n", + " gamma=None, gpu_id=None, grow_policy=None, importance_type=None,\n", + " interaction_constraints=None, learning_rate=None, max_bin=None,\n", + " max_cat_threshold=None, max_cat_to_onehot=None,\n", + " max_delta_step=None, max_depth=None, max_leaves=None,\n", + " min_child_weight=None, missing=nan, monotone_constraints=None,\n", + " n_estimators=100, n_jobs=None, num_parallel_tree=None,\n", + " predictor=None, random_state=42, ...)</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=None, feature_types=None,\n", + " gamma=None, gpu_id=None, grow_policy=None, importance_type=None,\n", + " interaction_constraints=None, learning_rate=None, max_bin=None,\n", + " max_cat_threshold=None, max_cat_to_onehot=None,\n", + " max_delta_step=None, max_depth=None, max_leaves=None,\n", + " min_child_weight=None, missing=nan, monotone_constraints=None,\n", + " n_estimators=100, n_jobs=None, num_parallel_tree=None,\n", + " predictor=None, random_state=42, ...)</pre></div></div></div></div></div></div></div></div></div></div>" + ], + "text/plain": [ + "GridSearchCV(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, eval_metric=None,\n", + " feature_types=None, gamma=None,\n", + " gpu_id=None, grow_policy=None,\n", + " importance_type=None,\n", + " interaction_constraints=None,\n", + " learning_rate=None, max_b...\n", + " max_cat_to_onehot=None,\n", + " max_delta_step=None, max_depth=None,\n", + " max_leaves=None, min_child_weight=None,\n", + " missing=nan, monotone_constraints=None,\n", + " n_estimators=100, n_jobs=None,\n", + " num_parallel_tree=None, predictor=None,\n", + " random_state=42, ...),\n", + " param_grid={'gamma': [0.1, 0.01, 0.001],\n", + " 'learning_rate': [0.1, 0.01, 0.001],\n", + " 'max_depth': [3, 5], 'n_estimators': [100, 200],\n", + " 'subsample': [0.8, 1]},\n", + " verbose=3)" + ] + }, + "execution_count": 39, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "model = xgb.XGBClassifier(random_state=42)\n", + "\n", + "# Defining parameter range\n", + "# Defining parameter range\n", + "param_grid = {\n", + " 'max_depth': [3,5],\n", + " 'learning_rate': [0.1 ,0.01, 0.001],\n", + " 'n_estimators': [100,200],\n", + " 'gamma': [ 0.1,0.01,0.001],\n", + " 'subsample': [0.8,1]\n", + "}\n", + "\n", + "\n", + "grid = GridSearchCV(model, param_grid, refit=True, verbose=3)\n", + "\n", + "# Fitting the model for grid search\n", + "grid.fit(X_train, y_train)" + ] + }, + { + "cell_type": "code", + "execution_count": 40, + "id": "5d327876", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'gamma': 0.01, 'learning_rate': 0.1, 'max_depth': 5, 'n_estimators': 200, 'subsample': 0.8}\n", + "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=None, feature_types=None,\n", + " gamma=0.01, gpu_id=None, grow_policy=None, importance_type=None,\n", + " interaction_constraints=None, learning_rate=0.1, max_bin=None,\n", + " max_cat_threshold=None, max_cat_to_onehot=None,\n", + " max_delta_step=None, max_depth=5, max_leaves=None,\n", + " min_child_weight=None, missing=nan, monotone_constraints=None,\n", + " n_estimators=200, n_jobs=None, num_parallel_tree=None,\n", + " predictor=None, random_state=42, ...)\n" + ] + } + ], + "source": [ + "# print best parameter after tuning\n", + "print(grid.best_params_)\n", + " \n", + "# print how our model looks after hyper-parameter tuning\n", + "print(grid.best_estimator_)" + ] + }, + { + "cell_type": "code", + "execution_count": 42, + "id": "29da15ed", + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "# Select columns in df1 based on columns in df2\n", + "X_test = X_test.loc[:, X_train.columns]" + ] + }, + { + "cell_type": "code", + "execution_count": 43, + "id": "d77bf449", + "metadata": {}, + "outputs": [], + "source": [ + "X_test = X_test.astype('int')" + ] + }, + { + "cell_type": "code", + "execution_count": 44, + "id": "4c9779b1", + "metadata": {}, + "outputs": [], + "source": [ + "X_test=X_test.dropna(axis=1)" + ] + }, + { + "cell_type": "markdown", + "id": "ac792c5e", + "metadata": {}, + "source": [ + "# Evaluation " + ] + }, + { + "cell_type": "code", + "execution_count": 45, + "id": "c8c233d6", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " precision recall f1-score support\n", + "\n", + " 0 0.62 0.38 0.48 13\n", + " 1 0.75 0.89 0.81 27\n", + "\n", + " accuracy 0.73 40\n", + " macro avg 0.69 0.64 0.64 40\n", + "weighted avg 0.71 0.72 0.70 40\n", + "\n" + ] + } + ], + "source": [ + "from sklearn.metrics import classification_report, confusion_matrix\n", + "grid_predictions = grid.predict(X_test)\n", + "print(classification_report(y_test, grid_predictions))" + ] + }, + { + "cell_type": "code", + "execution_count": 46, + "id": "3b2776c0", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<style>#sk-container-id-2 {color: black;background-color: white;}#sk-container-id-2 pre{padding: 0;}#sk-container-id-2 div.sk-toggleable {background-color: white;}#sk-container-id-2 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-2 label.sk-toggleable__label-arrow:before {content: \"▸\";float: left;margin-right: 0.25em;color: #696969;}#sk-container-id-2 label.sk-toggleable__label-arrow:hover:before {color: black;}#sk-container-id-2 div.sk-estimator:hover label.sk-toggleable__label-arrow:before {color: black;}#sk-container-id-2 div.sk-toggleable__content {max-height: 0;max-width: 0;overflow: hidden;text-align: left;background-color: #f0f8ff;}#sk-container-id-2 div.sk-toggleable__content pre {margin: 0.2em;color: black;border-radius: 0.25em;background-color: #f0f8ff;}#sk-container-id-2 input.sk-toggleable__control:checked~div.sk-toggleable__content {max-height: 200px;max-width: 100%;overflow: auto;}#sk-container-id-2 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {content: \"▾\";}#sk-container-id-2 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-2 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-2 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-2 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-2 div.sk-estimator:hover {background-color: #d4ebff;}#sk-container-id-2 div.sk-parallel-item::after {content: \"\";width: 100%;border-bottom: 1px solid gray;flex-grow: 1;}#sk-container-id-2 div.sk-label:hover label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-2 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-2 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-2 div.sk-item {position: relative;z-index: 1;}#sk-container-id-2 div.sk-parallel {display: flex;align-items: stretch;justify-content: center;background-color: white;position: relative;}#sk-container-id-2 div.sk-item::before, #sk-container-id-2 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-2 div.sk-parallel-item {display: flex;flex-direction: column;z-index: 1;position: relative;background-color: white;}#sk-container-id-2 div.sk-parallel-item:first-child::after {align-self: flex-end;width: 50%;}#sk-container-id-2 div.sk-parallel-item:last-child::after {align-self: flex-start;width: 50%;}#sk-container-id-2 div.sk-parallel-item:only-child::after {width: 0;}#sk-container-id-2 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-2 div.sk-label label {font-family: monospace;font-weight: bold;display: inline-block;line-height: 1.2em;}#sk-container-id-2 div.sk-label-container {text-align: center;}#sk-container-id-2 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-2 div.sk-text-repr-fallback {display: none;}</style><div id=\"sk-container-id-2\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><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=None, feature_types=None,\n", + " gamma=0.01, gpu_id=None, grow_policy=None, importance_type=None,\n", + " interaction_constraints=None, learning_rate=0.1, max_bin=None,\n", + " max_cat_threshold=None, max_cat_to_onehot=None,\n", + " max_delta_step=None, max_depth=5, max_leaves=None,\n", + " min_child_weight=None, missing=nan, monotone_constraints=None,\n", + " n_estimators=200, n_jobs=None, num_parallel_tree=None,\n", + " predictor=None, random_state=42, ...)</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\"><div class=\"sk-estimator sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-4\" type=\"checkbox\" checked><label for=\"sk-estimator-id-4\" 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=None, feature_types=None,\n", + " gamma=0.01, gpu_id=None, grow_policy=None, importance_type=None,\n", + " interaction_constraints=None, learning_rate=0.1, max_bin=None,\n", + " max_cat_threshold=None, max_cat_to_onehot=None,\n", + " max_delta_step=None, max_depth=5, max_leaves=None,\n", + " min_child_weight=None, missing=nan, monotone_constraints=None,\n", + " n_estimators=200, n_jobs=None, num_parallel_tree=None,\n", + " predictor=None, random_state=42, ...)</pre></div></div></div></div></div>" + ], + "text/plain": [ + "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=None, feature_types=None,\n", + " gamma=0.01, gpu_id=None, grow_policy=None, importance_type=None,\n", + " interaction_constraints=None, learning_rate=0.1, max_bin=None,\n", + " max_cat_threshold=None, max_cat_to_onehot=None,\n", + " max_delta_step=None, max_depth=5, max_leaves=None,\n", + " min_child_weight=None, missing=nan, monotone_constraints=None,\n", + " n_estimators=200, n_jobs=None, num_parallel_tree=None,\n", + " predictor=None, random_state=42, ...)" + ] + }, + "execution_count": 46, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "model_xgb = grid.best_estimator_\n", + "model_xgb.fit(X_train,y_train)" + ] + }, + { + "cell_type": "code", + "execution_count": 47, + "id": "94871ada", + "metadata": {}, + "outputs": [], + "source": [ + "y_proba = model_xgb.fit(X_train, y_train).predict_proba(X_test)[:,1]" + ] + }, + { + "cell_type": "code", + "execution_count": 48, + "id": "d8abbbff", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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nN6TkZqaqltvvfWS84GBgTp16pQZMQEAUH3xxE87p1cygoODlZaWdsn55ORktWzZ0pSgAACottiTYed0kvHQQw/piSee0LZt22SxWHT06FEtXLhQY8aM0aOPPuqOGAEAQDXkdLlkwoQJstls6t27t86ePatbb71VVqtVY8aM0eOPP+6OGAEAqDZ4GFcJp1cyLBaLnnrqKZ08eVJ79uzR1q1b9csvv2jatGnuiA8AgOqlgsslGzdu1B133KGQkBBZLBYtW7bMfq2oqEjjx49Xx44d5efnp5CQEA0ZMkRHjx697JwJCQmyWCwOrW3bts4FJhee+Ont7a327dvrxhtvVJ06da52GgAA4IK8vDxFRERo9uzZl1w7e/asdu7cqYkTJ2rnzp365JNPlJqaqjvvvPOK81533XXKysqyt6t5FpbT5ZJevXrJYil75+vatWudDgIAAI/h6m2oTo6NiYlRTExMqdcCAwO1atUqh3Ovv/66brzxRmVmZqpp06ZlzluzZk0FBwc7F8zFczg74Prrr3c4LioqUkpKivbs2aPY2FiXggEAoNoz6bHiOTk5DqetVqusVqsLE593+vRpWSwW1a1b97L9Dhw4oJCQEPn4+CgyMlKJiYmXTUpK43SSMXPmzFLPJyQkKDc319npAABAKUJDQx2OJ0+erISEBJfmzM/P1/jx4zVo0CAFBASU2a9bt25KSkpSmzZtlJWVpSlTpqh79+7as2eP/P39y/15pr0g7f7779eNN96oF1980awpAQCofkxayTh8+LBDIuDqKkZRUZHuueceGYahOXPmXLbvb8svnTp1Urdu3dSsWTMtWbJEw4YNK/dnmpZkbNmyRT4+PmZNBwBAtWTWLawBAQGXXW1wxoUE48cff9TatWudnrdu3boKDw8v9WGcl+N0knHXXXc5HBuGoaysLG3fvl0TJ050djoAAOBGFxKMAwcOaN26dbrmmmucniM3N1fp6en6+9//7tQ4p5OMwMBAh2MvLy+1adNGU6dOVd++fZ2dDgAAuCA3N9dhhSEjI0MpKSmqX7++GjVqpL/+9a/auXOnli9fruLiYmVnZ0uS6tevL29vb0lS7969NWDAAMXFxUmSxowZozvuuEPNmjXT0aNHNXnyZNWoUUODBg1yKjankozi4mI98MAD6tixo+rVq+fUBwEA8Ltg0p6M8tq+fbt69eplP46Pj5ckxcbGKiEhQZ999pmkS+8OXbdunXr27ClJSk9P1/Hjx+3Xjhw5okGDBunEiRMKCgrSLbfcoq1btyooKMip2JxKMmrUqKG+fftq3759JBkAAJSioh8r3rNnTxlG2YMud+2CQ4cOORwvWrTIuSDK4PQTPzt06KCDBw+a8uEAAMBzOZ1kTJ8+XWPGjNHy5cuVlZWlnJwchwYAwO8er3mX5ES5ZOrUqfrnP/+pP/3pT5KkO++80+Hx4oZhyGKxqLi42PwoAQCoLip4T0ZVVu4kY8qUKXrkkUe0bt06d8YDAAA8RLmTjAsbR3r06OG2YAAAqO4qeuNnVebU3SWXe/sqAAAQ5ZLfcCrJCA8Pv2KicfLkSZcCAgAAnsGpJGPKlCmXPPETAACUoFxSwqkk495771WDBg3cFQsAANUf5RK7cj8ng/0YAADAGU7fXQIAAC6DlQy7cicZNpvNnXEAAOAR2JNRwulXvQMAgMtgJcPO6XeXAAAAlAcrGQAAmImVDDuSDAAATMSejBKUSwAAgFuwkgEAgJkol9iRZAAAYCLKJSUolwAAALdgJQMAADNRLrEjyQAAwEwkGXaUSwAAgFuwkgEAgIks/2uujPcUJBkAAJiJcokdSQYAACbiFtYS7MkAAABuwUoGAABmolxiR5IBAIDZPChRcAXlEgAA4BasZAAAYCI2fpYgyQAAwEzsybCjXAIAANyCJAMAABNdKJe40pyxceNG3XHHHQoJCZHFYtGyZcscrhuGoUmTJqlRo0by9fVVnz59dODAgSvOO3v2bDVv3lw+Pj7q1q2b/vOf/zgXmEgyAAAwl2FCc0JeXp4iIiI0e/bsUq+/8MILmjVrlubOnatt27bJz89PUVFRys/PL3POxYsXKz4+XpMnT9bOnTsVERGhqKgo/fzzz07FRpIBAEA1FhMTo+nTp2vAgAGXXDMMQ6+88oqefvpp9evXT506ddKCBQt09OjRS1Y8fuvll1/WQw89pAceeEDt27fX3LlzVbt2bb377rtOxUaSAQCAicwql+Tk5Di0goICp2PJyMhQdna2+vTpYz8XGBiobt26acuWLaWOKSws1I4dOxzGeHl5qU+fPmWOKQtJBgAAZjKpXBIaGqrAwEB7S0xMdDqU7OxsSVLDhg0dzjds2NB+7WLHjx9XcXGxU2PKwi2sAACYyaRbWA8fPqyAgAD7aavV6lJYlYGVDAAAqqCAgACHdjVJRnBwsCTp2LFjDuePHTtmv3axa6+9VjVq1HBqTFlIMgAAMFFF38J6OS1atFBwcLDWrFljP5eTk6Nt27YpMjKy1DHe3t7q2rWrwxibzaY1a9aUOaYslEsAADBTBT/xMzc3V2lpafbjjIwMpaSkqH79+mratKlGjRql6dOnq3Xr1mrRooUmTpyokJAQ9e/f3z6md+/eGjBggOLi4iRJ8fHxio2N1Q033KAbb7xRr7zyivLy8vTAAw84FRtJBgAA1dj27dvVq1cv+3F8fLwkKTY2VklJSRo3bpzy8vL08MMP69SpU7rlllu0cuVK+fj42Mekp6fr+PHj9uO//e1v+uWXXzRp0iRlZ2fr+uuv18qVKy/ZDHolFsMwPOgp6e6Rk5OjwMBA9VQ/1bTUquxwALf46mhKZYcAuE3OGZvqhR/U6dOnHTZTmvoZ//tdcf3fn1ENb58rDyhDcWG+Ut57yq2xVhRWMgAAMBMvSLNj4ycAAHALVjIAADCRq3eImHl3SWUjyQAAwEyUS+wolwAAALdgJQMAABNRLilBkgEAgJkol9iRZAAAYCJWMkqwJwMAALgFKxkAAJiJcokdSQYAACbzpJKHKyiXAAAAt2AlAwAAMxnG+ebKeA9BkgEAgIm4u6QE5RIAAOAWrGQAAGAm7i6xI8kAAMBEFtv55sp4T0G5BAAAuAUrGagy/jLkuP485IQahhZKkn5M9dHCmQ21fV1AJUcGXJ1FrzXQpi/q6nCaVd4+NrW/4ayGPXVUoWEFl/Q1DOnp+1tq+7oATX4nQzfHnK6EiGEKyiV2JBmoMn7JqqV3n22knzKsslik2+8+qYR5hzSib7h+/MGnssMDnLZ7Sx3dMfS4wq8/q+JzUtJzjfSvQa301ob98qntuCa+9K0gWSyVFChMxd0lJapUucRisVy2JSQkVHaIcKNtqwL1zdoAHc2w6qeDViU930j5eV5q2zWvskMDrsqzHxxU37+dVPM2+Wp1Xb7++Uqmfv7JWwd2+zr0S9/jq4/fDFL8y5mVFClMdeE5Ga40D1GlVjKysrLsf168eLEmTZqk1NRU+7k6derY/2wYhoqLi1WzZpX6CjCJl5eh7neckrW2Tfu2+1V2OIAp8nJqSJL86xbbz+Wftei5Ec004pkjqt/gXGWFBrhFlVrJCA4OtrfAwEBZLBb78f79++Xv768vv/xSXbt2ldVqVXJysoYOHar+/fs7zDNq1Cj17NnTfmyz2ZSYmKgWLVrI19dXERER+uijj8qMo6CgQDk5OQ4NFaN521+17MB3Wn5ot0Y+d0RThzVX5gFKJaj+bDZp7uTGuu4PuWreNt9+/s2Exmp/Q55ujubnjKe4UC5xpXmKarcMMGHCBL344otq2bKl6tWrV64xiYmJev/99zV37ly1bt1aGzdu1P3336+goCD16NGj1P5TpkwxO3SUw5F0qx67PVy1/YvV/S+nNebVTI29K4xEA9Xe6/9qoh/3++qlZQfs57Z8FaCUTf564/+lXmYkqh02ftpVuyRj6tSpuv3228vdv6CgQM8++6xWr16tyMhISVLLli2VnJysN998s9Qk48knn1R8fLz9OCcnR6Ghoa4Hjys6V+Slo4eskqS072qrzfVn1X/4L5o1nr9/VF+v/6uxtq0K0EtL0xQUUmQ/n7LJX1mHvHVX244O/ac91FwduuVpxsdpFR0qYKpql2TccMMNTvVPS0vT2bNnL0lMCgsL1blz51LHWK1WWa3Wq44R5rFYpFreHpTW43fFMKTZTzXW5pWBmvFRmoKbFjpc/1vcMcXcd8Lh3D9ua6t/JPykm/pSPqmuuLukRLVLMvz8HDcBenl5ybhoJ25RUcm/FHJzcyVJK1asUOPGjR36kUhULQ88maVv1vrrl5+85VunWL0GnFKnm3P11H0tKzs04Kq8/q8mWre0nhLmHZRvHZtO/nz+R66ff7GsvobqNzhX6mbPBo2LLklIUI3wFla7apdkXCwoKEh79uxxOJeSkqJatWpJktq3by+r1arMzMxSSyOoOupee05jZ2WqfoNzOnumhjL2+eip+1pq50b/yg4NuCrL518rSRo7sLXD+X/OzFTfv52sjJCAClXtk4zbbrtNM2bM0IIFCxQZGan3339fe/bssZdC/P39NWbMGI0ePVo2m0233HKLTp8+rU2bNikgIECxsbGV/A1wwcx/su8CnuWroykVMgZVC+WSEtU+yYiKitLEiRM1btw45efn68EHH9SQIUP03Xff2ftMmzZNQUFBSkxM1MGDB1W3bl116dJF//rXvyoxcgCAR+LuEjuLcfGGBlwiJydHgYGB6ql+qmmpVdnhAG7Bv6DhyXLO2FQv/KBOnz6tgAD3vA/pwu+KyOipqlnr6m+7P1eUry0rJ7k11opS7VcyAACoSiiXlCDJAADATDbjfHNlvIeoUo8VBwCg2jNMaE5o3rx5qS8VHTFiRKn9k5KSLunr4+OepyqzkgEAQDX2zTffqLi45KV7e/bs0e2336677767zDEBAQEOLyC1WCxuiY0kAwAAE1nk4p4MJ/sHBQU5HD/33HNq1arVZZ8NdeEFpO5GuQQAADNdeOKnK0265G3gBQUFV/zowsJCvf/++3rwwQcvuzqRm5urZs2aKTQ0VP369dPevXtN+/q/RZIBAEAVFBoaqsDAQHtLTEy84phly5bp1KlTGjp0aJl92rRpo3fffVeffvqp3n//fdlsNt188806cuSIidGfR7kEAAATmXUL6+HDhx2ek1Ge92298847iomJUUhISJl9IiMj7W8ll6Sbb75Z7dq105tvvqlp06ZdfeClIMkAAMBMJj3xMyAgwKmHcf34449avXq1PvnkE6c+rlatWurcubPS0tKcGlcelEsAAPAA8+bNU4MGDfTnP//ZqXHFxcX67rvv1KhRI9NjYiUDAAATWQxDFhfe2HE1Y202m+bNm6fY2FjVrOn4q33IkCFq3LixfU/H1KlTddNNNyksLEynTp3SjBkz9OOPP2r48OFXHXNZSDIAADCT7X/NlfFOWr16tTIzM/Xggw9eci0zM1NeXiWFi//+97966KGHlJ2drXr16qlr167avHmz2rdv70LQpSPJAACgmuvbt6/Ket/p+vXrHY5nzpypmTNnVkBUJBkAAJiqMsolVRVJBgAAZjLp7hJPQJIBAICZfvPUzqse7yG4hRUAALgFKxkAAJjIrCd+egKSDAAAzES5xI5yCQAAcAtWMgAAMJHFdr65Mt5TkGQAAGAmyiV2lEsAAIBbsJIBAICZeBiXHUkGAAAm4rHiJSiXAAAAt2AlAwAAM7Hx044kAwAAMxmSXLkN1XNyDJIMAADMxJ6MEuzJAAAAbsFKBgAAZjLk4p4M0yKpdCQZAACYiY2fdpRLAACAW7CSAQCAmWySLC6O9xAkGQAAmIi7S0pQLgEAAG7BSgYAAGZi46cdSQYAAGYiybCjXAIAANyClQwAAMzESoYdSQYAAGbiFlY7kgwAAEzELawl2JMBAADcgpUMAADMxJ4MO5IMAADMZDMkiwuJgs1zkgzKJQAAwC1IMgAAMNOFcokrzQkJCQmyWCwOrW3btpcd8+GHH6pt27by8fFRx44d9cUXX7jyjctEkgEAgKlcTTCcL5dcd911ysrKsrfk5OQy+27evFmDBg3SsGHD9O2336p///7q37+/9uzZ48J3Lh1JBgAA1VzNmjUVHBxsb9dee22ZfV999VVFR0dr7NixateunaZNm6YuXbro9ddfNz0ukgwAAMxkUrkkJyfHoRUUFJT5kQcOHFBISIhatmypwYMHKzMzs8y+W7ZsUZ8+fRzORUVFacuWLeZ8/98gyQAAwEw2w/UmKTQ0VIGBgfaWmJhY6sd169ZNSUlJWrlypebMmaOMjAx1795dZ86cKbV/dna2GjZs6HCuYcOGys7ONvfvQdzCCgBAlXT48GEFBATYj61Wa6n9YmJi7H/u1KmTunXrpmbNmmnJkiUaNmyY2+O8HJIMAADMZNjON1fGSwoICHBIMsqrbt26Cg8PV1paWqnXg4ODdezYMYdzx44dU3BwsPOxXgHlEgAAzFTBt7BeLDc3V+np6WrUqFGp1yMjI7VmzRqHc6tWrVJkZKRLn1sakgwAAMxk0p6M8hozZow2bNigQ4cOafPmzRowYIBq1KihQYMGSZKGDBmiJ5980t7/iSee0MqVK/XSSy9p//79SkhI0Pbt2xUXF2fqX4NEuQQAgGrtyJEjGjRokE6cOKGgoCDdcsst2rp1q4KCgiRJmZmZ8vIqWVO4+eab9cEHH+jpp5/Wv/71L7Vu3VrLli1Thw4dTI+NJAMAADNV8AvSFi1adNnr69evv+Tc3Xffrbvvvtupz7kaJBkAAJjJkItJhmmRVDr2ZAAAALdgJQMAADNVcLmkKiPJAADATDabJBeek2FzYWwVQ7kEAAC4BSsZAACYiXKJHUkGAABmIsmwo1wCAADcgpUMAADMZDPk0sMunHyseFVGkgEAgIkMwybDhbewujK2qiHJAADATIbzLzm7ZLyHYE8GAABwC1YyAAAwk+HingwPWskgyQAAwEw2m2RxYV+FB+3JoFwCAADcgpUMAADMRLnEjiQDAAATGTabDBfKJZ50CyvlEgAA4BasZAAAYCbKJXYkGQAAmMlmSBaSDIlyCQAAcBNWMgAAMJNhSHLlORmes5JBkgEAgIkMmyHDhXKJQZIBAABKZdjk2koGt7ACAABcFisZAACYiHJJCZIMAADMRLnEjiSjHC5kledU5NLzVYCqLOeM5/xgAy6Wk3v+v++KWCVw9XfFORWZF0wlI8kohzNnzkiSkvVFJUcCuE+98MqOAHC/M2fOKDAw0C1ze3t7Kzg4WMnZrv+uCA4Olre3twlRVS6L4UnFHzex2Ww6evSo/P39ZbFYKjuc34WcnByFhobq8OHDCggIqOxwAFPx33fFMwxDZ86cUUhIiLy83HfPQ35+vgoLC12ex9vbWz4+PiZEVLlYySgHLy8vNWnSpLLD+F0KCAjghzA8Fv99Vyx3rWD8lo+Pj0ckB2bhFlYAAOAWJBkAAMAtSDJQJVmtVk2ePFlWq7WyQwFMx3/f+L1g4ycAAHALVjIAAIBbkGQAAAC3IMkAAABuQZKBKiUpKUl169at7DAAACYgyYBbDB06VBaL5ZKWlpZW2aEBpirtv/PftoSEhMoOEag0PPETbhMdHa158+Y5nAsKCqqkaAD3yMrKsv958eLFmjRpklJTU+3n6tSpY/+zYRgqLi5WzZr86MXvAysZcBur1arg4GCH9uqrr6pjx47y8/NTaGioHnvsMeXm5pY5x65du9SrVy/5+/srICBAXbt21fbt2+3Xk5OT1b17d/n6+io0NFQjR45UXl5eRXw9QJIc/vsODAyUxWKxH+/fv1/+/v768ssv1bVrV1mtViUnJ2vo0KHq37+/wzyjRo1Sz5497cc2m02JiYlq0aKFfH19FRERoY8++qhivxzgIpIMVCgvLy/NmjVLe/fu1fz587V27VqNGzeuzP6DBw9WkyZN9M0332jHjh2aMGGCatWqJUlKT09XdHS0Bg4cqN27d2vx4sVKTk5WXFxcRX0doFwmTJig5557Tvv27VOnTp3KNSYxMVELFizQ3LlztXfvXo0ePVr333+/NmzY4OZoAfOwZge3Wb58ucNScUxMjD788EP7cfPmzTV9+nQ98sgjeuONN0qdIzMzU2PHjlXbtm0lSa1bt7ZfS0xM1ODBgzVq1Cj7tVmzZqlHjx6aM2cOLylClTF16lTdfvvt5e5fUFCgZ599VqtXr1ZkZKQkqWXLlkpOTtabb76pHj16uCtUwFQkGXCbXr16ac6cOfZjPz8/rV69WomJidq/f79ycnJ07tw55efn6+zZs6pdu/Ylc8THx2v48OF677331KdPH919991q1aqVpPOllN27d2vhwoX2/oZhyGazKSMjQ+3atXP/lwTK4YYbbnCqf1pams6ePXtJYlJYWKjOnTubGRrgViQZcBs/Pz+FhYXZjw8dOqS//OUvevTRR/XMM8+ofv36Sk5O1rBhw1RYWFhqkpGQkKD77rtPK1as0JdffqnJkydr0aJFGjBggHJzc/WPf/xDI0eOvGRc06ZN3frdAGf4+fk5HHt5eeniNzoUFRXZ/3xhn9KKFSvUuHFjh3687wTVCUkGKsyOHTtks9n00ksvycvr/HagJUuWXHFceHi4wsPDNXr0aA0aNEjz5s3TgAED1KVLF33//fcOiQxQHQQFBWnPnj0O51JSUuz7jdq3by+r1arMzExKI6jW2PiJChMWFqaioiK99tprOnjwoN577z3NnTu3zP6//vqr4uLitH79ev3444/atGmTvvnmG3sZZPz48dq8ebPi4uKUkpKiAwcO6NNPP2XjJ6q82267Tdu3b9eCBQt04MABTZ482SHp8Pf315gxYzR69GjNnz9f6enp2rlzp1577TXNnz+/EiMHnEOSgQoTERGhl19+Wc8//7w6dOighQsXKjExscz+NWrU0IkTJzRkyBCFh4frnnvuUUxMjKZMmSJJ6tSpkzZs2KAffvhB3bt3V+fOnTVp0iSFhIRU1FcCrkpUVJQmTpyocePG6Q9/+IPOnDmjIUOGOPSZNm2aJk6cqMTERLVr107R0dFasWKFWrRoUUlRA87jVe8AAMAtWMkAAABuQZIBAADcgiQDAAC4BUkGAABwC5IMAADgFiQZAADALUgyAACAW5BkAAAAtyDJAKqJoUOHqn///vbjnj172l9zX5HWr18vi8WiU6dOldnHYrFo2bJl5Z4zISFB119/vUtxHTp0SBaLRSkpKS7NA8A8JBmAC4YOHSqLxSKLxSJvb2+FhYVp6tSpOnfunNs/+5NPPtG0adPK1bc8iQEAmI23sAIuio6O1rx581RQUKAvvvhCI0aMUK1atfTkk09e0rewsFDe3t6mfG79+vVNmQcA3IWVDMBFVqtVwcHBatasmR599FH16dNHn332maSSEsczzzyjkJAQtWnTRpJ0+PBh3XPPPapbt67q16+vfv366dChQ/Y5i4uLFR8fr7p16+qaa67RuHHjdPFrhi4ulxQUFGj8+PEKDQ2V1WpVWFiY3nnnHR06dEi9evWSJNWrV08Wi0VDhw6VJNlsNiUmJqpFixby9fVVRESEPvroI4fP+eKLLxQeHi5fX1/16tXLIc7yGj9+vMLDw1W7dm21bNlSEydOVFFR0SX93nzzTYWGhqp27dq65557dPr0aYfrb7/9ttq1aycfHx+1bdtWb7zxhtOxAKg4JBmAyXx9fVVYWGg/XrNmjVJTU7Vq1SotX75cRUVFioqKkr+/v77++mtt2rRJderUUXR0tH3cSy+9pKSkJL377rtKTk7WyZMntXTp0st+7pAhQ/Tvf/9bs2bN0r59+/Tmm2+qTp06Cg0N1ccffyxJSk1NVVZWll599VVJUmJiohYsWKC5c+dq7969Gj16tO6//35t2LBB0vlk6K677tIdd9yhlJQUDR8+XBMmTHD678Tf319JSUn6/vvv9eqrr+qtt97SzJkzHfqkpaVpyZIl+vzzz7Vy5Up9++23euyxx+zXFy5cqEmTJumZZ57Rvn379Oyzz2rixIm8+hyoygwAVy02Ntbo16+fYRiGYbPZjFWrVhlWq9UYM2aM/XrDhg2NgoIC+5j33nvPaNOmjWGz2eznCgoKDF9fX+Orr74yDMMwGjVqZLzwwgv260VFRUaTJk3sn2UYhtGjRw/jiSeeMAzDMFJTUw1JxqpVq0qNc926dYYk47///a/9XH5+vlG7dm1j8+bNDn2HDRtmDBo0yDAMw3jyySeN9u3bO1wfP378JXNdTJKxdOnSMq/PmDHD6Nq1q/148uTJRo0aNYwjR47Yz3355ZeGl5eXkZWVZRiGYbRq1cr44IMPHOaZNm2aERkZaRiGYWRkZBiSjG+//bbMzwVQsdiTAbho+fLlqlOnjoqKimSz2XTfffcpISHBfr1jx44O+zB27dqltLQ0+fv7O8yTn5+v9PR0nT59WllZWerWrZv9Ws2aNXXDDTdcUjK5ICUlRTVq1FCPHj3KHXdaWprOnj2r22+/3eF8YWGhOnfuLEnat2+fQxySFBkZWe7PuGDx4sWaNWuW0tPTlZubq3PnzikgIMChT9OmTdW4cWOHz7HZbEpNTZW/v7/S09M1bNgwPfTQQ/Y+586dU2BgoNPxAKgYJBmAi3r16qU5c+bI29tbISEhqlnT8X8rPz8/h+Pc3Fx17dpVCxcuvGSuoKCgq4rB19fX6TG5ubmSpBUrVjj8cpfO7zMxy5YtWzR48GBNmTJFUVFRCgwM1KJFi/TSSy85Hetbb711SdJTo0YN02IFYC6SDMBFfn5+CgsLK3f/Ll26aPHixWrQoMEl/5q/oFGjRtq2bZtuvfVWSef/xb5jxw516dKl1P4dO3aUzWbThg0b1KdPn0uuX1hJKS4utp9r3769rFarMjMzy1wBadeunX0T6wVbt2698pf8jc2bN6tZs2Z66qmn7Od+/PHHS/plZmbq6NGjCgkJsX+Ol5eX2rRpo4YNGyokJEQHDx7U4MGDnfp8AJWHjZ9ABRs8eLCuvfZa9evXT19//bUyMjK0fv16jRw5UkeOHJEkPfHEE3ruuee0bNky7d+/X4899thln3HRvHlzxcbG6sEHH9SyZcvscy5ZskSS1KxZM1ksFi1fvly//PKLcnNz5e/vrzFjxmj06NGaP3++0tPTtXPnTr322mv2zZSPPPKIDhw4oLFjxyo1NVUffPCBkpKSnPq+rVu3VmZmphYtWqT09HTNmjWr1E2sPj4+io2N1a5du/T1119r5MiRuueeexQcHCxJmjJlihITEzVr1iz98MMP+u677zRv3jy9/PLLTsUDoOKQZAAVrHbt2tq4caOaNm2qu+66S+3atdOwYcOUn59vX9n45z//qb///e+KjY1VZGSk/P39NWDAgMvOO2fOHP31r3/VY489prZt2+qhhx5SXl6eJKlx48aaMmWKJkyYoIYNGyouLk6SNG3aNE2cOFGJiYlq166doqOjtWLFCrVo0ULS+X0SH3/8sZYtW6aIiAjNnTtXzz77rFPf984779To0aMVFxen66+/Xps3b9bEiRMv6RcWFqa77rpLf/rTn9S3b1916tTJ4RbV4cOH6+2339a8efPUsWNH9ejRQ0lJSfZYAVQ9FqOsnWQAAAAuYCUDAAC4BUkGAABwC5IMAADgFiQZAADALUgyAACAW5BkAAAAtyDJAAAAbkGSAQAA3IIkAwAAuAVJBgAAcAuSDAAA4Bb/H4+xxNVoGB/VAAAAAElFTkSuQmCC", + "text/plain": [ + "<Figure size 640x480 with 2 Axes>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "#######CONFUSION MATRIX ###########\n", + "from sklearn import metrics\n", + "y_test_pred_xgb = model_xgb.predict(X_test)\n", + "confusion_matrix_test = metrics.confusion_matrix(y_test, y_test_pred_xgb)\n", + "cm_display = metrics.ConfusionMatrixDisplay(confusion_matrix = confusion_matrix_test, display_labels = [False, True])\n", + "cm_display.plot()\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 49, + "id": "213fa877", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Accuracy : 0.725\n", + "Sensitivity : 0.38461538461538464\n", + "Specificity : 0.8888888888888888\n" + ] + } + ], + "source": [ + "total1=sum(sum(confusion_matrix_test))\n", + "#####from confusion matrix calculate accuracy\n", + "accuracy1=(confusion_matrix_test[0,0]+confusion_matrix_test[1,1])/total1\n", + "print ('Accuracy : ', accuracy1)\n", + "\n", + "sensitivity1 = confusion_matrix_test[0,0]/(confusion_matrix_test[0,0]+confusion_matrix_test[0,1])\n", + "print('Sensitivity : ', sensitivity1 )\n", + "\n", + "specificity1 = confusion_matrix_test[1,1]/(confusion_matrix_test[1,0]+confusion_matrix_test[1,1])\n", + "print('Specificity : ', specificity1)" + ] + }, + { + "cell_type": "code", + "execution_count": 50, + "id": "fddf8856", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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mTBhAr/++iv169d3tmdkZNCgQQNiY2PZvXs3ISEhHD9+nJYtW7Jp0yZatWrlHN7w953bWrVqxaJFi4Csd247c+YMy5cv58svv+S2227jl19+cU5mu7Cc2T333MMDDzzAnj17mDRpEnXq1MlyObOGDRvSqVMn53JmJUuWdC5ntnnzZu666y46dOjALbfcQqFChfj6669ZunQp8+bNo3379gD06dOH999/n5EjR3LDDTdQsmRJmjdvnpsfgYjI1bN3UQkRkfxr/fr1xsfHx/Tt2zfL59etW2e8vb1N//79nW3nzp0z48aNM40aNTKhoaGmUKFCplSpUub+++83M2fONOnp6c5zs1rOrFChQqZixYrmhRdeMGfOnLnkNSdMmGBuvvlm4+vra8LDw02vXr0yLZF2wZw5c0zt2rWNv7+/KVasmOnSpYs5cuSI8/n4+HjTp08fc/PNN5vg4GATFhZmGjZsaL744otM94mNjTX33XefCQkJMYCWNhORPE09viIiIiLiETTGV0REREQ8goKviIiIiHgEBV8RERER8QgKviIiIiLiERR8RURERMQjKPiKiIiIiEcoZHcBuc3hcPDnn38SEhKirTZFRERE8iBjDGfOnKFMmTLOTXrcweOC759//klERITdZYiIiIjIvzh8+DDlypVz2/08LviGhIQA1h9kaGiozdWIiIiIyD8lJiYSERHhzG3u4nHB98LwhtDQUAVfERERkTzM3cNSNblNRERERDyCgq+IiIiIeAQFXxERERHxCAq+IiIiIuIRFHxFRERExCMo+IqIiIiIR1DwFRERERGPoOArIiIiIh5BwVdEREREPIKCr4iIiIh4BAVfEREREfEICr4iIiIi4hEUfEVERETEIyj4ioiIiIhHUPAVEREREY9ga/D9+eefad26NWXKlMHLy4tvvvnmX69ZsWIFderUwd/fnxtuuIFp06bleJ0iIiIikv/ZGnyTkpKoWbMmEydOvKrzY2JiuO+++7jzzjvZvHkzzz33HE8++SRLlizJ4UpFREREJL8rZOeLt2rVilatWl31+ZMnT6ZChQqMHTsWgCpVqrBq1SreeecdWrRokVNlioiIiOQ7xkByst1VZE9SUs7c19bg66q1a9cSFRWVqa1FixY899xzl70mJSWFlJQU53FiYmJOlSciIiKSJxgDTZrAmjV2V+K6QqSRnkP3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KFfO1rJEROxwVVsWFyTasliyQ1sWS760dCl07w7HjlkbUIwaBdHRcIWt50VE8oKcymsu//TbuHEj27Ztcx5/++23PPjggwwZMoTU1FS3FSYiItfg/Hl4/HEr9FapAr/9BgMHKvSKiEdz+Sfg008/zd69ewE4cOAAHTt2JCgoiLlz5/Liiy+6vUAREcmGgABrSEPv3rB+PdSubXdFIiK2czn47t27l1q1agEwd+5cmjVrxqxZs5g2bRpffvmlu+sTEZGrYQyMH29tQHFB8+YwcSIEBdlXl4hIHuLySuXGGBwOBwDLli3j/vvvByAiIoL4+Hj3ViciIv8uNhZ69IDFi63B6HfcoclrIiJZcLnHt169erz22mvMmDGDlStXct999wEQExNDeHi42wsUEZErWLAAqle3Qm9AAIweDWXL2l2ViEie5HLwHTduHBs3bqRv374MHTqUG264AYB58+Zx2223ub1AERHJQnKyNX73gQesJctq1LDG8vbta+3IJiIil3Dbcmbnz5/Hx8cHX19fd9wux2g5M8kOLWcmecq5c1CvHuzcaR0//zy8/jr4+9tbl4iIm+RUXnN5jO8FGzZsYNeuXQDccsst1KlTx21FiYjIFQQGwv33w6lT1soNd99td0UiIvmCyz2+x48fp2PHjqxcuZIiRYoAcPr0ae68805mz55NiRIlcqJOt1GPr2SHenzFdkeOQFoaVKhgHaemwpkzcN119tYlIpID8swGFv369ePs2bPs2LGDkydPcvLkSbZv305iYiL9+/d3W2EiIvL/5s61xvB26mSFXwA/P4VeEREXuTzUYfHixSxbtowqVao422655RYmTpzIPffc49biREQ82pkz8OyzMHWqdZyRASdPglbQERHJFpd7fB0OR5YT2Hx9fZ3r+4qIyDX69Vdrt7WpU61VGoYOhTVrFHpFRK6By8G3efPmPPvss/z555/OtqNHjzJgwADuuusutxYnIuJx0tPh1VehSRPYvx/Kl4cVK+C11yCPr5ojIpLXuRx8J0yYQGJiIpGRkVSqVIlKlSpRoUIFEhMTGT9+fE7UKCLiORwO+PZba1hDp06wZQvcfrvdVYmIFAguj/GNiIhg48aNLF++3LmcWZUqVYiKinJ7cSIiHsEY6+HtbU1amzkTfv8dHn3U7spERAoUl4LvnDlzmD9/Pqmpqdx1113069cv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bt0YMWJEjr2v7FDwzU2xsXDffdCvH3TuDBd+IGm5HBERuUYtW7bk2LFjHDhwgHfeeYcPPvjgktAxfvx42rRpQ+PGjfntt9/YunUrjzzyCM888wwDBw7MdO7QoUPp2LEj9evX5/vvv2f79u2MHTuWLVu2MGPGjFx7X6mpqTl270OHDvHdd9/x2GOPXdN9crLGazVnzhyio6MZMWIEGzdupGbNmrRo0YLjx49f9pqvvvqKY8eOOR/bt2/Hx8eHhx9+2HnOm2++yXvvvcfkyZP57bffCA4OpkWLFpn+sdWjRw9mzpyZt/6hZDxMQkKCAUxCQkLuvvCCBcaUKGEMGOPvb8z48cY4HC7d4uxZ63KwvhYREfc5d+6c2blzpzl37pyzzeGwft7a8XDlr4ju3bubNm3aZGpr166dqV27tvP40KFDxtfX10RHR19y/XvvvWcA8+uvvxpjjPntt98MYMaNG5fl6506deqytRw+fNg88sgjpmjRoiYoKMjUrVvXed+s6nz22WdNs2bNnMfNmjUzffr0Mc8++6y57rrrzB133GE6depkOnTokOm61NRUc91115np06cbY4zJyMgwo0aNMpGRkSYgIMDUqFHDzJ0797J1GmPMmDFjTL169TK1xcfHm0ceecSUKVPGBAYGmmrVqplZs2ZlOierGo0xZtu2baZly5YmODjYlCxZ0jz66KPmxIkTzuu+//5707hxYxMWFmaKFStm7rvvPrNv374r1nitGjRoYPr06eM8zsjIMGXKlDGjR4++6nu88847JiQkxJz9//DhcDhMqVKlzJgxY5znnD592vj7+5vPP/8807UVKlQwH330UZb3zep77oKcymvq8c1pycnW+N3WreHECWv1hg0boG9f9fSKiORxyclQuLA9j2vZPG779u2sWbMGPz8/Z9u8efNIS0u7pGcX4Omnn6Zw4cJ8/vnnAMycOZPChQvTu3fvLO9fpEiRLNvPnj1Ls2bNOHr0KPPnz2fLli28+OKLOBwOl+qfPn06fn5+rF69msmTJ9OlSxcWLFjA2bNnnecsWbKE5ORk2rZtC8Do0aP59NNPmTx5Mjt27GDAgAE8+uijrFy58rKv88svv1CvXr1MbefPn6du3bosXLiQ7du389RTT9G1a9dLhgf8s8bTp0/TvHlzateuzfr161m8eDFxcXF06NDBeU1SUhLR0dGs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8XG2ValShdjYWFJTU/Hz88vRmiX7svN5v/TSS3Tt2pUnn3wSgOrVq5OUlMRTTz3F0KFD8fZW315Bcrm8FhoaetW9vVDAenz9/PyoW7cuy5cvd7Y5HA6WL19Oo0aNsrymUaNGmc4HWLp06WXPl7wjO583wJtvvsmrr77K4sWLqVevXm6UKm7g6ud98803s23bNjZv3ux8PPDAA9x5551s3ryZiIiI3CxfXJSd7+/GjRuzb98+5z9wAPbu3Uvp0qUVevO47HzeycnJl4TbC//oseZLSUHitrzm2ry7vG/27NnG39/fTJs2zezcudM89dRTpkiRIiY2NtYYY0zXrl3NoEGDnOevXr3aFCpUyLz11ltm165dZsSIEVrOLB9x9fN+4403jJ+fn5k3b545duyY83HmzBm73oK4wNXP+5+0qkP+4urnfejQIRMSEmL69u1r9uzZY7777jtTsmRJ89prr9n1FsQFrn7eI0aMMCEhIebzzz83Bw4cMD/88IOpVKmS6dChg11vQVxw5swZs2nTJrNp0yYDmLffftts2rTJ/O9//zPGGDNo0CDTtWtX5/kXljN74YUXzK5du8zEiRO1nNkF48ePN+XLlzd+fn6mQYMG5tdff3U+16xZM9O9e/dM53/xxRemcuXKxs/Pz1StWtUsXLgwlyuWa+HK53399dcb4JLHiBEjcr9wyRZXv7//TsE3/3H1816zZo1p2LCh8ff3NxUrVjSvv/66SU9Pz+WqJbtc+bzT0tLMyy+/bCpVqmQCAgJMRESE6d27tzl16lTuFy4u++mnn7L8+/jCZ9y9e3fTrFmzS66pVauW8fPzMxUrVjRTp051+XW9jNHvA0RERESk4CtQY3xFRERERC5HwVdEREREPIKCr4iIiIh4BAVfEREREfEICr4iIiIi4hEUfEVERETEIyj4ioiIiIhHUPAVEREREY+g4CsiAkybNo0iRYrYXUa2eXl58c0331zxnMcee4wHH3wwV+oREcmLFHxFpMB47LHH8PLyuuSxb98+u0tj2rRpznq8vb0pV64cPXr04Pjx4265/7Fjx2jVqhUABw8exMvLi82bN2c6591332XatGlueb3Lefnll53v08fHh4iICJ566ilOnjzp0n0U0kUkJxSyuwAREXdq2bIlU6dOzdRWokQJm6rJLDQ0lD179uBwONiyZQs9evTgzz//ZMmSJdd871KlSv3rOWFhYdf8OlejatWqLFu2jIyMDHbt2sXjjz9OQkICc+bMyZXXFxG5HPX4ikiB4u/vT6lSpTI9fHx8ePvtt6levTrBwcFERETQu3dvzp49e9n7bNmyhTvvvJOQkBBCQ0OpW7cu69evdz6/atUqmjZtSmBgIBEREfTv35+kpKQr1ubl5UWpUqUoU6YMrVq1on///ixbtoxz587hcDgYOXIk5cqVw9/fn1q1arF48WLntampqfTt25fSpUsTEBDA9ddfz+jRozPd+8JQhwoVKgBQu3ZtvLy8uOOOO4DMvagffvghZcqUweFwZKqxTZs2PP74487jb7/9ljp16hAQEEDFihV55ZVXSE9Pv+L7LFSoEKVKlaJs2bJERUXx8MMPs3TpUufzGRkZPPHEE1SoUIHAwEBuuukm3n33XefzL7/8MtOnT+fbb7919h6vWLECgMOHD9OhQweKFClCsWLFaNOmDQcPHrxiPSIiFyj4iohH8Pb25r333mPHjh1Mnz6dH3/8kRdffPGy53fp0oVy5crx+++/s2HDBgYNGoSvry8A+/fvp2XLlrRv356tW7cyZ84cVq1aRd++fV2qKTAwEIfDQXp6Ou+++y5jx47lrbfeYuvWrbRo0YIHHniAP/74A4D33nuP+fPn88UXX7Bnzx5mzpxJZGRklvddt24dAMuWLePYsWN89dVXl5zz8MMP89dff/HTTz85206ePMnixYvp0qULAL/88gvdunXj2WefZefOnXzwwQdMmzaN119//arf48GDB1myZAl+fn7ONofDQbly5Zg7dy47d+5k+PDhDBkyhC+++AKAgQMH0qFDB1q2bMmxY8c4duwYt912G2lpabRo0YKQkBB++eUXVq9eTeHChWnZsiWpqalXXZOIeDAjIlJAdO/e3fj4+Jjg4GDn46GHHsry3Llz55rrrrvOeTx16lQTFhbmPA4JCTHTpk3L8tonnnjCPPXUU5nafvnlF+Pt7W3OnTuX5TX/vP/evXtN5cqVTb169YwxxpQpU8a8/vrrma6pX7++6d27tzHGmH79+pnmzZsbh8OR5f0B8/XXXxtjjImJiTGA2bRpU6Zzunfvbtq0aeM8btOmjXn88cedxx988IEpU6aMycjIMMYYc9ddd5lRo0ZluseMGTNM6dKls6zBGGNGjBhhvL29TXBwsAkICDCAAczbb7992WuMMaZPnz6mffv2l631wmvfdNNNmf4MUlJSTGBgoFmyZMkV7y8iYowxGuMrIgXKnXfeyfvvv+88Dg4OBqzez9GjR7N7924SExNJT0/n/PnzJCcnExQUdMl9oqOjefLJJ5kxY4bz1/WVKlUCrGEQW7duZebMmc7zjTE4HA5iYmKoUqVKlrUlJCRQuHBhHA4H58+fp0mTJnz00UckJiby559/0rhx40znN27cmC1btgDWMIW7776bm266iZYtW3L//fdzzz33XNOfVZcuXejZsyeTJk3C39+fmTNn8sgjj+Dt7e18n6tXr87Uw5uRkXHFPzeAm266ifnz53P+/Hk+++wzNm/eTL9+/TKdM3HiRD755BMOHTrEuXPnSE1NpVatWlesd8uWLezbt4+QkJBM7efPn2f//v3Z+BMQEU+j4CsiBUpwcDA33HBDpraDBw9y//3306tXL15//XWKFSvGqlWreOKJJ0hNTc0ywL388st07tyZhQsX8v333zNixAhmz55N27ZtOXv2LE8//TT9+/e/5Lry5ctftraQkBA2btyIt7c3pUuXJjAwEIDExMR/fV916tQhJiaG77//nmXLltGhQweioqKYN2/ev157Oa1bt8YYw8KFC6lfvz6//PIL77zzjvP5s2fP8sorr9CuXbtLrg0ICLjsff38/JyfwRtvvMF9993HK6+8wquvvgrA7NmzGThwIGPHjqVRo0aEhIQwZswYfvvttyvWe/bsWerWrZvpHxwX5JUJjCKStyn4ikiBt2HDBhwOB2PHjnX2Zl4YT3ollStXpnLlygwYMIBOnToxdepU2rZtS506ddi5c+clAfvfeHt7Z3lNaGgoZcqUYfXq1TRr1szZvnr1aho0aJDpvI4dO9KxY0ceeughWrZsycmTJylWrFim+10YT5uRkXHFegICAmjXrh0zZ85k37593HTTTdSpU8f5fJ06ddizZ4/L7/Ofhg0bRvPmzenVq5fzfd5222307t3bec4/e2z9/Pwuqb9OnTrMmTOHkiVLEhoaek01iYhn0uQ2ESnwbrjhBtLS0hg/fjwHDhxgxowZTJ48+bLnnzt3jr59+7JixQr+97//sXr1an7//XfnEIb//Oc/rFmzhr59+7J582b++OMPvv32W5cnt/3dCy+8wH//+1/mzJnDnj17GDRoEJs3b+bZZ58F4O233+bzzz9n9+7d7N27l7lz51KqVKksN90oWbIkgYGBLF68mLi4OBISEi77ul26dGHhwoV88sknzkltFwwfPpxPP/2UV155hR07drBr1y5mz57NsGHDXHpvjRo1okaNGowaNQqAG2+8kfXr17NkyRL27t3LSy+9xO+//57pmsjISLZu3cqePXuIj48nLS2NLl26ULx4cdq0acMvv/xCTEwMK1asoH///hw5csSlmkTEMyn4ikiBV7NmTd5++23++9//Uq1aNWbOnJlpKbB/8vHx4a+//qJbt25UrlyZDh060KpVK1555RUAatSowcqVK9m7dy9Nmzaldu3aDB8+nDJlymS7xv79+xMdHc3zzz9P9erVWbx4MfPnz+fGG28ErGESb775JvXq1aN+/focPHiQRYsWOXuw/65QoUK89957fPDBB5QpU4Y2bdpc9nWbN29OsWLF2LNnD507d870XIsWLfjuu+/44YcfqF+/PrfeeivvvPMO119/vcvvb8CAAXz00UccPnyYp59+mnbt2tGxY0caNmzIX3/9lan3F6Bnz57cdNNN1KtXjxIlSrB69WqCgoL4+eefKV++PO3ataNKlSo88cQTnD9/Xj3AInJVvIwxxu4iRERERERymnp8RURERMQjKPiKiIiIiEdQ8BURERERj6DgKyIiIiIeQcFXRERERDyCgq+IiIiIeAQFXxERERHxCAq+IiIiIuIRFHxFRERExCMo+IqIiIiIR1DwFRERERGP8H9Um65ieSJdPAAAAABJRU5ErkJggg==", + "text/plain": [ + "<Figure size 800x600 with 1 Axes>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from sklearn.metrics import roc_curve, auc\n", + "# Calculate the false positive rate (FPR), true positive rate (TPR), and thresholds\n", + "fpr, tpr, thresholds = roc_curve(y_test, y_proba)\n", + "\n", + "# Calculate the area under the ROC curve (AUC)\n", + "roc_auc = auc(fpr, tpr)\n", + "\n", + "# Plot the ROC curve\n", + "plt.figure(figsize=(8, 6))\n", + "plt.plot(fpr, tpr, color='blue', label='ROC curve (area = %0.2f)' % roc_auc)\n", + "plt.plot([0, 1], [0, 1], color='red', linestyle='--')\n", + "plt.xlim([0.0, 1.0])\n", + "plt.ylim([0.0, 1.05])\n", + "plt.xlabel('False Positive Rate')\n", + "plt.ylabel('True Positive Rate')\n", + "plt.title('XGBoost')\n", + "plt.legend(loc='lower right')\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 60, + "id": "9f10a7ae", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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19eEhISY119/PdVrOnz4sGnTpo3x8/MzgYGB5plnnjHLly9PV8C/VvA1xpgxY8YYwEybNs3Zlp73JK3P+d/vz4wZM8zdd99tAgMDjZeXl6lcubKZMmXKNWsVyYkKZHWPskh+4ubmxvvvv0+tWrXo3bs3P/30E3Xr1qVv374p9luyZAlgjQvOqNjYWM6cOQNATEwM33zzDcuXL2fw4MEp9nv55Zd55ZVXCA8Pp3fv3uzdu5f33nuPjRs3sm7dOjw9PYF/vjqtV68eY8eO5eTJk7zzzjusW7eOrVu3UqRIEQAeeOABdu3aRf/+/QkLC+PUqVOsXLmSI0eOEBYWxoQJE+jfvz+FChVi6NChAAQFBWX49WVEYmIix44do2jRoinalyxZgo+PDx07dkzzuLJly9KkSRNWr17N5cuX8fX1ZfHixfj6+vK///0vU7XExsayatUq7rzzTsqUKZOpc1xLYmIiERERNGnShDfffBM/Pz/CwsKYPHkyS5cu5cEHH0xRy5IlS3jkkUfw8PAAYM6cOfTo0YOIiAhef/11YmNjee+992jSpAlbt2696lfbHTp0oEiRIgwcONA5zKZQoUIA7Nq1izvuuAN/f3+ef/55PD09ef/997nrrrv44YcfaNCgQYpz9enTh8DAQIYPH86lS5du+D158MEHqVChAmPGjMH8/6i9lStXcvDgQXr27EnJkiXZtWsX06ZNY9euXfz888/XHdawf/9+/ve///HYY4/Ro0cPZsyYwSOPPEKdOnWoUqXKNY89d+4cLVq0oEOHDnTs2JHPPvuMF154gWrVqtGyZUsALl26RLNmzThx4gQDBgygZMmSzJs3j++///6G3w+Abt26MWTIEFasWOEc/pOe96RDhw7s27ePTz75hLfffpvixYsDEBgYCMB7771HlSpVuP/++ylQoABLliyhT58+OByOVH+/ieRodidvkbxo8ODBBjAeHh5m8+bNqZ5v3769Acz58+dTtF++fNmcPn3a+fh372xyT2Baj969exuHw+Hc99SpU8bLy8s0b97cJCUlOdsnTZpkADNjxgxjjDHx8fGmRIkSpmrVquby5cvO/b7++msDmOHDhxtjrGEApOOr7qwe6tC8eXPne7Njxw7TrVs3A5i+ffum2LdIkSKmRo0a1zzf008/bQDz22+/GWOMKVq06HWPuZbt27cbwAwYMCBd+2e0xxcwL774Yop9HQ6HKVWqlHnggQdStH/66acGMD/++KMxxpgLFy6YIkWKmF69eqXYLyoqygQEBKRq/6+rfdvQrl074+XlZQ4cOOBsO378uClcuLC58847nW3JvZRNmjRJ0QOdHtfq8e3cuXOq/dP6ij/5m5fk9+PfNf23x/e/+506dcp4e3ubZ5991tl2tR5f/vMtQ1xcnClZsmSKz2f8+PEGMIsWLXK2Xb582VSqVMklPb7GGBMQEGBq1arl3E7ve3KtoQ5pnSMiIsKUK1fumvWK5DSa1UEkCyT3loSEhFC1atVUz8fExAA4e86STZ06lcDAQOejSZMmqY594oknWLlyJStXruTzzz+nb9++vP/++0RGRjr3+e6774iPj+eZZ55JcfNNr1698Pf3Z+nSpYB109apU6fo06cPPj4+zv1at25NpUqVnPv5+vri5eXFmjVrOHfuXGbflhu2YsUK53tTrVo15syZQ8+ePVPd1HfhwgUKFy58zXMlP5/8WcTExFz3mGtJPs+NnON6evfunWLbzc2NBx98kGXLlnHx4kVn+4IFCyhVqpTz52flypWcP3+ezp07c+bMGefDw8ODBg0aZKq3MSkpiRUrVtCuXTvKlSvnbA8ODqZLly6sXbvW+Z4k69Wrl7MH2hWeeuqpVG2+vr7O31+5coUzZ85w++23A7Bly5brnvO2227jjjvucG4HBgZy6623cvDgweseW6hQoRTf4nh5eVG/fv0Uxy5fvpxSpUpx//33O9t8fHxS3Zx5IwoVKpRidocbfU/+e47o6GjOnDlD06ZNOXjwINHR0S6qXCTrKfiKuNjRo0cZMWIEVatW5ejRo7zxxhup9kkOR/8OK2ANJ0gOtVe7K7tChQqEh4cTHh5Ohw4dmDRpEn369GHChAns2LEDgD///BOAW2+9NcWxXl5elCtXzvn81fYDqFSpkvN5b29vXn/9db755huCgoK48847eeONN4iKikr3+/Jfp0+fJioqyvn473uRlgYNGrBy5UqWL1/Om2++SZEiRTh37hxeXl4p9itcuPB1p3VKfj75s/D397+hqaD8/f1TnNfVChQoQOnSpVO1d+rUicuXL7N48WLA+platmwZDz74oPNr/T/++AOAZs2apfiPVWBgICtWrODUqVMZruf06dPExsam+bNTuXJlHA4HR48eTdFetmzZDF/nWtI639mzZxkwYABBQUH4+voSGBjo3C89AS2tYSpFixZN13/4SpcunWooxX+P/fPPPylfvnyq/W655Zbrnj+9Ll68mOI/YDf6noA1S0p4eDgFCxakSJEiBAYGOmcnUfCV3ERjfEVcrF+/fgB88803REZG8uqrr9KlS5cUvWKVKlUCYOfOnTRu3NjZHhoaSmhoKGD9g5k8lvd67rnnHiZNmsSPP/5ItWrVXPVSUnjmmWdo06YNixYt4ttvv+Wll15i7NixrF69mlq1amX4fPXq1XMGa4ARI0Zcd27W4sWLEx4eDkBERASVKlXivvvu45133knR4125cmW2bt1KXFwc3t7eaZ7rt99+w9PTkwoVKgDWZ7Jt2zbnNFUZdcstt1CgQAHnfz6u52pjTa82z6+3t3eaU2fdfvvthIWF8emnn9KlSxeWLFnC5cuX6dSpk3Mfh8MBWON8S5YsmeocBQpkzz8F/+41zKrzdezYkfXr1/Pcc89Rs2ZNChUqhMPhoEWLFs734Vqu1iNt0jHz540c6yrHjh0jOjo6RZC+0ffkwIED3HPPPVSqVIm33nqL0NBQvLy8WLZsGW+//Xa6ziGSU6jHV8SFvvzySxYvXsyoUaMoXbo0EyZMwMvLK9XNH/fddx8Ac+fOdcl1ExMTgX96kG+++WYA9u7dm2K/+Ph4Dh065Hz+avsltyU/n6x8+fI8++yzrFixgp07dxIfH8/48eOdz2dkPtS5c+c6e7dXrlxJ9+7d031sstatW9O0aVPGjBmT4map++67jytXrrBw4cI0jzt8+DA//fQTzZo1c4anNm3acPnyZT7//PMM1wHg5+dHs2bN+PHHH1P1dKYl+Ya8/y4W8O//DKRXx44dWb58OTExMSxYsICwsDDnV9lgfW4AJUqUcH5b8O/HXXfdleFrBgYG4ufnl+bPzp49e3B3d3f+Jy67nDt3jlWrVvHiiy/yyiuv0L59e+69994U/+m0280338yBAwdSheH9+/e75Pxz5swBrP8YQsbek6v9+V2yZAlxcXEsXryYJ598klatWhEeHu7y/8iIZAcFXxEXuXDhAk8//TS1atVyLowQEhLCqFGjWL58eYoQ1rhxY+69916mTZvGV199leb5MtJLlDxLRI0aNQAIDw/Hy8uLd999N8V5PvzwQ6Kjo2ndujUAdevWpUSJEkydOpW4uDjnft988w27d+927hcbG8uVK1dSXLN8+fIULlw4xXEFCxZM96pPjRs3ThG+MhtOXnjhBf7++2+mT5/ubHvyyScpUaIEzz33XKqxmVeuXKFnz54YYxg+fLiz/amnniI4OJhnn302zdX3Tp06dd3FG0aMGIExhm7duqU5dGPz5s3Mnj0bsAKQh4cHP/74Y4p9pkyZcv0X/R+dOnUiLi6O2bNns3z58lSzWURERODv78+YMWNISEhIdfzp06czfE0PDw+aN2/OV199lWLZ35MnTzJv3jyaNGniHP6RXZJ7XP/7Z2fChAnZWse1RERE8NdffzmHpoD1M/nvn9/MWr16NaNGjaJs2bJ07doVyNh7UrBgQSD1f8bSOkd0dDQzZ8684ZpFspuGOoi4yLBhwzh+/DhffPFFiq88+/bty+zZs3nmmWdo0aKFc+zdxx9/TIsWLWjXrh0tW7YkPDycokWLOldu+/HHH51TIP3bli1b+PjjjwGcK4J9/vnnNGrUiObNmwNWb9zgwYN55ZVXaNGiBffffz979+5lypQp1KtXz3kDjqenJ6+//jo9e/akadOmdO7c2TmdWVhYGAMHDgRg37593HPPPXTs2JHbbruNAgUK8OWXX3Ly5EkeeughZ2116tThvffeY/To0dxyyy2UKFGCZs2aZc0b/v9atmxJ1apVeeutt+jbty+enp7cdNNNfPbZZ7Ru3ZratWunWrlt//79vPPOOzRq1Mh5nqJFi/Lll1/SqlUratasmWLlti1btvDJJ5/QsGHDa9bSqFEjJk+eTJ8+fahUqVKKldvWrFnD4sWLneE5ICCABx98kIkTJ+Lm5kb58uX5+uuvMzXetnbt2txyyy0MHTqUuLi4FMMcwBp//N5779GtWzdq167NQw89RGBgIEeOHGHp0qU0btyYSZMmZfi6o0ePZuXKlTRp0oQ+ffpQoEAB3n//feLi4tIc257V/P39nePPExISKFWqFCtWrODQoUPZXsvVPPnkk0yaNInOnTszYMAAgoODmTt3rvPm0vR+a/LNN9+wZ88eEhMTOXnyJKtXr2blypXcfPPNLF682Hm+jLwnyT/vQ4cO5aGHHsLT05M2bdrQvHlzvLy8aNOmDU8++SQXL15k+vTplChRghMnTrjonRHJJnZNJyGSl2zatMl4eHiYfv36pfn8r7/+atzd3c3TTz+dov3y5ctmwoQJpmHDhsbf398UKFDAlCxZ0tx3331m7ty5KaZ+Sms6swIFCphy5cqZ5557zly4cCHVdSdNmmQqVapkPD09TVBQkOndu3eaC1gsWLDA1KpVy3h7e5tixYqlWsDizJkzpm/fvqZSpUqmYMGCJiAgwDRo0MB8+umnKc4TFRVlWrdubQoXLpxtC1gYY8ysWbNSTQFmjPWe9erVy5QpU8Z4enqa4sWLm/vvv9/89NNPV73O8ePHzcCBA03FihWNj4+P8fPzM3Xq1DGvvvqqiY6OTletmzdvNl26dDEhISHG09PTFC1a1Nxzzz1m9uzZKaaXO336tHnggQeMn5+fKVq0qHnyySfNzp07r7qAxbUMHTrUAOaWW2656j7ff/+9iYiIMAEBAcbHx8eUL1/ePPLII2bTpk3XPPe1Fk/ZsmWLiYiIMIUKFTJ+fn7m7rvvNuvXr0+xT3qm4Lqaa01ndvr06VT7Hzt2zLRv394UKVLEBAQEmAcffNAcP37cAGbEiBGpakprAYv/atq0aYqf5WstYPFfPXr0SLHghzHWAiqtW7c2vr6+JjAw0Dz77LPm888/N4D5+eefr/l+JNed/EheTObee+8177zzTporBqb3PTHGmFGjRplSpUoZd3f3FO/P4sWLTfXq1Y2Pj48JCwszr7/+upkxY4ZWepNcx82YbBx1LyIiIqlMmDCBgQMHcuzYMUqVKmV3OSJ5loKviIhINkpeLTDZlStXqFWrFklJSWmOLxcR19EYXxERkWzUoUMHypQpQ82aNYmOjubjjz9mz549LpvlRUSuTsFXREQkG0VERPDBBx8wd+5ckpKSuO2225g/f36qmxJFxPU01EFERERE8gXN4ysiIiIi+YKCr4iIiIjkC/lujK/D4eD48eMULlw4Q8urioiIiEj2MMZw4cIFQkJCcHd3XT9tvgu+x48fz/b140VEREQk444ePUrp0qVddr58F3yTl4s9evRotq8jLyIiIiLXFxMTQ2hoqDO3uUq+C77Jwxv8/f0VfEVERERyMFcPS9XNbSIiIiKSLyj4ioiIiEi+oOArIiIiIvmCgq+IiIiI5AsKviIiIiKSLyj4ioiIiEi+oOArIiIiIvmCgq+IiIiI5AsKviIiIiKSLyj4ioiIiEi+oOArIiIiIvmCgq+IiIiI5AsKviIiIiKSLyj4ioiIiEi+oOArIiIiIvmCrcH3xx9/pE2bNoSEhODm5saiRYuue8yaNWuoXbs23t7e3HLLLcyaNSvL6xQRERGR3M/W4Hvp0iVq1KjB5MmT07X/oUOHaN26NXfffTfbtm3jmWee4fHHH+fbb7/N4kpFREREJLcrYOfFW7ZsScuWLdO9/9SpUylbtizjx48HoHLlyqxdu5a3336biIiIDF370iXw8MjQISIiIiKSDS5dyprz2hp8M2rDhg2Eh4enaIuIiOCZZ5656jFxcXHExcU5t2NiYgAICcmSEkVERETkBhQggcQsOneuurktKiqKoKCgFG1BQUHExMRw+fLlNI8ZO3YsAQEBzkdoaGh2lCoiIiIiGeBLLFPozWLuBxxZco1c1eObGYMHDyYyMtK5HRMTQ2hoKPv3Q8mSNhYmIiIiIgC4b9uCd88uuP+xF4CoL36mZAfXXydXBd+SJUty8uTJFG0nT57E398fX1/fNI/x9vbG29s7VbufHxQsmCVlioiIiEh6OBwwfjwMHQoJCdZY1Nmz8a1fP0sul6uCb8OGDVm2bFmKtpUrV9KwYUObKhIRERGRTDl2DHr0gNWrre327WH6dLjpJvj/e7JczdYxvhcvXmTbtm1s27YNsKYr27ZtG0eOHAGsYQrdu3d37v/UU09x8OBBnn/+efbs2cOUKVP49NNPGThwoB3li4iIiEhmGAP/+58Vev384IMP4PPPrdCbhWwNvps2baJWrVrUqlULgMjISGrVqsXw4cMBOHHihDMEA5QtW5alS5eycuVKatSowfjx4/nggw8yPJWZiIiIiNjIzQ0mToRGjWDbNnjsMastqy9rjDFZfpUcJCYmhoCAAI4fjyY42N/uckRERETyh59/hn374F/f5mNMmoE3Oa9FR0fj7++6vJarpjMTERERkVwmMRFGjoQmTaBXL/jtt3+ey4Ze3n/LVTe3iYiIiEgucvAgdOsG69db2506QZkytpWjHl8RERERcS1jYM4cqFnTCr3+/vDxxzB3LhQpYltZ6vEVEREREdcxBh55BD76yNpu3NgKvWFhdlYFqMdXRERERFzJzQ0qVwYPDxg1CtasyRGhF9TjKyIiIiI3Kj4eTp6E0FBr+7nnoFUrqF7d3rr+Qz2+IiIiIpJ5e/da8/G2aAGXL1ttHh45LvSCgq+IiIiIZIYx1hLDtWvD5s1w4gT8/rvdVV2Tgq+IiIiIZMyZM9ChAzzxBMTGQrNm1vy8derYXdk1KfiKiIiISPqtWGENY1i0CDw94c03YeVKKF3a7squSze3iYiIiEj6GANvvGENa6hcGebNs+bqzSXU4ysiIiIi6ePmBjNnwrPPwqZNuSr0goKviIiIiFyNMTBxIkRG/tMWGmoNb/Dzs6+uTNJQBxERERFJLSoKevaE5cut7f/9z5q2LBdTj6+IiIiIpLRkCVSrZoVeHx+r17dhQ7urumHq8RURERERS2wsDBoE771nbVevbt3AVqWKvXW5iIKviIiIiFjjeZs3h3XrrO1nn4VXXwVvb3vrciEFXxERERGxZmwYOBAOHYLZsyE83O6KXE5jfEVERETyq2PH4Kef/tl+4AHYty9Phl5Q8BURERHJnxYutMbwduhgzeCQrGBB+2rKYgq+IiIiIvnJhQvWNGUdO8K5c1C2LFy+bHdV2ULBV0RERCS/+Plna7W1WbOsMb1Dh1o3s5Uta3dl2UI3t4mIiIjkdcbAqFEwciQkJUGZMvDxx3DHHXZXlq3U4ysiIiKS17m5wdGjVujt0gW2b893oRfU4ysiIiKSNxkDV66Ar6+1/fbbEBFhLT2cT6nHV0RERCSvOX/e6tlt2xYcDqutUKF8HXpBPb4iIiIiecuPP0K3bnDkCHh4wMaN0KCB3VXlCOrxFREREckL4uNhyBC46y4r9JYvb83YoNDrpB5fERERkdxu717o2hU2b7a2H30UJkyAwoVtLSunUfAVERERyc2MscbzbtkCRYvC9OnW0sOSioY6iIiIiORmbm4wbRq0aAG//abQew0KviIiIiK5zYoVVs9usjp14JtvoHRp+2rKBRR8RURERHKLK1dg4EBrPt5+/aweXkk3jfEVERERyQ127rTG8u7YYW0//jjccou9NeUy6vEVERERycmMgYkToW5dK/QGBsKSJTB5Mvj52V1drqIeXxEREZGcyhho3x6++srabtkSZs6EoCB768ql1OMrIiIiklO5uUHjxuDjY/X6Ll2q0HsD1OMrIiIikpPExkJUFJQrZ20/+6zV66vxvDdMPb4iIiIiOcWWLdbUZK1bWwEYwN1doddFFHxFRERE7OZwwBtvwO23w549EB0NBw/aXVWeo6EOIiIiInY6dgy6d4fvv7e227e3Fqe46SZ768qD1OMrIiIiYpeFC6F6dSv0+vlZgffzzxV6s4h6fEVERETsYAxMmwbnzllz9M6dCxUr2l1VnqYeXxEREZHsZIz1q5sbzJoFr7wC69cr9GYDBV8RERGR7JCYCCNHQv/+/7SVKgXDh4Onp3115SMa6iAiIiKS1Q4dgocftnp2AXr0gHr17K0pH1KPr4iIiEhWMQY+/hhq1LBCr7+/ta3Qawv1+IqIiIhkhfPnoXdvmD/f2m7c2Aq9YWF2VpWvKfiKiIiIuJoxcM891kpsHh7w8svw4otQQNHLThrqICIiIuJqbm7w0kvWUsPr1sGwYQq9OYCCr4iIiIgr7NsHq1b9s92uHezcCQ0a2FaSpKTgKyIiInIjjLFWXKtVCzp2hOPH/3nO29u+uiQV9bmLiIiIZNaZM9CrFyxaZG3ffrut5ci1qcdXREREJDNWroTq1a3Q6+kJ48ZZbSEhdlcmV6EeXxEREZGMMAYGDYK33rK2K1eGuXOtoQ6So6nHV0RERCQj3Nzg0iXr9336wKZNCr25hHp8RURERK7HGLhwwVp5DWD8eOjQAZo3t7cuyRD1+IqIiIhcS1QUtG5tBV2Hw2orWFChNxdSj6+IiIjI1Xz9NTz6KJw+DT4+sH27hjXkYurxFREREfmv2Fhr/G6bNlborV5dY3nzAAVfERERkX/bsgXq1IH33rO2IyPh11+hShV765IbpqEOIiIiIskcDmtow549EBwMs2fDvffaXZW4iHp8RURERJK5u8PMmdbSwzt2KPTmMQq+IiIikr999hlMnvzPdq1asGAB3HSTfTVJltBQBxEREcmfLlyAAQOsHl5PT7jzTqhWze6qJAsp+IqIiEj+8/PP8PDDcOCAtRLbc89BpUp2VyVZTMFXRERE8o/ERBgzBkaOhKQkKFMG5syxenslz1PwFRERkfzB4bBWW/v+e2u7c2eYMgWKFLG1LMk+urlNRERE8gd3d7jvPvD3h48/hnnzFHrzGQVfERERybvOn4e9e//ZfuYZ+P136NrVrorERgq+IiIikjf9+CPUqAFt28KlS1abuzuUKmVvXWIbBV8RERHJWxISYOhQuOsuOHLEuqHtr7/srkpyAAVfERERyTv27YNGjayZG4yxlh/euhUqVrS7MskBFHxFREQk9zMGpk+3Vl3btAmKFoWFC+HDD6FwYburkxxC05mJiIhI7meMtfRwbCw0awazZ0Pp0nZXJTmMgq+IiIjkXsZYK6+5u8OsWbBgATz9tLUt8h/6qRAREZHc58oVGDgQnnzyn7bgYGu6MoVeuQrbfzImT55MWFgYPj4+NGjQgF9//fWa+0+YMIFbb70VX19fQkNDGThwIFeuXMmmakVERMR2O3dC/fowYYI1rnfbNrsrklzC1uC7YMECIiMjGTFiBFu2bKFGjRpERERw6tSpNPefN28eL774IiNGjGD37t18+OGHLFiwgCFDhmRz5SIiIpLtjIGJE6FuXdixAwIDYckSqFnT7sokl7A1+L711lv06tWLnj17cttttzF16lT8/PyYMWNGmvuvX7+exo0b06VLF8LCwmjevDmdO3e+bi+xiIiI5HJRUdCqlTV+Ny4OWra0wu9999ldmeQitgXf+Ph4Nm/eTHh4+D/FuLsTHh7Ohg0b0jymUaNGbN682Rl0Dx48yLJly2jVqtVVrxMXF0dMTEyKh4iIiOQiDgeEh8Py5eDjY/X6Ll0KQUF2Vya5jG3B98yZMyQlJRH0nx/aoKAgoqKi0jymS5cujBw5kiZNmuDp6Un58uW56667rjnUYezYsQQEBDgfoaGhLn0dIiIiksXc3WHsWGv54U2boF8/ayYHkQyy/ea2jFizZg1jxoxhypQpbNmyhS+++IKlS5cyatSoqx4zePBgoqOjnY+jR49mY8UiIiKSKVu2WD28ydq0gc2boUoV+2qSXM+2eXyLFy+Oh4cHJ0+eTNF+8uRJSpYsmeYxL730Et26dePxxx8HoFq1aly6dIknnniCoUOH4p7G9CXe3t54e3u7/gWIiIiI6zkc8OabMGwYFCoEv/32z0IUHh721ia5nm09vl5eXtSpU4dVq1Y52xwOB6tWraJhw4ZpHhMbG5sq3Hr8/x8CY0zWFSsiIiJZ7+hRayzvCy9AQgLcdRf4+tpdleQhtq7cFhkZSY8ePahbty7169dnwoQJXLp0iZ49ewLQvXt3SpUqxdixYwFo06YNb731FrVq1aJBgwbs37+fl156iTZt2jgDsIiIiORCCxdai1GcOwd+fvDuu/DooxrLKy5la/Dt1KkTp0+fZvjw4URFRVGzZk2WL1/uvOHtyJEjKXp4hw0bhpubG8OGDeOvv/4iMDCQNm3a8Oqrr9r1EkRERORGOBzw+OMwc6a1Xa8ezJ0LFSrYW5fkSW4mn40RiImJISAggOPHowkO9re7HBEREenbF6ZOhcGDYcQI8PS0uyKxWXJei46Oxt/fdXnN1h5fERERyYcSEyEmBooVs7bHjYOHH4ar3OMj4iq5ajozERERyeUOHYKmTaFDB0hKstr8/BR6JVso+IqIiEjWMwbmzLEWoVi/HrZuhd277a5K8hkFXxEREcla589Dly7QvTtcuACNG8P27VC1qt2VST6j4CsiIiJZ54cfoHp1mD/fWoBi1ChYswbCwuyuTPIh3dwmIiIiWcPhgKefthamKF/emqasQQO7q5J8TD2+IiIikjXc3eGjj6BXL9i2TaFXbKceXxEREXENY+CDD+DiRRg40GqrUQOmTbO3LpH/p+ArIiIiN+7MGatnd9EiKFAAmjeHKlXsrkokBQVfERERuTErVsAjj8CJE9aqa2PHQuXKdlclkoqCr4iIiGTOlSvWMsMTJljblSvDvHlQs6adVYlclYKviIiIZFxSEtx5J2zcaG337QtvvGGtwiaSQyn4ioiISMZ5eEDXrnD4MMyYAffdZ3dFItel6cxEREQkfaKiYOfOf7b794fff1folVxDwVdERESub8kSqFYN2re3pisDa57e4sXtrUskAxR8RURE5OpiY6FPH7j/fmvKMj8/61eRXEjBV0RERNK2ZQvUqQPvvWdtP/ss/PorhIXZWpZIZin4ioiISEoOhzVDw+23w549EBwMK1fCm2+Ct7fd1YlkmoKviIiIpOTmBt9/DwkJ1pjeHTsgPNzuqkRumKYzExEREUtiorXcsJsbzJwJy5dDjx7WtkgeoB5fERGR/O7CBejZE5544p+2kiWtZYgVeiUPUfAVERHJz37+2VpieNYsmD0bdu2yuyKRLKPgKyIikh8lJsLIkdCkCRw8CGXKwJo1UKWK3ZWJZBmN8RUREclvDh2Chx+G9eut7c6dYcoUKFLE1rJEspqCr4iISH6SlAQREfDHH+DvbwXerl3trkokW2iog4iISH7i4QETJlhDHLZvV+iVfEU9viIiInndjz9CdDS0aWNtt2oFLVtqxgbJd9TjKyIiklfFx8OQIXDXXdC9Oxw9+s9zCr2SD6nHV0REJC/au9caxrB5s7XdoYNuXpN8Tz2+IiIieYkxMH061K5thd6iReGzz+DDD6FwYburE7GVenxFRETyiqQkePBB+PJLa7tZM2tRitKl7a1LJIdQj6+IiEhe4eEBoaHg6QnjxsHKlQq9Iv+iHl8REZHc7MoViImBEiWs7ddeg8ceg+rV7a1LJAdSj6+IiEhutWsXNGhgDW9ISrLafH0VekWuQsFXREQktzEGJk6EOnXgt99g9244cMDuqkRyPAVfERGR3CQqylqA4umnIS7OWohixw6oWNHuykRyPAVfERGR3GLJEqhWDZYvBx8fq9d36VIICrK7MpFcQTe3iYiI5AaJiTB0KJw5Y43hnTcPqlSxuyqRXEU9viIiIrlBgQIwdy489xz8+qtCr0gmqMdXREQkJ3I4YPx469cXXrDaqlWDN96wty6RXEzBV0REJKc5dgx69IDVq61FKdq2hUqV7K5KJNfTUAcREZGcZOFCawzv6tXg5wdTp8Ktt9pdlUieoB5fERGRnODCBRgwAGbOtLbr1rXG9GqaMhGXUfAVERGxW2IiNGoEO3eCmxsMGQIjRoCnp92VieQpGuogIiJitwIF4IknoEwZ+OEHGD1aoVckCyj4ioiI2OHQIdi27Z/tfv2sFdjuuMO2kkTyOgVfERGR7GQMfPwx1KgBDzxgje0Fa4iDv7+9tYnkcQq+IiIi2eX8eejSBbp1swJvcPA/wVdEspyCr4iISHb48Uerl3f+fGtu3lGjYM0aCAmxuzKRfEOzOoiIiGSlxEQYPhxee80a5lC+vDVNWYMGdlcmku+ox1dERCQreXjA9u1W6H30Udi6VaFXxCbq8RUREXE1YyA+Hry9rZvWZs6EtWuhQwe7KxPJ19TjKyIi4kp//23N1vDEE/+0lSih0CuSA9xQ8L1y5Yqr6hAREcn9Vq6EatXgyy/hk09g3z67KxKRf8lw8HU4HIwaNYpSpUpRqFAhDh48CMBLL73Ehx9+6PICRUREcrwrVyAyEpo3hxMnoHJl+OUXqFjR7spE5F8yHHxHjx7NrFmzeOONN/Dy8nK2V61alQ8++MClxYmIiOR4u3ZZN6u9/ba13acPbNoEtWrZW5eIpJLh4PvRRx8xbdo0unbtioeHh7O9Ro0a7Nmzx6XFiYiI5GiJiXDfffDbbxAYCEuWwOTJ4Odnd2UikoYMB9+//vqLW265JVW7w+EgISHBJUWJiIjkCgUKwHvvQatWsGOHFYJFJMfKcPC97bbb+Omnn1K1f/bZZ9TS1zoiIpLXff01fPHFP9stWlhtQUH21SQi6ZLheXyHDx9Ojx49+Ouvv3A4HHzxxRfs3buXjz76iK+//jorahQREbFfbCwMGmT18AYEQN26UKaM9Zybm721iUi6ZLjHt23btixZsoTvvvuOggULMnz4cHbv3s2SJUu49957s6JGERERe23ZAnXqWKEX4LHH1MMrkgtlauW2O+64g5UrV7q6FhERkZzF4YDx42HoUEhIgOBgmD0b1NEjkitluMe3XLly/P3336naz58/T7ly5VxSlIiIiO0SEqx5eZ9/3vp9+/bW7A0KvSK5VoaD7+HDh0lKSkrVHhcXx19//eWSokRERGzn6WmtwubnB9Onw+efQ/HidlclIjcg3UMdFi9e7Pz9t99+S0BAgHM7KSmJVatWERYW5tLiREREstWFC9YjJMTaHjsW+vaFNKbxFJHcJ93Bt127dgC4ubnRo0ePFM95enoSFhbG+PHjXVqciIhItvn5Z3j4YShZEtassebo9fFR6BXJQ9IdfB0OBwBly5Zl48aNFNfXPSIikhckJsKYMTByJCQlWeN5jx6FsmXtrkxEXCzDszocOnQoK+oQERHJfocOWb2869db2507w5QpUKSIrWWJSNbI1HRmly5d4ocffuDIkSPEx8eneO7pp592SWEiIiJZxhiYOxf69LHG9BYubM3R27Wr3ZWJSBbKcPDdunUrrVq1IjY2lkuXLlGsWDHOnDmDn58fJUqUUPAVEZGcLzER3nzTCr2NG8OcORraIJIPZHg6s4EDB9KmTRvOnTuHr68vP//8M3/++Sd16tThzTffzIoaRUREXMvTE+bNg1GjrBvZFHpF8gU3Y4zJyAFFihThl19+4dZbb6VIkSJs2LCBypUr88svv9CjRw/27NmTVbW6RExMDAEBARw/Hk1wsL/d5YiISHZISICXXwZfXxg2zO5qROQ6kvNadHQ0/v6uy2sZHurg6emJu7vVUVyiRAmOHDlC5cqVCQgI4OjRoy4rTERExCX27bPG7m7aBB4e1g1s5cvbXZWI2CDDwbdWrVps3LiRChUq0LRpU4YPH86ZM2eYM2cOVatWzYoaRUREMs4Y+OADeOYZiI2FokWtFdgUekXyrQyP8R0zZgzBwcEAvPrqqxQtWpTevXtz+vRp3n//fZcXKCIikmFnzkCHDvDEE1bobdYMfvsNHnjA7spExEYZHuOb22mMr4hIHpeQAJUrw4ED1k1sY8fCwIHgnuG+HhGxSVaN8XXZ3wJbtmzhvvvuc9XpREREMsfTEyIjrfD7yy/w7LMKvSICZDD4fvvttwwaNIghQ4Zw8OBBAPbs2UO7du2oV6+ec1njjJg8eTJhYWH4+PjQoEEDfv3112vuf/78efr27UtwcDDe3t5UrFiRZcuWZfi6IiKSh+zcCRs3/rPduzds3gy1atlXk4jkOOkOvh9++CEtW7Zk1qxZvP7669x+++18/PHHNGzYkJIlS7Jz584MB9AFCxYQGRnJiBEj2LJlCzVq1CAiIoJTp06luX98fDz33nsvhw8f5rPPPmPv3r1Mnz6dUqVKZei6IiKSRxgDEydC3brQsSPExFjtbm7W1GUiIv+S7jG+1atXp1u3bjz33HN8/vnnPPjgg9x+++18+umnlC5dOlMXb9CgAfXq1WPSpEkAOBwOQkND6d+/Py+++GKq/adOncq4cePYs2cPnp6embqmxviKiOQRUVHQsycsX25tt2wJH30ExYvbW5eI3DDbx/geOHCABx98EIAOHTpQoEABxo0bl+nQGx8fz+bNmwkPD/+nGHd3wsPD2bBhQ5rHLF68mIYNG9K3b1+CgoKoWrUqY8aMISkp6arXiYuLIyYmJsVDRERyua+/hurVrdDr42P1+i5dqtArIteU7uB7+fJl/Pz8AHBzc8Pb29s5rVlmnDlzhqSkJIKCglK0BwUFERUVleYxBw8e5LPPPiMpKYlly5bx0ksvMX78eEaPHn3V64wdO5aAgADnIzQ0NNM1i4iIzRISoE8faNMGTp+2wu+mTdCvnzW8QUTkGjK0gMUHH3xAoUKFAEhMTGTWrFkU/8//rp9++mnXVfcfDoeDEiVKMG3aNDw8PKhTpw5//fUX48aNY8SIEWkeM3jwYCIjI53bMTExCr8iIrlVgQLw11/W7599Fl59Fby97a1JRHKNdAffMmXKMH36dOd2yZIlmTNnTop93Nzc0h18ixcvjoeHBydPnkzRfvLkSUqWLJnmMcHBwXh6euLh4eFsq1y5MlFRUcTHx+Pl5ZXqGG9vb7z1l6KISO7lcMCVK+DnZ/XqfvCBtRjFPffYXZmI5DLpDr6HDx926YW9vLyoU6cOq1atol27doDVo7tq1Sr69euX5jGNGzdm3rx5OBwO3P9/TsZ9+/YRHBycZugVEZFc7uhR6NEDQkLg44+ttsBAhV4RyRRbZ/SOjIxk+vTpzJ49m927d9O7d28uXbpEz549AejevTuDBw927t+7d2/Onj3LgAED2LdvH0uXLmXMmDH07dvXrpcgIiJZZeFCawzv99/Dl1/CoUN2VyQiuVyGxvi6WqdOnTh9+jTDhw8nKiqKmjVrsnz5cucNb0eOHHH27AKEhoby7bffMnDgQKpXr06pUqUYMGAAL7zwgl0vQUREXO3CBejfH2bPtrbr1YO5c6FsWXvrEpFcL93z+OYVmsdXRCQH+/ln6NoVDh60lhkePBhGjLCWIRaRfCOr5vG1tcdXRETEKT7eWn3t6FEoU8Ya03vHHXZXJSJ5iK1jfEVERJy8vODDD6FLF9i+XaFXRFwuU8H3wIEDDBs2jM6dO3Pq1CkAvvnmG3bt2uXS4kREJA8zBubMgfnz/2m7915rPG+RIraVJSJ5V4aD7w8//EC1atX45Zdf+OKLL7h48SIA27dvv+oiEiIiIimcP2/17HbvDk88AUeO2F2RiOQDGQ6+L774IqNHj2blypUp5s5t1qwZP//8s0uLExGRPOiHH6xpyubPBw8PeP55a55eEZEsluHgu2PHDtq3b5+qvUSJEpw5c8YlRYmISB4UHw9DhsDdd1s3sJUvD+vWwbBh1lLEIiJZLMPBt0iRIpw4cSJV+9atWylVqpRLihIRkTwmLg6aNIGxY62xvY8+Ctu2QYMGdlcmIvlIhoPvQw89xAsvvEBUVBRubm44HA7WrVvHoEGD6N69e1bUKCIiuZ23N9x5JxQtCp99Zs3eUKiQ3VWJSD6T4QUs4uPj6du3L7NmzSIpKYkCBQqQlJREly5dmDVrFh4eHllVq0toAQsRkWxy5gxcvgyhodZ2XJzVpm8HReQ6smoBi0yv3HbkyBF27tzJxYsXqVWrFhUqVHBZUVlJwVdEJBusWAE9eljLDP/4o8bwikiG5JiV29auXUuTJk0oU6YMZcqUcVkhIiKSB1y5Yi0zPGGCtV20KERFQenStpYlIgKZGOPbrFkzypYty5AhQ/j999+zoiYREcmNdu6E+vX/Cb19+sCmTQq9IpJjZDj4Hj9+nGeffZYffviBqlWrUrNmTcaNG8exY8eyoj4REcnpjIGJE6FuXdixAwIDYckSmDwZ/Pzsrk5ExCnDwbd48eL069ePdevWceDAAR588EFmz55NWFgYzZo1y4oaRUQkJ0tIgJkzrZvXWra0wu9999ldlYhIKpm+uS1ZUlIS33zzDS+99BK//fYbSUlJrqotS+jmNhERFzEG3Nys3+/ZA999B337/tMmIpJJWXVzW4Z7fJOtW7eOPn36EBwcTJcuXahatSpLly51WWEiIpJDxcZC797w8sv/tFWqBP36KfSKSI6W4VkdBg8ezPz58zl+/Dj33nsv77zzDm3btsVP47hERPK+LVuga1erh7dAAWsFtptvtrsqEZF0yXDw/fHHH3nuuefo2LEjxYsXz4qaREQkp3E44M03Ydgwa0xvcDDMnq3QKyK5SoaD77p167KiDhERyamOHrUWo/j+e2u7fXuYPh1uusneukREMihdwXfx4sW0bNkST09PFi9efM1977//fpcUJiIiOUBcHDRqBMeOWVOTvfuuNbxBY3lFJBdK16wO7u7uREVFUaJECdzdr34/nJubm2Z1EBHJa6ZNs3p4586FihXtrkZE8oGsmtXhhqczy20UfEVEruPnn62pyho2tLaNgcRE8PS0ty4RyTdyzHRmH330EXFxcana4+Pj+eijj1xSlIiI2CAxEUaOhCZN4KGH4Px5q93NTaFXRPKEDAffnj17Eh0dnar9woUL9OzZ0yVFiYhINjt0CJo2hREjICkJGjfWOF4RyXMyHHyNMbil8ZfhsWPHCAgIcElRIiKSTYyBOXOgRg1Yvx78/eHjj2HePNDf6SKSx6R7OrNatWrh5uaGm5sb99xzDwUK/HNoUlIShw4dokWLFllSpIiIZIG4OHjkEZg/39pu3NgKvWFhdlYlIpJl0h1827VrB8C2bduIiIigUKFCzue8vLwICwvjgQcecHmBIiKSRby84MoV8PCwlh9+8UVrNTYRkTwq3X/DjRgxAoCwsDA6deqEj49PlhUlIiJZJD7e6uktXNgawzt9Ohw8CPXr212ZiEiWy/AY3x49eij0iojkRvv2WcMZevWyxvYCFC+u0Csi+Ua6enyLFSvGvn37KF68OEWLFk3z5rZkZ8+edVlxIiLiAsbABx/AM89AbCwcOGCtxBYaandlIiLZKl3B9+2336Zw4cLO318r+IqISA5y5ozVw7tokbXdrBnMng2lS9taloiIHbRym4hIXrVyJfToASdOWAtQjBkDkZFwjaXnRURyghyzctuWLVvYsWOHc/urr76iXbt2DBkyhPj4eJcVJiIiN+DKFXj0USv0Vq4Mv/wCgwYp9IpIvpbhvwGffPJJ9u3bB8DBgwfp1KkTfn5+LFy4kOeff97lBYqISCb4+FhDGvr0gU2boFYtuysSEbFdhoPvvn37qFmzJgALFy6kadOmzJs3j1mzZvH555+7uj4REUkPY2DiRGsBimTNmsHkyeDnZ19dIiI5SIZnKjfG4HA4APjuu++47777AAgNDeXMmTOurU5ERK4vKgp69oTly6FQIbjrLt28JiKShgz3+NatW5fRo0czZ84cfvjhB1q3bg3AoUOHCAoKcnmBIiJyDUuWQLVqVuj18YGxY6FUKburEhHJkTIcfCdMmMCWLVvo168fQ4cO5ZZbbgHgs88+o1GjRi4vUERE0hAba43fvf9+a8qy6tWtsbz9+lkrsomISCoum87sypUreHh44Onp6YrTZRlNZyYiud7ly1C3Lvz+u7X97LPw6qvg7W1vXSIiLpJV05lleIxvss2bN7N7924AbrvtNmrXru2yokRE5Bp8feG+++DcOWvmhnvvtbsiEZFcIcM9vqdOnaJTp0788MMPFClSBIDz589z9913M3/+fAIDA7OiTpdRj6+I5ErHjkFCApQta23Hx8OFC3DTTfbWJSKSBXLMAhb9+/fn4sWL7Nq1i7Nnz3L27Fl27txJTEwMTz/9tMsKExGR/7dwoTWGt3NnK/wCeHkp9IqIZFCGhzosX76c7777jsqVKzvbbrvtNiZPnkzz5s1dWpyISL524QIMGAAzZ1rbSUlw9ixoBh0RkUzJcI+vw+FI8wY2T09P5/y+IiJyg37+2VptbeZMa5aGoUNh/XqFXhGRG5Dh4NusWTMGDBjA8ePHnW1//fUXAwcO5J577nFpcSIi+U5iIowaBU2awIEDUKYMrFkDo0dDDp81R0Qkp8tw8J00aRIxMTGEhYVRvnx5ypcvT9myZYmJiWHixIlZUaOISP7hcMBXX1nDGjp3hu3b4c477a5KRCRPyPAY39DQULZs2cKqVauc05lVrlyZ8PBwlxcnIpIvGGM93N2tm9bmzoWNG+Hhh+2uTEQkT8lQ8F2wYAGLFy8mPj6ee+65h/79+2dVXSIi+cP589C7N5Qvbw1nALj1VushIiIule7g+95779G3b18qVKiAr68vX3zxBQcOHGDcuHFZWZ+ISN7144/QrRscOWL19PbuDaVK2V2ViEiele4xvpMmTWLEiBHs3buXbdu2MXv2bKZMmZKVtYmI5E3x8TBkCNx1lxV6y5e3QrBCr4hIlkp38D148CA9evRwbnfp0oXExEROnDiRJYWJiORJ+/ZB48Ywdqw1rvfRR2HrVmjQwO7KRETyvHQPdYiLi6NgwYLObXd3d7y8vLh8+XKWFCYikudcvgx33AGnTkHRojBtGvzvf3ZXJSKSb2To5raXXnoJPz8/53Z8fDyvvvoqAQEBzra33nrLddWJiOQlvr4wZgzMmwezZ0Pp0nZXJCKSr7gZY0x6drzrrrtwc3O79snc3Fi9erVLCssqMTExBAQEcPx4NMHB/naXIyJ53cqVVuBt0sTa/vfUZSIikqbkvBYdHY2/v+vyWrp7fNesWeOyi4qI5HlXrlg3sL39NoSGWgtRFC1qLT98nU4EERHJGhlewEJERK5j1y7o0gV++83abtMGvL3trUlERDK+ZLGIiFyFMTBxItSpY4XewEBYsgQmT4Z/3R8hIiL2UI+viIgrxMbCAw/A8uXWdsuWMHMmBAXZW5eIiDipx1dExBV8faFQIWtIw8SJsHSpQq+ISA6j4CsiklmxsRAdbf3ezQ3efx82b4Z+/XQDm4hIDpSp4PvTTz/x8MMP07BhQ/766y8A5syZw9q1a11anIhIjrV1qzWWt1cva2wvQLFiUKWKvXWJiMhVZTj4fv7550RERODr68vWrVuJi4sDIDo6mjFjxri8QBGRHMXhgHHjrCWG9+yBtWshKsruqkREJB0yHHxHjx7N1KlTmT59Op6ens72xo0bs2XLFpcWJyKSoxw7BvfeC88/DwkJ0L69NXtDcLDdlYmISDpkOPju3buXO++8M1V7QEAA58+fd0VNIiI5z2efQfXqsHq1NTXZ9Onw+edQvLjdlYmISDplOPiWLFmS/fv3p2pfu3Yt5cqVc0lRIiI5SmwsDBwI585B3brW+N7HH9cNbCIiuUyGg2+vXr0YMGAAv/zyC25ubhw/fpy5c+cyaNAgevfunRU1iojYy88PPvrIWoJ4/XqoWNHuikREJBMyvIDFiy++iMPh4J577iE2NpY777wTb29vBg0aRP/+/bOiRhGR7JWYCGPHQmgoPPKI1Xb33dZDRERyLTdjkufhyZj4+Hj279/PxYsXue222yhUqJCra8sSMTExBAQEcPx4NMHB/naXIyI5zaFD0K0brFsHBQvCH3/o5jURkWyWnNeio6Px93ddXsv0ksVeXl7cdtttLitERMRWxsDcudCnD1y4AP7+MGWKQq+ISB6S4eB7991343aNGzpWr159QwWJiGS78+etwPvJJ9Z248bw8ccQFmZnVSIi4mIZDr41a9ZMsZ2QkMC2bdvYuXMnPXr0cFVdIiLZIzYWate2hjh4eMDLL8OLL0KBTH8hJiIiOVSG/2Z/++2302x/+eWXuXjx4g0XJCKSrfz8oFMnWLjQGurQoIHdFYmISBbJ9M1t/7V//37q16/P2bNnXXG6LKOb20SEffvA3R1uucXajo+HuDgoXNjeukREBMi6m9syPI/v1WzYsAEfHx9XnU5ExPWMsVZcq1ULOne2lh0G8PJS6BURyQcyPNShQ4cOKbaNMZw4cYJNmzbx0ksvuawwERGXOnMGevWCRYusbX9/iImBm26ytSwREck+GQ6+AQEBKbbd3d259dZbGTlyJM2bN3dZYSIiLrNihbUQxYkT4OlpLU4xcKA13EFERPKNDAXfpKQkevbsSbVq1ShatGhW1SQi4hpxcTB4MCTflFu5MsybB/+ZnUZERPKHDHV3eHh40Lx5c86fP+/SIiZPnkxYWBg+Pj40aNCAX3/9NV3HzZ8/Hzc3N9q1a+fSekQkj3B3h7Vrrd/37QubNin0iojkYxn+nq9q1aocPHjQZQUsWLCAyMhIRowYwZYtW6hRowYRERGcOnXqmscdPnyYQYMGcccdd7isFhHJA4yBxETr956e1hRlS5bApEnW1GUiIpJvZTj4jh49mkGDBvH1119z4sQJYmJiUjwy6q233qJXr1707NmT2267jalTp+Ln58eMGTOuekxSUhJdu3bllVdeoVy5chm+pojkUVFR0KoVDBv2T1uFCnDfffbVJCIiOUa6g+/IkSO5dOkSrVq1Yvv27dx///2ULl2aokWLUrRoUYoUKZLhcb/x8fFs3ryZ8PDwfwpydyc8PJwNGzZcs5YSJUrw2GOPXfcacXFxNxzORSQXWLIEqlWD5cth4kQ4edLuikREJIdJ981tr7zyCk899RTff/+9yy5+5swZkpKSCAoKStEeFBTEnj170jxm7dq1fPjhh2zbti1d1xg7diyvvPLKjZYqIjlVbCw8+yxMnWptV69u3cD2n79XRERE0h18kxd4a9q0aZYVcz0XLlygW7duTJ8+neLFi6frmMGDBxMZGencjomJITQ0NKtKFJHstGULdOkCe/da288+C6++Ct7e9tYlIiI5UoamM3Nzc3PpxYsXL46Hhwcn//OV5MmTJylZsmSq/Q8cOMDhw4dp06aNs83hcABQoEAB9u7dS/ny5VMc4+3tjbf+ERTJey5ehHvvhbNnISQEZs+Gfw2bEhER+a8MBd+KFSteN/yePXs23efz8vKiTp06rFq1yjklmcPhYNWqVfTr1y/V/pUqVWLHjh0p2oYNG8aFCxd455131JMrkp8UKgTjx8PixdYyxFqBTUREriNDwfeVV15JtXLbjYqMjKRHjx7UrVuX+vXrM2HCBC5dukTPnj0B6N69O6VKlWLs2LH4+PhQtWrVFMcXKVIEIFW7iORBCxdCYCDcdZe13aOH9XDxt1EiIpI3ZSj4PvTQQ5QoUcKlBXTq1InTp08zfPhwoqKiqFmzJsuXL3fe8HbkyBHctayoSP524QI8/TTMmgWlSsFvv0GxYgq8IiKSIW4m+a616/Dw8ODEiRMuD77ZLSYmhoCAAI4fjyY42N/uckTken7+Gbp2hYMHraA7ZAiMGGEtTiEiInlScl6Ljo7G3991eS3DszqIiGSLxEQYMwZGjoSkJChTBj7+GLRao4iIZFK6g2/y7AkiIlnu4kWIiID1663tLl1g8mT4/zH9IiIimZGhMb4iItmiYEEIDQV/f5gyxRrqICIicoMUfEUkZzh/HhyOf25ae+89q61sWbsrExGRPELTJYiI/X74wVpq+PHHIfl+gqJFFXpFRMSlFHxFxD7x8dYsDXffDUePWtOUnT5td1UiIpJHKfiKiD327oVGjWDsWKuX99FHYetWyOVTJoqISM6l4Csi2csYa4nh2rVh82ZrSMNnn8GHH0LhwnZXJyIieZhubhOR7HXpEoweDbGx0KwZzJ4NpUvbXZWIiOQDCr4ikr0KFbIWovjlF4iMBC1JLiIi2UTBV0Sy1pUr1g1slStDr15W2x13aAU2ERHJdgq+IpJ1du60Vl3bscNalKJdOwgMtLsqERHJp/Qdo4i4njEwcSLUrWuF3sBAmD9foVdERGylHl8Rca2oKOjZE5Yvt7ZbtoSZMyEoyN66REQk31PwFRHXuXABatWywq+PD4wbB337WksQi4iI2ExDHUTEdQoXtpYdrl4dNm2Cfv0UekVEJMdwM8YYu4vITjExMQQEBHD8eDTBwf52lyOS+23dCn5+cOut1nZCAjgc4O1tb10iIpJrJee16Oho/P1dl9fU4ysimeNwWEMZGjSwZm6Ij7faPT0VekVEJEfSGF8Rybhjx6BHD1i92tq++Wa4fBm8vOytS0RE5BrU4ysiGbNwoTWGd/Vqa4jD9Onw+ecQEGB3ZSIiItekHl8RSZ/YWOtmtZkzre26dWHuXKhY0d66RERE0kk9viKSPl5esHu3NUvD0KGwfr1Cr4iI5Crq8RWRq0tMtG5i8/KCAgXg44/hr7/gzjvtrkxERCTD1OMrImk7dAiaNoVhw/5pK19eoVdERHItBV8RSckYmDMHatSwhjNMnw5nzthdlYiIyA1T8BWRf5w/b83J2727tfxw48bWAhXFi9tdmYiIyA1T8BURyw8/WNOUzZ8PHh4wahSsWQNhYXZXJiIi4hK6uU1EIDoa2ra1fi1f3pqmrEEDu6sSERFxKQVfEbEWn3j3XavXd8IEKFzY7opERERcTkMdRPIjY6yb1r777p+27t3hww8VekVEJM9Sj69IfnPmDPTqBYsWQXAw7NoFRYvaXZWIiEiWU/AVyU9WrIBHHoETJ8DTEyIjrWEOIiIi+YCCr0h+cOUKDB5sjd8FqFzZuoGtVi1byxIREclOCr4ieV10NNxxB+zYYW336QPjxoGfn711iYiIZDMFX5G8zt8fqlaFqCiYMQPuu8/uikRERGyh4CuSF0VFWWN4b7oJ3NxgyhSIi4OgILsrExERsY2mMxPJa5YsgWrV4LHHrGnLAIoUUegVEZF8T8FXJK+IjbXG795/vzVl2aFDcO6c3VWJiIjkGAq+InnBli1Qpw689561HRkJv/4KxYrZW5eIiEgOouArkps5HPDGG3D77bBnj7UgxYoVMH48eHvbXZ2IiEiOouArkptdvGjduJaQAO3bW1OW3Xuv3VWJiIjkSJrVQSQ3MsaarcHf31qIYvdu62Y2Nze7KxMREcmx1OMrkptcuAA9e8K0af+0NW4Mjz+u0CsiInIdCr4iucXPP0PNmjBrFgwaBGfP2l2RiIhIrqLgK5LTJSbCyJHQpAkcPAhlysDSpZqxQUREJIM0xlckJzt0CB5+GNavt7Y7d7ZuZitSxNayREREciMFX5Gc6vx5a27ec+egcGFrjt6uXe2uSkREJNdS8BXJqYoUgaefhu++gzlzoGxZuysSERHJ1TTGVyQn+fFHa2qyZMOGwZo1Cr0iIiIuoOArkhMkJMDQoXDXXdClC8TFWe0FClgPERERuWH6F1XEbvv2WWN3N22ytmvVsmZy0JLDIiIiLqUeXxG7GAPTp1tBd9MmKFoUFi6EGTOgYEG7qxMREclz1OMrYocLF6B7d1i0yNpu1gxmz4bSpW0tS0REJC9Tj6+IHXx94dQp8PSEceNg5UqFXhERkSymHl+R7JJ8w5q3t3XD2scfW3P11qpla1kiIiL5hXp8RbLDrl1Qvz4MGfJPW9myCr0iIiLZSMFXJCsZAxMnQt268NtvVi/vuXN2VyUiIpIvKfiKZJWoKGjd2lp97coVaNECtm+3Zm8QERGRbKfgK5IVvv4aqleHb76xxvROnAjLlkHJknZXJiIikm/p5jYRVzt3Dh5+GKKjrfA7bx5UqWJ3VSIiIvmegq+IqxUtClOmwObNMGaMVmATERHJITTUQeRGORzWXLzffvtPW5cuMH68Qq+IiEgOoh5fkRtx7Bj06AGrV1vjd3fvhiJF7K5KRERE0qAeX5HMWrjQGsO7ejUULAivvgoBAXZXJSIiIlehHl+RjLpwwZqibNYsa7tePZg7FypUsLUsERERuTYFX5GMOHvWCroHD4Kbm7US24gR4Olpd2UiIiJyHQq+IhlRrBg0agSJiTBnDtx5p90ViYiISDop+Ipcz6FD1hjeEiWs7cmTrZkcdBObiIhIrqKb20SuxhirV7dGDXjsMWsbwN9foVdERCQXUvAVScv589ZcvN27WzeznT8PMTF2VyUiIiI3QMFX5L9+/NHq5Z0/Hzw8YPRoWLNGU5WJiIjkchrjK5IsIQFefhnGjrWGNZQvb01T1qCB3ZWJiIiIC6jHVyTZ5cvwySdW6H3sMdi2TaFXREQkD1GPr+RvyTesublZN63Nmwd//QUPPGBvXSIiIuJy6vGV/OvMGWjfHt5775+2229X6BUREcmjFHwlf1qxAqpVg6++slZfi462uyIRERHJYgq+kr9cuQIDB0JEBERFQeXKmrFBREQkn8gRwXfy5MmEhYXh4+NDgwYN+PXXX6+67/Tp07njjjsoWrQoRYsWJTw8/Jr7izjt3An168OECdZ2nz6waRPUrGlnVSIiIpJNbA++CxYsIDIykhEjRrBlyxZq1KhBREQEp06dSnP/NWvW0LlzZ77//ns2bNhAaGgozZs356+//srmyiVX+ftvaNgQduyAwEBYssRaetjPz+7KREREJJu4GZN8W7s9GjRoQL169Zg0aRIADoeD0NBQ+vfvz4svvnjd45OSkihatCiTJk2ie/fu190/JiaGgIAAjh+PJjjY/4brl1xk1CjYsAFmzoSgILurERERkatIzmvR0dH4+7sur9k6nVl8fDybN29m8ODBzjZ3d3fCw8PZsGFDus4RGxtLQkICxYoVS/P5uLg44uLinNsxWnY2/1iyBMqWhapVre0hQ8Dd3Zq6TERERPIdW4c6nDlzhqSkJIL+0/sWFBREVFRUus7xwgsvEBISQnh4eJrPjx07loCAAOcjNDT0huuWHC42Fnr3hvvvh65drRvawFp+WKFXREQk37J9jO+NeO2115g/fz5ffvklPj4+ae4zePBgoqOjnY+jR49mc5WSrbZsgdq1YepUazs8XGFXREREAJuHOhQvXhwPDw9OnjyZov3kyZOULFnymse++eabvPbaa3z33XdUr179qvt5e3vj7e3tknolB3M44M03YdgwSEiA4GD46CMr+IqIiIhgc4+vl5cXderUYdWqVc42h8PBqlWraNiw4VWPe+ONNxg1ahTLly+nbt262VGq5GTnzlkB94UXrNDbvr01e4NCr4iIiPyLrT2+AJGRkfTo0YO6detSv359JkyYwKVLl+jZsycA3bt3p1SpUowdOxaA119/neHDhzNv3jzCwsKcY4ELFSpEoUKFbHsdYiN/fyvw+vnBu+/Co49qeIOIiIikYnvw7dSpE6dPn2b48OFERUVRs2ZNli9f7rzh7ciRI7i7/9Mx/d577xEfH8///ve/FOcZMWIEL7/8cnaWLna6cAE8PcHHx7ppbe5ciIuDChXsrkxERERyKNvn8c1umsc3D/j5Z2u2hjZt/lmFTURERPKMrJrHN1fP6iD5TGIijBwJTZrAwYOwaBFoXmYRERFJJwVfyR0OHYKmTWHECEhKgi5dYNs2a3yviIiISDoo+ErOZgzMmQM1asD69VbQ/fhja0xvkSJ2VyciIiK5iO03t4lc099/Q//+1s1sjRtboTcszO6qREREJBdS8JWcrXhxeP99+OMPePFFKKAfWREREckcpQjJWeLj4eWXrRvYWrWy2jp1srUkERERyRsUfCXn2LvXmqZs82YoUQL274fChe2uSkRERPII3dwm9jMGpk+H2rWt0Fu0KEyZotArIiIiLqUeX7HXmTPQq5c1Jy9A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mxIlSpjRo0fb9RIkAzL6eY8YMcIULlzYfPLJJ+bgwYNmxYoVpnz58qZjx452vQTJgAsXLpitW7earVu3GsC89dZbZuvWrebPP/80xhjz4osvmm7dujn3T57O7LnnnjO7d+82kydP1nRmySZOnGjKlCljvLy8TP369c3PP//sfK5p06amR48eKfb/9NNPTcWKFY2Xl5epUqWKWbp0aTZXLDciI5/3zTffbIBUjxEjRmR/4ZIpGf3z/W8KvrlPRj/v9evXmwYNGhhvb29Trlw58+qrr5rExMRsrloyKyOfd0JCgnn55ZdN+fLljY+PjwkNDTV9+vQx586dy/7CJcO+//77NP89Tv6Me/ToYZo2bZrqmJo1axovLy9Trlw5M3PmzAxf180YfR8gIiIiInlfnhrjKyIiIiJyNQq+IiIiIpIvKPiKiIiISL6g4CsiIiIi+YKCr4iIiIjkCwq+IiIiIpIvKPiKiIiISL6g4CsiIiIi+YKCr4gIMGvWLIoUKWJ3GZnm5ubGokWLrrnPI488Qrt27bKlHhGRnEjBV0TyjEceeQQ3N7dUj/3799tdGrNmzXLW4+7uTunSpenZsyenTp1yyflPnDhBy5YtATh8+DBubm5s27YtxT7vvPMOs2bNcsn1rubll192vk4PDw9CQ0N54oknOHv2bIbOo5AuIlmhgN0FiIi4UosWLZg5c2aKtsDAQJuqScnf35+9e/ficDjYvn07PXv25Pjx43z77bc3fO6SJUted5+AgIAbvk56VKlShe+++46kpCR2797No48+SnR0NAsWLMiW64uIXI16fEUkT/H29qZkyZIpHh4eHrz11ltUq1aNggULEhoaSp8+fbh48eJVz7N9+3buvvtuChcujL+/P3Xq1GHTpk3O59euXcsdd9yBr68voaGhPP3001y6dOmatbm5uVGyZElCQkJo2bIlTz/9NN999x2XL1/G4XAwcuRISpcujbe3NzVr1mT58uXOY+Pj4+nXrx/BwcH4+Phw8803M3bs2BTnTh7qULZsWQBq1aqFm5sbd911F5CyF3XatGmEhITgcDhS1Ni2bVseffRR5/ZXX31F7dq18fHxoVy5crzyyiskJiZe83UWKFCAkiVLUqpUKcLDw3nwwQdZuXKl8/mkpCQee+wxypYti6+vL7feeivvvPOO8/mXX36Z2bNn89VXXzl7j9esWQPA0aNH6dixI0WKFKFYsWK0bduWw4cPX7MeEZFkCr4iki+4u7vz7rvvsmvXLmbPns3q1at5/vnnr7p/165dKV26NBs3bmTz5s28+OKLeHp6AnDgwAFatGjBAw88wG+//caCBQtYu3Yt/fr1y1BNvr6+OBwOEhMTeeeddxg/fjxvvvkmv/32GxEREdx///388ccfALz77rssXryYTz/9lL179zJ37lzCwsLSPO+vv/4KwHfffceJEyf44osvUu3z4IMP8vfff/P99987286ePcvy5cvp2rUrAD/99BPdu3dnwIAB/P7777z//vvMmjWLV199Nd2v8fDhw3z77bd4eXk52xwOB6VLl2bhwoX8/vvvDB8+nCFDhvDpp58CMGjQIDp27EiLFi04ceIEJ06coFGjRiQkJBAREUHhwoX56aefWLduHYUKFaJFixbEx8enuyYRyceMiEge0aNHD+Ph4WEKFizofPzvf/9Lc9+FCxeam266ybk9c+ZMExAQ4NwuXLiwmTVrVprHPvbYY+aJJ55I0fbTTz8Zd3d3c/ny5TSP+e/59+3bZypWrGjq1q1rjDEmJCTEvPrqqymOqVevnunTp48xxpj+/fubZs2aGYfDkeb5AfPll18aY4w5dOiQAczWrVtT7NOjRw/Ttm1b53bbtm3No48+6tx+//33TUhIiElKSjLGGHPPPfeYMWPGpDjHnDlzTHBwcJo1GGPMiBEjjLu7uylYsKDx8fExgAHMW2+9ddVjjDGmb9++5oEHHrhqrcnXvvXWW1O8B3FxccbX19d8++231zy/iIgxxmiMr4jkKXfffTfvvfeec7tgwYKA1fs5duxY9uzZQ0xMDImJiVy5coXY2Fj8/PxSnScyMpLHH3+cOXPmOL+uL1++PGANg/jtt9+YO3euc39jDA6Hg0OHDlG5cuU0a4uOjqZQoUI4HA6uXLlCkyZN+OCDD4iJieH48eM0btw4xf6NGzdm+/btgDVM4d577+XWW2+lRYsW3HfffTRv3vyG3quuXbvSq1cvpkyZgre3N3PnzuWhhx7C3d3d+TrXrVuXooc3KSnpmu8bwK233srixYu5cuUKH3/8Mdu2baN///4p9pk8eTIzZszgyJEjXL58mfj4eGrWrHnNerdv387+/fspXLhwivYrV65w4MCBTLwDIpLfKPiKSJ5SsGBBbrnllhRthw8f5r777qN37968+uqrFCtWjLVr1/LYY48RHx+fZoB7+eWX6dKlC0uXLuWbb75hxIgRzJ8/n/bt23Px4kWefPJJnn766VTHlSlT5qq1FS5cmC1btuDu7k5wcDC+vr4AxMTEXPd11a5dm0OHDvHNN9/w3Xff0bFjR8LDw/nss8+ue+zVtGnTBmMMS5cupV69evz000+8/fbbzucvXrzIK6+8QocOHVId6+Pjc9Xzenl5OT+D1157jdatW/PKK68watQoAObPn8+gQYMYP348DRs2pHDhwowbN45ffvnlmvVevHiROnXqpPgPR7KccgOjiORsCr4ikudt3rwZh8PB+PHjnb2ZyeNJr6VixYpUrFiRgQMH0rlzZ2bOnEn79u2pXbs2v//+e6qAfT3u7u5pHuPv709ISAjr1q2jadOmzvZ169ZRv379FPt16tSJTp068b///Y8WLVpw9uxZihUrluJ8yeNpk5KSrlmPj48PHTp0YO7cuezfv59bb72V2rVrO5+vXbs2e/fuzfDr/K9hw4bRrFkzevfu7XydjRo1ok+fPs59/ttj6+Xllar+2rVrs2DBAkqUKIG/v/8N1SQi+ZNubhORPO+WW24hISGBiRMncvDgQebMmcPUqVOvuv/ly5fp168fa9as4c8//2TdunVs3LjROYThhRdeYP369fTr149t27bxxx9/8NVXX2X45rZ/e+6553j99ddZsGABe/fu5cUXX2Tbtm0MGDAAgLfeeotPPvmEPXv2sG/fPhYuXEjJkiXTXHSjRIkS+Pr6snz5ck6ePEl0dPRVr9u1a1eWLl3KjBkznDe1JRs+fDgfffQRr7zyCrt27WL37t3Mnz+fYcOGZei1NWzYkOrVqzNmzBgAKlSowKZNm/j222/Zt28fL730Ehs3bkxxTFhYGL/99ht79+7lzJkzJCQk0LVrV4oXL07btm356aefOHToEGvWrOHpp5/m2LFjGapJRPInBV8RyfNq1KjBW2+9xeuvv07VqlWZO3duiqnA/svDw4O///6b7t27U7FiRTp27EjLli155ZVXAKhevTo//PAD+/bt44477qBWrVoMHz6ckJCQTNf49NNPExkZybPPPku1atVYvnw5ixcvpkKFCoA1TOKNN96gbt261KtXj8OHD7Ns2TJnD/a/FShQgHfffZf333+fkJAQ2rZte9XrNmvWjGLFirF37166dOmS4rmIiAi+/vprVqxYQb169bj99tt5++23ufnmmzP8+gYOHMgHH3zA0aNHefLJJ+nQoQOdOnWiQYMG/P333yl6fwF69erFrbfeSt26dQkMDGTdunX4+fnx448/UqZMGTp06EDlypV57LHHuHLlinqARSRd3Iwxxu4iRERERESymnp8RURERCRfUPAVERERkXxBwVdERERE8gUFXxERERHJFxR8RURERCRfUPAVERERkXxBwVdERERE8gUFXxERERHJFxR8RURERCRfUPAVERERkXxBwVdERERE8oX/A8lTrErJuNg/AAAAAElFTkSuQmCC", + "text/plain": [ + "<Figure size 800x600 with 1 Axes>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Predict probabilities for the training data\n", + "y_train_proba = model_xgb.predict_proba(X_train)[:, 1]\n", + "\n", + "# Calculate the false positive rate (FPR), true positive rate (TPR), and thresholds\n", + "fpr_train, tpr_train, thresholds_train = roc_curve(y_train, y_train_proba)\n", + "\n", + "# Calculate the area under the ROC curve (AUC) for training data\n", + "roc_auc_train = auc(fpr_train, tpr_train)\n", + "\n", + "# Plot the ROC curve for training data\n", + "plt.figure(figsize=(8, 6))\n", + "plt.plot(fpr_train, tpr_train, color='blue', label='ROC curve (area = %0.2f)' % roc_auc_train)\n", + "plt.plot([0, 1], [0, 1], color='red', linestyle='--')\n", + "plt.xlim([0.0, 1.0])\n", + "plt.ylim([0.0, 1.05])\n", + "plt.xlabel('False Positive Rate')\n", + "plt.ylabel('True Positive Rate')\n", + "plt.title('XGBoost - ROC Curve for Training Data')\n", + "plt.legend(loc='lower right')\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "id": "3f4b97d8", + "metadata": {}, + "source": [ + "# feature importance" + ] + }, + { + "cell_type": "code", + "execution_count": 51, + "id": "c1095af0", + "metadata": {}, + "outputs": [], + "source": [ + "# for important features:\n", + "important_feat = model_xgb.feature_importances_\n", + "#get indices of those important features\n", + "idx = important_feat.argsort(kind= \"quicksort\")\n", + "idx= idx[::-1][:50]" + ] + }, + { + "cell_type": "code", + "execution_count": 52, + "id": "ae7e0162", + "metadata": {}, + "outputs": [], + "source": [ + "df1 = X_selected.T" + ] + }, + { + "cell_type": "code", + "execution_count": 53, + "id": "1d97f818", + "metadata": {}, + "outputs": [], + "source": [ + "top_met = df1.iloc[idx]" + ] + }, + { + "cell_type": "code", + "execution_count": 54, + "id": "4cd4227b", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Index(['CRISP3', 'AURKA', 'EMP1', 'CRNN', 'GPX3', 'NUSAP1', 'HSPB8', 'LAMB3',\n", + " 'RPN1', 'EFNA1', 'ECT2', 'ALOX12', 'GALNT1', 'ID4', 'IGFBP3', 'SLK',\n", + " 'RAB11FIP1', 'SIM2', 'CLIC3', 'MCM2', 'GALE', 'DHRS1', 'IGF2BP2',\n", + " 'TJP1', 'KANK1', 'COL7A1', 'AGRN', 'TGIF1', 'AIM2', 'COL1A1', 'CFD',\n", + " 'COL5A2', 'LAMC2', 'ZBTB16', 'RHCG', 'CRABP2', 'CH25H', 'DUOX1', 'PTN',\n", + " 'HSPD1', 'ITPKC', 'HSPBAP1', 'LCN2', 'UCHL1', 'PHLDA1', 'PITX1',\n", + " 'CCNG2', 'MAL', 'PPP1R3C', 'AQP3'],\n", + " dtype='object')" + ] + }, + "execution_count": 54, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "top_met.index" + ] + }, + { + "cell_type": "code", + "execution_count": 55, + "id": "8f6d88bb", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Index(['ACLY', 'ACTG2', 'AGRN', 'AIM2', 'ALDH9A1', 'ALOX12', 'ANO1', 'AQP3',\n", + " 'ATP6V1D', 'AURKA', 'CCNG2', 'CES2', 'CFD', 'CH25H', 'CLIC3', 'COL1A1',\n", + " 'COL5A2', 'COL7A1', 'CRABP2', 'CRCT1', 'CRISP3', 'CRNN', 'CYP4B1',\n", + " 'DHRS1', 'DHRS2', 'DUOX1', 'DUSP5', 'ECM1', 'ECT2', 'EFNA1', 'EMP1',\n", + " 'ENTPD6', 'ERCC3', 'FLG', 'FSCN1', 'GALE', 'GALNT1', 'GPX3', 'HOPX',\n", + " 'HSPB8', 'HSPBAP1', 'HSPD1', 'ID4', 'IFI35', 'IGF2BP2', 'IGFBP3',\n", + " 'IL1RN', 'INPP1', 'ITPKC', 'KANK1', 'KLK13', 'KRT4', 'LAMB3', 'LAMC2',\n", + " 'LCN2', 'LYPD3', 'MAL', 'MCM2', 'MUC1', 'MYH10', 'NDRG2', 'NT5C2',\n", + " 'NUSAP1', 'PCSK5', 'PHLDA1', 'PITX1', 'PPP1R3C', 'PTN', 'RAB11FIP1',\n", + " 'RANBP9', 'RHCG', 'RND3', 'RPN1', 'RUVBL1', 'SCNN1A', 'SERPINB13',\n", + " 'SERPINB2', 'SIM2', 'SLC2A1', 'SLK', 'SPRR3', 'SSRP1', 'STK24',\n", + " 'SYNPO2L', 'TAPBP', 'TFAP2B', 'TGIF1', 'TIAM1', 'TJP1', 'TMF1',\n", + " 'TMPRSS11D', 'TMPRSS11E', 'TSPAN6', 'TST', 'TYMP', 'UCHL1', 'ZBTB16',\n", + " 'ZNF185'],\n", + " dtype='object')" + ] + }, + "execution_count": 55, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "X_selected.columns" + ] + }, + { + "cell_type": "code", + "execution_count": 56, + "id": "5d9ff727", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Accuracy : 0.725\n", + "Sensitivity : 0.38461538461538464\n", + "Specificity : 0.8888888888888888\n" + ] + } + ], + "source": [ + "total1=sum(sum(confusion_matrix_test))\n", + "#####from confusion matrix calculate accuracy\n", + "accuracy1=(confusion_matrix_test[0,0]+confusion_matrix_test[1,1])/total1\n", + "print ('Accuracy : ', accuracy1)\n", + "\n", + "sensitivity1 = confusion_matrix_test[0,0]/(confusion_matrix_test[0,0]+confusion_matrix_test[0,1])\n", + "print('Sensitivity : ', sensitivity1 )\n", + "\n", + "specificity1 = confusion_matrix_test[1,1]/(confusion_matrix_test[1,0]+confusion_matrix_test[1,1])\n", + "print('Specificity : ', specificity1)" + ] + }, + { + "cell_type": "code", + "execution_count": 57, + "id": "14be0163", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " precision recall f1-score support\n", + "\n", + " 0 0.62 0.38 0.48 13\n", + " 1 0.75 0.89 0.81 27\n", + "\n", + " accuracy 0.73 40\n", + " macro avg 0.69 0.64 0.64 40\n", + "weighted avg 0.71 0.72 0.70 40\n", + "\n" + ] + } + ], + "source": [ + "from sklearn.metrics import classification_report, confusion_matrix\n", + "grid_predictions = grid.predict(X_test)\n", + "print(classification_report(y_test, grid_predictions))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "5ec38b70", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "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.9.16" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/03_Machine_Learning/mRNA_limma_dataset_svm_final.ipynb b/03_Machine_Learning/mRNA_limma_dataset_svm_final.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..814d573285d7a0a187710637c17dda53ffa9abb7 --- /dev/null +++ b/03_Machine_Learning/mRNA_limma_dataset_svm_final.ipynb @@ -0,0 +1,1306 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "id": "f097ad55", + "metadata": {}, + "outputs": [], + "source": [ + "import warnings\n", + "warnings.filterwarnings('ignore')\n", + "import pandas as pd\n", + "from sklearn.model_selection import train_test_split\n", + "#from sklearn.model_selection import cross_val_score\n", + "#from sklearn.metrics import accuracy_score\n", + "#import sklearn.metrics as metrics\n", + "#from sklearn.metrics import auc\n", + "from sklearn.metrics import RocCurveDisplay\n", + "#from sklearn.model_selection import KFold\n", + "import matplotlib.pyplot as plt\n", + "import numpy as np\n", + "from imblearn.over_sampling import SMOTE\n", + "from sklearn.linear_model import Lasso\n", + "import xgboost as xgb\n", + "from sklearn.model_selection import GridSearchCV\n", + "import pandas as pd\n", + "import numpy as np\n", + "\n", + "np.random.seed(7)" + ] + }, + { + "cell_type": "markdown", + "id": "73b6611a", + "metadata": {}, + "source": [ + "# Data Preprocessing" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "0eeb7a35", + "metadata": {}, + "outputs": [], + "source": [ + "df_train = pd.read_csv(\"DS/mRNA_DS_preprocessed_training_data.csv\")" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "a6ab23aa", + "metadata": {}, + "outputs": [], + "source": [ + "df_test = pd.read_csv(\"DS/mRNA_DS_test_data.csv\")" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "683b63ce", + "metadata": {}, + "outputs": [], + "source": [ + "df_train = df_train.T\n", + "df_test = df_test.T" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "a701e30d", + "metadata": {}, + "outputs": [], + "source": [ + "#df_test = df_test[:-1]" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "77d974be", + "metadata": {}, + "outputs": [], + "source": [ + "#Transform the input data\n", + "df_train.rename(columns=df_train.iloc[0], inplace = True)\n", + "df_train.drop(df_train.index[0], inplace = True)\n", + "df_train=df_train.reset_index()" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "2e78017d", + "metadata": {}, + "outputs": [], + "source": [ + "#Transform the input data\n", + "df_test.rename(columns=df_test.iloc[-1], inplace = True)\n", + "df_test.drop(df_test.index[-1], inplace = True)\n", + "df_test=df_test.reset_index()" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "ea60801d", + "metadata": {}, + "outputs": [], + "source": [ + "metadata_test = pd.read_csv(\"DS/mRNA_DS_metadata_col_test_info.csv\")" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "58d531b9", + "metadata": {}, + "outputs": [], + "source": [ + "df_test= df_test.merge(metadata_test, left_on=\"index\", right_on= \"Unnamed: 0\")" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "7910f2fa", + "metadata": {}, + "outputs": [], + "source": [ + "df_test['title0'] = df_test['title0'].replace('(?i)mucosa|normal|healthy', 0, regex=True)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "c102e10e", + "metadata": {}, + "outputs": [], + "source": [ + "df_test['title0'] = df_test['title0'].replace('(?i)Tumor|Cancer|carcinoma', 1, regex=True)" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "6c255d2e", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "title0\n", + "0 30\n", + "1 30\n", + "Name: count, dtype: int64" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_test['title0'].value_counts()" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "636b44ab", + "metadata": {}, + "outputs": [], + "source": [ + "df_test = df_test[pd.to_numeric(df_test['title0'], errors='coerce').notnull()]#remove all non-numeric data from the column." + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "34896f9a", + "metadata": {}, + "outputs": [], + "source": [ + "df_test= df_test.drop(['index', 'Unnamed: 0'], axis=1)" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "id": "359b5bab", + "metadata": {}, + "outputs": [], + "source": [ + "df_test= df_test.rename(columns={\"title0\": \"index\"})" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "id": "dc14bb1c", + "metadata": {}, + "outputs": [], + "source": [ + "X_test=df_test.drop(\"index\",axis=1)\n", + "y_test=df_test['index']" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "id": "4c50c510", + "metadata": {}, + "outputs": [], + "source": [ + "metadata_train = pd.read_csv(\"DS/mRNA_DS_metadata_col_info.csv\")" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "id": "6730cf89", + "metadata": {}, + "outputs": [], + "source": [ + "df_train= df_train.merge(metadata_train, left_on=\"index\", right_on= \"Unnamed: 0\")" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "id": "7a8ad8ad", + "metadata": {}, + "outputs": [], + "source": [ + "df_train['title0'] = df_train['title0'].replace('(?i)mucosa|normal|healthy', 0, regex=True)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "id": "a8cf8643", + "metadata": {}, + "outputs": [], + "source": [ + "df_train['title0'] = df_train['title0'].replace('(?i)Tumor|Cancer|carcinoma', 1, regex=True)" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "id": "f5d203aa", + "metadata": {}, + "outputs": [], + "source": [ + "df_train = df_train[pd.to_numeric(df_train['title0'], errors='coerce').notnull()]#remove all non-numeric data from the column." + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "id": "523bdaa6", + "metadata": {}, + "outputs": [], + "source": [ + "df_train= df_train.drop(['index', 'Unnamed: 0'], axis=1)" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "id": "46a6fb36", + "metadata": {}, + "outputs": [], + "source": [ + "df_train= df_train.rename(columns={\"title0\": \"index\"})" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "id": "e26f88c5", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "index\n", + "0 111\n", + "1 108\n", + "Name: count, dtype: int64" + ] + }, + "execution_count": 26, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_train['index'].value_counts()" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "id": "fbaf2507", + "metadata": {}, + "outputs": [], + "source": [ + "df_train= df_train.apply(pd.to_numeric)" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "id": "776cfbee", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "index\n", + "0 111\n", + "1 108\n", + "Name: count, dtype: int64" + ] + }, + "execution_count": 29, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_train['index'].value_counts()" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "id": "8c0011ea", + "metadata": {}, + "outputs": [], + "source": [ + "X=df_train.drop(\"index\",axis=1)\n", + "y=df_train['index']" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "id": "fc606979", + "metadata": {}, + "outputs": [], + "source": [ + "X=X.astype('int')" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "id": "93e28118", + "metadata": {}, + "outputs": [], + "source": [ + "y=y.astype('int')" + ] + }, + { + "cell_type": "markdown", + "id": "e9830b6c", + "metadata": {}, + "source": [ + "# Feature Selection" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "id": "f0f1977f", + "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>ABAT</th>\n", + " <th>ABHD5</th>\n", + " <th>ABLIM1</th>\n", + " <th>ABLIM3</th>\n", + " <th>ACAA1</th>\n", + " <th>ACADM</th>\n", + " <th>ACADVL</th>\n", + " <th>ACD</th>\n", + " <th>ACLY</th>\n", + " <th>ACOT11</th>\n", + " <th>...</th>\n", + " <th>XYLT1</th>\n", + " <th>YOD1</th>\n", + " <th>YTHDC1</th>\n", + " <th>ZBTB16</th>\n", + " <th>ZDHHC13</th>\n", + " <th>ZFP64</th>\n", + " <th>ZNF185</th>\n", + " <th>ZNF365</th>\n", + " <th>ZNF426</th>\n", + " <th>ZNF710</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>186</td>\n", + " <td>2603</td>\n", + " <td>42653</td>\n", + " <td>220</td>\n", + " <td>2132</td>\n", + " <td>22869</td>\n", + " <td>19775</td>\n", + " <td>4486</td>\n", + " <td>8835</td>\n", + " <td>2332</td>\n", + " <td>...</td>\n", + " <td>392</td>\n", + " <td>222</td>\n", + " <td>295</td>\n", + " <td>4598</td>\n", + " <td>7009</td>\n", + " <td>568</td>\n", + " <td>65123</td>\n", + " <td>56</td>\n", + " <td>308</td>\n", + " <td>10385</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>93</td>\n", + " <td>1137</td>\n", + " <td>16493</td>\n", + " <td>69</td>\n", + " <td>1816</td>\n", + " <td>17788</td>\n", + " <td>16870</td>\n", + " <td>7993</td>\n", + " <td>21434</td>\n", + " <td>2211</td>\n", + " <td>...</td>\n", + " <td>62</td>\n", + " <td>78</td>\n", + " <td>144</td>\n", + " <td>2132</td>\n", + " <td>2602</td>\n", + " <td>1720</td>\n", + " <td>13531</td>\n", + " <td>47</td>\n", + " <td>140</td>\n", + " <td>6441</td>\n", + " </tr>\n", + " <tr>\n", + " <th>2</th>\n", + " <td>198</td>\n", + " <td>5593</td>\n", + " <td>53918</td>\n", + " <td>263</td>\n", + " <td>3490</td>\n", + " <td>39276</td>\n", + " <td>25847</td>\n", + " <td>4413</td>\n", + " <td>9212</td>\n", + " <td>7419</td>\n", + " <td>...</td>\n", + " <td>481</td>\n", + " <td>355</td>\n", + " <td>308</td>\n", + " <td>1071</td>\n", + " <td>10289</td>\n", + " <td>379</td>\n", + " <td>65131</td>\n", + " <td>206</td>\n", + " <td>1251</td>\n", + " <td>11768</td>\n", + " </tr>\n", + " <tr>\n", + " <th>3</th>\n", + " <td>104</td>\n", + " <td>1636</td>\n", + " <td>19203</td>\n", + " <td>127</td>\n", + " <td>1518</td>\n", + " <td>17951</td>\n", + " <td>16854</td>\n", + " <td>12800</td>\n", + " <td>11939</td>\n", + " <td>5136</td>\n", + " <td>...</td>\n", + " <td>213</td>\n", + " <td>122</td>\n", + " <td>244</td>\n", + " <td>482</td>\n", + " <td>3578</td>\n", + " <td>1990</td>\n", + " <td>37715</td>\n", + " <td>66</td>\n", + " <td>361</td>\n", + " <td>8517</td>\n", + " </tr>\n", + " <tr>\n", + " <th>4</th>\n", + " <td>205</td>\n", + " <td>4720</td>\n", + " <td>56984</td>\n", + " <td>495</td>\n", + " <td>3309</td>\n", + " <td>24427</td>\n", + " <td>28197</td>\n", + " <td>5718</td>\n", + " <td>8192</td>\n", + " <td>6748</td>\n", + " <td>...</td>\n", + " <td>169</td>\n", + " <td>275</td>\n", + " <td>200</td>\n", + " <td>3632</td>\n", + " <td>7275</td>\n", + " <td>509</td>\n", + " <td>65138</td>\n", + " <td>188</td>\n", + " <td>587</td>\n", + " <td>9390</td>\n", + " </tr>\n", + " <tr>\n", + " <th>...</th>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " </tr>\n", + " <tr>\n", + " <th>214</th>\n", + " <td>4</td>\n", + " <td>5</td>\n", + " <td>9</td>\n", + " <td>6</td>\n", + " <td>7</td>\n", + " <td>7</td>\n", + " <td>10</td>\n", + " <td>8</td>\n", + " <td>7</td>\n", + " <td>7</td>\n", + " <td>...</td>\n", + " <td>7</td>\n", + " <td>4</td>\n", + " <td>9</td>\n", + " <td>6</td>\n", + " <td>7</td>\n", + " <td>7</td>\n", + " <td>7</td>\n", + " <td>6</td>\n", + " <td>5</td>\n", + " <td>8</td>\n", + " </tr>\n", + " <tr>\n", + " <th>215</th>\n", + " <td>5</td>\n", + " <td>5</td>\n", + " <td>8</td>\n", + " <td>8</td>\n", + " <td>8</td>\n", + " <td>8</td>\n", + " <td>9</td>\n", + " <td>8</td>\n", + " <td>6</td>\n", + " <td>7</td>\n", + " <td>...</td>\n", + " <td>7</td>\n", + " <td>4</td>\n", + " <td>9</td>\n", + " <td>6</td>\n", + " <td>6</td>\n", + " <td>7</td>\n", + " <td>9</td>\n", + " <td>6</td>\n", + " <td>5</td>\n", + " <td>8</td>\n", + " </tr>\n", + " <tr>\n", + " <th>216</th>\n", + " <td>4</td>\n", + " <td>5</td>\n", + " <td>9</td>\n", + " <td>6</td>\n", + " <td>7</td>\n", + " <td>8</td>\n", + " <td>9</td>\n", + " <td>8</td>\n", + " <td>7</td>\n", + " <td>7</td>\n", + " <td>...</td>\n", + " <td>7</td>\n", + " <td>5</td>\n", + " <td>9</td>\n", + " <td>6</td>\n", + " <td>6</td>\n", + " <td>7</td>\n", + " <td>8</td>\n", + " <td>6</td>\n", + " <td>5</td>\n", + " <td>8</td>\n", + " </tr>\n", + " <tr>\n", + " <th>217</th>\n", + " <td>5</td>\n", + " <td>4</td>\n", + " <td>9</td>\n", + " <td>7</td>\n", + " <td>8</td>\n", + " <td>8</td>\n", + " <td>9</td>\n", + " <td>8</td>\n", + " <td>6</td>\n", + " <td>7</td>\n", + " <td>...</td>\n", + " <td>7</td>\n", + " <td>4</td>\n", + " <td>10</td>\n", + " <td>6</td>\n", + " <td>8</td>\n", + " <td>7</td>\n", + " <td>8</td>\n", + " <td>6</td>\n", + " <td>5</td>\n", + " <td>8</td>\n", + " </tr>\n", + " <tr>\n", + " <th>218</th>\n", + " <td>4</td>\n", + " <td>4</td>\n", + " <td>7</td>\n", + " <td>6</td>\n", + " <td>8</td>\n", + " <td>8</td>\n", + " <td>10</td>\n", + " <td>8</td>\n", + " <td>7</td>\n", + " <td>7</td>\n", + " <td>...</td>\n", + " <td>6</td>\n", + " <td>5</td>\n", + " <td>10</td>\n", + " <td>6</td>\n", + " <td>6</td>\n", + " <td>7</td>\n", + " <td>6</td>\n", + " <td>5</td>\n", + " <td>5</td>\n", + " <td>8</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "<p>219 rows × 578 columns</p>\n", + "</div>" + ], + "text/plain": [ + " ABAT ABHD5 ABLIM1 ABLIM3 ACAA1 ACADM ACADVL ACD ACLY ACOT11 \\\n", + "0 186 2603 42653 220 2132 22869 19775 4486 8835 2332 \n", + "1 93 1137 16493 69 1816 17788 16870 7993 21434 2211 \n", + "2 198 5593 53918 263 3490 39276 25847 4413 9212 7419 \n", + "3 104 1636 19203 127 1518 17951 16854 12800 11939 5136 \n", + "4 205 4720 56984 495 3309 24427 28197 5718 8192 6748 \n", + ".. ... ... ... ... ... ... ... ... ... ... \n", + "214 4 5 9 6 7 7 10 8 7 7 \n", + "215 5 5 8 8 8 8 9 8 6 7 \n", + "216 4 5 9 6 7 8 9 8 7 7 \n", + "217 5 4 9 7 8 8 9 8 6 7 \n", + "218 4 4 7 6 8 8 10 8 7 7 \n", + "\n", + " ... XYLT1 YOD1 YTHDC1 ZBTB16 ZDHHC13 ZFP64 ZNF185 ZNF365 ZNF426 \\\n", + "0 ... 392 222 295 4598 7009 568 65123 56 308 \n", + "1 ... 62 78 144 2132 2602 1720 13531 47 140 \n", + "2 ... 481 355 308 1071 10289 379 65131 206 1251 \n", + "3 ... 213 122 244 482 3578 1990 37715 66 361 \n", + "4 ... 169 275 200 3632 7275 509 65138 188 587 \n", + ".. ... ... ... ... ... ... ... ... ... ... \n", + "214 ... 7 4 9 6 7 7 7 6 5 \n", + "215 ... 7 4 9 6 6 7 9 6 5 \n", + "216 ... 7 5 9 6 6 7 8 6 5 \n", + "217 ... 7 4 10 6 8 7 8 6 5 \n", + "218 ... 6 5 10 6 6 7 6 5 5 \n", + "\n", + " ZNF710 \n", + "0 10385 \n", + "1 6441 \n", + "2 11768 \n", + "3 8517 \n", + "4 9390 \n", + ".. ... \n", + "214 8 \n", + "215 8 \n", + "216 8 \n", + "217 8 \n", + "218 8 \n", + "\n", + "[219 rows x 578 columns]" + ] + }, + "execution_count": 33, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "X" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "id": "1cc528fb", + "metadata": {}, + "outputs": [], + "source": [ + "# LASSO model:\n", + "lasso = Lasso(alpha=1)\n", + "# fitting the model:\n", + "lasso.fit(X, y)\n", + "# select all coefficients and the feature names\n", + "lasso_coefs = lasso.coef_\n", + "feature_names = X.columns\n", + "\n", + "# collect the selected features:\n", + "selected_feature_indices = np.nonzero(lasso_coefs)[0]\n", + "selected_features = [feature_names[i] for i in selected_feature_indices]\n", + "X_selected = X.iloc[:, selected_feature_indices]" + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "id": "8afa29ae", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "98" + ] + }, + "execution_count": 35, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "len(selected_features)" + ] + }, + { + "cell_type": "markdown", + "id": "6cee6462", + "metadata": {}, + "source": [ + "# Test train split" + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "id": "3af09ef8", + "metadata": {}, + "outputs": [], + "source": [ + "X_train = X_selected\n", + "y_train = y" + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "id": "129430e6", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(index\n", + " 0 30\n", + " 1 30\n", + " Name: count, dtype: int64,\n", + " index\n", + " 0 111\n", + " 1 108\n", + " Name: count, dtype: int64)" + ] + }, + "execution_count": 37, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "y_test.value_counts(),y_train.value_counts()" + ] + }, + { + "cell_type": "markdown", + "id": "1cfe2a06", + "metadata": {}, + "source": [ + "# Cross validation" + ] + }, + { + "cell_type": "code", + "execution_count": 38, + "id": "1fbca4b8", + "metadata": {}, + "outputs": [], + "source": [ + "from sklearn.svm import SVC\n", + "# we can add class_weight='balanced' to add panalize mistake\n", + "svm_model = SVC(kernel = \"linear\", probability=True,random_state=47)" + ] + }, + { + "cell_type": "code", + "execution_count": 39, + "id": "0502e118", + "metadata": {}, + "outputs": [], + "source": [ + "\n", + "# Defining parameter range\n", + "param_grid = {\n", + " 'C': [0.0005,0.0001,0.001,0.1]\n", + "}" + ] + }, + { + "cell_type": "code", + "execution_count": 40, + "id": "7f2d18b0", + "metadata": {}, + "outputs": [], + "source": [ + "\n", + "grid = GridSearchCV(svm_model, param_grid, refit=True, verbose=3)" + ] + }, + { + "cell_type": "code", + "execution_count": 41, + "id": "79790f1d", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Fitting 5 folds for each of 4 candidates, totalling 20 fits\n", + "[CV 1/5] END ..........................C=0.0005;, score=0.955 total time= 0.0s\n", + "[CV 2/5] END ..........................C=0.0005;, score=0.886 total time= 0.0s\n", + "[CV 3/5] END ..........................C=0.0005;, score=0.955 total time= 0.0s\n", + "[CV 4/5] END ..........................C=0.0005;, score=0.909 total time= 0.0s\n", + "[CV 5/5] END ..........................C=0.0005;, score=0.884 total time= 0.0s\n", + "[CV 1/5] END ..........................C=0.0001;, score=0.909 total time= 0.0s\n", + "[CV 2/5] END ..........................C=0.0001;, score=0.773 total time= 0.0s\n", + "[CV 3/5] END ..........................C=0.0001;, score=0.955 total time= 0.0s\n", + "[CV 4/5] END ..........................C=0.0001;, score=0.909 total time= 0.0s\n", + "[CV 5/5] END ..........................C=0.0001;, score=0.860 total time= 0.0s\n", + "[CV 1/5] END ...........................C=0.001;, score=0.955 total time= 0.0s\n", + "[CV 2/5] END ...........................C=0.001;, score=0.977 total time= 0.0s\n", + "[CV 3/5] END ...........................C=0.001;, score=0.955 total time= 0.0s\n", + "[CV 4/5] END ...........................C=0.001;, score=0.909 total time= 0.0s\n", + "[CV 5/5] END ...........................C=0.001;, score=0.884 total time= 0.0s\n", + "[CV 1/5] END .............................C=0.1;, score=0.864 total time= 0.0s\n", + "[CV 2/5] END .............................C=0.1;, score=0.955 total time= 0.0s\n", + "[CV 3/5] END .............................C=0.1;, score=0.977 total time= 0.0s\n", + "[CV 4/5] END .............................C=0.1;, score=0.977 total time= 0.0s\n", + "[CV 5/5] END .............................C=0.1;, score=0.953 total time= 0.0s\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(estimator=SVC(kernel='linear', probability=True, random_state=47),\n", + " param_grid={'C': [0.0005, 0.0001, 0.001, 0.1]}, verbose=3)</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(estimator=SVC(kernel='linear', probability=True, random_state=47),\n", + " param_grid={'C': [0.0005, 0.0001, 0.001, 0.1]}, verbose=3)</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: SVC</label><div class=\"sk-toggleable__content\"><pre>SVC(kernel='linear', probability=True, random_state=47)</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\">SVC</label><div class=\"sk-toggleable__content\"><pre>SVC(kernel='linear', probability=True, random_state=47)</pre></div></div></div></div></div></div></div></div></div></div>" + ], + "text/plain": [ + "GridSearchCV(estimator=SVC(kernel='linear', probability=True, random_state=47),\n", + " param_grid={'C': [0.0005, 0.0001, 0.001, 0.1]}, verbose=3)" + ] + }, + "execution_count": 41, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Fitting the model for grid search\n", + "grid.fit(X_train, y_train)" + ] + }, + { + "cell_type": "markdown", + "id": "25b99a25", + "metadata": {}, + "source": [ + "# Best hyperparameter" + ] + }, + { + "cell_type": "code", + "execution_count": 42, + "id": "5d327876", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'C': 0.1}\n", + "SVC(C=0.1, kernel='linear', probability=True, random_state=47)\n" + ] + } + ], + "source": [ + "# print best parameter after tuning\n", + "print(grid.best_params_)\n", + " \n", + "# print how our model looks after hyper-parameter tuning\n", + "print(grid.best_estimator_)" + ] + }, + { + "cell_type": "code", + "execution_count": 43, + "id": "f8d67e2f", + "metadata": {}, + "outputs": [], + "source": [ + "# Select columns in df1 based on columns in df2\n", + "X_test = X_test.loc[:, X_train.columns]" + ] + }, + { + "cell_type": "code", + "execution_count": 44, + "id": "3b2776c0", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<style>#sk-container-id-2 {color: black;background-color: white;}#sk-container-id-2 pre{padding: 0;}#sk-container-id-2 div.sk-toggleable {background-color: white;}#sk-container-id-2 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-2 label.sk-toggleable__label-arrow:before {content: \"▸\";float: left;margin-right: 0.25em;color: #696969;}#sk-container-id-2 label.sk-toggleable__label-arrow:hover:before {color: black;}#sk-container-id-2 div.sk-estimator:hover label.sk-toggleable__label-arrow:before {color: black;}#sk-container-id-2 div.sk-toggleable__content {max-height: 0;max-width: 0;overflow: hidden;text-align: left;background-color: #f0f8ff;}#sk-container-id-2 div.sk-toggleable__content pre {margin: 0.2em;color: black;border-radius: 0.25em;background-color: #f0f8ff;}#sk-container-id-2 input.sk-toggleable__control:checked~div.sk-toggleable__content {max-height: 200px;max-width: 100%;overflow: auto;}#sk-container-id-2 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {content: \"▾\";}#sk-container-id-2 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-2 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-2 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-2 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-2 div.sk-estimator:hover {background-color: #d4ebff;}#sk-container-id-2 div.sk-parallel-item::after {content: \"\";width: 100%;border-bottom: 1px solid gray;flex-grow: 1;}#sk-container-id-2 div.sk-label:hover label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-2 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-2 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-2 div.sk-item {position: relative;z-index: 1;}#sk-container-id-2 div.sk-parallel {display: flex;align-items: stretch;justify-content: center;background-color: white;position: relative;}#sk-container-id-2 div.sk-item::before, #sk-container-id-2 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-2 div.sk-parallel-item {display: flex;flex-direction: column;z-index: 1;position: relative;background-color: white;}#sk-container-id-2 div.sk-parallel-item:first-child::after {align-self: flex-end;width: 50%;}#sk-container-id-2 div.sk-parallel-item:last-child::after {align-self: flex-start;width: 50%;}#sk-container-id-2 div.sk-parallel-item:only-child::after {width: 0;}#sk-container-id-2 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-2 div.sk-label label {font-family: monospace;font-weight: bold;display: inline-block;line-height: 1.2em;}#sk-container-id-2 div.sk-label-container {text-align: center;}#sk-container-id-2 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-2 div.sk-text-repr-fallback {display: none;}</style><div id=\"sk-container-id-2\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>SVC(C=0.1, kernel='linear', probability=True, random_state=47)</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\"><div class=\"sk-estimator sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-4\" type=\"checkbox\" checked><label for=\"sk-estimator-id-4\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">SVC</label><div class=\"sk-toggleable__content\"><pre>SVC(C=0.1, kernel='linear', probability=True, random_state=47)</pre></div></div></div></div></div>" + ], + "text/plain": [ + "SVC(C=0.1, kernel='linear', probability=True, random_state=47)" + ] + }, + "execution_count": 44, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "model_svm = grid.best_estimator_\n", + "model_svm.fit(X_train,y_train)" + ] + }, + { + "cell_type": "code", + "execution_count": 45, + "id": "94871ada", + "metadata": {}, + "outputs": [], + "source": [ + "y_proba = model_svm.fit(X_train, y_train).predict_proba(X_test)[:,1]" + ] + }, + { + "cell_type": "code", + "execution_count": 46, + "id": "f8d4142d", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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Zs2aREREsHfvXrcXKNlT8BURyYFt20zv7ooV4O9vJrBVqWJ3VSJiA5eDb926dfnrr7+46qqraNGiBUOHDuXo0aNMmTKFWrVqeaJGyYa2KhYRuQjLgo8+gmeegYQEKFbM7MCm0Cvis1xudRgxYgSRkZEAvPrqqxQrVownn3ySI0eO8MEHH7i9QMnamTOwZYu5reArInKeo0ehfXt47DETelu2hHXr4N577a5MRGzksCzLsruIvBQfH09ERARxcXGEh4fbXU6urVgBDRuabeMPHwaHw+6KRETyiZQUqFkTduwwk9hGjoR+/cDP5bEeEbGJp/Ka234LrFq1irvuustdDyeXcG5/r0KviMg5AgIgJsaE3z//hGefVegVEcDF4Dtv3jz69+/PoEGD2LlzJwBbtmzhnnvuoWHDhhnbGrti3LhxVKxYkeDgYBo3bszy5csvev2JEyfo3bs3kZGRBAUFUa1aNX744QeXn7eg08Q2EZFzbNgAf/119vjJJ2HlSu3uIyKZ5Dj4fvzxx9x+++1MmjSJ//u//+O6667js88+o0mTJpQpU4YNGza4HEBnzJhBTEwMw4YNY9WqVURHR9O6dWsOHz6c5fXJycnccsst7N69my+//JKtW7cyYcIEypUr59LzegPt2CYigpnANnYsNGgAHTpAfLw573BASIi9tYlIvpPjHt86derQtWtX/ve//zFr1izuv/9+rrvuOr744gvKly+fqydv3LgxDRs25N133wXA6XQSFRVF3759GTBgwAXXjx8/nlGjRrFlyxYCAgJy9Zze0OPrdEJEBJw6BRs3mqUoRUR8Tmws9OgBc+ea49tvh08/NZMfRKRAs73Hd8eOHdx///0AtG/fnkKFCjFq1Khch97k5GRWrlxJq1atzhbj50erVq1YtmxZlvf57rvvaNKkCb1796Z06dLUqlWLESNGkJaWlu3zJCUlER8fn+mjoNu504Te4GCoVs3uakREbPD992av9rlzzS/DsWNhzhyFXhG5qBwH3zNnzhAaGgqAw+EgKCgoY1mz3Dh69ChpaWmULl060/nSpUsTGxub5X127tzJl19+SVpaGj/88AMvvPACo0eP5pVzd+I5z8iRI4mIiMj4iIqKynXN+UV6m0Pt2tpwSER8TEoK9OoFbdrAkSMm/K5YAX36aKaviFySS7Hpo48+okiRIgCkpqYyadIkSpz3v+unnnrKfdWdx+l0UqpUKT788EP8/f2pX78++/fvZ9SoUQwbNizL+wwcOJCYmJiM4/j4+AIffjWxTUR8VqFCsH+/uf3ss/DqqxAUZG9NIlJg5Dj4VqhQgQkTJmQclylThilTpmS6xuFw5Dj4lihRAn9/fw4dOpTp/KFDhyhTpkyW94mMjCQgIAB/f/+MczVr1iQ2Npbk5GQCAwMvuE9QUBBBXvZLUTu2iYhPcTohMRFCQ82o7kcfmc0obr7Z7spEpIDJcfDdvXu3W584MDCQ+vXrs2DBAu655x7AjOguWLCAPn36ZHmfZs2aMW3aNJxOJ37/rcm4bds2IiMjswy93kojviLiM/buhe7doWxZ+Owzc65kSYVeEckVW1f0jomJYcKECUyePJnNmzfz5JNPcvr0aXr06AFAt27dGDhwYMb1Tz75JMeOHePpp59m27ZtzJkzhxEjRtC7d2+7voU8d/gwHDhgBj1q17a7GhERD5o50/Tw/vorfP017Npld0UiUsDZOjWqY8eOHDlyhKFDhxIbG8u1117L3LlzMya87dmzJ2NkFyAqKop58+bRr18/6tSpQ7ly5Xj66ad5/vnn7foW8tzateZz1aoQFmZvLSIiHnHyJPTtC5Mnm+OGDWHqVKhUyd66RKTAy/E6vt6ioK/jO2oUPPcc3H8/fPGF3dWIiLjZH39Aly5m3UY/Pxg4EIYNM9sQi4jP8FRe02JYBYz6e0XEayUnm93X9u6FChVMT2/z5nZXJSJexNYeX3GdtioWEa8VGAgffwydO5u+LoVeEXGzXAXfHTt2MGTIEDp16sThw4cB+PHHH9m4caNbi5PMzpyBLVvMbY34ikiBZ1kwZQpMn3723C23mH7eokVtK0tEvJfLwXfRokXUrl2bP//8k6+++opTp04BsHbt2mw3kRD32LDBLGdZqhRks9SxiEjBcOKEGdnt1g0eewz27LG7IhHxAS4H3wEDBvDKK68wf/78TGvntmzZkj/++MOtxUlm5/b3amdOESmwFi0yy5RNnw7+/mbGbtmydlclIj7A5eC7fv162rVrd8H5UqVKcfToUbcUJVnTjm0iUqAlJ8OgQXDTTWYCW5UqsGQJDBlitiIWEfEwl4Nv0aJFOXjw4AXnV69eTbly5dxSlGRNKzqISIGVlATXXw8jR5re3ocfNr/UGje2uzIR8SEuB98HHniA559/ntjYWBwOB06nkyVLltC/f3+6devmiRoFSEszW9ODgq+IFEBBQXDDDVCsGHz5pVm9oUgRu6sSER/j8gYWycnJ9O7dm0mTJpGWlkahQoVIS0ujc+fOTJo0CX9/f0/V6hYFdQOLbdugenUICTGbGuXzP2YRETh61CxHExVljpOSzDm9Oygil5BvNrAIDAxkwoQJvPDCC2zYsIFTp05Rt25drrrqKrcVJRdKb3OoXVuhV0QKgJ9+gu7dzTbDv/1meniDghR6RcRWLgffxYsXc/3111OhQgUqVKjgiZokC+rvFZECITHRbDM8Zow5LlYMYmOhfHlbyxIRgVz0+LZs2ZJKlSoxaNAgNm3a5ImaJAvasU1E8r0NG6BRo7Oht1cvWLFCoVdE8g2Xg++BAwd49tlnWbRoEbVq1eLaa69l1KhR7Nu3zxP1yX804isi+ZZlwdix0KABrF8PJUvC7NkwbhyEhtpdnYhIBpcnt51r165dTJs2jc8//5wtW7Zwww038Msvv7izPrcriJPbDh0yO7U5HGZiW+HCdlckInKO5GS47jqz2Pjtt8PEiVC6tN1ViUgBlm8mt52rUqVKDBgwgOjoaF544QUWLVrkrrrkHGvXms/Vqin0ikg+Ylnmf+SBgTBtGvz8M/Tura0lRSTfcrnVId2SJUvo1asXkZGRdO7cmVq1ajFnzhx31ib/0Y5tIpKvJCTAk0/Ciy+ePVejBvTpo9ArIvmayyO+AwcOZPr06Rw4cIBbbrmFt99+m7Zt2xKqPi6PUX+viOQbq1ZBly6wZYtZouzhh+HKK+2uSkQkR1wOvr/99hv/+9//6NChAyVKlPBETXIeBV8RsZ3TCW+8AUOGQEoKREbC5MkKvSJSoLgcfJcsWeKJOiQbp0/D1q3mtoKviNhi716zGcWvv5rjdu1gwgS44gp76xIRcVGOgu93333H7bffTkBAAN99991Fr7377rvdUpgYGzaY+SOlS5uVHURE8lRSEjRtCvv2maXJ3nnHtDeol1dECqAcBd977rmH2NhYSpUqxT333JPtdQ6Hg7S0NHfVJqjNQURsFhQEL7xgRninTjXLy4iIFFA5Cr5OpzPL2+J52rFNRPLcH3+Yt5qaNDHHPXtCjx4QEGBvXSIil8nl5cw+/fRTkpKSLjifnJzMp59+6pai5CyN+IpInklNheHD4frr4YEH4MQJc97hUOgVEa/gcvDt0aMHcXFxF5w/efIkPXr0cEtRYqSlwbp15raCr4h41K5d0KIFDBtmfvk0a6Y+XhHxOi4HX8uycGTxy3Dfvn1ERES4pSgxtm8368SHhkLVqnZXIyJeybJgyhSIjoalSyE8HD77zOzEpt/pIuJlcrycWd26dXE4HDgcDm6++WYKFTp717S0NHbt2sVtt93mkSJ9VfqObXXqgL+/vbWIiBdKSoKHHoLp081xs2Ym9FasaGdVIiIek+Pgm76aw5o1a2jdujVFihTJ+FpgYCAVK1bk3nvvdXuBvkz9vSLiUYGBkJho/mf94oswYIDZjU1ExEvl+DfcsGHDAKhYsSIdO3YkODjYY0WJoeArIm6XnGxGesPCTA/vhAmwcyc0amR3ZSIiHudyj2/37t0VevOIgq+IuNW2baadoWdP09sLUKKEQq+I+IwcjfgWL16cbdu2UaJECYoVK5bl5LZ0x44dc1txviw2Fg4dAj8/qF3b7mpEpECzLPjoI3jmGTNjdscOsxNbVJTdlYmI5KkcBd+33nqLsLCwjNsXC77iHumjvdWqmVUdRERy5ehRM8L7zTfmuGVLmDwZype3tSwRETvkKPh279494/ZDDz3kqVrkHNqxTUQu2/z50L07HDxoNqAYMQJiYsxbSSIiPsjl336rVq1i/fr1Gcfffvst99xzD4MGDSI5Odmtxfky9feKyGVJTISHHzaht2ZN+PNP6N9foVdEfJrLvwEff/xxtm3bBsDOnTvp2LEjoaGhzJw5k+eee87tBfoqBV8RuSzBwaaloVcvWLFCbx+JiJCL4Ltt2zau/S+NzZw5kxYtWjBt2jQmTZrErFmz3F2fTzp92ky+BrOZkojIJVkWjB1rNqBI17IljBuniQIiIv9xeaVyy7JwOp0A/Pzzz9x1110AREVFcfToUfdW56PWrzf/hkVGQunSdlcjIvlebCz06AFz50KRInDjjZq8JiKSBZdHfBs0aMArr7zClClTWLRoEXfeeScAu3btorRSmlukb1WsNgcRuaTZs82ah3PnmvaGkSOhXDm7qxIRyZdcDr5jxoxh1apV9OnTh8GDB1O1alUAvvzyS5o2ber2An2R+ntF5JISEkz/7t13myXL6tQxvbx9+pgd2URE5AIutzrUqVMn06oO6UaNGoW/v79bivJ1Cr4iclFnzkDDhrBpkzl+9ll49VUICrK3LhGRfM7l4Jtu5cqVbN68GYCrr76aevXqua0oX5aaCuvWmdsKviKSpZAQuOsuOH7crNxwyy12VyQiUiA4LCt9w/acOXz4MB07dmTRokUULVoUgBMnTnDTTTcxffp0SpYs6Yk63SY+Pp6IiAji4uIIDw+3u5wLbN4MV18NhQtDXBxoEF1EALPFcEoKVKpkjpOT4eRJuOIKe+sSEfEAT+U1l3t8+/bty6lTp9i4cSPHjh3j2LFjbNiwgfj4eJ566im3Fear0tsc6tRR6BWR/8ycaX4pdOpkwi9AYKBCr4iIi1xudZg7dy4///wzNWvWzDh39dVXM27cOG699Va3FueLtFWxiGQ4eRKefhomTjTHaWlw7JjWORQRySWXR3ydTicBAQEXnA8ICMhY31dyTxPbRASAP/4w/wOeONGs0jB4MCxdqtArInIZXA6+LVu25Omnn+bAgQMZ5/bv30+/fv24+eab3Vqcr7EsreEr4vNSU+Hll+H662HHDqhQARYuhFdegSwGHUREJOdcDr7vvvsu8fHxVKxYkSpVqlClShUqVapEfHw8Y8eO9USNPiM2Fo4cAT8/qFXL7mpExBZOJ3z7rWlr6NQJ1q6FG26wuyoREa/gco9vVFQUq1atYsGCBRnLmdWsWZNWrVq5vThfkz7aW6OGWa1IRHyEZZkPPz8zaW3qVPjrL3jwQbsrExHxKi4F3xkzZvDdd9+RnJzMzTffTN++fT1Vl09Sf6+IDzpxAp58EqpUMe0MANWrmw8REXGrHAff999/n969e3PVVVcREhLCV199xY4dOxg1apQn6/MpCr4iPua336BrV9izx4z0PvkklCtnd1UiIl4rxz2+7777LsOGDWPr1q2sWbOGyZMn895773myNp+j4CviI5KTYdAguPFGE3qrVDEhWKFXRMSjcrxzW0hICJs3b6ZixYqAWdYsJCSE3bt3ExkZ6cka3Sq/7tx28iRERJg2v0OHoFQpuysSEY/Ytg26dIEVK8zxww/DmDEQFmZrWSIi+Ymn8lqOWx2SkpIoXLhwxrGfnx+BgYGcOXPGbcX4svXrTegtW1ahV8RrnTkDzZvD4cNQrBh8+CHcd5/dVYmI+AyXJre98MILhIaGZhwnJyfz6quvEhERkXHuzTffdF91PkQ7ton4gJAQGDECpk2DyZOhfHm7KxIR8Sk5Dr433HADW7duzXSuadOm7Ny5M+PY4XC4rzIfo/5eES81f74JvNdfb44ffhh69DBLl4mISJ7KcfBduHChB8sQBV8RL5OYaCawvfUWREWZjSiKFTPbD2uQQETEFi5vYCHul5pqenxBwVfEK2zcCJ07w7p15rhNGwgKsrcmERFxfcticb+tW83gUJEiULmy3dWISK5ZFowdC/Xrm9BbsiTMng3jxsE58yNERMQeGvHNB9LbHKKj1fYnUmAlJMC998Lcueb49tth4kQoXdreukREJINiVj6g/l4RLxASYt62CQoyo75z5ij0iojkMwq++YCCr0gBlZAAcXHmtsMBH3wAK1dCnz6awCYikg/lKvj+/vvvPPjggzRp0oT9+/cDMGXKFBYvXuzW4nyBZSn4ihRIq1ebXt6ePc0PMkDx4nDNNfbWJSIi2XI5+M6aNYvWrVsTEhLC6tWrSUpKAiAuLo4RI0a4vUBvd+AAHD0K/v5Qq5bd1YjIJTmdMGoUNG4MW7bA4sUQG2t3VSIikgMuB99XXnmF8ePHM2HCBAICAjLON2vWjFWrVrm1OF+QPtpbsyYEB9taiohcyr59cMst8NxzkJIC7dqZ1RsiI+2uTEREcsDl4Lt161ZuuOGGC85HRERw4sQJd9TkU9TmIFJAfPkl1KkDv/xiliabMAFmzYISJeyuTEREcsjl4FumTBm2b99+wfnFixdTWYvQukzBV6QASEiAfv3g+HFo0MD09z76qCawiYgUMC4H3549e/L000/z559/4nA4OHDgAFOnTqV///48+eSTnqjRqyn4ihQAoaHw6admC+KlS6FaNbsrEhGRXHB5A4sBAwbgdDq5+eabSUhI4IYbbiAoKIj+/fvTt29fT9ToteLjIX3wPDra3lpE5BypqTByJERFwUMPmXM33WQ+RESkwHJYVvo6PK5JTk5m+/btnDp1iquvvpoiRYq4uzaPiI+PJyIigri4OMLDw22tZfFiaN4cypeHvXttLUVE0u3aBV27wpIlULgw/P23Jq+JiOQxT+W1XG9ZHBgYyNVXX+22QnyR2hxE8hHLgqlToVcvOHkSwsPhvfcUekVEvIjLwfemm27CcZEJHb/88stlFeRLFHxF8okTJ0zg/fxzc9ysGXz2GVSsaGdVIiLiZi4H32vPS2kpKSmsWbOGDRs20L17d3fV5RMUfEXygYQEqFfPtDj4+8OLL8KAAVAo12+IiYhIPuXyb/a33nory/Mvvvgip06duuyCfEVKCmzYYG4r+IrYKDQUOnaEmTNNq0PjxnZXJCIiHpLryW3n2759O40aNeLYsWPueDiPyS+T2zZsgNq1ISzMvMvq5/LCciKSa9u2mR+6qlXNcXIyJCWZH0gREbGdp/Ka2+LWsmXLCNaeuzl2bpuDQq9IHrEss+Na3brQqZN56wUgMFChV0TEB7jc6tC+fftMx5ZlcfDgQVasWMELL7zgtsK8nfp7RfLY0aPQsyd88405Dg83i2lfcYWtZYmISN5xOfhGRERkOvbz86N69eoMHz6cW2+91W2FeTsFX5E89NNPZiOKgwchIMBsTtGvn95uERHxMS4F37S0NHr06EHt2rUpVqyYp2ryepYFq1eb2wq+Ih6UlAQDB0L6pNyaNWHaNP3giYj4KJeGO/z9/bn11ls5ceKEW4sYN24cFStWJDg4mMaNG7N8+fIc3W/69Ok4HA7uuecet9bjafv2wbFjZrUk7QEi4kF+fmaLRIDevWHFCoVeEREf5vL7fLVq1WLnzp1uK2DGjBnExMQwbNgwVq1aRXR0NK1bt+bw4cMXvd/u3bvp378/zZs3d1steSW9zaFmTdB8QBE3syxITTW3AwLMEmWzZ8O775qly0RExGe5HHxfeeUV+vfvz/fff8/BgweJj4/P9OGqN998k549e9KjRw+uvvpqxo8fT2hoKJ988km290lLS6NLly689NJLVK5c2eXntJv6e0U8JDYW7rgDhgw5e+6qq+Cuu+yrSURE8o0cB9/hw4dz+vRp7rjjDtauXcvdd99N+fLlKVasGMWKFaNo0aIu9/0mJyezcuVKWrVqdbYgPz9atWrFsmXLLlpLqVKleOSRRy75HElJSZcdzt1NwVfEA2bPNotjz50LY8fCoUN2VyQiIvlMjie3vfTSSzzxxBP8+uuvbnvyo0ePkpaWRunSpTOdL126NFu2bMnyPosXL+bjjz9mTXp6vISRI0fy0ksvXW6pbqXgK+JGCQnw7LMwfrw5rlPHTGA77/eKiIhIjoNv+gZvLVq08Fgxl3Ly5Em6du3KhAkTKFGiRI7uM3DgQGJiYjKO4+PjiYqK8lSJlxQXB+kt0gq+Ipdp1Sro3Bm2bjXHzz4Lr74KQUH21iUiIvmSS8uZORwOtz55iRIl8Pf359B5b0keOnSIMmXKXHD9jh072L17N23atMk453Q6AShUqBBbt26lSpUqme4TFBREUD76R3DdOvO5QgUoXtzeWkQKtFOn4JZbzBIpZcvC5MlwTtuUiIjI+VwKvtWqVbtk+D127FiOHy8wMJD69euzYMGCjCXJnE4nCxYsoE+fPhdcX6NGDdavX5/p3JAhQzh58iRvv/22rSO5OaU2BxE3KVIERo+G774z2xBrBzYREbkEl4LvSy+9dMHObZcrJiaG7t2706BBAxo1asSYMWM4ffo0PXr0AKBbt26UK1eOkSNHEhwcTK1atTLdv2jRogAXnM+vFHxFLsPMmVCyJNx4oznu3t18uPndKBER8U4uBd8HHniAUqVKubWAjh07cuTIEYYOHUpsbCzXXnstc+fOzZjwtmfPHvy8aFtRBV+RXDh5Ep56CiZNgnLlTM9Q8eIKvCIi4hKHlT5r7RL8/f05ePCg24NvXouPjyciIoK4uDjCw8Pz9LlTUsy7s8nJZoJbpUp5+vQiBdMff0CXLuaHxuGAQYNg2DCzOYWIiHglT+U1l1d1kNzbvNmE3vBwqFjR7mpE8rnUVBgxAoYPh7Q0MyP0s8+gAO7WKCIi+UOOg2/66gmSe+e2OegdWpGLOHUKWreGpUvNcefOMG4c/NfTLyIikhsu9fjK5VF/r0gOFS4MUVHm7ZH33jOtDiIiIpdJwTcPKfiKXMSJE+B0np209v775pya4UVExE28Z7mEfM6yFHxFsrVokdlq+NFHzQ8LQLFiCr0iIuJWCr55ZO9eOH7cTES/5hq7qxHJJ5KTzSoNN91kfkjWrYMjR+yuSkREvJSCbx5JH+29+moIDLS1FJH8YetWaNoURo40o7wPPwyrV0MBXzJRRETyLwXfPKI2B5H/WJbZYrhePVi50rQ0fPklfPwxhIXZXZ2IiHgxTW7LIwq+Iv85fRpeeQUSEqBlS5g8GcqXt7sqERHxAQq+eWT1avNZwVd8XpEiZiOKP/+EmBjwoi3JRUQkf1PwzQMnTsDu3eZ2dLSdlYjYIDHRTGCrWRN69jTnmjfXDmwiIpLnFHzzwNq15vOVV5p2RhGfsWGD2XVt/XqzKcU990DJknZXJSIiPkrvMeYB9feKz7EsGDsWGjQwobdkSZg+XaFXRERspRHfPKDgKz4lNhZ69IC5c83x7bfDxIlQurS9dYmIiM9T8M0DCr7iM06ehLp1TfgNDoZRo6B3b7MFsYiIiM3U6uBhycmwcaO5XbeuvbWIeFxYmNl2uE4dWLEC+vRR6BURkXxDwdfDNm+GlBQoWhQqVLC7GhEPWL3a7MKWbuhQWL5ce3OLiEi+o+DrYee2OWjgS7yK02laGRo3Nis3JCeb8wEBEBRkb20iIiJZUI+vh6m/V7zSvn3QvTv88os5vvJKOHMGAgPtrUtEROQiNOLrYdqxTbzOzJmmh/eXXyA0FCZMgFmzICLC7spEREQuSiO+HmRZGvEVL5KQYCarTZxojhs0gKlToVo1e+sSERHJIY34etA//0BcnGl5rFnT7mpELlNgoJmt6XDA4MGwdKlCr4iIFCga8fWg9NHea65R66MUUKmpZhJbYCAUKgSffQb798MNN9hdmYiIiMs04utBanOQAm3XLmjRAoYMOXuuShWFXhERKbAUfD1IwVcKJMuCKVMgOtq0M0yYAEeP2l2ViIjIZVPw9SAFXylwTpwwa/J262a2H27WzCxNUqKE3ZWJiIhcNgVfDzl+3ExuAwVfKSAWLTLLlE2fDv7+8PLLsHAhVKxod2UiIiJuocltHrJ2rflcqZKWN5UCIC4O2rY1n6tUMcuUNW5sd1UiIiJupeDrIWpzkAIlIgLeeceM+o4ZA2FhdlckIiLidmp18BDt2Cb5mmWZSWs//3z2XLdu8PHHCr0iIuK1NOLrIRrxlXzr6FHo2RO++QYiI2HjRihWzO6qREREPE7B1wOSkmDTJnNbwVfylZ9+gocegoMHzZaCMTFqQhcREZ+h4OsBmzaZDa+KFYOoKLurEQESE2HgQNO/C2YP7alToW5dW8sSERHJSwq+HnBum4PDYWclIpiVGpo3h/XrzXGvXjBqFISG2luXiIhIHlPw9QD190q+Eh4OtWpBbCx88gncdZfdFYmIiNhCwdcDFHzFdrGxpof3iivM2w7vvWeaz0uXtrsyERER22g5MzezrLPBV+2TYovZs6F2bXjkEfMXEqBoUYVeERHxeQq+brZ7N8THQ2Ag1KhhdzXiUxISTP/u3XebJct27TJ7Z4uIiAig4Ot26aO9tWqZd5pF8sSqVVC/Prz/vjmOiYHly6F4cXvrEhERyUcUfN1M/b2Sp5xOeP11uO462LLFbEjx008wejQEBdldnYiISL6i4Otm2qpY8tSpU2biWkoKtGtnliy75Ra7qxIREcmXtKqDm2nEV/KEZZnVGsLDzUYUmzebyWxaOFpERCRbGvF1o3//hb17ze06deytRbzUyZPQowd8+OHZc82awaOPKvSKiIhcgoKvG61daz5XrgwREfbWIl7ojz/MWwmTJkH//nDsmN0ViYiIFCgKvm6kNgfxiNRUGD4crr8edu6EChVgzhyt2CAiIuIi9fi6kYKvuN2uXfDgg7B0qTnu1MlMZita1NayRERECiIFXzfSjm3iVidOmLV5jx+HsDCzRm+XLnZXJSIiUmAp+LpJYqKZWA8a8RU3KVoUnnoKfv4ZpkyBSpXsrkhERKRAU4+vm2zaZFoxr7gCypWzuxopsH777ez/oACGDIGFCxV6RURE3EDB103O7e/VqlLispQUGDwYbrwROneGpCRzvlAh8yEiIiKXTf+iuol2bJNc27bN9O6uWGGO69Y1bx9oy2ERERG30oivm2hFB3GZZcGECSborlgBxYrBzJnwySdQuLDd1YmIiHgdjfi6gdN5dvMKBV/JkZMnoVs3+OYbc9yyJUyeDOXL21qWiIiIN9OIrxvs2mVyTFAQVK9udzVSIISEwOHDEBAAo0bB/PkKvSIiIh6mEV83SG9zqFXL5BiRLKVPWAsKMhPWPvvMrNWrhZ9FRETyhEZ83UD9vXJJGzdCo0YwaNDZc5UqKfSKiIjkIQVfN9CObZIty4KxY6FBA1i3zozyHj9ud1UiIiI+ScHXDTTiK1mKjYU77zS7ryUmwm23mVmQxYrZXZmIiIhPUvC9TEePwr595nadOvbWIvnI99+bvxA//mh6eseOhR9+gDJl7K5MRETEZ2ly22VKX8asalUIC7O3Fsknjh+HBx+EuDgTfqdNg2uusbsqERERn6fge5m0Y5tcoFgxeO89WLkSRozQDmwiIiL5hFodLpP6ewWn06zFO2/e2XOdO8Po0Qq9IiIi+YhGfC+Tgq+P27cPuneHX34x/bubN0PRonZXJSIiIlnQiO9lOHMGtmwxtxV8fdDMmaaH95dfoHBhePVViIiwuyoRERHJhkZ8L8PGjZCWBiVKQNmydlcjeebkSbNE2aRJ5rhhQ5g6Fa66ytayRERE5OIUfC/DuW0ODoedlUieOXbMBN2dO82LPmgQDBumvapFREQKAAXfy6D+Xh9UvDg0bQqpqTBlCtxwg90ViYiISA4p+F4GbVXsI3btMj28pUqZ43HjzEoOmsQmIiJSoGhyWy45nWc3r9CIr5eyLDOqGx0NjzxijgHCwxV6RURECiAF31zauRNOnYLgYKhWze5qxO1OnDBr8XbrZiaznTgB8fF2VyUiIiKXQcE3l9J3bKtdGwqpYcS7/PabGeWdPh38/eGVV2DhQi1VJiIiUsApsuWSJrZ5oZQUePFFGDnStDVUqWKWKWvc2O7KRERExA004ptLCr5e6MwZ+PxzE3ofecS8yAq9IiIiXkMjvrmk4Osl0iesORxm0tq0abB/P9x7r711iYiIiNtpxDcXDh+GAwdMVqpd2+5qJNeOHoV27eD998+eu+46hV4REREvpeCbC+nLmFWtCmFh9tYiufTTT+Z/Ld9+a3Zfi4uzuyIRERHxMAXfXFCbQwGWmAj9+kHr1hAbCzVrasUGERERH5Evgu+4ceOoWLEiwcHBNG7cmOXLl2d77YQJE2jevDnFihWjWLFitGrV6qLXe4J2bCugNmyARo1gzBhz3KsXrFih/8GIiIj4CNuD74wZM4iJiWHYsGGsWrWK6OhoWrduzeHDh7O8fuHChXTq1Ilff/2VZcuWERUVxa233sr+/fvzrGaN+BZA//4LTZrA+vVQsiTMnm22Hg4NtbsyERERySMOy0qf1m6Pxo0b07BhQ959910AnE4nUVFR9O3blwEDBlzy/mlpaRQrVox3332Xbt26XfL6+Ph4IiIiiIuLIzw83OV6z5yBIkXMlsUHDkBkpMsPIXZ5+WVYtgwmToTSpe2uRkRERLJxuXktO7YuZ5acnMzKlSsZOHBgxjk/Pz9atWrFsmXLcvQYCQkJpKSkULx48Sy/npSURFJSUsZx/GVuO7t+vQm9pUpBmTKX9VDiabNnQ6VKUKuWOR40CPz8zHIcIiIi4nNsbXU4evQoaWlplD5v9K106dLExsbm6DGef/55ypYtS6tWrbL8+siRI4mIiMj4iIqKuqyaz21zUH7KpxIS4Mkn4e67oUsXM6ENzPbDetFERER8lu09vpfjtddeY/r06Xz99dcEBwdnec3AgQOJi4vL+Ni7d+9lPaf6e/O5VaugXj0YP94ct2qlsCsiIiKAza0OJUqUwN/fn0OHDmU6f+jQIcpcoo/gjTfe4LXXXuPnn3+mTp062V4XFBREUFCQW+oFBd98y+mEN96AIUMgJcU0X3/6qQm+IiIiItg84hsYGEj9+vVZsGBBxjmn08mCBQto0qRJtvd7/fXXefnll5k7dy4NGjTIi1IBSEuDdevMbQXffOT4cRNwn3/ehN527UwztkKviIiInMPWEV+AmJgYunfvToMGDWjUqBFjxozh9OnT9OjRA4Bu3bpRrlw5Ro4cCcD//d//MXToUKZNm0bFihUzeoGLFClCkSJFPFrrjh1w+jSEhEC1ah59KnFFeLgJvKGh8M478PDDam8QERGRC9gefDt27MiRI0cYOnQosbGxXHvttcydOzdjwtuePXvw8zs7MP3++++TnJzMfffdl+lxhg0bxosvvujRWtPbHGrXNvOkxEYnT0JAAAQHmxdj6lRISoKrrrK7MhEREcmnbA++AH369KFPnz5Zfm3hwoWZjnfv3u35grKhHdvyiT/+MKs1tGlzdhe2ChVsLUlERETyvwK9qkNe08Q2m6WmwvDhcP31sHMnfPMNXOa6zCIiIuI7FHxdoOBro127oEULGDbMzDLs3Nm8IG7czUVERES8m4JvDh06BAcPmjlTtWvbXY0PsSyYMgWio2HpUhN0P/vM9PQWLWp3dSIiIlKA5Ise34IgfbS3WjUoXNjWUnzLv/9C375mMluzZib0Vqxod1UiIiJSACn45pDaHGxSogR88AH8/TcMGACF9FdWREREckcpIocUfPNIcjK8+KKZwHbHHeZcx462liQiIiLeQcE3hxR888DWrWaZspUroVQp2L4dwsLsrkpERES8hCa35cDp0yaTgYKvR1gWTJgA9eqZ0FusGLz3nkKviIiIuJVGfHNgwwaTzUqXhjJl7K7Gyxw9Cj17mjV5AVq2hMmToXx5W8sSERER76PgmwNqc/CQI0fMMmUHD5rth0eOhH79wE9vRIiIiIj7KfjmgLYq9pCSJeHWW2H5crMur/6ARURExIMUfHNAI75utHGjWaKsdGlz/O67ZoQ3NNTeukRERMTr6T3lS0hLg3XrzG0F38tgWTB2LNSvDw8/bI4BihRR6BUREZE8oRHfS/j7b0hIMNmsalW7qymgYmOhRw+YO/fsudOnTegVERERySMa8b2E9DaHOnXA39/WUgqm2bOhdm0TeoODTWvD998r9IqIiEie04jvJai/N5cSEuDZZ2H8eHNcpw5MmwbXXGNvXSIiIuKzNOJ7CQq+uZSWBvPnm9vPPmtWblDoFRERERtpxPcSFHxd4HSaz35+Zte1zz+HuDho1creukRERETQiO9FxcbCoUMmx9WubXc1+dy+fXDLLaaHN13Dhgq9IiIikm8o+F5E+mhvtWpaceuiZs40Pby//ALDh8OpU3ZXJCIiInIBBd+L0I5tl3DypFmmrEMHOH7cjPAuW6YVG0RERCRfUvC9CPX3XsQff5g/mEmTwOGAwYNhyRK46iq7KxMRERHJkia3XYSCbzYOHYKbboLERKhQAT77DJo3t7sqERERkYtS8M3GqVOwbZu5HR1tby35TunS8MILsGEDvPceFC1qd0UiIiIil6Tgm43168GyIDLS5DyfZllmVDc62kxiAxg40LQ4iIiIiBQQ6vHNhtoc/nPiBHTuDN26mc9nzpjzCr0iIiJSwGjENxsKvsCiRdC1K+zdC/7+8MADEBBgd1UiIiIiuaLgmw2fDr7JyfDii/Daa6bNoUoVmDoVGje2uzIRERGRXFPwzUJqKqxbZ277XPA9cgTuuANWrDDHDz8MY8aYLYhFRERECjAF3yz8/bdZqatwYaha1e5q8ljx4uYbL1YMPvwQ7rvP7opERERE3ELBNwvpbQ7R0eDnC9P/jh41YTckxPTyfvaZOV++vL11iYiIiLiRL8Q6l/lUf+9PP5klyp577uy58uUVekVERMTrKPhmwSeCb2IixMRA69Zw8CAsWACnT9tdlYiIiIjHKPiex7Jg9Wpz22uD78aNZoWGt94yx716mclshQvbW5eIiIiIByn4nufgQbOwgZ8f1KpldzVuZlkwdizUr2+WrShZEmbPhnHjIDTU7upEREREPEqT286T3uZQo4aZ6+VVDh+GYcMgKQluvx0mTtR+zCIiIuIzFHzP49X9vaVLw4QJZli7d29tOywiIiI+RcH3PF4VfBMSoH9/syHFXXeZc/fea29NIiIiIjZR8D2P1wTfVaugSxfYsgVmzYKdOzV5TURERHyaJred4+RJ2L7d3C6wwdfphFGj4LrrTOiNjDQbUij0ioiIiI/TiO851q83Cx+UK2cWPChw9u2D7t3hl1/Mcbt2pqf3iivsrUtEREQkH1DwPUeBbnM4eNDswHb8uFma7O234ZFHNIFNRERE5D8Kvuco0ME3MtKM8K5bB1OnQrVqdlckIiIikq8o+J6jwAXfP/+EChVM6AWzOUVAgPkQERERkUw0ue0/qammxxcKQPBNTYXhw6FZM+jRw0xoA9PioNArIiIikiWN+P5n61ZITIQiRaByZburuYhdu+DBB2HpUnNcvLjZic3rtpkTERERcS+N+P4nvc0hOhr88uOfimWZZcmio03oDQ83x9OmKfSKiIiI5IBGfP+Tr/t74+PhiSfg88/NcbNmMGUKVKpkb10iIiIiBYiC73/ydfD194cVK8znYcNg4EAopJdORMQTLMsiNTWVtLQ0u0sR8WoBAQH4+/vn6XMqPWG6CPJd8E1JMUHXz8/sujZ9ujnXuLHdlYmIeK3k5GQOHjxIQkKC3aWIeD2Hw0H58uUpUqRInj2ngi9w4AAcPWpyZq1adlcDbNsGXbqYj2eeMefq1bO1JBERb+d0Otm1axf+/v6ULVuWwMBAHNoESMQjLMviyJEj7Nu3j6uuuirPRn4VfDk72luzJgQH21iIZcFHH5mwm5AA+/fDY4+ZZcpERMSjkpOTcTqdREVFEarfuyIeV7JkSXbv3k1KSkqeBd/8uH5BnssXbQ5Hj0L79iboJiRAy5awfLlCr4hIHvPLl0v7iHgfO95R0U83+SD4/vQT1KkD33xjNqAYNQrmz4fy5W0qSERERMT7qNUBWL3afLYl+B44AG3aQHKy6bWYOhXq1rWhEBERERHv5vMjvvHxsGOHuR0dbUMBZcua7Yd79TJLlin0ioiI5JmtW7dSpkwZTp48aXcpXiU5OZmKFSuyYsUKu0vJxOeD77p15nP58lCiRB48oWXBu++e7a8AeO45GDdO/bwiIpIrDz30EA6HA4fDQUBAAJUqVeK5554jMTHxgmu///57WrRoQVhYGKGhoTRs2JBJkyZl+bizZs3ixhtvJCIigiJFilCnTh2GDx/OsWPHPPwd5Z2BAwfSt29fwsLC7C7FY8aNG0fFihUJDg6mcePGLF++/KLXp6SkMHz4cKpUqUJwcDDR0dHMnTs30zXvv/8+derUITw8nPDwcJo0acKPP/6Y8fXAwED69+/P888/75HvKbd8PvjmaX9vbCzceSf07QudO0P6LyQtlyMiIpfptttu4+DBg+zcuZO33nqLDz74gGHDhmW6ZuzYsbRt25ZmzZrx559/sm7dOh544AGeeOIJ+vfvn+nawYMH07FjRxo2bMiPP/7Ihg0bGD16NGvXrmXKlCl59n0lJyd77LH37NnD999/z0MPPXRZj+PJGi/XjBkziImJYdiwYaxatYro6Ghat27N4cOHs73PkCFD+OCDDxg7diybNm3iiSeeoF27dqxO7w0Fypcvz2uvvcbKlStZsWIFLVu2pG3btmzcuDHjmi5durB48eJM52xn+Zi4uDgLsOLi4izLsqxHHrEssKwhQzz8xLNnW1bJkubJgoIsa+xYy3I6PfykIiKSU2fOnLE2bdpknTlzJuOc02lZp07Z8+HKPxHdu3e32rZtm+lc+/btrbp162Yc79mzxwoICLBiYmIuuP8777xjAdYff/xhWZZl/fnnnxZgjRkzJsvnO378eLa17N2713rggQesYsWKWaGhoVb9+vUzHjerOp9++mmrRYsWGcctWrSwevfubT399NPWFVdcYd14441Wp06drA4dOmS6X3JysnXFFVdYkydPtizLstLS0qwRI0ZYFStWtIKDg606depYM2fOzLZOy7KsUaNGWQ0aNMh07ujRo9YDDzxglS1b1goJCbFq1aplTZs2LdM1WdVoWZa1fv1667bbbrMKFy5slSpVynrwwQetI0eOZNzvxx9/tJo1a2ZFRERYxYsXt+68805r+/btF63xcjVq1Mjq3bt3xnFaWppVtmxZa+TIkdneJzIy0nr33XcznWvfvr3VpUuXiz5XsWLFrI8++ijTuZtuuskakk3IyupnLt35ec1dNOK7xnz22IhvQoLp323TBo4cMas3rFwJffpopFdEJJ9LSIAiRez5uJzN4zZs2MDSpUsJDAzMOPfll1+SkpJywcguwOOPP06RIkX4/PPPAZg6dSpFihShV69eWT5+0aJFszx/6tQpWrRowf79+/nuu+9Yu3Ytzz33HE6n06X6J0+eTGBgIEuWLGH8+PF06dKF2bNnc+rUqYxr5s2bR0JCAu3atQNg5MiRfPrpp4wfP56NGzfSr18/HnzwQRYtWpTt8/z+++80aNAg07nExETq16/PnDlz2LBhA4899hhdu3a9oD3g/BpPnDhBy5YtqVu3LitWrGDu3LkcOnSIDh06ZNzn9OnTxMTEsGLFChYsWICfnx/t2rW76J/PiBEjKFKkyEU/9uzZk+V9k5OTWblyJa1atco45+fnR6tWrVi2bFm2z5mUlETweRsbhISEsHjx4iyvT0tLY/r06Zw+fZomTZpk+lqjRo34/fffs32uvObTqzqkpMCGDea2R4LvwYNmPd4tW8xxTAyMGAFBQR54MhER8WXff/89RYoUITU1laSkJPz8/Hj33Xczvr5t2zYiIiKIjIy84L6BgYFUrlyZbdu2AfD3339TuXJlAgICXKph2rRpHDlyhL/++ovixYsDULVqVZe/l6uuuorXX38947hKlSoULlyYr7/+mq5du2Y81913301YWBhJSUmMGDGCn3/+OSN4Va5cmcWLF/PBBx/QokWLLJ/nn3/+uSD4litXLtN/Dvr27cu8efP44osvaNSoUbY1vvLKK9StW5cRI0ZknPvkk0+Iiopi27ZtVKtWjXvvvTfTc33yySeULFmSTZs2USubrWOfeOKJTOE5K2XLls3y/NGjR0lLS6N06dKZzpcuXZot6dkkC61bt+bNN9/khhtuoEqVKixYsICvvvqKtLS0TNetX7+eJk2akJiYSJEiRfj666+5+uqrL6jtn3/+uWj9ecmng+/WrZCUBOHhUKmSB56gdGmIjIS4OJg8GW65xQNPIiIinhIaCucMMub5c7vipptu4v333+f06dO89dZbFCpU6IKglVOWZeXqfmvWrKFu3boZoTe36tevn+m4UKFCdOjQgalTp9K1a1dOnz7Nt99+y/Tp0wHYvn07CQkJ3HLev7PJycnUvchqSWfOnLlgZDMtLY0RI0bwxRdfsH//fpKTk0lKSrpgN7/za1y7di2//vorRYoUueB5duzYQbVq1fj7778ZOnQof/75J0ePHs0Y6d2zZ0+2wbd48eKX/efpqrfffpuePXtSo0YNHA4HVapUoUePHnzyySeZrqtevTpr1qwhLi6OL7/8ku7du7No0aJM4TckJISEy3n7ws18OvimtzlER4PbNurZtw+KFze/sfz8zLq8AQF5tGSEiIi4k8MBhQvbXUXOFC5cOGN09ZNPPiE6OpqPP/6YRx55BIBq1aoRFxfHgQMHLhghTE5OZseOHdx0000Z1y5evJiUlBSXRn1DQkIu+nU/P78LQnVKSkqW38v5unTpQosWLTh8+DDz588nJCSE2267DSCjBWLOnDmUK1cu0/2CLvIua4kSJTh+/Himc6NGjeLtt99mzJgx1K5dm8KFC/PMM89cMIHt/BpPnTpFmzZt+L//+78Lnid9lL1NmzZceeWVTJgwgbJly+J0OqlVq9ZFJ8eNGDEi0yhyVjZt2kSFChWy/P78/f05dOhQpvOHDh2iTJky2T5eyZIl+eabb0hMTOTff/+lbNmyDBgwgMqVK2e6LjAwMOPvXP369fnrr794++23+eCDDzKuOXbsGCVLlrxo/XnJp3t83d7fO3Om6eE9t38qMlKhV0RE8pSfnx+DBg1iyJAhnDlzBoB7772XgIAARo8efcH148eP5/Tp03Tq1AmAzp07c+rUKd57770sH//EiRNZnq9Tpw5r1qzJdrmzkiVLcvDgwUzn1py7vOdFNG3alKioKGbMmMHUqVO5//77M0L51VdfTVBQEHv27KFq1aqZPqKiorJ9zLp167Jp06ZM55YsWULbtm158MEHiY6OztQCcjH16tVj48aNVKxY8YIaChcuzL///svWrVsZMmQIN998MzVr1rwgdGfliSeeYM2aNRf9yK7VITAwkPr167NgwYKMc06nkwULFlzQi5uV4OBgypUrR2pqKrNmzaJt27YXvd7pdJKUlJTp3IYNGy466p7XfDr4um3HtpMn4eGHoUMHOH7cTF777xeNiIiIHe6//378/f0ZN24cABUqVOD1119nzJgxDB48mC1btrBjxw7efPNNnnvuOZ599lkaN24MQOPGjTPOPffccyxbtox//vmHBQsWcP/99zN58uQsn7NTp06UKVOGe+65hyVLlrBz505mzZqVMZGqZcuWrFixgk8//ZS///6bYcOGsSF9sk0OdO7cmfHjxzN//ny6dOmScT4sLIz+/fvTr18/Jk+ezI4dO1i1ahVjx47NtlYwvazLli3L1Lt61VVXMX/+fJYuXcrmzZt5/PHHLxgxzUrv3r05duwYnTp14q+//mLHjh3MmzePHj16kJaWRrFixbjiiiv48MMP2b59O7/88gsxMTGXfNzixYtfEKTP/yhUKPs38GNiYpgwYQKTJ09m8+bNPPnkk5w+fZoePXpkXNOtWzcGDhyYcfznn3/y1VdfsXPnTn7//Xduu+02nE4nzz33XMY1AwcO5LfffmP37t2sX7+egQMHsnDhwkyvC5gJhLfeeuslv88849Y1IgqA9OUxTpyIs4oXN6uLrVx5GQ+4bJllValiHsjhsKzBgy0rOdlt9YqISN642NJK+V1Wy4RZlmWNHDnSKlmypHXq1KmMc99++63VvHlzq3DhwlZwcLBVv35965NPPsnycWfMmGHdcMMNVlhYmFW4cGGrTp061vDhwy+6nNnu3bute++91woPD7dCQ0OtBg0a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v78/UVFRPPbYYxw7dsylx1FIFxFPKGR3ASIi7nTbbbcxceLETOdKlixpUzWZhYeHs3XrVpxOJ2vXrqVHjx4cOHCAefPmXfZjlylT5pLXREREXPbz5MQ111zDzz//TFpaGps3b+bhhx8mLi6OGTNm5Mnzi4hkRyO+IuJVgoKCKFOmTKYPf39/3nzzTWrXrk3hwoWJioqiV69enDp1KtvHWbt2LTfddBNhYWGEh4dTv359VqxYkfH1xYsX07x5c0JCQoiKiuKpp57i9OnTF63N4XBQpkwZypYty+23385TTz3Fzz//zJkzZ3A6nQwfPpzy5csTFBTEtddey9y5czPum5ycTJ8+fYiMjCQ4OJgrr7ySkSNHZnrs9FaHSpUqAVC3bl0cDgc33ngjkHkU9cMPP6Rs2bI4nc5MNbZt25aHH3444/jbb7+lXr16BAcHU7lyZV566SVSU1Mv+n0WKlSIMmXKUK5cOVq1asX999/P/PnzM76elpbGI488QqVKlQgJCaF69eq8/fbbGV9/8cUXmTx5Mt9++23G6PHChQsB2Lt3Lx06dKBo0aIUL16ctm3bsnv37ovWIyKSTsFXRHyCn58f77zzDhs3bmTy5Mn88ssvPPfcc9le36VLF8qXL89ff/3FypUrGTBgAAEBAQDs2LGD2267jXvvvZd169YxY8YMFi9eTJ8+fVyqKSQkBKfTSWpqKm+//TajR4/mjTfeYN26dbRu3Zq7776bv//+G4B33nmH7777ji+++IKtW7cydepUKlasmOXjLl++HICff/6ZgwcP8tVXX11wzf3338+///7Lr7/+mnHu2LFjzJ07ly5dugDw+++/061bN55++mk2bdrEBx98wKRJk3j11Vdz/D3u3r2befPmERgYmHHO6XRSvnx5Zs6cyaZNmxg6dCiDBg3iiy++AKB///506NCB2267jYMHD3Lw4EGaNm1KSkoKrVu3JiwsjN9//50lS5ZQpEgRbrvtNpKTk3Nck4j4MEtExEt0797d8vf3twoXLpzxcd9992V57cyZM60rrrgi43jixIlWRERExnFYWJg1adKkLO/7yCOPWI899limc7///rvl5+dnnTlzJsv7nP/427Zts6pVq2Y1aNDAsizLKlu2rPXqq69muk/Dhg2tXr16WZZlWX379rVatmxpOZ3OLB8fsL7++mvLsixr165dFmCtXr060zXdu3e32rZtm3Hctm1b6+GHH844/uCDD6yyZctaaWlplmVZ1s0332yNGDEi02NMmTLFioyMzLIGy7KsYcOGWX5+flbhwoWt4OBgC7AA680338z2PpZlWb1797buvffebGtNf+7q1atn+jNISkqyQkJCrHnz5l308UVELMuy1OMrIl7lpptu4v333884Lly4MGBGP0eOHMmWLVuIj48nNTWVxMREEhISCA0NveBxYmJiePTRR5kyZUrG2/VVqlQBTBvEunXrmDp1asb1lmXhdDrZtWsXNWvWzLK2uLg4ihQpgtPpJDExkeuvv56PPvqI+Ph4Dhw4QLNmzTJd36xZM9auXQuYNoVbbrmF6tWrc9ttt3HXXXdx6623XtafVZcuXejZsyfvvfceQUFBTJ06lQceeAA/P7+M73PJkiWZRnjT0tIu+ucGUL16db777jsSExP57LPPWLNmDX379s10zbhx4/jkk0/Ys2cPZ86cITk5mWuvvfai9a5du5bt27cTFhaW6XxiYiI7duzIxZ+AiPgaBV8R8SqFCxematWqmc7t3r2bu+66iyeffJJXX32V4sWLs3jxYh555BGSk5OzDHAvvvginTt3Zs6cOfz4448MGzaM6dOn065dO06dOsXjjz/OU089dcH9KlSokG1tYWFhrFq1Cj8/PyIjIwkJCQEgPj7+kt9XvXr12LVrFz/++CM///wzHTp0oFWrVnz55ZeXvG922rRpg2VZzJkzh4YNG/L777/z1ltvZXz91KlTvPTSS7Rv3/6C+wYHB2f7uIGBgRmvwWuvvcadd97JSy+9xMsvvwzA9OnT6d+/P6NHj6ZJkyaEhYUxatQo/vzzz4vWe+rUKerXr5/pPxzp8ssERhHJ3xR8RcTrrVy5EqfTyejRozNGM9P7SS+mWrVqVKtWjX79+tGpUycmTpxIu3btqFevHps2bbogYF+Kn59flvcJDw+nbNmyLFmyhBYtWmScX7JkCY0aNcp0XceOHenYsSP33Xcft912G8eOHaN48eKZHi+9nzYtLe2i9QQHB9O+fXumTp3K9u3bqV69OvXq1cv4er169di6davL3+f5hgwZQsuWLXnyySczvs+mTZvSq1evjGvOH7ENDAy8oP569eoxY8YMSpUqRXh4+GXVJCK+SZPbRMTrVa1alZSUFMaOHcvOnTuZMmUK48ePz/b6M2fO0KdPHxYuXMg///zDkiVL+OuvvzJaGJ5//nmWLl1Knz59WLNmDX///Tfffvuty5PbzvW///2P//u//2PGjBls3bqVAQMGsGbNGp5++mkA3nzzTT7//HO2bNnCtm3bmDlzJmXKlMly041SpUoREhLC3LlzOXToEHFxcdk+b5cuXZgzZw6ffPJJxqS2dEOHDuXTTz/lpZdeYuPGjWzevJnp06czZMgQl763Jk2aUKdOHUaMGAHAVVddxYoVK5g3bx7btm3jhRde4K+//sp0n4oVK7Ju3Tq2bt3K0aNHSUlJoUuXLpQoUYK2bdvy+++/s2vXLhYuXMhTTz3Fvn37XKpJRHyTgq+IeL3o6GjefPNN/u///o9atWoxderUTEuBnc/f359///2Xbt26Ua1aNTp06MDtt9/OSy+9BECdOnVYtGgR27Zto3nz5tStW5ehQ4dStmzZXNf41FNPERMTw7PPPkvt2rWZO3cu3333HVdddRVg2iRef/11GjRoQMOGDdm9ezc//PBDxgj2uQoVKsQ777zDBx98QNmyZWnbtm22z9uyZUuKFy/O1q1b6dy5c6avtW7dmu+//56ffvqJhg0bct111/HWW29x5ZVXuvz99evXj48++oi9e/fy+OOP0759ezp27Ejjxo35999/M43+AvTs2ZPq1avToEEDSpYsyZIlSwgNDeW3336jQoUKtG/fnpo1a/LII4+QmJioEWARyRGHZVmW3UWIiIiIiHiaRnxFRERExCco+IqIiIiIT1DwFRERERGfoOArIiIiIj5BwVdEREREfIKCr4iIiIj4BAVfEREREfEJCr4iIiIi4hMUfEVERETEJyj4ioiIiIhPUPAVEREREZ/w/7/yuqFO2vEIAAAAAElFTkSuQmCC", + "text/plain": [ + "<Figure size 800x600 with 1 Axes>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from sklearn.metrics import roc_curve, auc\n", + "# Calculate the false positive rate (FPR), true positive rate (TPR), and thresholds\n", + "fpr, tpr, thresholds = roc_curve(y_test, y_proba)\n", + "\n", + "# Calculate the area under the ROC curve (AUC)\n", + "roc_auc = auc(fpr, tpr)\n", + "\n", + "# Plot the ROC curve\n", + "plt.figure(figsize=(8, 6))\n", + "plt.plot(fpr, tpr, color='blue', label='ROC curve (area = %0.2f)' % roc_auc)\n", + "plt.plot([0, 1], [0, 1], color='red', linestyle='--')\n", + "plt.xlim([0.0, 1.0])\n", + "plt.ylim([0.0, 1.05])\n", + "plt.xlabel('False Positive Rate')\n", + "plt.ylabel('True Positive Rate')\n", + "plt.title('SVM-Lin')\n", + "plt.legend(loc='lower right')\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 57, + "id": "6b5692ba", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAr4AAAIjCAYAAADlfxjoAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAACKnUlEQVR4nOzde3zO9f/H8cc2O2JDmNM0lCjnY6KUZCihfhFCKpVTIpVT5qySUg4p5ZBI6UiKRCqHDo4hh5xCmUPYMDbb9f798f66tDZsXNtn2/W8327Xbdfns8/ncz13XTu89r7eBx9jjEFEREREJJfzdTqAiIiIiEhWUOErIiIiIl5Bha+IiIiIeAUVviIiIiLiFVT4ioiIiIhXUOErIiIiIl5Bha+IiIiIeAUVviIiIiLiFVT4ioiIiIhXUOErIiKX9ccff9CkSRPCwsLw8fHh888/dzrSVZkxYwY+Pj7s3bs3w+cuX74cHx8fli9f7vFcIpK5VPiKeMhDDz1EUFAQO3bsSPW5F198ER8fH7788ssU+xMSEpgwYQINGjSgYMGCBAQEUKJECe69914++OADkpOT3cfu3bsXHx+fFLfQ0FCqVavGxIkTUxzrlMmTJzNjxoxMuXZkZGSKrz1v3rzUqVOH995776Ln7Nu3jyeffJLIyEgCAwMpWrQorVq1YuXKlRc959ChQ/Tr148KFSoQEhJC3rx5qVmzJiNHjuTEiRPpyrphwwYeeughIiIiCAwMpFChQjRu3Jjp06dni9fpSnTu3JlNmzYxatQoZs2aRa1atTLlcW6//fZU3+dp3YYOHZopj5/dnS/Yz9+CgoIoUaIEUVFRvPHGG5w8efKKr71q1SqGDh2a7u9zkZzIxxhjnA4hkhscPnyYChUqUK1aNZYtW+bev2fPHm666SaaN2/Oxx9/7N5/5MgRmjVrxtq1a4mKiuKuu+6iUKFCxMTE8O2337Js2TKGDx/OCy+8ANjCt0yZMrRr147mzZsDEBsby1dffcVXX31Fv379GDt2bNZ+0f9RqVIlChcunCktYZGRkRQsWJBnnnkGgIMHD/LOO++wY8cO3n77bbp27Zri+JUrV7qfp8cee4wbb7yRmJgYZsyYwa5du3j99dfp1atXinN+/fVXmjdvzqlTp3jooYeoWbMmAGvWrGHu3LnccsstfPPNN5fM+c477/Dkk08SHh5Ox44duf766zl58iRLly5l4cKFjBw5koEDB3rqackSZ86cISQkhEGDBjFy5MhMfawlS5Zw6NAh9/avv/7KG2+8wcCBA6lYsaJ7f5UqVahSpcoVP05ycjLnzp0jMDAQHx+fDJ3rcrlITEwkICAAX9+sbT+aMWMGXbp0Yfjw4ZQpU4Zz584RExPD8uXLWbJkCaVLl2b+/PlX9Ny88sorPPvss+zZs4fIyEjPhxfJDoyIeMzbb79tADNjxgz3vqZNm5rQ0FBz4MCBFMdGRUUZX19f88knn6R5rV9//dW8//777u09e/YYwIwdOzbFcS6Xy9SuXduUKFHCg1/JlbnppptMw4YNM+Xa1157rbn77rtT7Dt8+LDJly+fqVixYor9x44dM8WKFTPh4eFm586dKT4XHx9vbr31VuPr62tWrlzp3n/8+HFTsmRJEx4ebrZu3Zrq8WNiYsyIESMumXH16tXGz8/PNGjQwMTFxaX6/K+//mqmT59+uS81XU6dOuWR66THn3/+meb33tVIb/558+YZwHz33XceuV5ON336dAOYX3/9NdXnli5daoKDg821115r4uPjM3ztsWPHGsDs2bPHA0lFsicVviIe5HK5TP369U3hwoXN0aNHzQcffGAA88Ybb6Q4btWqVQYwTz75ZLqvfbHC1xhj7rnnHlO6dOlU+ydNmmRuvPFGExAQYIoXL266d+9ujh8/nuq4jz76yNSoUcMEBQWZa665xnTo0CFVoX7w4EHz8MMPm5IlS5qAgABTrFgxc++997r/SF577bUGSHHzZBGcVuFrjDG1atUyAQEBKfaNGTPGAOa9995L81q7d+82fn5+Jioqyr3vxRdfNICZPXv2FWds2rSpyZMnj/nzzz8ve+x3332XZkF3/nX+d4HcuXNnkzdvXrNz507TrFkzky9fPtOyZUvTo0cPkzdvXnP69OlU13/wwQdNeHi4SUpKcu/76quvTIMGDUxISIjJly+fad68udm8efMlc0ZHR6d6Xa+99lr359etW2eaNm1q8ufPb/LmzWsaNWpkVq9eneIa54u15cuXm27dupkiRYqYAgUKXPY5Mibtwvd8pi1btph27dqZAgUKmGrVqhljjNm4caPp3LmzKVOmjAkMDDTh4eGmS5cu5ujRo2lm+neRd/577McffzS1a9c2gYGBpkyZMmbmzJkpzk3rtWvYsKG5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Gymu8+677xIbG8vdd98NQK1atShatChTpkwhISHBfdzXX3/N1q1b3cfFx8dz9uzZFI9Zrlw58ufPn+K8vHnzpnvVp/r166covq60OHn++ef5559/mDp1qnvfE088QdGiRXn22WdT9c08e/YsXbp0wRjDkCFD3PuffPJJihcvzjPPPJPm6nuHDx++7OIN0dHRGGPo2LFjml031q5dy8yZMwFbAPn5+fHDDz+kOGby5MmX/6L/o23btiQkJDBz5kwWLVqUajaLqKgoQkNDGT16NOfOnUt1/pEjRzL8mH5+fjRp0oQvvvgixbK/hw4dYs6cOTRo0MDd/SOrnG9x/e/Pzvjx47M0x6VERUXx119/ubumgP2e/Pf375VatmwZI0aMoEyZMnTo0AHI2HOSN29eIPU/Y2ldIzY2lunTp191ZpGspq4OIh4yePBg/v77bz799NMUb3n26NGDmTNn8vTTT9O0aVN337v333+fpk2b0qpVK5o1a0bjxo0pWLCge+W2H374wT0F0r+tW7eO999/H8C9Itgnn3zCLbfcQpMmTQDbGjdgwACGDRtG06ZNuffee9m+fTuTJ0+mdu3a7gE4/v7+vPTSS3Tp0oWGDRvSrl0793RmkZGR9OnTB4AdO3Zw55130qZNG2688Uby5MnDZ599xqFDh3jwwQfd2WrWrMmbb77JyJEjue666yhatCiNGjXKnCf8f5o1a0alSpV49dVX6dGjB/7+/lxzzTV8/PHH3H333dSoUSPVym07d+7k9ddf55ZbbnFfp2DBgnz22Wc0b96catWqpVi5bd26dXzwwQfUq1fvklluueUWJk2aRPfu3alQoUKKlduWL1/O/Pnz3cVzWFgYDzzwABMmTMDHx4dy5crx5ZdfXlF/2xo1anDdddcxaNAgEhISUnRzANv/+M0336Rjx47UqFGDBx98kCJFirBv3z4WLlxI/fr1mThxYoYfd+TIkSxZsoQGDRrQvXt38uTJw1tvvUVCQkKafdszW2hoqLv/+blz5yhZsiTffPMNe/bsyfIsF/PEE08wceJE2rVrR+/evSlevDizZ892Dy5N77smX3/9Ndu2bSMpKYlDhw6xbNkylixZwrXXXsv8+fPd18vIc3L++33QoEE8+OCD+Pv706JFC5o0aUJAQAAtWrTgiSee4NSpU0ydOpWiRYty8OBBDz0zIlnEqekkRHKTNWvWGD8/P9OzZ880P//LL78YX19f89RTT6XYf+bMGTN+/HhTr149ExoaavLkyWOKFStm7rnnHjN79uwUUz+lNZ1Znjx5TNmyZc2zzz5rTp48mepxJ06caCpUqGD8/f1NeHi46datW5oLWHz44YemevXqJjAw0BQqVCjVAhZHjx41PXr0MBUqVDB58+Y1YWFhpm7duuajjz5KcZ2YmBhz9913m/z582fZAhbGGDNjxoxUU4AZY5+zrl27mtKlSxt/f39TuHBhc++995off/zxoo/z999/mz59+pjy5cuboKAgExISYmrWrGlGjRplYmNj05V17dq1pn379qZEiRLG39/fFCxY0Nx5551m5syZKaaXO3LkiLn//vtNSEiIKViwoHniiSfM5s2bL7qAxaUMGjTIAOa666676DHfffediYqKMmFhYSYoKMiUK1fOPPzww2bNmjWXvPalFk9Zt26diYqKMvny5TMhISHmjjvuMKtWrUpxTHqm4LqYS01nduTIkVTHHzhwwLRu3doUKFDAhIWFmQceeMD8/fffBjDR0dGpMqW1gMV/NWzYMMX38qUWsPivzp07p1jwwxi7gMrdd99tgoODTZEiRcwzzzxjPvnkEwOYn3766ZLPx/nc52/nF5O56667zOuvv57mioHpfU6MMWbEiBGmZMmSxtfXN8XzM3/+fFOlShUTFBRkIiMjzUsvvWSmTZumld4kx/ExJgt73YuIiEgq48ePp0+fPhw4cICSJUs6HUck11LhKyIikoXOrxZ43tmzZ6levTrJyclp9i8XEc9RH18REZEsdN9991G6dGmqVatGbGws77//Ptu2bfPYLC8icnEqfEVERLJQVFQU77zzDrNnzyY5OZkbb7yRuXPnphqUKCKep64OIiIiIuIVNI+viIiIiHgFFb4iIiIi4hW8ro+vy+Xi77//Jn/+/BlaXlVEREREsoYxhpMnT1KiRAl8fT3XTut1he/ff/+d5evHi4iIiEjG7d+/n1KlSnnsel5X+J5fLnb//v1Zvo68iIiIiFxeXFwcERER7rrNU7yu8D3fvSE0NFSFr4iIiEg25uluqRrcJiIiIiJeQYWviIiIiHgFFb4iIiIi4hVU+IqIiIiIV1DhKyIiIiJeQYWviIiIiHgFFb4iIiIi4hVU+IqIiIiIV1DhKyIiIiJeQYWviIiIiHgFFb4i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eL34eDs/N8DgwXZlRhERkRztxAnbstuypZ2gHiBfPq8uekEtviK8+aadxSUyEh55xOk0IiIiV+mHH6BjR9i3D/z84NdfoW5dp1NlC2rxFa928iS8+KK9P2QIBAQ4m0dEROSKJSbagSq3326L3nLl7IwNKnrd1OIrXm3CBDh6FK6/3v5zLCIikiNt3w4dOsDatXb7kUdg/HjIn9/RWNmNCl/xWidOwNix9v7QoZBHPw0iIpITGWP7865bZ5ccnTrVLj0sqairg3itV1+1xe9NN0Hbtk6nERERuUI+PvD229C0Kfz2m4reS1DhK17p6FH7DhDYubz9/ByNIyIikjHffGNbds+rWRO+/hpKlXIuUw6gwle80tixdmBb9erQurXTaURERNLp7Fno08fOx9uzp23hlXRTr0bxOjExdlAb2NXafHyczSMiIpIumzfbvrybNtntxx6D665zNlMOoxZf8TovvghnzsDNN0Pz5k6nERERuQxjbItNrVq26C1SBBYsgEmTICTE6XQ5ilp8xascOGAXrAC19oqISA5gjO2T98UXdrtZM5g+HcLDnc2VQ6nFV7zKqFF2fu+GDeHOO51OIyIichk+PlC/PgQF2VbfhQtV9F4FH2OMcTpEVoqLiyMsLIzY2FhCQ0OdjiNZaM8eKF8ekpLsao633up0IhERkTTEx9sBKWXL2m2XC3bv9qr+vJlVr6nFV7zG8OG26G3SREWviIhkU+vW2anJ7r7bFsAAvr5eVfRmJhW+4hV27ID33rP3R4xwNouIiEgqLhe8/LIdeb1tG8TG2lZe8SgNbhOvMHSo/Z3SogXUqeN0GhERkX85cAA6dYLvvrPbrVvbxSmuucbZXLmQWnwl19u8GebOtfeHD3c2i4iISArz5kGVKrboDQmxBe8nn6jozSRq8ZVcLzrazgbzf/8H1ao5nUZEROR/jIG334bjx+0cvbNn21HYkmnU4iu52rp18OmndjaYYcOcTiMiIoIteMH+cZoxw/6BWrVKRW8WUOErudqQIfZjhw5w443OZhERES+XlGT73PXqdWFfyZL2j5W/v3O5vIi6OkiutXq1nefbz892dxAREXHMnj3w0EO2ZRegc2eoXdvZTF5ILb6Sa73wgv348MOa/lBERBxiDLz/PlStaove0FC7raLXEWrxlVxp+XJYutS+c3S+ABYREclSJ05At24XphaqX98WvZGRTqbyaip8Jdcx5kKx27UrXHuts3lERMQLGQN33mlHWfv52Qnl+/eHPCq9nKSuDpLrLFkCK1ZAUBAMGuR0GhER8Uo+PrYV5rrrYOVKGDxYRW82oMJXchVj7O8WsO8ulSjhbB4REfEiO3bYfnbntWplV1GqW9exSJKSCl/JVRYsgF9/tYvf9O/vdBoREfEKxtgV16pXhzZt4O+/L3wuMNC5XJKK2twl13C5Lszb27s3FC3qbB4REfECR4/aASWff263b77Z0ThyaWrxlVzjk09g40Y7U0y/fk6nERGRXG/JEqhSxRa9/v4wdqzdp3522ZZafCVXSE6+sEhF375QqJCzeUREJBczxrawvPqq3a5YEWbPtl0dJFtTi6/kCh98AFu3QsGC8PTTTqcREZFczccHTp+297t3hzVrVPTmEGrxlRzv3Dk7PSLAc89BWJijcUREJDcyBk6etP3pAMaNg/vugyZNnM0lGaIWX8nx3nsPdu2yg9l69XI6jYiI5DoxMXD33bbQdbnsvrx5VfTmQGrxlRwtIQGGD7f3+/e3v4dEREQ85ssv4ZFH4MgRuzLSxo3q1pCDqcVXcrR33oF9++wA2iefdDqNiIjkGvHxtv9uixa26K1SRX15cwEVvpJjnTkDo0bZ+4MHQ3Cws3lERCSXWLcOataEN9+02337wi+/wE03OZtLrpq6OkiO9eabcPAgXHstPPqo02lERCRXcLls14Zt26B4cZg5E+66y+lU4iFq8ZUc6dQpePFFe3/IEAgIcDaPiIjkEr6+MH26XXp40yYVvbmMCl/JkSZMsF2urrsOOnVyOo2IiORoH38MkyZd2K5eHT78EK65xrlMkinU1UFynNhYuyok2Pl78+i7WERErsTJk9C7t23h9feH226DypWdTiWZSCWD5DivvQbHj8ONN8KDDzqdRkREcqSffoKHHrITwfv4wLPPQoUKTqeSTKbCV3KUf/65sDT6sGHg5+dsHhERyWGSkmD0aDsJfHIylC4Ns2bZ1l7J9VT4So4ydqx9Z6paNbuAjoiISLq5XHa1te++s9vt2sHkyVCggKOxJOtocJvkGIcO2UFtYP9R99V3r4iIZISvL9xzD4SGwvvvw5w5Knq9jEoHyTFefNEupFOnjv29JSIiclknTsD27Re2n34afv8dOnRwKpE4SIWv5Ah//XVhAZ2RI+04BBERkUv64QeoWhVatoTTp+0+X18oWdLZXOIYFb6SI4waBQkJcOut0Lix02lERCRbO3cOBg2C22+HffvsgLa//nI6lWQDKnwl29u7F955x95Xa6+IiFzSjh1wyy125gZj7PLD69dD+fJOJ5NsQIWvZHsjRth/3u+6S7PNiIjIRRgDU6faVdfWrIGCBWHePHj3Xcif3+l0kk1oOjPJ1v74A2bOtPdHjHA2i4iIZGPG2KWH4+OhUSP7x6NUKadTSTajwleytWHD7Pzi99wDdes6nUZERLIdY2wfOF9fmDEDPvwQnnpKc15KmnyMMcbpEFkpLi6OsLAwYmNjCQ0NdTqOXMKWLXbJdGNg3Tr77pWIiAgAZ8/CgAF2toa333Y6jXhYZtVrjv87NGnSJCIjIwkKCqJu3br88ssvlzx+/Pjx3HDDDQQHBxMREUGfPn04e/ZsFqWVrBQdbYve++9X0SsiIv+yebOd1H38eNuvd8MGpxNJDuFo4fvhhx/St29foqOjWbduHVWrViUqKorDhw+nefycOXPo378/0dHRbN26lXfffZcPP/yQgQMHZnFyyWzr18Mnn9h3r4YNczqNiIhkC8bYJTxr1YJNm6BIEViwwK5jL5IOjha+r776Kl27dqVLly7ceOONTJkyhZCQEKZNm5bm8atWraJ+/fq0b9+eyMhImjRpQrt27S7bSiw5z5Ah9mO7dnDTTc5mERGRbCAmBpo3t/13ExKgWTNb/GopT8kAxwrfxMRE1q5dS+N/rUbg6+tL48aNWb16dZrn3HLLLaxdu9Zd6O7evZuvvvqK5s2bX/RxEhISiIuLS3GT7O2nn+DLL8HPz3Z3EBERL+dy2dWLFi2CoCDb6rtwIYSHO51MchjHCt+jR4+SnJxM+H++acPDw4mJiUnznPbt2zN8+HAaNGiAv78/5cqV4/bbb79kV4cxY8YQFhbmvkVERHj06xDPO9/a26mT5hsXERHsDA1jxtjlh9esgZ49tZqRXBHHB7dlxPLlyxk9ejSTJ09m3bp1fPrppyxcuJARl5jgdcCAAcTGxrpv+/fvz8LEklE//ABLloC//4UCWEREvNC6dbaF97wWLWDtWvV/k6vi2Dy+hQsXxs/Pj0OHDqXYf+jQIYoVK5bmOS+88AIdO3bkscceA6By5cqcPn2axx9/nEGDBuGbxpx9gYGBBAYGev4LEI8zBgYPtvcfewwiIx2NIyIiTnC54JVX7B+EfPngt98uLETh5+dsNsnxHGvxDQgIoGbNmixdutS9z+VysXTpUurVq5fmOfHx8amKW7///RB42XTEudK338KPP0JgIAwa5HQaERHJcvv32768zz9v16q//XYIDnY6leQijq7c1rdvXzp37kytWrWoU6cO48eP5/Tp03Tp0gWATp06UbJkScaMGQNAixYtePXVV6levTp169Zl586dvPDCC7Ro0cJdAEvO9O/W3m7doGRJZ/OIiEgWmzcPnngCjh+HkBB44w145BH15RWPcrTwbdu2LUeOHGHIkCHExMRQrVo1Fi1a5B7wtm/fvhQtvIMHD8bHx4fBgwfz119/UaRIEVq0aMGoUaOc+hLEQxYuhF9+sb/r+vd3Oo2IiGQZl8v2b5s+3W7Xrg2zZ8P11zubS3IlLVksjnO5oGZNu/DO88/Diy86nUhERLJUjx4wZYpdgjg62o5wFq+WWfWaCl9x3McfwwMPQP78sGcPXHON04lERCRTJSVBXBwUKmS34+Nh40a4yBgf8T6ZVa/lqOnMJPdJTr6wSEWfPip6RURyvT17oGFDuO8++0cAbD83Fb2SBVT4iqPmzoXff4eCBW3hKyIiuZQxMGuWXYRi1SpYvx62bnU6lXgZFb7imKQkGDrU3n/2WShQwMk0IiKSaU6cgPbt7ZKcJ09C/fq2a0OlSk4nEy+jwlcc8957sHMnFCkCvXo5nUZERDLF999DlSr2LT4/PxgxApYv1ypF4ghHpzMT75WYCMOH2/v9+9vFeUREJJdxueCpp+zCFOXK2WnK6tZ1OpV4MbX4iiPefRf+/BOKF7cLVoiISC7k62vf3uva1c5ZqaJXHKYWX8lyZ87AyJH2/qBBWo1SRCTXMAbeeQdOnbowYrlqVXj7bWdzifyPCl/Jcm+9BX//DaVL28V6REQkFzh61Lbsfv455MkDTZrATTc5nUokBRW+kqVOnYIxY+z9F16AwEBn84iIiAd88w08/DAcPGhXXRszBipWdDqVSCoqfCVLTZwIhw/bMQ6dOzudRkRErsrZs3aZ4fHj7XbFijBnDlSr5mQqkYtS4StZJjYWXn7Z3h86VEuxi4jkaMnJcNtt8OuvdrtHD/tLPiTE2Vwil6DCV7LM+PFw/LhtEGjXzuk0IiJyVfz8oEMH2LsXpk2De+5xOpHIZfkYY4zTIbJSXFwcYWFhxMbGEhoa6nQcr3HsGJQpA3Fx8NFH8MADTicSEZEMi4mxg9jOr7jmctlf8IULO5tLcp3Mqtc0j69kiVdesUVvlSpw//1OpxERkQxbsAAqV4bWre1IZbDz9KrolRxEha9kusOH4fXX7f0RI+zvSRERySHi46F7d7j3XtvaGxJiP4rkQCpBJNO99JL9vVm7NrRo4XQaERFJt3XroGZNePNNu/3MM/DLLxAZ6WgskSulwlcy1V9/weTJ9v6IEeDj42weERFJB5fLztBw882wbZtdX37JEttvTROwSw6mwlcy1ejRdprHBg3sIj4iIpID+PjAd9/BuXO2T++mTdC4sdOpRK6apjOTTPPnnzB1qr2v1l4RkRwgKckuN+zjA9Onw6JFdrUh/QKXXEItvpJpRoywjQV33gm33+50GhERuaiTJ6FLF3j88Qv7ihWzyxCr6JVcRIWvZIqdO2HGDHt/xAhHo4iIyKX89JNdYnjGDJg5E7ZscTqRSKZR4SuZYtgwu5pl8+ZQr57TaUREJJWkJBg+3A7C2L0bSpeG5cvhppucTiaSadTHVzzu999h9mx7f/hwZ7OIiEga9uyBhx6CVavsdrt2dgqeAgUcjSWS2VT4iscNHQrGwH332ekfRUQkG0lOhqgo+OMPCA21BW+HDk6nEskS6uogHrVhA8ybZ8dCDBvmdBoREUnFzw/Gj7ddHDZuVNErXkUtvuJRQ4bYjw8+CJUqOZtFRET+54cfIDb2wvKZzZtDs2aasUG8jlp8xWN++QUWLABfX4iOdjqNiIiQmAgDB9o5JTt1gv37L3xORa94IbX4ise88IL92KkT3HCDs1lERLze9u22G8PatXb7vvs0eE28nlp8xSN+/BG++cYu+HO+u4OIiDjAGLtsZo0atugtWBA+/hjefRfy53c6nYij1OIrV80YGDzY3n/0UShTxtk8IiJeKzkZHngAPvvMbjdqZBelKFXK2Vwi2YRafOWqLV1qx00EBl4ogEVExAF+fhARAf7+MHYsLFmiolfkX9TiK1fFmAt9e594Qr9fRUSy3NmzEBcHRYva7RdftG+/VanibC6RbEgtvnJVvvrKLvMeHAwDBjidRkTEy2zZAnXr2u4Nycl2X3Cwil6Ri1DhK1fs3629vXpBsWLO5hER8RrGwIQJdnnM336DrVth1y6nU4lkeyp85Yp99hmsXw/58sGzzzqdRkTES8TE2AUonnoKEhLsQhSbNkH58k4nE8n2VPjKFUlOvjBtWZ8+ULiws3lERLzCggVQuTIsWgRBQbbVd+FCCA93OplIjqDBbXJFPvrIdi0rUAD69nU6jYiIF0hKgkGD4OhR24d3zhy46SanU4nkKGrxlQxLSrqwJHG/floISEQkS+TJA7Nn275lv/yiolfkCqjFVzJs1iz44w/bveGpp5xOIyKSS7lcMG6c/fj883Zf5crw8svO5hLJwVT4SoYkJsLw4fb+889r9UsRkUxx4AB07gzLltlFKVq2hAoVnE4lkuOpq4NkyLRpsHevnbqse3en04iI5ELz5tk+vMuWQUgITJkCN9zgdCqRXEEtvpJuZ8/CyJH2/qBB9vexiIh4yMmT0Ls3TJ9ut2vVsn16NU2ZiMeo8JV0e+st+Osvuwx8165OpxERyUWSkuCWW2DzZvDxgYED7Shif3+nk4nkKurqIOly+jSMHm3vv/ACBAY6m0dEJFfJkwcefxxKl4bvv7dvr6noFfE4Fb6SLpMmweHDULYsPPyw02lERHKBPXtgw4YL2z172hXYbr3VsUgiuZ0KX7msuDh46SV7X++8iYhcJWPg/fehalW4/37btxdsF4fQUGezieRyKnzlssaPh2PH7Ew6HTo4nUZEJAc7cQLat4eOHW3BW7z4hcJXRDKdCl+5pGPH7PzpAEOH2ukkRUTkCvzwg23lnTvX/jIdMQKWL4cSJZxOJuI1NKuDXNK4cbarQ+XK8MADTqcREcmBkpJgyBB48UXbzaFcOTtNWd26TicT8Tpq8ZWLOnIEXn/d3h8xAnz13SIiknF+frBxoy16H3kE1q9X0SviELX4ykW99JKdxqxWLbj3XqfTiIjkIMbYNd4DA+2gtenTYcUKuO8+p5OJeDW14Uma/v7bTmEGtrXXx8fZPCIiOcY//9jZGh5//MK+okVV9IpkA1dV+J49e9ZTOSSbGTPGLlF8yy0QFeV0GhGRHGLJEjso4rPP4IMPYMcOpxOJyL9kuPB1uVyMGDGCkiVLki9fPnbv3g3ACy+8wLvvvuvxgJL1/vzTLk8MdvEgtfaKiFzG2bPQty80aQIHD0LFivDzz1C+vNPJRORfMlz4jhw5khkzZvDyyy8TEBDg3l+pUiXeeecdj4YTZ4wcCefOQaNGcMcdTqcREcnmtmyxg9Vee81ud+8Oa9ZA9erO5hKRVDJc+L733nu8/fbbdOjQAb9/TepatWpVtm3b5tFwkvV27rRjMMD27RURkUtISoJ77oHffoMiRWDBAjtAIiTE6WQikoYMF75//fUX1113Xar9LpeLc+fOeSSUOGf4cEhOhmbNbP9eERG5hDx54M03oXlz2LTJFsEikm1luPC98cYb+fHHH1Pt//jjj6mut3VytK1b7ZzqYAtgERFJw5dfwqefXthu2tTuCw93LpOIpEuG5/EdMmQInTt35q+//sLlcvHpp5+yfft23nvvPb788svMyChZZOhQcLmgVSs7d6+IiPxLfDz062dbeMPC7C/K0qXt5zQKWCRHyHCLb8uWLVmwYAHffvstefPmZciQIWzdupUFCxZw1113ZUZGyQIbN8JHH9nf3WrtFRH5j3XroGZNW/QCPPqoWnhFcqArWrnt1ltvZcmSJZ7OIg6KjrYf27SxU1CKiAj2bbBx42DQIDvdTfHiMHMmqKFHJEfKcItv2bJl+eeff1LtP3HiBGXLlvVIKMlav/4KX3wBvr62u4OIiGAL3SZN4Lnn7P3Wre3sDSp6RXKsDBe+e/fuJTk5OdX+hIQE/vrrL4+Ekqz1wgv240MPQYUKzmYREck2/P3tW2AhITB1KnzyCRQu7HQqEbkK6e7qMH/+fPf9xYsXExYW5t5OTk5m6dKlREZGejScZL4VK2DxYjsjz5AhTqcREXHYyZP2VqKE3R4zBnr0gDSm8RSRnCfdhW+rVq0A8PHxoXPnzik+5+/vT2RkJOPGjfNoOMl851t7H3kEypVzNouIiKN++sm+9VWsGCxfblsEgoJU9IrkIukufF0uFwBlypTh119/pbDe7snxli2zv9sDAmDwYKfTiIg4JCkJRo++sILPuXOwfz+UKeN0MhHxsAzP6rBnz57MyCFZzJgLxe4TT0BEhLN5REQcsWePbeVdtcput2sHkydDgQKOxhKRzHFF05mdPn2a77//nn379pGYmJjic0899ZRHgknm+vprWL0agoNhwACn04iIZDFj7FKV3bvbPr3589s5ejt0cDqZiGSiDBe+69evp3nz5sTHx3P69GkKFSrE0aNHCQkJoWjRoip8cwBjLvTt7dHDTkspIuJVkpLglVds0Vu/Psyapa4NIl4gw9OZ9enThxYtWnD8+HGCg4P56aef+PPPP6lZsyavvPJKZmQUD/v8c7sIUb58dnpKERGv4+8Pc+bAiBF2sIOKXhGvkOHCd8OGDTzzzDP4+vri5+dHQkICERERvPzyywwcODAzMooHuVwXpi3r3RuKFHE2j4hIljh3zq6+NnLkhX033mgHO+S5ol5/IpIDZfin3d/fH19fWy8XLVqUffv2UbFiRcLCwti/f7/HA4pnffQRbN4MYWHwzDNOpxERyQI7dti+u2vWgJ+fHcCm+RtFvFKGC9/q1avz66+/cv3119OwYUOGDBnC0aNHmTVrFpUqVcqMjOIhSUkQHW3v9+sHBQs6m0dEJFMZA++8A08/DfHx9pfe1KkqekW8WIa7OowePZri/xsNNWrUKAoWLEi3bt04cuQIb731lscDiufMnm0bPq65xnZzEBHJtY4ehfvug8cft0Vvo0bw229w//1OJxMRB/kYY4zTIbJSXFwcYWFhxMbGEhoa6nScLJOYCBUq2CkrX34Znn3W6UQiIpnk3DmoWBF27bKD2MaMgT59wDfDbT0i4pDMqtc89ltg3bp13HPPPZ66nHjY9Om26A0Pt1OYiYjkWv7+0LevLX5//tkOaFDRKyJksPBdvHgx/fr1Y+DAgezevRuAbdu20apVK2rXru1e1jgjJk2aRGRkJEFBQdStW5dffvnlksefOHGCHj16ULx4cQIDAylfvjxfffVVhh/Xm5w9e2Eg88CBEBLibB4REY/bvBl+/fXCdrdusHYtVK/uXCYRyXbSXfi+++67NGvWjBkzZvDSSy9x88038/7771OvXj2KFSvG5s2bM1yAfvjhh/Tt25fo6GjWrVtH1apViYqK4vDhw2ken5iYyF133cXevXv5+OOP2b59O1OnTqVkyZIZelxv8/bbcOAAlCplu7uJiOQaxsCECVCrFrRpA3Fxdr+Pj12aUkTkX9Ldx7dKlSp07NiRZ599lk8++YQHHniAm2++mY8++ohSpUpd0YPXrVuX2rVrM3HiRABcLhcRERH06tWL/v37pzp+ypQpjB07lm3btuHv739Fj+ltfXzj46FsWTh0CKZMgSeecDqRiIiHxMRAly6waJHdbtYM3nsPChd2NpeIXDXH+/ju2rWLBx54AID77ruPPHnyMHbs2CsuehMTE1m7di2NGze+EMbXl8aNG7N69eo0z5k/fz716tWjR48ehIeHU6lSJUaPHk1ycvJFHychIYG4uLgUN28yaZItesuUsX8fRERyhS+/hCpVbNEbFGRbfRcuVNErIpeU7sL3zJkzhPyvc6iPjw+BgYHuac2uxNGjR0lOTiY8PDzF/vDwcGJiYtI8Z/fu3Xz88cckJyfz1Vdf8cILLzBu3DhG/nslnv8YM2YMYWFh7ltERMQVZ85pTp6El16y96OjISDA2TwiIlft3Dno3h1atIAjR2zxu2YN9OxpuzeIiFxChhaweOedd8iXLx8ASUlJzJgxg8L/+e/6qaee8ly6/3C5XBQtWpS3334bPz8/atasyV9//cXYsWOJPr8yw38MGDCAvn37urfj4uK8pvh9/XX45x8oX94uWiQikuPlyQN//WXvP/MMjBoFgYHOZhKRHCPdhW/p0qWZOnWqe7tYsWLMmjUrxTE+Pj7pLnwLFy6Mn58fhw4dSrH/0KFDFCtWLM1zihcvjr+/P35+fu59FStWJCYmhsTERALSaNIMDAwk0At/KR4/Dq+8Yu8PG6al6EUkB3O57PQ0ISG2Vfedd+xiFHfe6XQyEclh0l0O7d2716MPHBAQQM2aNVm6dCmtWrUCbIvu0qVL6dmzZ5rn1K9fnzlz5uByufD935yMO3bsoHjx4mkWvd5s3DiIjYVKlexAZxGRHGn/fujcGUqUgPfft/uKFFHRKyJXxNEZvfv27cvUqVOZOXMmW7dupVu3bpw+fZou/xuF1alTJwYMGOA+vlu3bhw7dozevXuzY8cOFi5cyOjRo+mhFRlSOHLEdnMAGD5c87aLSA41b57tw/vdd/DZZ3YVHhGRq+DoG+Bt27blyJEjDBkyhJiYGKpVq8aiRYvcA9727dvnbtkFiIiIYPHixfTp04cqVapQsmRJevfuzfPPP+/Ul5AtvfwynDoFNWrA/xrTRURyjpMnoVcvmDnTbteuDbNn2+lpRESuQrrn8c0tcvs8vgcPQrlycOaMndmneXOnE4mIZMBPP9nRuLt327erBgyw09Jc4dztIpIzZVa9piFPucyYMbborVfPzuUuIpJjJCbaQQn790Pp0rZP7623Op1KRHIR9f7MRfbtg7fesvdHjNCUliKSwwQEwLvvQvv2sHGjil4R8bgrKnx37drF4MGDadeuHYcPHwbg66+/ZsuWLR4NJxkzapRtMLn9dmjUyOk0IiKXYQzMmgVz517Yd9ddtj9vgQKOxRKR3CvDhe/3339P5cqV+fnnn/n00085deoUABs3brzoIhKS+XbvhmnT7H219opItnfihG3Z7dQJHn/cvmUlIpLJMlz49u/fn5EjR7JkyZIUc+c2atSIn376yaPhJP2GD4ekJIiKggYNnE4jInIJ339vpymbOxf8/OC55+w8vSIimSzDhe+mTZto3bp1qv1Fixbl6NGjHgklGbNtm323EGxrr4hItpSYCAMHwh132AFs5crBypUweLCWlxSRLJHhwrdAgQIcPHgw1f7169dTsmRJj4SSjBk61K7o2bKlne5SRCTbSUiwb0eNGWP79j7yCGzYAHXrOp1MRLxIhgvfBx98kOeff56YmBh8fHxwuVysXLmSfv360alTp8zIKJfw22/w4Yf2/vDhzmYREbmowEC47TYoWBA+/tjO3pAvn9OpRMTLZHgBi8TERHr06MGMGTNITk4mT548JCcn0759e2bMmIGfn19mZfWI3LaARevW8PnndurL8wWwiEi2cPSonVg8IsJuJyTYfXp3UEQuI7PqtSteuW3fvn1s3ryZU6dOUb16da6//nqPhcpMuanwXbPGdm3w9YXNm6FiRacTiYj8zzffQOfOdpnhH35QH14RyZBss3LbihUraNCgAaVLl6Z06dIeCyIZN2SI/dihg4peEckmzp61ywyPH2+3CxaEmBgoVcrRWCIicAV9fBs1akSZMmUYOHAgv//+e2ZkknRYtQq+/trOBKTpk0UkW9i8GerUuVD0du9u35pS0Ssi2USGC9+///6bZ555hu+//55KlSpRrVo1xo4dy4EDBzIjn1zECy/Yj1262BmBREQcYwxMmAC1asGmTVCkCCxYAJMmQUiI0+lERNyuuI8vwJ49e5gzZw4ffPAB27Zt47bbbmPZsmWezOdxuaGP77JlcOeddln7P/4A9TgREUclJsLNN8P69dCsGUyfDuHhTqcSkRws2w1uOy85OZmvv/6aF154gd9++43k5GRPZcsUOb3wNcZOhblqFfToARMnOp1IRLyWMRfWR9+2Db791v5i0prpInKVMqtey3BXh/NWrlxJ9+7dKV68OO3bt6dSpUosXLjQY8EkbYsX26I3KMgugCQikuXi46FbN7t6znkVKkDPnip6RSRby/CsDgMGDGDu3Ln8/fff3HXXXbz++uu0bNmSEPXjynTG2JU9wTaqaGl7Ecly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b97MuHHj2LhxI7NmzcqyrysxMTHTrr1v3z6+/PJLHn744au6TmZmvFoffvghffv2JTo6mnXr1lG1alWioqI4fPjwRc8ZPHgwb731FhMmTOD333/nySefpHXr1qxfv959zPfff0+PHj346aefWLJkCefOnaNJkyacPn3afUyHDh1YsWIFW7ZsydSvMUOMl4mNjTWAmTUrNmsfeMECY4oUMQaMCQw0ZsIEY1yurM0gIiIXdebMGfP777+bM2fOuPe5XMacOuXMLSN/Ijp37mxatmyZYt99991nqlev7t7et2+f8ff3N3379k11/htvvGEA89NPPxljjPn5558NYMaPH5/m4x0/fvyiWfbv328efPBBU7BgQRMSEmJq1qzpvm5aOXv37m0aNmzo3m7YsKHp0aOH6d27t7nmmmvM7bffbtq1a2fatGmT4rzExERzzTXXmJkzZxpjjElOTjajR482kZGRJigoyFSpUsXMmzfvojmNMWbs2LGmVq1aKfYdPXrUPPjgg6ZEiRImODjYVKpUycyZMyfFMWllNMaYTZs2maZNm5q8efOaokWLmoceesgcOXLEfd7XX39t6tevb8LCwkyhQoXM3XffbXbu3HnJjFerTp06pkePHu7t5ORkU6JECTNmzJiLnlO8eHEzceLEFPvuu+8+06FDh4uec/jwYQOY77//PsX+O+64wwwePDjNc9L6mTvvfL0WG+vZek0tvpktPt72323RAo4csbM3rF0LPXuqpVdEJJuLj4d8+Zy5Xc3icZs3b2bVqlUEBAS493388cecO3cuVcsuwBNPPEG+fPn44IMPAJg9ezb58uWje/fuaV6/QIECae4/deoUDRs25K+//mL+/Pls3LiR5557DpfLlaH8M2fOJCAggJUrVzJlyhQ6dOjAggULOHXqlPuYxYsXEx8fT+vWrQH71vt7773HlClT2LJlC3369OGhhx7i+++/v+jj/Pjjj9SqVSvFvrNnz1KzZk0WLlzI5s2befzxx+nYsWOq7gH/zXjixAkaNWpE9erVWbNmDYsWLeLQoUO0adPGfc7p06fp27cva9asYenSpfj6+tK6detLPj+jR48mX758l7zt27cvzXMTExNZu3YtjRs3du/z9fWlcePGrF69+qKPmZCQQFBQUIp9wcHBrFix4qLnxMbGAlCoUKEU++vUqcOPP/540fOymmZ1yEwHD9r5eLdts9t9+8Lo0RAY6GwuERHJdb788kvy5ctHUlISCQkJ+Pr6MnHiRPfnd+zYQVhYGMWLF091bkBAAGXLlmXHjh0A/PHHH5QtWxZ/f/8MZZgzZw5Hjhzh119/dRdA1113XYa/luuvv56XX37ZvV2uXDny5s3LZ599RseOHd2Pde+995I/f34SEhIYPXo03377LfXq1QOgbNmyrFixgrfeeouGDRum+Th//vlnqsK3ZMmSKf456NWrF4sXL+ajjz6iTp06F804cuRIqlevzujRo937pk2bRkREBDt27KB8+fLcf//9KR5r2rRpFClShN9//51KlSqlmfHJJ59MUTynpUSJEmnuP3r0KMnJyYSHh6fYHx4ezrbztUkaoqKiePXVV7ntttsoV64cS5cu5dNPPyU5OTnN410uF08//TT169dP9XWUKFGCP//885L5s5IK38wUHg7Fi0NsLMycCXfd5XQiERHJgJAQ+FcjY5Y/dkbccccdvPnmm5w+fZrXXnuNPHnypCq00ssYc0XnbdiwgerVq6dq9cuomjVrptjOkycPbdq0Yfbs2XTs2JHTp0/zxRdfMHfuXAB27txJfHw8d/3n72xiYiLVLzFb0pkzZ1K1bCYnJzN69Gg++ugj/vrrLxITE0lISEi1mt9/M27cuJHvvvuOfPnypXqcXbt2Ub58ef744w+GDBnCzz//zNGjR90tvfv27bto4VuoUKGrfj4z6vXXX6dr165UqFABHx8fypUrR5cuXZg2bVqax/fo0YPNmzen2SIcHBxM/NW8feFhKnw97cABKFTI/sby9bXz8vr7Q+HCTicTEZEM8vGBvHmdTpE+efPmdbeuTps2japVq/Luu+/y6KOPAlC+fHliY2P5+++/U7UQJiYmsmvXLu644w73sStWrODcuXMZavUNDg6+5Od9fX1TFdXnzp1L82v5rw4dOtCwYUMOHz7MkiVLCA4OpmnTpgDuLhALFy6kZMmSKc4LvMS7rIULF+b48eMp9o0dO5bXX3+d8ePHU7lyZfLmzcvTTz+dagDbfzOeOnWKFi1a8NJLL6V6nPOt7C1atODaa69l6tSplChRApfLRaVKlS45OG706NEpWpHT8vvvv1O6dOk0vz4/Pz8OHTqUYv+hQ4coVqzYRa9XpEgRPv/8c86ePcs///xDiRIl6N+/P2XLlk11bM+ePfnyyy/54YcfKJXGwlvHjh2jSJEil8yfldTH15PmzbN9eP/df6p4cRW9IiKSpXx9fRk4cCCDBw/mzJkzANx///34+/szbty4VMdPmTKF06dP065dOwDat2/PqVOnmDx5cprXP3HiRJr7q1SpwoYNGy463VmRIkU4ePBgin0b/j295yXccsstRERE8OGHHzJ79mweeOABd1F+4403EhgYyL59+7juuutS3CIiIi56zerVq/P777+n2Ldy5UpatmzJQw89RNWqVVN0AbmUGjVqsGXLFiIjI1NlyJs3L//88w/bt29n8ODB3HnnnVSsWDFV0Z2WJ598kg0bNlzydrGuDgEBAdSsWZOlS5e697lcLpYuXeruEnIpQUFBlCxZkqSkJD755BNatmzp/pwxhp49e/LZZ5+xbNkyypQpk+Y1Nm/efMlW96ymwtcTTp6ERx6BNm3g+HE7eO1/v2hERESc8MADD+Dn58ekSZMAKF26NC+//DLjx49n0KBBbNu2jV27dvHqq6/y3HPP8cwzz1C3bl0A6tat69733HPPsXr1av7880+WLl3KAw88wMyZM9N8zHbt2lGsWDFatWrFypUr2b17N5988ol7IFWjRo1Ys2YN7733Hn/88QfR0dFs3rw53V9T+/btmTJlCkuWLKFDhw7u/fnz56dfv3706dOHmTNnsmvXLtatW8eECRMumhVsX9bVq1en6Lt6/fXXs2TJElatWsXWrVt54oknUrWYpqVHjx4cO3aMdu3a8euvv7Jr1y4WL15Mly5dSE5OpmDBglxzzTW8/fbb7Ny5k2XLltG3b9/LXrdQoUKpCun/3vLkufgb+H379mXq1KnMnDmTrVu30q1bN06fPk2XLl3cx3Tq1IkBAwa4t3/++Wc+/fRTdu/ezY8//kjTpk1xuVw899xzKb7e999/nzlz5pA/f35iYmKIiYlx/6N13o8//kiTJk0u+3VmGY/OEZEDeHw6s9WrjSlXzk5T5uNjzKBBxiQmeubaIiKSZS41tVJ2l9Y0YcYYM2bMGFOkSBFz6tQp974vvvjC3HrrrSZv3rwmKCjI1KxZ00ybNi3N63744YfmtttuM/nz5zd58+Y1VapUMcOHD7/kdGZ79+41999/vwkNDTUhISGmVq1a5ueff3Z/fsiQISY8PNyEhYWZPn36mJ49e6aazqx3795pXvv33383gLn22muN6z/zvblcLjN+/Hhzww03GH9/f1OkSBETFRWVanqtfzt37pwpUaKEWbRokXvfP//8Y1q2bGny5ctnihYtagYPHmw6deqU4vm9WMYdO3aY1q1bmwIFCpjg4GBToUIF8/TTT7uzLlmyxFSsWNEEBgaaKlWqmOXLlxvAfPbZZxfN6AkTJkwwpUuXNgEBAaZOnTru6eX+/fV07tzZvb18+XJ3zmuuucZ07NjR/PXXXynOAdK8TZ8+3X3MqlWrTIECBUx8fHyauZyYzsznf+G9RlxcHGFhYcyaFctDD4Ve+YWSkuwMDcOHQ3IylC4Ns2bBbbd5LqyIiGSZs2fPsmfPHsqUKZNqwJPkXpMmTWL+/PksXrzY6Si5Ttu2balatSoDBw5M8/OX+pk7X6/FxsYSGnoV9dp/aHDblTpyBF5/3Ra97drB5MlwkXkNRUREJHt64oknOHHiBCdPnszVyxZntcTERCpXrkyfPn2cjpKCCt8rVbw4TJtm+/c+9JDTaUREROQK5MmTh0GDBjkdI9cJCAhg8ODBTsdIRYPb0uvECduy+8UXF/a1bKmiV0RERCSHUOGbHt9/b6cpmzsXnnwSzp51OpGIiIiIZJAK30tJTIQBA+COO2D/fihXDj7/HDToQUQk1/KyMd8ijnHiZ019fC9m+3bo0MHOyQt2nt7XX4c0liIUEZGc7/xiCPHx8ZddgUxErt75Fev8/Pyy7DFV+KZl/36oUQPi46FgQZg6Fa5wvXMREckZ/Pz8KFCgAIcPHwYgJCQEHx8fh1OJ5E4ul4sjR44QEhJyyQU4PE2Fb1oiIuygtZ07YeZMSGPtaRERyX2KFSsG4C5+RSTz+Pr6Urp06Sz9B1OF73lLlsBNN8H59a7feAP8/cFX3aBFRLyFj48PxYsXp2jRopw7d87pOCK5WkBAAL5ZXGep8D171g5gGz8eGjeGxYttsRsY6HQyERFxiJ+fX5b2OxSRrJEtmjMnTZpEZGQkQUFB1K1bl19++eWSx8+bN48KFSoQFBRE5cqV+eqrr67sgTdvhjp1bNELUL486D98ERERkVzJ8cL3ww8/pG/fvkRHR7Nu3TqqVq1KVFTURftXrVq1inbt2vHoo4+yfv16WrVqRatWrdi8eXOGHjfymylQqxZs2gRFisCCBTBpklp6RURERHIpH+PwhIV169aldu3aTJw4EbCj/CIiIujVqxf9+/dPdXzbtm05ffo0X375pXvfzTffTLVq1ZgyZcplHy8uLo6wsDBigVCAZs1g+nQID/fQVyQiIiIiV8Ndr8XGEhoa6rHrOtrHNzExkbVr1zJgwAD3Pl9fXxo3bszq1avTPGf16tX07ds3xb6oqCg+//zzNI9PSEggISHBvR0bGwvAcT9/GDMKHn8cfHwgLu4qvxoRERER8YS4/9Vlnm6fdbTwPXr0KMnJyYT/p7U1PDycbdu2pXlOTExMmsfHxMSkefyYMWMYNmxYqv2RyefguefsTURERESynX/++YewsDCPXS/Xz+owYMCAFC3EJ06c4Nprr2Xfvn0efSIle4qLiyMiIoL9+/d79K0SyZ70ensXvd7eRa+3d4mNjaV06dIUKlTIo9d1tPAtXLgwfn5+HDp0KMX+Q4cOuScR/69ixYpl6PjAwEAC0xiwFhYWph8cLxIaGqrX24vo9fYuer29i15v7+LpeX4dndUhICCAmjVrsnTpUvc+l8vF0qVLqVevXprn1KtXL8XxAEuWLLno8SIiIiIikA26OvTt25fOnTtTq1Yt6tSpw/jx4zl9+jRdunQBoFOnTpQsWZIxY8YA0Lt3bxo2bMi4ceO4++67mTt3LmvWrOHtt9928ssQERERkWzO8cK3bdu2HDlyhCFDhhATE0O1atVYtGiRewDbvn37UjRz33LLLcyZM4fBgwczcOBArr/+ej7//HMqVaqUrscLDAwkOjo6ze4Pkvvo9fYuer29i15v76LX27tk1uvt+Dy+IiIiIiJZwfGV20REREREsoIKXxERERHxCip8RURERMQrqPAVEREREa+QKwvfSZMmERkZSVBQEHXr1uWXX3655PHz5s2jQoUKBAUFUblyZb766qssSiqekJHXe+rUqdx6660ULFiQggUL0rhx48t+f0j2ktGf7/Pmzp2Lj48PrVq1ytyA4lEZfb1PnDhBjx49KF68OIGBgZQvX16/03OQjL7e48eP54YbbiA4OJiIiAj69OnD2bNnsyitXI0ffviBFi1aUKJECXx8fPj8888ve87y5cupUaMGgYGBXHfddcyYMSPjD2xymblz55qAgAAzbdo0s2XLFtO1a1dToEABc+jQoTSPX7lypfHz8zMvv/yy+f33383gwYONv7+/2bRpUxYnlyuR0de7ffv2ZtKkSWb9+vVm69at5uGH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8/Pz49VXX6Vy5crkzZuXiIgIunfvzqlTpy56nY0bN3LHHXeQP39+QkNDqVmzJmvWrHF/fsWKFdx6660EBwcTERHBU089xenTpy+ZzcfHh2LFilGiRAmaNWvGU089xbfffsuZM2dwuVwMHz6cUqVKERgYSLVq1Vi0aJH73MTERHr27Enx4sUJCgri2muvZcyYMSmufb6rQ5kyZQCoXr06Pj4+3H777UDKVtS3336bEiVK4HK5UmRs2bIljzzyiHv7iy++oEaNGgQFBVG2bFmGDRtGUlLSJb/OPHnyUKxYMUqWLEnjxo154IEHWLJkifvzycnJPProo5QpU4bg4GBuuOEGXn/9dffnhw4dysyZM/niiy/crcfLly8HYP/+/bRp04YCBQpQqFAhWrZsyd69ey+ZR0TkPBW+IuIVfH19eeONN9iyZQszZ85k2bJlPPfccxc9vkOHDpQqVYpff/2VtWvX0r9/f/z9/QHYtWsXTZs25f777+e3337jww8/ZMWKFfTs2TNDmYKDg3G5XCQlJfH6668zbtw4XnnlFX777TeioqK49957+eOPPwB44403mD9/Ph999BHbt29n9uzZREZGpnndX375BYBvv/2WgwcP8umnn6Y65oEHHuCff/7hu+++c+87duwYixYtokOHDgD8+OOPdOrUid69e/P777/z1ltvMWPGDEaNGpXur3Hv3r0sXryYgIAA9z6Xy0WpUqWYN28ev//+O0OGDGHgwIF89NFHAPTr1482bdrQtGlTDh48yMGDB7nllls4d+4cUVFR5M+fnx9//JGVK1eSL18+mjZtSmJiYroziYgXMyIiuUTnzp2Nn5+fyZs3r/v2f//3f2keO2/ePHPNNde4t6dPn27CwsLc2/nz5zczZsxI89xHH33UPP744yn2/fjjj8bX19ecOXMmzXP+e/0dO3aY8uXLm1q1ahljjClRooQZNWpUinNq165tunfvbowxplevXqZRo0bG5XKleX3AfPbZZ8YYY/bs2WMAs379+hTHdO7c2bRs2dK93bJlS/PII4+4t9966y1TokQJk5ycbIwx5s477zSjR49OcY1Zs2aZ4sWLp5nBGGOio6ONr6+vyZs3rwkKCjKAAcyrr7560XOMMaZHjx7m/vvvv2jW8499ww03pHgOEhISTHBwsFm8ePElry8iYowx6uMrIrnKHXfcwZtvvunezps3L2BbP8eMGcO2bduIi4sjKSmJs2fPEh8fT0hISKrr9O3bl8cee4xZs2a5364vV64cYLtB/Pbbb8yePdt9vDEGl8vFnj17qFixYprZYmNjyZcvHy6Xi7Nnz9KgQQPeeecd4uLi+Pvvv6lfv36K4+vXr8/GjRsB203hrrvu4oYbbqBp06bcc889NGnS5Kqeqw4dOtC1a1cmT55MYGAgs2fP5sEHH8TX19f9da5cuTJFC29ycvIlnzeAG264gfnz53P27Fnef/99NmzYQK9evVIcM2nSJKZNm8a+ffs4c+YMiYmJVKtW7ZJ5N27cyM6dO8mfP3+K/WfPnmXXrl1X8AyIiLdR4SsiuUrevHm57rrrUuzbu3cv99xzD926dWPUqFEUKlSIFStW8Oijj5KYmJhmATd06FDat2/PwoUL+frrr4mOjmbu3Lm0bt2aU6dO8cQTT/DUU0+lOq906dIXzZY/f37WrVuHr68vxYsXJzg4GIC4uLjLfl01atRgz549fP3113z77be0adOGxo0b8/HHH1/23Itp0aIFxhgWLlxI7dq1+fHHH3nttdfcnz916hTDhg3jvvvuS3VuUFDQRa8bEBDgfg1efPFF7r77boYNG8aIESMAmDt3Lv369WPcuHHUq1eP/PnzM3bsWH7++edL5j116hQ1a9ZM8Q/HedllAKOIZG8qfEUk11u7di0ul4tx48a5WzPP9ye9lPLly1O+fHn69OlDu3btmD59Oq1bt6ZGjRr8/vvvqQrsy/H19U3znNDQUEr8f3v3D9I4GIYB/DkUUQeHokUyqIO1CFoxtP4DEbqoUyGIAQsuIqKUioroUAtdhDpU0EVBHJSixUlRqU5ViUsdiiCaKP5BF8EKTgpFesNhsd55XO84Di7Pb8z3JXm/7eHl+xJBgKIoaGlpSV1XFAV1dXVp82RZhizL6OjoQFtbGx4fH2EwGNKe97af9vX19af15ObmQpIkBINBXFxcwGw2QxTF1LgoilBVNeN1fuTxeGC329Hf359aZ1NTEwYGBlJzPnZsc3JyvqtfFEWEQiEYjUYUFBT8UU1EpE883EZE/73y8nIkEgnMzs7i8vISy8vLmJub+3T+8/MzXC4XIpEIbm5uoCgKotFoagvD2NgYDg8P4XK5EIvFcH5+jvX19YwPt703OjoKv9+PUCgEVVUxPj6OWCyGwcFBAEAgEMDKygrOzs6gaRrW1tZQXFz8w59uGI1G5OXlIRwO4/7+Hk9PT5++1+l0YmtrC4uLi6lDbW+8Xi+Wlpbg8/lwcnKC09NTrK6uwuPxZLS2xsZGWCwWTE5OAgBMJhOOjo6ws7MDTdMwMTGBaDSadk9ZWRmOj4+hqioeHh6QSCTgdDpRWFgIh8OBg4MDXF1dIRKJwO124+7uLqOaiEifGHyJ6L9XU1ODQCAAv9+PqqoqBIPBtE+BfZSVlYV4PI7u7m5UVFSgs7MT7e3t8Pl8AACLxYK9vT1omobm5mbU1tbC6/VCEITfrtHtdmN4eBgjIyOorq5GOBzGxsYGTCYTgG/bJKampmC1WmGz2XB9fY3t7e1UB/u97OxszMzMYH5+HoIgwOFwfPpeu90Og8EAVVXR1dWVNtba2orNzU3s7u7CZrOhoaEB09PTKC0tzXh9Q0NDWFhYwO3tLfr6+iBJEmRZRn19PeLxeFr3FwB6e3thNpthtVpRVFQERVGQn5+P/f19lJSUQJIkVFZWoqenBy8vL+wAE9Ev+ZJMJpP/uggiIiIior+NHV8iIiIi0gUGXyIiIiLSBQZfIiIiItIFBl8iIiIi0gUGXyIiIiLSBQZfIiIiItIFBl8iIiIi0gUGXyIiIiLSBQZfIiIiItIFBl8iIiIi0gUGXyIiIiLSha9i3d4MZ7+F5QAAAABJRU5ErkJggg==", + "text/plain": [ + "<Figure size 800x600 with 1 Axes>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Predict probabilities for the training data\n", + "y_train_proba = model_svm.predict_proba(X_train)[:, 1]\n", + "\n", + "# Calculate the false positive rate (FPR), true positive rate (TPR), and thresholds\n", + "fpr_train, tpr_train, thresholds_train = roc_curve(y_train, y_train_proba)\n", + "\n", + "# Calculate the area under the ROC curve (AUC) for training data\n", + "roc_auc_train = auc(fpr_train, tpr_train)\n", + "\n", + "# Plot the ROC curve for training data\n", + "plt.figure(figsize=(8, 6))\n", + "plt.plot(fpr_train, tpr_train, color='blue', label='ROC curve (area = %0.2f)' % roc_auc_train)\n", + "plt.plot([0, 1], [0, 1], color='red', linestyle='--')\n", + "plt.xlim([0.0, 1.0])\n", + "plt.ylim([0.0, 1.05])\n", + "plt.xlabel('False Positive Rate')\n", + "plt.ylabel('True Positive Rate')\n", + "plt.title('XGBoost - ROC Curve for Training Data')\n", + "plt.legend(loc='lower right')\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 47, + "id": "a85470f6", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " precision recall f1-score support\n", + "\n", + " 0 0.97 0.93 0.95 30\n", + " 1 0.94 0.97 0.95 30\n", + "\n", + " accuracy 0.95 60\n", + " macro avg 0.95 0.95 0.95 60\n", + "weighted avg 0.95 0.95 0.95 60\n", + "\n" + ] + } + ], + "source": [ + "from sklearn.metrics import classification_report, confusion_matrix\n", + "grid_predictions = grid.predict(X_test)\n", + "print(classification_report(y_test, grid_predictions))" + ] + }, + { + "cell_type": "code", + "execution_count": 48, + "id": "f7247260", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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VJpt27bJMAy98MILCgkpWz6zfPlyr/OSk5OVnJys1NRUDRkyRAsWLNCdd96pa6+9Vt99951HUgJUB/Xq1dPOnTs9tmVlZbnX57Rt21ZOp1MHDx6k/YCAwaJHVJqkpCSVlJRo7ty52rdvn95++23Nnz//svufO3dOo0eP1oYNG/TDDz/o888/11dffeVuNUyaNEmbN2/W6NGjlZWVpb179+qDDz5g0SMC3s0336ytW7dq0aJF2rt3r6ZNm+aRQERHR2v8+PFKTU3VwoULlZubq6+//lpz587VwoULqzByXMlIGFBpOnbsqBdffFF/+tOf1K5dOy1evFgul+uy+4eGhurEiRO69957lZycrMGDB6tfv36aMWOGJKlDhw7KyMjQ999/r27duqlTp06aOnWq4uPjK+sjARXSt29fTZkyRRMnTtT111+vM2fO6N577/XYZ9asWZoyZYpcLpfatGmjlJQUrV69WomJiVUUNa50PN4aAAB4RYUBAAB4RcIAAAC8ImEAAABekTAAAACvSBgAAIBXJAwAAMArEgYAAOAVCQMAAPCKhAGoJoYPH64BAwa4X/fs2dP9aO/KtGHDBjkcDp06deqy+zgcDq1cubLcx5w+fbquueYaS3EdOHBADodDWVlZlo4D4NJIGAALhg8fLofDIYfDobCwMCUlJWnmzJk6f/6838/9/vvva9asWeXatzxf8gDwa3haJWBRSkqKFixYoKKiIn300UcaNWqUatasqSeeeOKifYuLixUWFmbLeevWrWvLcQCgPKgwABY5nU7FxcWpadOmevjhh9W7d2/97W9/k/RzG+Hpp59WfHy8WrVqJUk6dOiQBg8erNq1a6tu3brq37+/Dhw44D5maWmpxo0bp9q1a+uqq67SxIkT9cvHvvyyJVFUVKRJkyYpISFBTqdTSUlJeuutt3TgwAH16tVLklSnTh05HA4NHz5ckmQYhlwulxITExUREaGOHTvq3Xff9TjPRx99pOTkZEVERKhXr14ecZbXpEmTlJycrFq1aql58+aaMmWKSkpKLtrv9ddfV0JCgmrVqqXBgwfr9OnTHu+/+eabatOmjcLDw9W6dWu99tprPscCoGJIGACbRUREqLi42P36008/VXZ2ttauXatVq1appKREffv2VXR0tDZt2qTPP/9cUVFRSklJcc974YUXlJ6err/85S/KzMzUyZMntWLFil8977333qv//u//1pw5c7R79269/vrrioqKUkJCgt577z1JUnZ2to4ePapXXnlFkuRyubRo0SLNnz9fu3btUmpqqu655x5lZGRIKktsBg4cqNtvv11ZWVkaOXKkJk+e7PN/k+joaKWnp+u7777TK6+8ojfeeEMvvfSSxz45OTlavny5PvzwQ61Zs0bffPONHnnkEff7ixcv1tSpU/X0009r9+7deuaZZzRlyhQe9wxUFhNAhQ0bNszs37+/aZqmaRiGuXbtWtPpdJrjx493v9+gQQOzqKjIPeftt982W7VqZRqG4d5WVFRkRkREmJ988olpmqbZsGFD87nnnnO/X1JSYjZu3Nh9LtM0zR49epiPPfaYaZqmmZ2dbUoy165de8k4P/vsM1OS+Y9//MO9rbCw0KxVq5a5efNmj31HjBhhDhkyxDRN03ziiSfMtm3berw/adKki471S5LMFStWXPb9559/3uzcubP79bRp08zQ0FDz8OHD7m0ff/yxGRISYh49etQ0TdNs0aKFuWTJEo/jzJo1y+zatatpmqa5f/9+U5L5zTffXPa8ACqONQyARatWrVJUVJRKSkpkGIbuvvtuTZ8+3f1++/btPdYtbN++XTk5OYqOjvY4TmFhoXJzc3X69GkdPXpUXbp0cb9Xo0YNXXfddRe1JS7IyspSaGioevToUe64c3JydPbsWd16660e24uLi9WpUydJ0u7duz3ikKSuXbuW+xwXLFu2THPmzFFubq7y8/N1/vx5xcTEeOzTpEkTNWrUyOM8hmEoOztb0dHRys3N1YgRI/TAAw+49zl//rxiY2N9jgeA70gYAIt69eqltLQ0hYWFKT4+XjVqeP5vFRkZ6fE6Pz9fnTt31uLFiy86Vr169SoUQ0REhM9z8vPzJUmrV6/2+KKWytZl2GXLli0aOnSoZsyYob59+yo2NlZLly7VCy+84HOsb7zxxkUJTGhoqG2xArg8EgbAosjISCUlJZV7/2uvvVbLli1T/fr1L/or+4KGDRvqyy+/VPfu3SWV/SW9bds2XXvttZfcv3379jIMQxkZGerdu/dF71+ocJSWlrq3tW3bVk6nUwcPHrxsZaJNmzbuBZwXfPHFF94/5L/YvHmzmjZtqqeeesq97Ycffrhov4MHD+rIkSOKj493nyckJEStWrVSgwYNFB8fr3379mno0KE+nR+APVj0CFSyoUOH6uqrr1b//v21adMm7d+/Xxs2bNCYMWN0+PBhSdJjjz2mZ599VitXrtSePXv0yCOP/Oo9FJo1a6Zhw4bp/vvv18qVK93HXL58uSSpadOmcjgcWrVqlf7+978rPz9f0dHRGj9+vFJTU7Vw4ULl5ubq66+/1ty5c90LCR966CHt3btXEyZMUHZ2tpYsWaL09HSfPm/Lli118OBBLV26VLm5uZozZ84lF3CGh4dr2LBh2r59uzZt2qQxY8Zo8ODBiouLkyTNmDFDLpdLc+bM0ffff69vv/1WCxYs0IsvvuhTPAAqhoQBqGS1atXSxo0b1aRJEw0cOFBt2rTRiBEjVFhY6K44PP744/rP//xPDRs2TF27dlV0dLTuvPPOXz1uWlqafve73+mRRx5R69at9cADD6igoECS1KhRI82YMUOTJ09WgwYNNHr0aEnSrFmzNGXKFLlcLrVp00YpKSlavXq1EhMTJZWtK3jvvfe0cuVKdezYUfPnz9czzzzj0+e94447lJqaqtGjR+uaa67R5s2bNWXKlIv2S0pK0sCBA3XbbbepT58+6tChg8dlkyNHjtSbb76pBQsWqH379urRo4fS09PdsQLwL4d5uVVUAAAA/0SFAQAAeEXCAAAAvCJhAAAAXpEwAAAAr0gYAACAVyQMAADAKxIGAADgFQkDAADwioQBAAB4RcIAAAC8ImEAAABe/X/s2q/eAJZgMQAAAABJRU5ErkJggg==", + "text/plain": [ + "<Figure size 640x480 with 2 Axes>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "#######CONFUSION MATRIX ###########\n", + "from sklearn import metrics\n", + "y_test_pred_svm = model_svm.predict(X_test)\n", + "confusion_matrix_test = metrics.confusion_matrix(y_test, y_test_pred_svm)\n", + "cm_display = metrics.ConfusionMatrixDisplay(confusion_matrix = confusion_matrix_test, display_labels = [False, True])\n", + "cm_display.plot()\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 49, + "id": "475b75bd", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Accuracy : 0.95\n", + "Sensitivity : 0.9333333333333333\n", + "Specificity : 0.9666666666666667\n" + ] + } + ], + "source": [ + "total1=sum(sum(confusion_matrix_test))\n", + "#####from confusion matrix calculate accuracy\n", + "accuracy1=(confusion_matrix_test[0,0]+confusion_matrix_test[1,1])/total1\n", + "print ('Accuracy : ', accuracy1)\n", + "\n", + "sensitivity1 = confusion_matrix_test[0,0]/(confusion_matrix_test[0,0]+confusion_matrix_test[0,1])\n", + "print('Sensitivity : ', sensitivity1 )\n", + "\n", + "specificity1 = confusion_matrix_test[1,1]/(confusion_matrix_test[1,0]+confusion_matrix_test[1,1])\n", + "print('Specificity : ', specificity1)" + ] + }, + { + "cell_type": "code", + "execution_count": 50, + "id": "c1095af0", + "metadata": {}, + "outputs": [], + "source": [ + "# for important features:\n", + "important_feat = model_svm.coef_[0]\n", + "#get indices of those important features\n", + "idx = important_feat.argsort(kind= \"quicksort\")\n", + "idx= idx[::-1][:50]" + ] + }, + { + "cell_type": "code", + "execution_count": 51, + "id": "ae7e0162", + "metadata": {}, + "outputs": [], + "source": [ + "df1 = X_selected.T" + ] + }, + { + "cell_type": "code", + "execution_count": 52, + "id": "1d97f818", + "metadata": {}, + "outputs": [], + "source": [ + "top_met = df1.iloc[idx]" + ] + }, + { + "cell_type": "code", + "execution_count": 53, + "id": "4cd4227b", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Index(['ECT2', 'COL1A1', 'RPN1', 'LEPROTL1', 'MMP10', 'ERCC3', 'NT5C2',\n", + " 'GABRP', 'SCNN1A', 'DHRS2', 'HSPBAP1', 'TSPAN6', 'IGF2BP2', 'SPINK5',\n", + " 'RHCG', 'SLC2A1', 'IGFBP3', 'ECM1', 'CYP4B1', 'TMPRSS11E', 'TAPBP',\n", + " 'COL5A2', 'AIM2', 'IL1RN', 'LCN2', 'EFNA1', 'MAL', 'RUVBL1', 'TFAP2B',\n", + " 'MCM2', 'MYH10', 'ENTPD6', 'TRIP13', 'LYPD3', 'CES2', 'RANBP9', 'PSMB9',\n", + " 'PCSK5', 'KLK13', 'AQP3', 'FSCN1', 'CRNN', 'PHLDA1', 'IFI35', 'HSPB8',\n", + " 'CRISP3', 'PPP1R3C', 'GALNT1', 'STK24', 'SPRR3'],\n", + " dtype='object')" + ] + }, + "execution_count": 53, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "top_met.index" + ] + }, + { + "cell_type": "code", + "execution_count": 54, + "id": "8f6d88bb", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Index(['ACLY', 'ACPP', 'AIM2', 'ALDH9A1', 'ALOX12', 'ANO1', 'AQP3', 'ATP6V1D',\n", + " 'CCNG2', 'CES2', 'CFD', 'CH25H', 'CLIC3', 'COL1A1', 'COL5A2', 'CRABP2',\n", + " 'CRISP3', 'CRNN', 'CYP4B1', 'DHRS1', 'DHRS2', 'DUOX1', 'DUSP5', 'ECM1',\n", + " 'ECT2', 'EFNA1', 'EMP1', 'ENTPD6', 'ERCC3', 'FLG', 'FSCN1', 'GABRP',\n", + " 'GALE', 'GALNT1', 'GPX3', 'HOPX', 'HSPB8', 'HSPBAP1', 'HSPD1', 'ID4',\n", + " 'IFI35', 'IGF2BP2', 'IGFBP3', 'IL1RN', 'INPP1', 'KANK1', 'KLK13',\n", + " 'KRT4', 'LAMC2', 'LCN2', 'LEPROTL1', 'LYPD3', 'MAL', 'MCM2', 'MMP10',\n", + " 'MUC1', 'MYH10', 'NDRG2', 'NT5C2', 'PCSK5', 'PHLDA1', 'PITX1',\n", + " 'PPP1R3C', 'PSMB9', 'PTN', 'RAB11FIP1', 'RANBP9', 'RHCG', 'RND3',\n", + " 'RPN1', 'RUVBL1', 'SCNN1A', 'SERPINB13', 'SERPINB2', 'SIM2', 'SLC2A1',\n", + " 'SLK', 'SLURP1', 'SPINK5', 'SPRR3', 'SSRP1', 'STK24', 'SYNPO2L',\n", + " 'TAPBP', 'TFAP2B', 'TGIF1', 'TIAM1', 'TJP1', 'TMF1', 'TMPRSS11D',\n", + " 'TMPRSS11E', 'TRIP13', 'TSPAN6', 'TST', 'TYMP', 'UCHL1', 'ZBTB16',\n", + " 'ZNF185'],\n", + " dtype='object')" + ] + }, + "execution_count": 54, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "X_selected.columns" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "0ea4996c", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "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.9.16" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/03_Machine_Learning/mRNA_limma_dataset_xgb_described.ipynb b/03_Machine_Learning/mRNA_limma_dataset_xgb_described.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..f7e3975da1c05db1f4143419c766bbc808aa1d9a --- /dev/null +++ b/03_Machine_Learning/mRNA_limma_dataset_xgb_described.ipynb @@ -0,0 +1,1563 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "c2a396f5", + "metadata": {}, + "source": [ + "# Load the libraries" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "f097ad55", + "metadata": {}, + "outputs": [], + "source": [ + "import warnings\n", + "warnings.filterwarnings('ignore')\n", + "import pandas as pd\n", + "from sklearn.model_selection import train_test_split\n", + "from sklearn.metrics import RocCurveDisplay\n", + "import matplotlib.pyplot as plt\n", + "import numpy as np\n", + "from imblearn.over_sampling import SMOTE\n", + "from sklearn.linear_model import Lasso\n", + "import xgboost as xgb\n", + "from sklearn.model_selection import GridSearchCV\n", + "import pandas as pd\n", + "import numpy as np\n", + "\n", + "np.random.seed(7)" + ] + }, + { + "cell_type": "markdown", + "id": "73b6611a", + "metadata": {}, + "source": [ + "# Read the data" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "0eeb7a35", + "metadata": {}, + "outputs": [], + "source": [ + "df_train = pd.read_csv(\"DS/mRNA_DS_preprocessed_training_data.csv\") # read the training data" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "c04fc6bc", + "metadata": {}, + "outputs": [], + "source": [ + "df_test = pd.read_csv(\"DS/mRNA_DS_test_data.csv\") # read the test data" + ] + }, + { + "cell_type": "markdown", + "id": "5c60a7a5", + "metadata": {}, + "source": [ + "# Data Preprocessing" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "683b63ce", + "metadata": {}, + "outputs": [], + "source": [ + "df_train = df_train.T # transpose the data\n", + "df_test = df_test.T" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "6ecc5606", + "metadata": {}, + "outputs": [], + "source": [ + "#df_test = df_test[:-1]" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "d9b0088e", + "metadata": {}, + "outputs": [], + "source": [ + "#Transform the input data\n", + "df_train.rename(columns=df_train.iloc[0], inplace = True)\n", + "df_train.drop(df_train.index[0], inplace = True)\n", + "df_train=df_train.reset_index()" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "2e78017d", + "metadata": {}, + "outputs": [], + "source": [ + "#Transform the input data\n", + "df_test.rename(columns=df_test.iloc[-1], inplace = True)\n", + "df_test.drop(df_test.index[-1], inplace = True)\n", + "df_test=df_test.reset_index()" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "7168825e", + "metadata": {}, + "outputs": [], + "source": [ + "metadata_test = pd.read_csv(\"DS/mRNA_DS_metadata_col_test_info.csv\") # read the column information (cancer/non cancer)" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "26c98c3e", + "metadata": {}, + "outputs": [], + "source": [ + "df_test= df_test.merge(metadata_test, left_on=\"index\", right_on= \"Unnamed: 0\")" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "b42beaa4", + "metadata": {}, + "outputs": [], + "source": [ + "df_test['title0'] = df_test['title0'].replace('(?i)mucosa|normal|healthy', 0, regex=True) # replace the names to 0 \n", + " " + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "515cd9fc", + "metadata": {}, + "outputs": [], + "source": [ + "df_test['title0'] = df_test['title0'].replace('(?i)Tumor|Cancer|carcinoma', 1, regex=True)" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "b4f38f66", + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/plain": [ + "title0\n", + "0 30\n", + "1 30\n", + "Name: count, dtype: int64" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_test['title0'].value_counts()" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "dcdefec2", + "metadata": {}, + "outputs": [], + "source": [ + "df_test = df_test[pd.to_numeric(df_test['title0'], errors='coerce').notnull()]#remove all non-numeric data from the column." + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "id": "ca48568a", + "metadata": {}, + "outputs": [], + "source": [ + "df_test= df_test.drop(['index', 'Unnamed: 0'], axis=1)" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "id": "d4b7e8b7", + "metadata": {}, + "outputs": [], + "source": [ + "df_test= df_test.rename(columns={\"title0\": \"index\"})" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "id": "299ca65d", + "metadata": {}, + "outputs": [], + "source": [ + "X_test=df_test.drop(\"index\",axis=1)\n", + "y_test=df_test['index']" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "id": "4c50c510", + "metadata": {}, + "outputs": [], + "source": [ + "metadata_train = pd.read_csv(\"DS/mRNA_DS_metadata_col_info.csv\")" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "id": "6730cf89", + "metadata": {}, + "outputs": [], + "source": [ + "df_train= df_train.merge(metadata_train, left_on=\"index\", right_on= \"Unnamed: 0\")" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "id": "7a8ad8ad", + "metadata": {}, + "outputs": [], + "source": [ + "df_train['title0'] = df_train['title0'].replace('(?i)mucosa|normal|healthy', 0, regex=True)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "id": "a8cf8643", + "metadata": {}, + "outputs": [], + "source": [ + "df_train['title0'] = df_train['title0'].replace('(?i)Tumor|Cancer|carcinoma', 1, regex=True)" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "id": "f5d203aa", + "metadata": {}, + "outputs": [], + "source": [ + "df_train = df_train[pd.to_numeric(df_train['title0'], errors='coerce').notnull()]#remove all non-numeric data from the column." + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "id": "523bdaa6", + "metadata": {}, + "outputs": [], + "source": [ + "df_train= df_train.drop(['index', 'Unnamed: 0'], axis=1)" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "id": "46a6fb36", + "metadata": {}, + "outputs": [], + "source": [ + "df_train= df_train.rename(columns={\"title0\": \"index\"})" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "id": "e26f88c5", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "index\n", + "0 111\n", + "1 108\n", + "Name: count, dtype: int64" + ] + }, + "execution_count": 26, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_train['index'].value_counts()" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "id": "fbaf2507", + "metadata": {}, + "outputs": [], + "source": [ + "df_train= df_train.apply(pd.to_numeric)" + ] + }, + { + "cell_type": "markdown", + "id": "1c45ed10", + "metadata": {}, + "source": [ + "# t-SNE" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "id": "38a993d9", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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Hqz+m519fvjIbgc2bgRefx247z7fAY2zkpIgNJgoejCosYi6deviueeew8mTJ0P+3BMnTsSdd96Jzp0744MPPsD27dsxZ84cfPfdd3j99ddD3h49mDdDumg9L57yYiZMOB/w/PWvQHm5vv1zxh1RQEwT1OzatQv9+/dHSkoKEhIS8Je//AWFhYXhblZN2llaXp76b4jGyHv16oUmTZogNzfX4zb5+flo164dYmNjkZ2djTlz5rjcn52djZkzZ+L+++9HgwYNcMEFF2DJkiVen/eLL77AzJkzMWfOHMyePRvXXHMNsrOzccMNNyA/Px9DhgwBAOzZswf9+/dH48aNER8fj86dO2P9+vW6n//QoUMYNGgQkpKSUL9+fXTq1Amff/654/61a9fi8ssvR926ddGiRQtMmzYNlZWVjvsVRcHixYtxyy23oH79+njmmWe8v7FEGrtdnbnkrudFCPUye3bNgEeGogCZmeowFhH5T5jEhRdeKG666Sbx3XffiV27dolhw4aJevXqiZKSEul9lJWVCQCirKysxn1nzpwRP/74ozhz5oz/jczPFyIjQzu8qZeMDPX2IBoyZIjo37+/KCgoEHXr1hUHDx4UQgjxzjvvCO1P/NVXX4mYmBgxffp0sXPnTrFs2TIRFxcnli1b5thPVlaWSEpKEgsXLhRFRUUiNzdXxMTEiJ9++snjc48YMULEx8eLc+fOeW3jtm3bxMsvvyy+//57sWvXLjFp0iRRt25d8fPPP0s//2+//SZatGghunXrJjZt2iSKiorEqlWrxJYtW4QQQnzyySciISFBLF++XOzZs0d89NFHIjs7W0ydOtXxHABEWlqaeO2118SePXtcnl9jyGeBrKew0PW7beRFUYJ+nCAyM2+/385MEdQcO3ZMABCffPKJ47by8nIBQKxbt056P0ENavLz1QOTu4NVkA9YWlAjhBBXXXWVuP/++4UQrkHN4MGDxQ033ODyuPHjx4u2bds6rmdlZYl77rnHcb2qqkqkpaWJxYsXe3zuPn36iA4dOvjV7nbt2okXX3xR+vlfeeUV0aBBA/HLL7+43d/1118vZs6c6XLb66+/LtLT0x3XAYhRo0Z5bReDGnJr1KjgBDQhOPEhMjvZoMYUw0/Jycm46KKL8M9//hO///47Kisr8corryAtLQ1XXHGFx8dVVFSgvLzc5RIUvrql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", + "text/plain": [ + "<Figure size 640x480 with 1 Axes>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from sklearn.manifold import TSNE\n", + "# t-SNE\n", + "tsne = TSNE(n_components=2,perplexity=40)\n", + "embedded_data = tsne.fit_transform(df_train)\n", + "\n", + "# Step 2: Separate data points by class\n", + "class_1_indices = np.where(df_train['index'] == 0)[0]\n", + "class_2_indices = np.where(df_train['index'] == 1)[0]\n", + "\n", + "class_1_data = embedded_data[class_1_indices]\n", + "class_2_data = embedded_data[class_2_indices]\n", + "\n", + "# Step 3: Plot the t-SNE plot with different colors for each class\n", + "plt.scatter(class_1_data[:, 0], class_1_data[:, 1], color='red', label='Non-Cancer')\n", + "plt.scatter(class_2_data[:, 0], class_2_data[:, 1], color='blue', label='Cancer')\n", + "\n", + "plt.title('t-SNE Plot')\n", + "plt.xlabel('Dimension 1')\n", + "plt.ylabel('Dimension 2')\n", + "plt.legend()\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "id": "a295f3ad", + "metadata": {}, + "source": [ + "#### t-distributed stochastic neighbor embedding (t-SNE) is a statistical method for visualizing high-dimensional data by giving each datapoint a location in a two dimensional map. In the plot above we used perplexity of 40 for visualizing the t-SNE, but we didnt do any dimensionality reduction with it. Blue points are Cancer and the red are non-cancer." + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "id": "8c0011ea", + "metadata": {}, + "outputs": [], + "source": [ + "X=df_train.drop(\"index\",axis=1)\n", + "y=df_train['index']" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "id": "a10804ed", + "metadata": {}, + "outputs": [], + "source": [ + "X=X.astype('int')" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "id": "93e28118", + "metadata": {}, + "outputs": [], + "source": [ + "y=y.astype('int')" + ] + }, + { + "cell_type": "markdown", + "id": "e9830b6c", + "metadata": {}, + "source": [ + "# Feature Selection (LASSO)" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "id": "1cc528fb", + "metadata": {}, + "outputs": [], + "source": [ + "# LASSO model:\n", + "lasso = Lasso(alpha=1)\n", + "# fitting the model:\n", + "lasso.fit(X, y)\n", + "# select all coefficients and the feature names\n", + "lasso_coefs = lasso.coef_\n", + "feature_names = X.columns\n", + "\n", + "# collect the selected features:\n", + "selected_feature_indices = np.nonzero(lasso_coefs)[0]\n", + "selected_features = [feature_names[i] for i in selected_feature_indices]\n", + "X_selected = X.iloc[:, selected_feature_indices]" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "id": "8afa29ae", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "98" + ] + }, + "execution_count": 33, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "len(selected_features)" + ] + }, + { + "cell_type": "markdown", + "id": "6cee6462", + "metadata": {}, + "source": [ + "# Test train split" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "id": "cff9bd67", + "metadata": {}, + "outputs": [], + "source": [ + "X_train = X_selected\n", + "y_train = y" + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "id": "129430e6", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(index\n", + " 0 30\n", + " 1 30\n", + " Name: count, dtype: int64,\n", + " index\n", + " 0 111\n", + " 1 108\n", + " Name: count, dtype: int64)" + ] + }, + "execution_count": 35, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "y_test.value_counts(),y_train.value_counts()" + ] + }, + { + "cell_type": "markdown", + "id": "1cfe2a06", + "metadata": {}, + "source": [ + "# Cross validation" + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "id": "059bf577", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Fitting 5 folds for each of 72 candidates, totalling 360 fits\n", + "[CV 1/5] END gamma=0.1, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=0.8;, score=0.864 total time= 0.3s\n", + "[CV 2/5] END gamma=0.1, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=0.8;, score=0.932 total time= 0.1s\n", + "[CV 3/5] END gamma=0.1, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=0.8;, score=0.977 total time= 0.1s\n", + "[CV 4/5] END gamma=0.1, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=0.8;, score=0.932 total time= 0.2s\n", + "[CV 5/5] END gamma=0.1, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=0.8;, score=0.953 total time= 0.1s\n", + "[CV 1/5] END gamma=0.1, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=1;, score=0.886 total time= 0.1s\n", + "[CV 2/5] END gamma=0.1, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=1;, score=0.955 total time= 0.1s\n", + "[CV 3/5] END gamma=0.1, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=1;, score=0.977 total time= 0.1s\n", + "[CV 4/5] END gamma=0.1, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=1;, score=0.955 total time= 0.1s\n", + "[CV 5/5] END gamma=0.1, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=1;, score=0.953 total time= 0.4s\n", + "[CV 1/5] END gamma=0.1, learning_rate=0.1, max_depth=3, n_estimators=200, subsample=0.8;, score=0.795 total time= 0.4s\n", + "[CV 2/5] END gamma=0.1, learning_rate=0.1, max_depth=3, n_estimators=200, subsample=0.8;, score=0.932 total time= 0.2s\n", + "[CV 3/5] END gamma=0.1, learning_rate=0.1, max_depth=3, n_estimators=200, subsample=0.8;, score=0.977 total time= 0.1s\n", + "[CV 4/5] END gamma=0.1, learning_rate=0.1, max_depth=3, n_estimators=200, subsample=0.8;, score=0.932 total time= 0.1s\n", + "[CV 5/5] END gamma=0.1, learning_rate=0.1, max_depth=3, n_estimators=200, subsample=0.8;, score=0.953 total time= 0.1s\n", + "[CV 1/5] END gamma=0.1, learning_rate=0.1, max_depth=3, n_estimators=200, subsample=1;, score=0.886 total time= 0.3s\n", + "[CV 2/5] END gamma=0.1, learning_rate=0.1, max_depth=3, n_estimators=200, subsample=1;, score=0.955 total time= 0.1s\n", + "[CV 3/5] END gamma=0.1, learning_rate=0.1, max_depth=3, n_estimators=200, subsample=1;, score=0.977 total time= 0.3s\n", + "[CV 4/5] END gamma=0.1, learning_rate=0.1, max_depth=3, n_estimators=200, subsample=1;, score=0.955 total time= 0.1s\n", + "[CV 5/5] END gamma=0.1, learning_rate=0.1, max_depth=3, n_estimators=200, subsample=1;, score=0.953 total time= 0.1s\n", + "[CV 1/5] END gamma=0.1, learning_rate=0.1, max_depth=5, n_estimators=100, subsample=0.8;, score=0.886 total time= 0.1s\n", + "[CV 2/5] END gamma=0.1, learning_rate=0.1, max_depth=5, n_estimators=100, subsample=0.8;, score=0.932 total time= 0.1s\n", + "[CV 3/5] END gamma=0.1, learning_rate=0.1, max_depth=5, n_estimators=100, subsample=0.8;, score=0.977 total time= 0.7s\n", + "[CV 4/5] END gamma=0.1, learning_rate=0.1, max_depth=5, n_estimators=100, subsample=0.8;, score=0.932 total time= 0.1s\n", + "[CV 5/5] END gamma=0.1, learning_rate=0.1, max_depth=5, n_estimators=100, subsample=0.8;, score=0.953 total time= 0.1s\n", + "[CV 1/5] END gamma=0.1, learning_rate=0.1, max_depth=5, n_estimators=100, subsample=1;, score=0.864 total time= 0.1s\n", + "[CV 2/5] END gamma=0.1, learning_rate=0.1, max_depth=5, n_estimators=100, subsample=1;, score=0.977 total time= 0.1s\n", + "[CV 3/5] END gamma=0.1, learning_rate=0.1, max_depth=5, n_estimators=100, subsample=1;, score=0.977 total time= 0.1s\n", + "[CV 4/5] END gamma=0.1, learning_rate=0.1, max_depth=5, n_estimators=100, subsample=1;, score=0.932 total time= 0.1s\n", + "[CV 5/5] END gamma=0.1, learning_rate=0.1, max_depth=5, n_estimators=100, subsample=1;, score=0.930 total time= 0.1s\n", + "[CV 1/5] END gamma=0.1, learning_rate=0.1, max_depth=5, n_estimators=200, subsample=0.8;, score=0.886 total time= 0.2s\n", + "[CV 2/5] END gamma=0.1, learning_rate=0.1, max_depth=5, n_estimators=200, subsample=0.8;, score=0.932 total time= 0.1s\n", + "[CV 3/5] END gamma=0.1, learning_rate=0.1, max_depth=5, n_estimators=200, subsample=0.8;, score=0.977 total time= 0.1s\n", + "[CV 4/5] END gamma=0.1, learning_rate=0.1, max_depth=5, n_estimators=200, subsample=0.8;, score=0.932 total time= 0.1s\n", + "[CV 5/5] END gamma=0.1, learning_rate=0.1, max_depth=5, n_estimators=200, subsample=0.8;, score=0.953 total time= 0.2s\n", + "[CV 1/5] END gamma=0.1, learning_rate=0.1, max_depth=5, n_estimators=200, subsample=1;, score=0.864 total time= 0.1s\n", + "[CV 2/5] END gamma=0.1, learning_rate=0.1, max_depth=5, n_estimators=200, subsample=1;, score=0.977 total time= 0.1s\n", + "[CV 3/5] END gamma=0.1, learning_rate=0.1, max_depth=5, n_estimators=200, subsample=1;, score=0.977 total time= 0.1s\n", + "[CV 4/5] END gamma=0.1, learning_rate=0.1, max_depth=5, n_estimators=200, subsample=1;, score=0.932 total time= 0.2s\n", + "[CV 5/5] END gamma=0.1, learning_rate=0.1, max_depth=5, n_estimators=200, subsample=1;, score=0.930 total time= 0.2s\n", + "[CV 1/5] END gamma=0.1, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=0.8;, score=0.795 total time= 0.1s\n", + "[CV 2/5] END gamma=0.1, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=0.8;, score=0.955 total time= 0.2s\n", + "[CV 3/5] END gamma=0.1, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=0.8;, score=0.977 total time= 0.1s\n", + "[CV 4/5] END gamma=0.1, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=0.8;, score=0.909 total time= 0.1s\n", + "[CV 5/5] END gamma=0.1, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=0.8;, score=0.884 total time= 0.1s\n", + "[CV 1/5] END gamma=0.1, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=1;, score=0.773 total time= 0.1s\n", + "[CV 2/5] END gamma=0.1, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=1;, score=0.636 total time= 0.1s\n", + "[CV 3/5] END gamma=0.1, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=1;, score=0.955 total time= 0.1s\n", + "[CV 4/5] END gamma=0.1, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=1;, score=0.909 total time= 0.1s\n", + "[CV 5/5] END gamma=0.1, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=1;, score=0.860 total time= 0.1s\n", + "[CV 1/5] END gamma=0.1, learning_rate=0.01, max_depth=3, n_estimators=200, subsample=0.8;, score=0.886 total time= 0.1s\n", + "[CV 2/5] END gamma=0.1, learning_rate=0.01, max_depth=3, n_estimators=200, subsample=0.8;, score=0.932 total time= 0.1s\n", + "[CV 3/5] END gamma=0.1, learning_rate=0.01, max_depth=3, n_estimators=200, subsample=0.8;, score=0.977 total time= 0.1s\n", + "[CV 4/5] END gamma=0.1, learning_rate=0.01, max_depth=3, n_estimators=200, subsample=0.8;, score=0.909 total time= 0.2s\n", + "[CV 5/5] END gamma=0.1, learning_rate=0.01, max_depth=3, n_estimators=200, subsample=0.8;, score=0.884 total time= 0.2s\n", + "[CV 1/5] END gamma=0.1, learning_rate=0.01, max_depth=3, n_estimators=200, subsample=1;, score=0.864 total time= 0.1s\n", + "[CV 2/5] END gamma=0.1, learning_rate=0.01, max_depth=3, n_estimators=200, subsample=1;, score=0.932 total time= 0.2s\n", + "[CV 3/5] END gamma=0.1, learning_rate=0.01, max_depth=3, n_estimators=200, subsample=1;, score=0.955 total time= 0.3s\n", + "[CV 4/5] END gamma=0.1, learning_rate=0.01, max_depth=3, n_estimators=200, subsample=1;, score=0.909 total time= 0.2s\n", + "[CV 5/5] END gamma=0.1, learning_rate=0.01, max_depth=3, n_estimators=200, subsample=1;, score=0.907 total time= 0.2s\n", + "[CV 1/5] END gamma=0.1, learning_rate=0.01, max_depth=5, n_estimators=100, subsample=0.8;, score=0.773 total time= 0.1s\n", + "[CV 2/5] END gamma=0.1, learning_rate=0.01, max_depth=5, n_estimators=100, subsample=0.8;, score=0.977 total time= 0.1s\n", + "[CV 3/5] END gamma=0.1, learning_rate=0.01, max_depth=5, n_estimators=100, subsample=0.8;, score=0.955 total time= 0.1s\n", + "[CV 4/5] END gamma=0.1, learning_rate=0.01, max_depth=5, n_estimators=100, subsample=0.8;, score=0.909 total time= 0.1s\n", + "[CV 5/5] END gamma=0.1, learning_rate=0.01, max_depth=5, n_estimators=100, subsample=0.8;, score=0.884 total time= 0.1s\n", + "[CV 1/5] END gamma=0.1, learning_rate=0.01, max_depth=5, n_estimators=100, subsample=1;, score=0.659 total time= 0.1s\n", + "[CV 2/5] END gamma=0.1, learning_rate=0.01, max_depth=5, n_estimators=100, subsample=1;, score=0.750 total time= 0.1s\n", + "[CV 3/5] END gamma=0.1, learning_rate=0.01, max_depth=5, n_estimators=100, subsample=1;, score=0.955 total time= 0.1s\n", + "[CV 4/5] END gamma=0.1, learning_rate=0.01, max_depth=5, n_estimators=100, subsample=1;, score=0.932 total time= 0.1s\n", + "[CV 5/5] END gamma=0.1, learning_rate=0.01, max_depth=5, n_estimators=100, subsample=1;, score=0.884 total time= 0.1s\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[CV 1/5] END gamma=0.1, learning_rate=0.01, max_depth=5, n_estimators=200, subsample=0.8;, score=0.818 total time= 0.2s\n", + "[CV 2/5] END gamma=0.1, learning_rate=0.01, max_depth=5, n_estimators=200, subsample=0.8;, score=0.955 total time= 0.2s\n", + "[CV 3/5] END gamma=0.1, learning_rate=0.01, max_depth=5, n_estimators=200, subsample=0.8;, score=0.977 total time= 0.2s\n", + "[CV 4/5] END gamma=0.1, learning_rate=0.01, max_depth=5, n_estimators=200, subsample=0.8;, score=0.932 total time= 0.2s\n", + "[CV 5/5] END gamma=0.1, learning_rate=0.01, max_depth=5, n_estimators=200, subsample=0.8;, score=0.884 total time= 0.2s\n", + "[CV 1/5] END gamma=0.1, learning_rate=0.01, max_depth=5, n_estimators=200, subsample=1;, score=0.841 total time= 0.2s\n", + "[CV 2/5] END gamma=0.1, learning_rate=0.01, max_depth=5, n_estimators=200, subsample=1;, score=0.773 total time= 0.2s\n", + "[CV 3/5] END gamma=0.1, learning_rate=0.01, max_depth=5, n_estimators=200, subsample=1;, score=0.955 total time= 0.2s\n", + "[CV 4/5] END gamma=0.1, learning_rate=0.01, max_depth=5, n_estimators=200, subsample=1;, score=0.909 total time= 0.3s\n", + "[CV 5/5] END gamma=0.1, learning_rate=0.01, max_depth=5, n_estimators=200, subsample=1;, score=0.884 total time= 0.2s\n", + "[CV 1/5] END gamma=0.1, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=0.8;, score=0.659 total time= 0.1s\n", + "[CV 2/5] END gamma=0.1, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=0.8;, score=0.886 total time= 0.1s\n", + "[CV 3/5] END gamma=0.1, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=0.8;, score=0.932 total time= 0.1s\n", + "[CV 4/5] END gamma=0.1, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=0.8;, score=0.886 total time= 0.1s\n", + "[CV 5/5] END gamma=0.1, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=0.8;, score=0.884 total time= 0.1s\n", + "[CV 1/5] END gamma=0.1, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=1;, score=0.659 total time= 0.1s\n", + "[CV 2/5] END gamma=0.1, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=1;, score=0.614 total time= 0.1s\n", + "[CV 3/5] END gamma=0.1, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=1;, score=0.955 total time= 0.1s\n", + "[CV 4/5] END gamma=0.1, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=1;, score=0.864 total time= 0.1s\n", + "[CV 5/5] END gamma=0.1, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=1;, score=0.884 total time= 0.1s\n", + "[CV 1/5] END gamma=0.1, learning_rate=0.001, max_depth=3, n_estimators=200, subsample=0.8;, score=0.659 total time= 0.2s\n", + "[CV 2/5] END gamma=0.1, learning_rate=0.001, max_depth=3, n_estimators=200, subsample=0.8;, score=0.886 total time= 0.1s\n", + "[CV 3/5] END gamma=0.1, learning_rate=0.001, max_depth=3, n_estimators=200, subsample=0.8;, score=0.932 total time= 0.1s\n", + "[CV 4/5] END gamma=0.1, learning_rate=0.001, max_depth=3, n_estimators=200, subsample=0.8;, score=0.886 total time= 0.1s\n", + "[CV 5/5] END gamma=0.1, learning_rate=0.001, max_depth=3, n_estimators=200, subsample=0.8;, score=0.884 total time= 0.1s\n", + "[CV 1/5] END gamma=0.1, learning_rate=0.001, max_depth=3, n_estimators=200, subsample=1;, score=0.659 total time= 0.2s\n", + "[CV 2/5] END gamma=0.1, learning_rate=0.001, max_depth=3, n_estimators=200, subsample=1;, score=0.636 total time= 0.1s\n", + "[CV 3/5] END gamma=0.1, learning_rate=0.001, max_depth=3, n_estimators=200, subsample=1;, score=0.955 total time= 0.1s\n", + "[CV 4/5] END gamma=0.1, learning_rate=0.001, max_depth=3, n_estimators=200, subsample=1;, score=0.886 total time= 0.1s\n", + "[CV 5/5] END gamma=0.1, learning_rate=0.001, max_depth=3, n_estimators=200, subsample=1;, score=0.884 total time= 1.4s\n", + "[CV 1/5] END gamma=0.1, learning_rate=0.001, max_depth=5, n_estimators=100, subsample=0.8;, score=0.659 total time= 2.0s\n", + "[CV 2/5] END gamma=0.1, learning_rate=0.001, max_depth=5, n_estimators=100, subsample=0.8;, score=0.864 total time= 0.9s\n", + "[CV 3/5] END gamma=0.1, learning_rate=0.001, max_depth=5, n_estimators=100, subsample=0.8;, score=0.932 total time= 1.6s\n", + "[CV 4/5] END gamma=0.1, learning_rate=0.001, max_depth=5, n_estimators=100, subsample=0.8;, score=0.909 total time= 0.1s\n", + "[CV 5/5] END gamma=0.1, learning_rate=0.001, max_depth=5, n_estimators=100, subsample=0.8;, score=0.884 total time= 0.1s\n", + "[CV 1/5] END gamma=0.1, learning_rate=0.001, max_depth=5, n_estimators=100, subsample=1;, score=0.659 total time= 0.1s\n", + "[CV 2/5] END gamma=0.1, learning_rate=0.001, max_depth=5, n_estimators=100, subsample=1;, score=0.614 total time= 0.1s\n", + "[CV 3/5] END gamma=0.1, learning_rate=0.001, max_depth=5, n_estimators=100, subsample=1;, score=0.955 total time= 0.1s\n", + "[CV 4/5] END gamma=0.1, learning_rate=0.001, max_depth=5, n_estimators=100, subsample=1;, score=0.864 total time= 0.1s\n", + "[CV 5/5] END gamma=0.1, learning_rate=0.001, max_depth=5, n_estimators=100, subsample=1;, score=0.930 total time= 0.2s\n", + "[CV 1/5] END gamma=0.1, learning_rate=0.001, max_depth=5, n_estimators=200, subsample=0.8;, score=0.659 total time= 0.4s\n", + "[CV 2/5] END gamma=0.1, learning_rate=0.001, max_depth=5, n_estimators=200, subsample=0.8;, score=0.909 total time= 0.2s\n", + "[CV 3/5] END gamma=0.1, learning_rate=0.001, max_depth=5, n_estimators=200, subsample=0.8;, score=0.932 total time= 0.3s\n", + "[CV 4/5] END gamma=0.1, learning_rate=0.001, max_depth=5, n_estimators=200, subsample=0.8;, score=0.909 total time= 0.2s\n", + "[CV 5/5] END gamma=0.1, learning_rate=0.001, max_depth=5, n_estimators=200, subsample=0.8;, score=0.884 total time= 0.3s\n", + "[CV 1/5] END gamma=0.1, learning_rate=0.001, max_depth=5, n_estimators=200, subsample=1;, score=0.659 total time= 0.5s\n", + "[CV 2/5] END gamma=0.1, learning_rate=0.001, max_depth=5, n_estimators=200, subsample=1;, score=0.614 total time= 0.2s\n", + "[CV 3/5] END gamma=0.1, learning_rate=0.001, max_depth=5, n_estimators=200, subsample=1;, score=0.955 total time= 0.5s\n", + "[CV 4/5] END gamma=0.1, learning_rate=0.001, max_depth=5, n_estimators=200, subsample=1;, score=0.886 total time= 0.4s\n", + "[CV 5/5] END gamma=0.1, learning_rate=0.001, max_depth=5, n_estimators=200, subsample=1;, score=0.930 total time= 1.1s\n", + "[CV 1/5] END gamma=0.01, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=0.8;, score=0.750 total time= 0.2s\n", + "[CV 2/5] END gamma=0.01, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=0.8;, score=0.932 total time= 0.2s\n", + "[CV 3/5] END gamma=0.01, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=0.8;, score=0.977 total time= 0.1s\n", + "[CV 4/5] END gamma=0.01, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=0.8;, score=0.932 total time= 0.1s\n", + "[CV 5/5] END gamma=0.01, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=0.8;, score=0.930 total time= 0.2s\n", + "[CV 1/5] END gamma=0.01, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=1;, score=0.886 total time= 0.1s\n", + "[CV 2/5] END gamma=0.01, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=1;, score=0.955 total time= 0.2s\n", + "[CV 3/5] END gamma=0.01, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=1;, score=0.977 total time= 0.1s\n", + "[CV 4/5] END gamma=0.01, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=1;, score=0.977 total time= 0.2s\n", + "[CV 5/5] END gamma=0.01, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=1;, score=0.953 total time= 0.1s\n", + "[CV 1/5] END gamma=0.01, learning_rate=0.1, max_depth=3, n_estimators=200, subsample=0.8;, score=0.727 total time= 0.2s\n", + "[CV 2/5] END gamma=0.01, learning_rate=0.1, max_depth=3, n_estimators=200, subsample=0.8;, score=0.932 total time= 0.1s\n", + "[CV 3/5] END gamma=0.01, learning_rate=0.1, max_depth=3, n_estimators=200, subsample=0.8;, score=0.977 total time= 0.1s\n", + "[CV 4/5] END gamma=0.01, learning_rate=0.1, max_depth=3, n_estimators=200, subsample=0.8;, score=0.955 total time= 0.1s\n", + "[CV 5/5] END gamma=0.01, learning_rate=0.1, max_depth=3, n_estimators=200, subsample=0.8;, score=0.953 total time= 0.1s\n", + "[CV 1/5] END gamma=0.01, learning_rate=0.1, max_depth=3, n_estimators=200, subsample=1;, score=0.886 total time= 0.1s\n", + "[CV 2/5] END gamma=0.01, learning_rate=0.1, max_depth=3, n_estimators=200, subsample=1;, score=0.955 total time= 0.2s\n", + "[CV 3/5] END gamma=0.01, learning_rate=0.1, max_depth=3, n_estimators=200, subsample=1;, score=0.977 total time= 0.2s\n", + "[CV 4/5] END gamma=0.01, learning_rate=0.1, max_depth=3, n_estimators=200, subsample=1;, score=0.955 total time= 0.1s\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[CV 5/5] END gamma=0.01, learning_rate=0.1, max_depth=3, n_estimators=200, subsample=1;, score=0.953 total time= 0.2s\n", + "[CV 1/5] END gamma=0.01, learning_rate=0.1, max_depth=5, n_estimators=100, subsample=0.8;, score=0.909 total time= 0.1s\n", + "[CV 2/5] END gamma=0.01, learning_rate=0.1, max_depth=5, n_estimators=100, subsample=0.8;, score=0.932 total time= 0.2s\n", + "[CV 3/5] END gamma=0.01, learning_rate=0.1, max_depth=5, n_estimators=100, subsample=0.8;, score=0.977 total time= 0.2s\n", + "[CV 4/5] END gamma=0.01, learning_rate=0.1, max_depth=5, n_estimators=100, subsample=0.8;, score=0.932 total time= 0.1s\n", + "[CV 5/5] END gamma=0.01, learning_rate=0.1, max_depth=5, n_estimators=100, subsample=0.8;, score=0.953 total time= 0.1s\n", + "[CV 1/5] END gamma=0.01, learning_rate=0.1, max_depth=5, n_estimators=100, subsample=1;, score=0.886 total time= 0.1s\n", + "[CV 2/5] END gamma=0.01, learning_rate=0.1, max_depth=5, n_estimators=100, subsample=1;, score=0.977 total time= 0.1s\n", + "[CV 3/5] END gamma=0.01, learning_rate=0.1, max_depth=5, n_estimators=100, subsample=1;, score=0.977 total time= 0.1s\n", + "[CV 4/5] END gamma=0.01, learning_rate=0.1, max_depth=5, n_estimators=100, subsample=1;, score=0.909 total time= 0.1s\n", + "[CV 5/5] END gamma=0.01, learning_rate=0.1, max_depth=5, n_estimators=100, subsample=1;, score=0.930 total time= 0.1s\n", + "[CV 1/5] END gamma=0.01, learning_rate=0.1, max_depth=5, n_estimators=200, subsample=0.8;, score=0.841 total time= 0.3s\n", + "[CV 2/5] END gamma=0.01, learning_rate=0.1, max_depth=5, n_estimators=200, subsample=0.8;, score=0.932 total time= 0.1s\n", + "[CV 3/5] END gamma=0.01, learning_rate=0.1, max_depth=5, n_estimators=200, subsample=0.8;, score=0.977 total time= 0.1s\n", + "[CV 4/5] END gamma=0.01, learning_rate=0.1, max_depth=5, n_estimators=200, subsample=0.8;, score=0.909 total time= 0.1s\n", + "[CV 5/5] END gamma=0.01, learning_rate=0.1, max_depth=5, n_estimators=200, subsample=0.8;, score=0.953 total time= 0.1s\n", + "[CV 1/5] END gamma=0.01, learning_rate=0.1, max_depth=5, n_estimators=200, subsample=1;, score=0.886 total time= 0.1s\n", + "[CV 2/5] END gamma=0.01, learning_rate=0.1, max_depth=5, n_estimators=200, subsample=1;, score=0.977 total time= 0.6s\n", + "[CV 3/5] END gamma=0.01, learning_rate=0.1, max_depth=5, n_estimators=200, subsample=1;, score=0.977 total time= 0.1s\n", + "[CV 4/5] END gamma=0.01, learning_rate=0.1, max_depth=5, n_estimators=200, subsample=1;, score=0.909 total time= 0.1s\n", + "[CV 5/5] END gamma=0.01, learning_rate=0.1, max_depth=5, n_estimators=200, subsample=1;, score=0.953 total time= 0.1s\n", + "[CV 1/5] END gamma=0.01, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=0.8;, score=0.795 total time= 0.1s\n", + "[CV 2/5] END gamma=0.01, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=0.8;, score=0.955 total time= 0.1s\n", + "[CV 3/5] END gamma=0.01, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=0.8;, score=0.977 total time= 0.1s\n", + "[CV 4/5] END gamma=0.01, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=0.8;, score=0.909 total time= 0.2s\n", + "[CV 5/5] END gamma=0.01, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=0.8;, score=0.884 total time= 0.1s\n", + "[CV 1/5] END gamma=0.01, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=1;, score=0.773 total time= 0.1s\n", + "[CV 2/5] END gamma=0.01, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=1;, score=0.636 total time= 0.1s\n", + "[CV 3/5] END gamma=0.01, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=1;, score=0.955 total time= 0.2s\n", + "[CV 4/5] END gamma=0.01, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=1;, score=0.909 total time= 0.2s\n", + "[CV 5/5] END gamma=0.01, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=1;, score=0.860 total time= 0.1s\n", + "[CV 1/5] END gamma=0.01, learning_rate=0.01, max_depth=3, n_estimators=200, subsample=0.8;, score=0.886 total time= 0.2s\n", + "[CV 2/5] END gamma=0.01, learning_rate=0.01, max_depth=3, n_estimators=200, subsample=0.8;, score=0.932 total time= 0.2s\n", + "[CV 3/5] END gamma=0.01, learning_rate=0.01, max_depth=3, n_estimators=200, subsample=0.8;, score=0.977 total time= 0.1s\n", + "[CV 4/5] END gamma=0.01, learning_rate=0.01, max_depth=3, n_estimators=200, subsample=0.8;, score=0.909 total time= 0.2s\n", + "[CV 5/5] END gamma=0.01, learning_rate=0.01, max_depth=3, n_estimators=200, subsample=0.8;, score=0.884 total time= 0.1s\n", + "[CV 1/5] END gamma=0.01, learning_rate=0.01, max_depth=3, n_estimators=200, subsample=1;, score=0.864 total time= 0.1s\n", + "[CV 2/5] END gamma=0.01, learning_rate=0.01, max_depth=3, n_estimators=200, subsample=1;, score=0.932 total time= 0.1s\n", + "[CV 3/5] END gamma=0.01, learning_rate=0.01, max_depth=3, n_estimators=200, subsample=1;, score=0.955 total time= 0.2s\n", + "[CV 4/5] END gamma=0.01, learning_rate=0.01, max_depth=3, n_estimators=200, subsample=1;, score=0.909 total time= 0.5s\n", + "[CV 5/5] END gamma=0.01, learning_rate=0.01, max_depth=3, n_estimators=200, subsample=1;, score=0.907 total time= 0.8s\n", + "[CV 1/5] END gamma=0.01, learning_rate=0.01, max_depth=5, n_estimators=100, subsample=0.8;, score=0.773 total time= 1.1s\n", + "[CV 2/5] END gamma=0.01, learning_rate=0.01, max_depth=5, n_estimators=100, subsample=0.8;, score=0.977 total time= 0.1s\n", + "[CV 3/5] END gamma=0.01, learning_rate=0.01, max_depth=5, n_estimators=100, subsample=0.8;, score=0.955 total time= 0.1s\n", + "[CV 4/5] END gamma=0.01, learning_rate=0.01, max_depth=5, n_estimators=100, subsample=0.8;, score=0.909 total time= 0.1s\n", + "[CV 5/5] END gamma=0.01, learning_rate=0.01, max_depth=5, n_estimators=100, subsample=0.8;, score=0.884 total time= 0.1s\n", + "[CV 1/5] END gamma=0.01, learning_rate=0.01, max_depth=5, n_estimators=100, subsample=1;, score=0.659 total time= 0.4s\n", + "[CV 2/5] END gamma=0.01, learning_rate=0.01, max_depth=5, n_estimators=100, subsample=1;, score=0.750 total time= 0.7s\n", + "[CV 3/5] END gamma=0.01, learning_rate=0.01, max_depth=5, n_estimators=100, subsample=1;, score=0.955 total time= 1.8s\n", + "[CV 4/5] END gamma=0.01, learning_rate=0.01, max_depth=5, n_estimators=100, subsample=1;, score=0.932 total time= 3.4s\n", + "[CV 5/5] END gamma=0.01, learning_rate=0.01, max_depth=5, n_estimators=100, subsample=1;, score=0.884 total time= 3.2s\n", + "[CV 1/5] END gamma=0.01, learning_rate=0.01, max_depth=5, n_estimators=200, subsample=0.8;, score=0.818 total time= 1.7s\n", + "[CV 2/5] END gamma=0.01, learning_rate=0.01, max_depth=5, n_estimators=200, subsample=0.8;, score=0.955 total time= 1.9s\n", + "[CV 3/5] END gamma=0.01, learning_rate=0.01, max_depth=5, n_estimators=200, subsample=0.8;, score=0.977 total time= 0.2s\n", + "[CV 4/5] END gamma=0.01, learning_rate=0.01, max_depth=5, n_estimators=200, subsample=0.8;, score=0.932 total time= 0.2s\n", + "[CV 5/5] END gamma=0.01, learning_rate=0.01, max_depth=5, n_estimators=200, subsample=0.8;, score=0.884 total time= 0.7s\n", + "[CV 1/5] END gamma=0.01, learning_rate=0.01, max_depth=5, n_estimators=200, subsample=1;, score=0.841 total time= 0.2s\n", + "[CV 2/5] END gamma=0.01, learning_rate=0.01, max_depth=5, n_estimators=200, subsample=1;, score=0.773 total time= 0.2s\n", + "[CV 3/5] END gamma=0.01, learning_rate=0.01, max_depth=5, n_estimators=200, subsample=1;, score=0.955 total time= 0.3s\n", + "[CV 4/5] END gamma=0.01, learning_rate=0.01, max_depth=5, n_estimators=200, subsample=1;, score=0.909 total time= 0.2s\n", + "[CV 5/5] END gamma=0.01, learning_rate=0.01, max_depth=5, n_estimators=200, subsample=1;, score=0.884 total time= 0.2s\n", + "[CV 1/5] END gamma=0.01, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=0.8;, score=0.659 total time= 0.1s\n", + "[CV 2/5] END gamma=0.01, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=0.8;, score=0.886 total time= 0.1s\n", + "[CV 3/5] END gamma=0.01, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=0.8;, score=0.932 total time= 0.1s\n", + "[CV 4/5] END gamma=0.01, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=0.8;, score=0.886 total time= 0.1s\n", + "[CV 5/5] END gamma=0.01, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=0.8;, score=0.884 total time= 0.1s\n", + "[CV 1/5] END gamma=0.01, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=1;, score=0.659 total time= 0.1s\n", + "[CV 2/5] END gamma=0.01, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=1;, score=0.614 total time= 0.1s\n", + "[CV 3/5] END gamma=0.01, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=1;, score=0.955 total time= 0.1s\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[CV 4/5] END gamma=0.01, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=1;, score=0.864 total time= 0.1s\n", + "[CV 5/5] END gamma=0.01, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=1;, score=0.884 total time= 0.1s\n", + "[CV 1/5] END gamma=0.01, learning_rate=0.001, max_depth=3, n_estimators=200, subsample=0.8;, score=0.659 total time= 0.2s\n", + "[CV 2/5] END gamma=0.01, learning_rate=0.001, max_depth=3, n_estimators=200, subsample=0.8;, score=0.886 total time= 0.2s\n", + "[CV 3/5] END gamma=0.01, learning_rate=0.001, max_depth=3, n_estimators=200, subsample=0.8;, score=0.932 total time= 0.2s\n", + "[CV 4/5] END gamma=0.01, learning_rate=0.001, max_depth=3, n_estimators=200, subsample=0.8;, score=0.886 total time= 0.2s\n", + "[CV 5/5] END gamma=0.01, learning_rate=0.001, max_depth=3, n_estimators=200, subsample=0.8;, score=0.884 total time= 0.3s\n", + "[CV 1/5] END gamma=0.01, learning_rate=0.001, max_depth=3, n_estimators=200, subsample=1;, score=0.659 total time= 0.3s\n", + "[CV 2/5] END gamma=0.01, learning_rate=0.001, max_depth=3, n_estimators=200, subsample=1;, score=0.636 total time= 0.2s\n", + "[CV 3/5] END gamma=0.01, learning_rate=0.001, max_depth=3, n_estimators=200, subsample=1;, score=0.955 total time= 0.2s\n", + "[CV 4/5] END gamma=0.01, learning_rate=0.001, max_depth=3, n_estimators=200, subsample=1;, score=0.886 total time= 0.2s\n", + "[CV 5/5] END gamma=0.01, learning_rate=0.001, max_depth=3, n_estimators=200, subsample=1;, score=0.884 total time= 0.2s\n", + "[CV 1/5] END gamma=0.01, learning_rate=0.001, max_depth=5, n_estimators=100, subsample=0.8;, score=0.659 total time= 0.1s\n", + "[CV 2/5] END gamma=0.01, learning_rate=0.001, max_depth=5, n_estimators=100, subsample=0.8;, score=0.864 total time= 0.1s\n", + "[CV 3/5] END gamma=0.01, learning_rate=0.001, max_depth=5, n_estimators=100, subsample=0.8;, score=0.932 total time= 0.1s\n", + "[CV 4/5] END gamma=0.01, learning_rate=0.001, max_depth=5, n_estimators=100, subsample=0.8;, score=0.909 total time= 0.1s\n", + "[CV 5/5] END gamma=0.01, learning_rate=0.001, max_depth=5, n_estimators=100, subsample=0.8;, score=0.884 total time= 0.1s\n", + "[CV 1/5] END gamma=0.01, learning_rate=0.001, max_depth=5, n_estimators=100, subsample=1;, score=0.659 total time= 0.1s\n", + "[CV 2/5] END gamma=0.01, learning_rate=0.001, max_depth=5, n_estimators=100, subsample=1;, score=0.614 total time= 0.2s\n", + "[CV 3/5] END gamma=0.01, learning_rate=0.001, max_depth=5, n_estimators=100, subsample=1;, score=0.955 total time= 0.2s\n", + "[CV 4/5] END gamma=0.01, learning_rate=0.001, max_depth=5, n_estimators=100, subsample=1;, score=0.864 total time= 0.2s\n", + "[CV 5/5] END gamma=0.01, learning_rate=0.001, max_depth=5, n_estimators=100, subsample=1;, score=0.930 total time= 0.2s\n", + "[CV 1/5] END gamma=0.01, learning_rate=0.001, max_depth=5, n_estimators=200, subsample=0.8;, score=0.659 total time= 0.1s\n", + "[CV 2/5] END gamma=0.01, learning_rate=0.001, max_depth=5, n_estimators=200, subsample=0.8;, score=0.909 total time= 0.2s\n", + "[CV 3/5] END gamma=0.01, learning_rate=0.001, max_depth=5, n_estimators=200, subsample=0.8;, score=0.932 total time= 0.2s\n", + "[CV 4/5] END gamma=0.01, learning_rate=0.001, max_depth=5, n_estimators=200, subsample=0.8;, score=0.909 total time= 0.2s\n", + "[CV 5/5] END gamma=0.01, learning_rate=0.001, max_depth=5, n_estimators=200, subsample=0.8;, score=0.884 total time= 0.2s\n", + "[CV 1/5] END gamma=0.01, learning_rate=0.001, max_depth=5, n_estimators=200, subsample=1;, score=0.659 total time= 0.2s\n", + "[CV 2/5] END gamma=0.01, learning_rate=0.001, max_depth=5, n_estimators=200, subsample=1;, score=0.614 total time= 0.2s\n", + "[CV 3/5] END gamma=0.01, learning_rate=0.001, max_depth=5, n_estimators=200, subsample=1;, score=0.955 total time= 0.3s\n", + "[CV 4/5] END gamma=0.01, learning_rate=0.001, max_depth=5, n_estimators=200, subsample=1;, score=0.886 total time= 0.2s\n", + "[CV 5/5] END gamma=0.01, learning_rate=0.001, max_depth=5, n_estimators=200, subsample=1;, score=0.930 total time= 0.3s\n", + "[CV 1/5] END gamma=0.001, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=0.8;, score=0.750 total time= 0.1s\n", + "[CV 2/5] END gamma=0.001, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=0.8;, score=0.932 total time= 0.1s\n", + "[CV 3/5] END gamma=0.001, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=0.8;, score=0.977 total time= 0.1s\n", + "[CV 4/5] END gamma=0.001, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=0.8;, score=0.932 total time= 0.1s\n", + "[CV 5/5] END gamma=0.001, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=0.8;, score=0.930 total time= 0.1s\n", + "[CV 1/5] END gamma=0.001, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=1;, score=0.886 total time= 0.1s\n", + "[CV 2/5] END gamma=0.001, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=1;, score=0.955 total time= 0.1s\n", + "[CV 3/5] END gamma=0.001, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=1;, score=0.977 total time= 0.1s\n", + "[CV 4/5] END gamma=0.001, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=1;, score=1.000 total time= 0.1s\n", + "[CV 5/5] END gamma=0.001, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=1;, score=0.953 total time= 0.1s\n", + "[CV 1/5] END gamma=0.001, learning_rate=0.1, max_depth=3, n_estimators=200, subsample=0.8;, score=0.727 total time= 0.1s\n", + "[CV 2/5] END gamma=0.001, learning_rate=0.1, max_depth=3, n_estimators=200, subsample=0.8;, score=0.932 total time= 0.1s\n", + "[CV 3/5] END gamma=0.001, learning_rate=0.1, max_depth=3, n_estimators=200, subsample=0.8;, score=0.977 total time= 0.2s\n", + "[CV 4/5] END gamma=0.001, learning_rate=0.1, max_depth=3, n_estimators=200, subsample=0.8;, score=0.955 total time= 0.1s\n", + "[CV 5/5] END gamma=0.001, learning_rate=0.1, max_depth=3, n_estimators=200, subsample=0.8;, score=0.953 total time= 0.2s\n", + "[CV 1/5] END gamma=0.001, learning_rate=0.1, max_depth=3, n_estimators=200, subsample=1;, score=0.886 total time= 0.2s\n", + "[CV 2/5] END gamma=0.001, learning_rate=0.1, max_depth=3, n_estimators=200, subsample=1;, score=0.955 total time= 0.4s\n", + "[CV 3/5] END gamma=0.001, learning_rate=0.1, max_depth=3, n_estimators=200, subsample=1;, score=0.977 total time= 0.3s\n", + "[CV 4/5] END gamma=0.001, learning_rate=0.1, max_depth=3, n_estimators=200, subsample=1;, score=0.955 total time= 0.1s\n", + "[CV 5/5] END gamma=0.001, learning_rate=0.1, max_depth=3, n_estimators=200, subsample=1;, score=0.953 total time= 0.1s\n", + "[CV 1/5] END gamma=0.001, learning_rate=0.1, max_depth=5, n_estimators=100, subsample=0.8;, score=0.864 total time= 0.1s\n", + "[CV 2/5] END gamma=0.001, learning_rate=0.1, max_depth=5, n_estimators=100, subsample=0.8;, score=0.932 total time= 0.1s\n", + "[CV 3/5] END gamma=0.001, learning_rate=0.1, max_depth=5, n_estimators=100, subsample=0.8;, score=0.977 total time= 0.2s\n", + "[CV 4/5] END gamma=0.001, learning_rate=0.1, max_depth=5, n_estimators=100, subsample=0.8;, score=0.932 total time= 0.1s\n", + "[CV 5/5] END gamma=0.001, learning_rate=0.1, max_depth=5, n_estimators=100, subsample=0.8;, score=0.953 total time= 0.1s\n", + "[CV 1/5] END gamma=0.001, learning_rate=0.1, max_depth=5, n_estimators=100, subsample=1;, score=0.886 total time= 0.5s\n", + "[CV 2/5] END gamma=0.001, learning_rate=0.1, max_depth=5, n_estimators=100, subsample=1;, score=0.977 total time= 0.5s\n", + "[CV 3/5] END gamma=0.001, learning_rate=0.1, max_depth=5, n_estimators=100, subsample=1;, score=0.977 total time= 0.6s\n", + "[CV 4/5] END gamma=0.001, learning_rate=0.1, max_depth=5, n_estimators=100, subsample=1;, score=0.932 total time= 0.4s\n", + "[CV 5/5] END gamma=0.001, learning_rate=0.1, max_depth=5, n_estimators=100, subsample=1;, score=0.930 total time= 0.9s\n", + "[CV 1/5] END gamma=0.001, learning_rate=0.1, max_depth=5, n_estimators=200, subsample=0.8;, score=0.864 total time= 1.2s\n", + "[CV 2/5] END gamma=0.001, learning_rate=0.1, max_depth=5, n_estimators=200, subsample=0.8;, score=0.932 total time= 1.4s\n", + "[CV 3/5] END gamma=0.001, learning_rate=0.1, max_depth=5, n_estimators=200, subsample=0.8;, score=0.977 total time= 0.2s\n", + "[CV 4/5] END gamma=0.001, learning_rate=0.1, max_depth=5, n_estimators=200, subsample=0.8;, score=0.932 total time= 0.2s\n", + "[CV 5/5] END gamma=0.001, learning_rate=0.1, max_depth=5, n_estimators=200, subsample=0.8;, score=0.953 total time= 0.1s\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[CV 1/5] END gamma=0.001, learning_rate=0.1, max_depth=5, n_estimators=200, subsample=1;, score=0.886 total time= 0.1s\n", + "[CV 2/5] END gamma=0.001, learning_rate=0.1, max_depth=5, n_estimators=200, subsample=1;, score=0.977 total time= 0.1s\n", + "[CV 3/5] END gamma=0.001, learning_rate=0.1, max_depth=5, n_estimators=200, subsample=1;, score=0.977 total time= 0.1s\n", + "[CV 4/5] END gamma=0.001, learning_rate=0.1, max_depth=5, n_estimators=200, subsample=1;, score=0.909 total time= 0.1s\n", + "[CV 5/5] END gamma=0.001, learning_rate=0.1, max_depth=5, n_estimators=200, subsample=1;, score=0.953 total time= 0.1s\n", + "[CV 1/5] END gamma=0.001, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=0.8;, score=0.795 total time= 0.1s\n", + "[CV 2/5] END gamma=0.001, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=0.8;, score=0.955 total time= 0.2s\n", + "[CV 3/5] END gamma=0.001, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=0.8;, score=0.977 total time= 0.1s\n", + "[CV 4/5] END gamma=0.001, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=0.8;, score=0.909 total time= 0.1s\n", + "[CV 5/5] END gamma=0.001, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=0.8;, score=0.884 total time= 0.1s\n", + "[CV 1/5] END gamma=0.001, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=1;, score=0.773 total time= 0.1s\n", + "[CV 2/5] END gamma=0.001, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=1;, score=0.636 total time= 0.1s\n", + "[CV 3/5] END gamma=0.001, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=1;, score=0.955 total time= 0.1s\n", + "[CV 4/5] END gamma=0.001, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=1;, score=0.909 total time= 0.1s\n", + "[CV 5/5] END gamma=0.001, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=1;, score=0.860 total time= 0.1s\n", + "[CV 1/5] END gamma=0.001, learning_rate=0.01, max_depth=3, n_estimators=200, subsample=0.8;, score=0.886 total time= 0.2s\n", + "[CV 2/5] END gamma=0.001, learning_rate=0.01, max_depth=3, n_estimators=200, subsample=0.8;, score=0.932 total time= 0.2s\n", + "[CV 3/5] END gamma=0.001, learning_rate=0.01, max_depth=3, n_estimators=200, subsample=0.8;, score=0.977 total time= 0.2s\n", + "[CV 4/5] END gamma=0.001, learning_rate=0.01, max_depth=3, n_estimators=200, subsample=0.8;, score=0.909 total time= 0.2s\n", + "[CV 5/5] END gamma=0.001, learning_rate=0.01, max_depth=3, n_estimators=200, subsample=0.8;, score=0.884 total time= 0.2s\n", + "[CV 1/5] END gamma=0.001, learning_rate=0.01, max_depth=3, n_estimators=200, subsample=1;, score=0.864 total time= 0.2s\n", + "[CV 2/5] END gamma=0.001, learning_rate=0.01, max_depth=3, n_estimators=200, subsample=1;, score=0.932 total time= 0.2s\n", + "[CV 3/5] END gamma=0.001, learning_rate=0.01, max_depth=3, n_estimators=200, subsample=1;, score=0.955 total time= 0.2s\n", + "[CV 4/5] END gamma=0.001, learning_rate=0.01, max_depth=3, n_estimators=200, subsample=1;, score=0.909 total time= 0.2s\n", + "[CV 5/5] END gamma=0.001, learning_rate=0.01, max_depth=3, n_estimators=200, subsample=1;, score=0.907 total time= 0.2s\n", + "[CV 1/5] END gamma=0.001, learning_rate=0.01, max_depth=5, n_estimators=100, subsample=0.8;, score=0.773 total time= 0.1s\n", + "[CV 2/5] END gamma=0.001, learning_rate=0.01, max_depth=5, n_estimators=100, subsample=0.8;, score=0.977 total time= 0.1s\n", + "[CV 3/5] END gamma=0.001, learning_rate=0.01, max_depth=5, n_estimators=100, subsample=0.8;, score=0.955 total time= 0.2s\n", + "[CV 4/5] END gamma=0.001, learning_rate=0.01, max_depth=5, n_estimators=100, subsample=0.8;, score=0.909 total time= 0.1s\n", + "[CV 5/5] END gamma=0.001, learning_rate=0.01, max_depth=5, n_estimators=100, subsample=0.8;, score=0.884 total time= 0.1s\n", + "[CV 1/5] END gamma=0.001, learning_rate=0.01, max_depth=5, n_estimators=100, subsample=1;, score=0.659 total time= 0.1s\n", + "[CV 2/5] END gamma=0.001, learning_rate=0.01, max_depth=5, n_estimators=100, subsample=1;, score=0.750 total time= 0.1s\n", + "[CV 3/5] END gamma=0.001, learning_rate=0.01, max_depth=5, n_estimators=100, subsample=1;, score=0.955 total time= 0.1s\n", + "[CV 4/5] END gamma=0.001, learning_rate=0.01, max_depth=5, n_estimators=100, subsample=1;, score=0.932 total time= 0.2s\n", + "[CV 5/5] END gamma=0.001, learning_rate=0.01, max_depth=5, n_estimators=100, subsample=1;, score=0.884 total time= 0.2s\n", + "[CV 1/5] END gamma=0.001, learning_rate=0.01, max_depth=5, n_estimators=200, subsample=0.8;, score=0.818 total time= 0.3s\n", + "[CV 2/5] END gamma=0.001, learning_rate=0.01, max_depth=5, n_estimators=200, subsample=0.8;, score=0.955 total time= 0.2s\n", + "[CV 3/5] END gamma=0.001, learning_rate=0.01, max_depth=5, n_estimators=200, subsample=0.8;, score=0.977 total time= 0.2s\n", + "[CV 4/5] END gamma=0.001, learning_rate=0.01, max_depth=5, n_estimators=200, subsample=0.8;, score=0.932 total time= 0.3s\n", + "[CV 5/5] END gamma=0.001, learning_rate=0.01, max_depth=5, n_estimators=200, subsample=0.8;, score=0.884 total time= 0.2s\n", + "[CV 1/5] END gamma=0.001, learning_rate=0.01, max_depth=5, n_estimators=200, subsample=1;, score=0.841 total time= 0.2s\n", + "[CV 2/5] END gamma=0.001, learning_rate=0.01, max_depth=5, n_estimators=200, subsample=1;, score=0.773 total time= 0.2s\n", + "[CV 3/5] END gamma=0.001, learning_rate=0.01, max_depth=5, n_estimators=200, subsample=1;, score=0.955 total time= 0.2s\n", + "[CV 4/5] END gamma=0.001, learning_rate=0.01, max_depth=5, n_estimators=200, subsample=1;, score=0.909 total time= 0.2s\n", + "[CV 5/5] END gamma=0.001, learning_rate=0.01, max_depth=5, n_estimators=200, subsample=1;, score=0.884 total time= 0.3s\n", + "[CV 1/5] END gamma=0.001, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=0.8;, score=0.659 total time= 0.1s\n", + "[CV 2/5] END gamma=0.001, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=0.8;, score=0.886 total time= 0.1s\n", + "[CV 3/5] END gamma=0.001, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=0.8;, score=0.932 total time= 0.1s\n", + "[CV 4/5] END gamma=0.001, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=0.8;, score=0.886 total time= 0.1s\n", + "[CV 5/5] END gamma=0.001, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=0.8;, score=0.884 total time= 0.1s\n", + "[CV 1/5] END gamma=0.001, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=1;, score=0.659 total time= 0.1s\n", + "[CV 2/5] END gamma=0.001, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=1;, score=0.614 total time= 0.1s\n", + "[CV 3/5] END gamma=0.001, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=1;, score=0.955 total time= 0.1s\n", + "[CV 4/5] END gamma=0.001, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=1;, score=0.864 total time= 0.1s\n", + "[CV 5/5] END gamma=0.001, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=1;, score=0.884 total time= 0.1s\n", + "[CV 1/5] END gamma=0.001, learning_rate=0.001, max_depth=3, n_estimators=200, subsample=0.8;, score=0.659 total time= 0.2s\n", + "[CV 2/5] END gamma=0.001, learning_rate=0.001, max_depth=3, n_estimators=200, subsample=0.8;, score=0.886 total time= 0.3s\n", + "[CV 3/5] END gamma=0.001, learning_rate=0.001, max_depth=3, n_estimators=200, subsample=0.8;, score=0.932 total time= 0.3s\n", + "[CV 4/5] END gamma=0.001, learning_rate=0.001, max_depth=3, n_estimators=200, subsample=0.8;, score=0.886 total time= 0.2s\n", + "[CV 5/5] END gamma=0.001, learning_rate=0.001, max_depth=3, n_estimators=200, subsample=0.8;, score=0.884 total time= 0.2s\n", + "[CV 1/5] END gamma=0.001, learning_rate=0.001, max_depth=3, n_estimators=200, subsample=1;, score=0.659 total time= 0.2s\n", + "[CV 2/5] END gamma=0.001, learning_rate=0.001, max_depth=3, n_estimators=200, subsample=1;, score=0.636 total time= 0.2s\n", + "[CV 3/5] END gamma=0.001, learning_rate=0.001, max_depth=3, n_estimators=200, subsample=1;, score=0.955 total time= 0.3s\n", + "[CV 4/5] END gamma=0.001, learning_rate=0.001, max_depth=3, n_estimators=200, subsample=1;, score=0.886 total time= 0.2s\n", + "[CV 5/5] END gamma=0.001, learning_rate=0.001, max_depth=3, n_estimators=200, subsample=1;, score=0.884 total time= 0.2s\n", + "[CV 1/5] END gamma=0.001, learning_rate=0.001, max_depth=5, n_estimators=100, subsample=0.8;, score=0.659 total time= 0.1s\n", + "[CV 2/5] END gamma=0.001, learning_rate=0.001, max_depth=5, n_estimators=100, subsample=0.8;, score=0.864 total time= 0.1s\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[CV 3/5] END gamma=0.001, learning_rate=0.001, max_depth=5, n_estimators=100, subsample=0.8;, score=0.932 total time= 0.1s\n", + "[CV 4/5] END gamma=0.001, learning_rate=0.001, max_depth=5, n_estimators=100, subsample=0.8;, score=0.909 total time= 0.1s\n", + "[CV 5/5] END gamma=0.001, learning_rate=0.001, max_depth=5, n_estimators=100, subsample=0.8;, score=0.884 total time= 0.1s\n", + "[CV 1/5] END gamma=0.001, learning_rate=0.001, max_depth=5, n_estimators=100, subsample=1;, score=0.659 total time= 0.1s\n", + "[CV 2/5] END gamma=0.001, learning_rate=0.001, max_depth=5, n_estimators=100, subsample=1;, score=0.614 total time= 0.1s\n", + "[CV 3/5] END gamma=0.001, learning_rate=0.001, max_depth=5, n_estimators=100, subsample=1;, score=0.955 total time= 0.1s\n", + "[CV 4/5] END gamma=0.001, learning_rate=0.001, max_depth=5, n_estimators=100, subsample=1;, score=0.864 total time= 0.2s\n", + "[CV 5/5] END gamma=0.001, learning_rate=0.001, max_depth=5, n_estimators=100, subsample=1;, score=0.930 total time= 0.2s\n", + "[CV 1/5] END gamma=0.001, learning_rate=0.001, max_depth=5, n_estimators=200, subsample=0.8;, score=0.659 total time= 0.3s\n", + "[CV 2/5] END gamma=0.001, learning_rate=0.001, max_depth=5, n_estimators=200, subsample=0.8;, score=0.909 total time= 0.3s\n", + "[CV 3/5] END gamma=0.001, learning_rate=0.001, max_depth=5, n_estimators=200, subsample=0.8;, score=0.932 total time= 0.3s\n", + "[CV 4/5] END gamma=0.001, learning_rate=0.001, max_depth=5, n_estimators=200, subsample=0.8;, score=0.909 total time= 0.3s\n", + "[CV 5/5] END gamma=0.001, learning_rate=0.001, max_depth=5, n_estimators=200, subsample=0.8;, score=0.884 total time= 0.2s\n", + "[CV 1/5] END gamma=0.001, learning_rate=0.001, max_depth=5, n_estimators=200, subsample=1;, score=0.659 total time= 0.2s\n", + "[CV 2/5] END gamma=0.001, learning_rate=0.001, max_depth=5, n_estimators=200, subsample=1;, score=0.614 total time= 0.2s\n", + "[CV 3/5] END gamma=0.001, learning_rate=0.001, max_depth=5, n_estimators=200, subsample=1;, score=0.955 total time= 0.3s\n", + "[CV 4/5] END gamma=0.001, learning_rate=0.001, max_depth=5, n_estimators=200, subsample=1;, score=0.886 total time= 0.3s\n", + "[CV 5/5] END gamma=0.001, learning_rate=0.001, max_depth=5, n_estimators=200, subsample=1;, score=0.930 total time= 0.2s\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(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, eval_metric=None,\n", + " feature_types=None, gamma=None,\n", + " gpu_id=None, grow_policy=None,\n", + " importance_type=None,\n", + " interaction_constraints=None,\n", + " learning_rate=None, max_b...\n", + " max_cat_to_onehot=None,\n", + " max_delta_step=None, max_depth=None,\n", + " max_leaves=None, min_child_weight=None,\n", + " missing=nan, monotone_constraints=None,\n", + " n_estimators=100, n_jobs=None,\n", + " num_parallel_tree=None, predictor=None,\n", + " random_state=42, ...),\n", + " param_grid={'gamma': [0.1, 0.01, 0.001],\n", + " 'learning_rate': [0.1, 0.01, 0.001],\n", + " 'max_depth': [3, 5], 'n_estimators': [100, 200],\n", + " 'subsample': [0.8, 1]},\n", + " verbose=3)</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(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, eval_metric=None,\n", + " feature_types=None, gamma=None,\n", + " gpu_id=None, grow_policy=None,\n", + " importance_type=None,\n", + " interaction_constraints=None,\n", + " learning_rate=None, max_b...\n", + " max_cat_to_onehot=None,\n", + " max_delta_step=None, max_depth=None,\n", + " max_leaves=None, min_child_weight=None,\n", + " missing=nan, monotone_constraints=None,\n", + " n_estimators=100, n_jobs=None,\n", + " num_parallel_tree=None, predictor=None,\n", + " random_state=42, ...),\n", + " param_grid={'gamma': [0.1, 0.01, 0.001],\n", + " 'learning_rate': [0.1, 0.01, 0.001],\n", + " 'max_depth': [3, 5], 'n_estimators': [100, 200],\n", + " 'subsample': [0.8, 1]},\n", + " verbose=3)</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=None, feature_types=None,\n", + " gamma=None, gpu_id=None, grow_policy=None, importance_type=None,\n", + " interaction_constraints=None, learning_rate=None, max_bin=None,\n", + " max_cat_threshold=None, max_cat_to_onehot=None,\n", + " max_delta_step=None, max_depth=None, max_leaves=None,\n", + " min_child_weight=None, missing=nan, monotone_constraints=None,\n", + " n_estimators=100, n_jobs=None, num_parallel_tree=None,\n", + " predictor=None, random_state=42, ...)</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=None, feature_types=None,\n", + " gamma=None, gpu_id=None, grow_policy=None, importance_type=None,\n", + " interaction_constraints=None, learning_rate=None, max_bin=None,\n", + " max_cat_threshold=None, max_cat_to_onehot=None,\n", + " max_delta_step=None, max_depth=None, max_leaves=None,\n", + " min_child_weight=None, missing=nan, monotone_constraints=None,\n", + " n_estimators=100, n_jobs=None, num_parallel_tree=None,\n", + " predictor=None, random_state=42, ...)</pre></div></div></div></div></div></div></div></div></div></div>" + ], + "text/plain": [ + "GridSearchCV(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, eval_metric=None,\n", + " feature_types=None, gamma=None,\n", + " gpu_id=None, grow_policy=None,\n", + " importance_type=None,\n", + " interaction_constraints=None,\n", + " learning_rate=None, max_b...\n", + " max_cat_to_onehot=None,\n", + " max_delta_step=None, max_depth=None,\n", + " max_leaves=None, min_child_weight=None,\n", + " missing=nan, monotone_constraints=None,\n", + " n_estimators=100, n_jobs=None,\n", + " num_parallel_tree=None, predictor=None,\n", + " random_state=42, ...),\n", + " param_grid={'gamma': [0.1, 0.01, 0.001],\n", + " 'learning_rate': [0.1, 0.01, 0.001],\n", + " 'max_depth': [3, 5], 'n_estimators': [100, 200],\n", + " 'subsample': [0.8, 1]},\n", + " verbose=3)" + ] + }, + "execution_count": 36, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "model = xgb.XGBClassifier(random_state=42)\n", + "\n", + "# Defining parameter range\n", + "param_grid = {\n", + " 'max_depth': [3,5],\n", + " 'learning_rate': [0.1 ,0.01, 0.001],\n", + " 'n_estimators': [100,200],\n", + " 'gamma': [ 0.1,0.01,0.001],\n", + " 'subsample': [0.8,1]\n", + "}\n", + "\n", + "grid = GridSearchCV(model, param_grid, refit=True, verbose=3)\n", + "\n", + "# Fitting the model for grid search\n", + "grid.fit(X_train, y_train)" + ] + }, + { + "cell_type": "markdown", + "id": "6476d825", + "metadata": {}, + "source": [ + "# choose the best hyperparameters" + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "id": "5d327876", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'gamma': 0.001, 'learning_rate': 0.1, 'max_depth': 3, 'n_estimators': 100, 'subsample': 1}\n", + "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=None, feature_types=None,\n", + " gamma=0.001, gpu_id=None, grow_policy=None, importance_type=None,\n", + " interaction_constraints=None, learning_rate=0.1, max_bin=None,\n", + " max_cat_threshold=None, max_cat_to_onehot=None,\n", + " max_delta_step=None, max_depth=3, max_leaves=None,\n", + " min_child_weight=None, missing=nan, monotone_constraints=None,\n", + " n_estimators=100, n_jobs=None, num_parallel_tree=None,\n", + " predictor=None, random_state=42, ...)\n" + ] + } + ], + "source": [ + "# print best parameter after tuning\n", + "print(grid.best_params_)\n", + " \n", + "# print how our model looks after hyper-parameter tuning\n", + "print(grid.best_estimator_)" + ] + }, + { + "cell_type": "code", + "execution_count": 38, + "id": "29da15ed", + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "# Select columns in df1 based on columns in df2\n", + "X_test = X_test.loc[:, X_train.columns]" + ] + }, + { + "cell_type": "code", + "execution_count": 39, + "id": "d77bf449", + "metadata": {}, + "outputs": [], + "source": [ + "X_test = X_test.astype('int')" + ] + }, + { + "cell_type": "code", + "execution_count": 40, + "id": "3b2776c0", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<style>#sk-container-id-2 {color: black;background-color: white;}#sk-container-id-2 pre{padding: 0;}#sk-container-id-2 div.sk-toggleable {background-color: white;}#sk-container-id-2 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-2 label.sk-toggleable__label-arrow:before {content: \"▸\";float: left;margin-right: 0.25em;color: #696969;}#sk-container-id-2 label.sk-toggleable__label-arrow:hover:before {color: black;}#sk-container-id-2 div.sk-estimator:hover label.sk-toggleable__label-arrow:before {color: black;}#sk-container-id-2 div.sk-toggleable__content {max-height: 0;max-width: 0;overflow: hidden;text-align: left;background-color: #f0f8ff;}#sk-container-id-2 div.sk-toggleable__content pre {margin: 0.2em;color: black;border-radius: 0.25em;background-color: #f0f8ff;}#sk-container-id-2 input.sk-toggleable__control:checked~div.sk-toggleable__content {max-height: 200px;max-width: 100%;overflow: auto;}#sk-container-id-2 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {content: \"▾\";}#sk-container-id-2 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-2 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-2 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-2 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-2 div.sk-estimator:hover {background-color: #d4ebff;}#sk-container-id-2 div.sk-parallel-item::after {content: \"\";width: 100%;border-bottom: 1px solid gray;flex-grow: 1;}#sk-container-id-2 div.sk-label:hover label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-2 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-2 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-2 div.sk-item {position: relative;z-index: 1;}#sk-container-id-2 div.sk-parallel {display: flex;align-items: stretch;justify-content: center;background-color: white;position: relative;}#sk-container-id-2 div.sk-item::before, #sk-container-id-2 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-2 div.sk-parallel-item {display: flex;flex-direction: column;z-index: 1;position: relative;background-color: white;}#sk-container-id-2 div.sk-parallel-item:first-child::after {align-self: flex-end;width: 50%;}#sk-container-id-2 div.sk-parallel-item:last-child::after {align-self: flex-start;width: 50%;}#sk-container-id-2 div.sk-parallel-item:only-child::after {width: 0;}#sk-container-id-2 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-2 div.sk-label label {font-family: monospace;font-weight: bold;display: inline-block;line-height: 1.2em;}#sk-container-id-2 div.sk-label-container {text-align: center;}#sk-container-id-2 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-2 div.sk-text-repr-fallback {display: none;}</style><div id=\"sk-container-id-2\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><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=None, feature_types=None,\n", + " gamma=0.001, gpu_id=None, grow_policy=None, importance_type=None,\n", + " interaction_constraints=None, learning_rate=0.1, max_bin=None,\n", + " max_cat_threshold=None, max_cat_to_onehot=None,\n", + " max_delta_step=None, max_depth=3, max_leaves=None,\n", + " min_child_weight=None, missing=nan, monotone_constraints=None,\n", + " n_estimators=100, n_jobs=None, num_parallel_tree=None,\n", + " predictor=None, random_state=42, ...)</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\"><div class=\"sk-estimator sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-4\" type=\"checkbox\" checked><label for=\"sk-estimator-id-4\" 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=None, feature_types=None,\n", + " gamma=0.001, gpu_id=None, grow_policy=None, importance_type=None,\n", + " interaction_constraints=None, learning_rate=0.1, max_bin=None,\n", + " max_cat_threshold=None, max_cat_to_onehot=None,\n", + " max_delta_step=None, max_depth=3, max_leaves=None,\n", + " min_child_weight=None, missing=nan, monotone_constraints=None,\n", + " n_estimators=100, n_jobs=None, num_parallel_tree=None,\n", + " predictor=None, random_state=42, ...)</pre></div></div></div></div></div>" + ], + "text/plain": [ + "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=None, feature_types=None,\n", + " gamma=0.001, gpu_id=None, grow_policy=None, importance_type=None,\n", + " interaction_constraints=None, learning_rate=0.1, max_bin=None,\n", + " max_cat_threshold=None, max_cat_to_onehot=None,\n", + " max_delta_step=None, max_depth=3, max_leaves=None,\n", + " min_child_weight=None, missing=nan, monotone_constraints=None,\n", + " n_estimators=100, n_jobs=None, num_parallel_tree=None,\n", + " predictor=None, random_state=42, ...)" + ] + }, + "execution_count": 40, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "model_xgb = grid.best_estimator_\n", + "model_xgb.fit(X_train,y_train)" + ] + }, + { + "cell_type": "code", + "execution_count": 41, + "id": "94871ada", + "metadata": {}, + "outputs": [], + "source": [ + "y_proba = model_xgb.fit(X_train, y_train).predict_proba(X_test)[:,1]" + ] + }, + { + "cell_type": "markdown", + "id": "d1c59b26", + "metadata": {}, + "source": [ + "# ROC Curve and Classification report" + ] + }, + { + "cell_type": "code", + "execution_count": 42, + "id": "fddf8856", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAr4AAAIjCAYAAADlfxjoAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAABta0lEQVR4nO3de3zO9f/H8ce12ZFtCLMxDRE5H5dUSitUEn0jhFSUc5bKKSuKIqUcUsohEemgHCKHyDE5zPmQUw6ZQ9jY7Hh9fn98fi4tI9dc22fb9bzfbtfN3u/r8/lcr8vFPL33/rzfNsMwDERERERE8jkPqwsQEREREckJCr4iIiIi4hYUfEVERETELSj4ioiIiIhbUPAVEREREbeg4CsiIiIibkHBV0RERETcgoKviIiIiLgFBV8RERERcQsKviIiIiLiFhR8RURuwtNPP42vry/79u276rl33nkHm83G/PnzHX3JycmMHTuWu+++myJFiuDt7U1oaCiPPfYYX331Fenp6Y5jDx8+jM1my/AIDAykZs2ajBs3LsOxVpkwYQJTp061ugwRkRtiMwzDsLoIEZG86tSpU1SqVImaNWuyfPlyR/+hQ4eoUqUKDz/8MN988w0Ap0+fplmzZmzatIkmTZrw4IMPUrRoUWJjY1m6dCnLly9n6NChvP7664AZfMuWLUvbtm15+OGHAYiLi2PhwoUsXLiQfv36MWrUqJx/0/9QtWpVihUrxooVKyytQ0TkRij4iojcpEmTJtG1a1emTp1Kp06dAGjWrBlr165l165dlCpVCoCmTZuyZMkS5syZQ6tWra66zsaNG9m7dy/t27cHrgTfUaNG0a9fP8dxhmEQERHB8ePHOX78eA68w2tT8BWRvERTHUREbtLzzz9Pw4YN6devH3///TezZs1i0aJFvPXWW47Qu27dOhYvXkzXrl0zDb0AdevWdYTe67HZbAQHB1OgQIGrnpswYQJVqlTBx8eH0NBQevTowfnz5686bs6cOdSpUwc/Pz+KFSvG008/fVWIjo2NpXPnzpQuXRofHx9CQkJo0aIFhw8fBiA8PJydO3eycuVKx1SM++677z/rFxGxytXfNUVExCk2m41PPvmEWrVq0a1bN1atWkXdunXp0aOH45h58+YB5pxgZyUmJnLmzBkA4uPj+emnn1i0aBEDBgzIcNwbb7zBm2++SWRkJN26dWPv3r18/PHH/P7776xZswYvLy8Apk6dSufOnalXrx4jRozg5MmTfPjhh6xZs4YtW7ZQuHBhAJ544gl27txJr169CA8P59SpUyxZsoQjR44QHh7OmDFj6NWrF4UKFWLQoEEABAcHO/3+RERyjCEiIi4xYMAAAzA8PT2NTZs2ZXiuZcuWBmCcP38+Q/+lS5eM06dPOx7nzp1zPHfo0CEDyPTRrVs3w263O449deqU4e3tbTz00ENGenq6o3/cuHEGYEyePNkwDMNISUkxSpQoYVStWtW4dOmS47j58+cbgDFkyBDDMAzj3LlzBmCMGjXquu+5SpUqRqNGjZz6fRIRsYqmOoiIuEixYsUACA0NpWrVqhmei4+PB6BQoUIZ+idOnEjx4sUdj7vvvvuq63bt2pUlS5awZMkSvv32W3r06MEnn3xCVFSU45ilS5eSkpLCSy+9hIfHlW/tXbp0ITAwkAULFgDmPOJTp07RvXt3fH19Hcc98sgjVKpUyXGcn58f3t7erFixgnPnzt3Mb4uISK6h4Csi4gJHjx4lOjqaqlWrcvToUUaOHJnh+YCAAAAuXryYof+JJ55whNrq1atneu0KFSoQGRlJZGQkrVq1Yty4cXTv3p0xY8awfft2AP78808Abr/99gznent7U65cOcfz1zoOoFKlSo7nfXx8ePfdd/npp58IDg7m3nvvZeTIkcTGxjr1+yIikpso+IqIuEDPnj0B+Omnn3jyySd5++23OXjwoOP5SpUqAbBjx44M54WFhTlCbZEiRW749R544AEAfv3115st/Zpeeukl9u3bx4gRI/D19eX111+ncuXKbNmyJdteU0QkOyn4iojcpO+//54ff/yRYcOGUbp0acaMGYO3t3eGm9seffRRAGbMmOGS10xLSwOujCDfeuutAOzduzfDcSkpKRw6dMjx/LWOu9x3+fnLypcvz8svv8zPP//Mjh07SElJYfTo0Y7nbTabS96PiEhOUPAVEbkJFy5coHfv3tSqVYtevXoB5hzfYcOGsWjRIubMmQNAw4YNefDBB/n000/54YcfMr2W4cSy6pdXiahRowYAkZGReHt789FHH2W4zueff05cXByPPPIIYC6ZVqJECSZOnEhycrLjuJ9++ondu3c7jktMTCQpKSnDa5YvX56AgIAM5xUsWDDT5dJERHIjbWAhInIT+vTpw7hx41i/fj316tVz9Kenp1O/fn1iY2PZs2cPAQEBnDp1iqZNm7JlyxaaNWvmmN7wz53bmjVrxsKFC4HMd267cOECy5Yt49tvv+Wuu+5i1apVjpvZLi9n9tBDD/HYY4+xd+9eJkyYQO3atTNdziwiIoK2bds6ljMrUaKEYzmzmJgYHnjgAVq3bs0dd9xBgQIF+P7771myZAnffPMNTzzxBAA9evTg448/ZujQodx2222UKFGCxo0b5+RHICJy46xdVEJEJO/auHGj4enpafTs2TPT5zds2GB4eHgYvXv3dvRdunTJGDNmjNGgQQMjMDDQKFCggFGyZEnj0UcfNWbMmGGkpaU5js1sObMCBQoY5cqVM1555RXjwoULV73muHHjjEqVKhleXl5GcHCw0a1btwxLpF02e/Zso1atWoaPj49RtGhRo3379saxY8ccz585c8bo0aOHUalSJaNgwYJGUFCQERERYXz99dcZrhMbG2s88sgjRkBAgAFoaTMRydU04isiIiIibkFzfEVERETELSj4ioiIiIhbUPAVEREREbeg4CsiIiIibkHBV0RERETcgoKviIiIiLiFAlYXkNPsdjt//fUXAQEB2mpTREREJBcyDIMLFy4QGhrq2KTHFdwu+P7111+EhYVZXYaIiIiI/IejR49SunRpl13P7YJvQEAAYP5GBgYGWlyNiIiIiPxbfHw8YWFhjtzmKm4XfC9PbwgMDFTwFREREcnFXD0tVTe3iYiIiIhbUPAVEREREbeg4CsiIiIibkHBV0RERETcgoKviIiIiLgFBV8RERERcQsKviIiIiLiFhR8RURERMQtKPiKiIiIiFtQ8BURERERt6DgKyIiIiJuQcFXRERERNyCgq+IiIiIuAUFXxERERFxCwq+IiIiIuIWLA2+v/76K82bNyc0NBSbzcbcuXP/85wVK1ZQu3ZtfHx8uO2225g6dWq21ykiIiIieZ+lwTchIYEaNWowfvz4Gzr+0KFDPPLII9x///3ExMTw0ksv8fzzz7N48eJsrlRERERE8roCVr54s2bNaNas2Q0fP3HiRMqWLcvo0aMBqFy5MqtXr+aDDz6gSZMm2VWmJQwDEhOtrkJEREQk5yUkZM91LQ2+zlq3bh2RkZEZ+po0acJLL710zXOSk5NJTk52tOPj47OrPJcxDLj7bli71upKRERERHJWAVJJy6Zr56mb22JjYwkODs7QFxwcTHx8PJcuXcr0nBEjRhAUFOR4hIWF5USpNyUxUaFXRERE3IsfiUygGz/yGGDPltfIUyO+WTFgwACioqIc7fj4+DwRfi87eRIKFrS6ChEREZHs4xGzGZ/O7fD4Yy8Asd+tp2Qr179Ongq+JUuW5OTJkxn6Tp48SWBgIH5+fpme4+Pjg4+PT06Uly0KFlTwFRERkXzKbofRo2HQIEhNhdBQmDYNv/r1s+Xl8lTwbdCgAQsXLszQt2TJEho0aGBRRSIiIiKSJceOQadOsHy52W7ZEiZNgltugWy6J8vSOb4XL14kJiaGmJgYwFyuLCYmhiNHjgDmNIWOHTs6jn/xxRc5ePAgr776Knv27GHChAl8/fXX9O3b14ryRURERCQrDAP+9z8z9Pr7w2efwbffmqE3G1kafDdu3EitWrWoVasWAFFRUdSqVYshQ4YAcOLECUcIBihbtiwLFixgyZIl1KhRg9GjR/PZZ5/lu6XMRERERPI1mw3GjoW77oKYGHjuObMvu1/WMAwj218lF4mPjycoKIi4uDgCAwOtLidTCQlQqJD59cWLmuMrIiIi+cD69bBvH/zjp/kYRqaBN7vyWp5azkxERERE8pi0NBg61NykoEsX2LbtynM5MMr7T3nq5jYRERERyUMOHoQOHa5sUNCmDZQpY1k5GvEVEREREdcyDJg+HWrWNENvYCB8+SXMmAGFC1tWlkZ8RURERMR1DAOeeQa++MJsN2xoht7wcCurAjTiKyIiIiKuZLNB5crg6QnDhsGKFbki9IJGfEVERETkZqWkwMmTEBZmtl95BR5+GKpXt7auf9GIr4iIiIhk3d695nq8TZvCpUtmn6dnrgu9oOArIiIiIllhGOYWw7Vrw6ZNcOIE7NpldVXXpeArIiIiIs45cwZatYKuXSExERo3NtfnrVPH6squS8FXRERERG7czz+b0xjmzgUvL3jvPViyBEqXtrqy/6Sb20RERETkxhgGjBxpTmuoXBlmzjTX6s0jNOIrIiIiIjfGZoMpU+Dll2HjxjwVekHBV0RERESuxTBg7FiIirrSFxZmTm/w97eurizSVAcRERERuVpsLHTuDIsWme3//c9ctiwP04iviIiIiGQ0bx5Uq2aGXl9fc9S3QQOrq7ppGvEVEREREVNiIvTrBx9/bLarVzdvYKtSxdq6XETBV0RERETM+bwPPQRr1pjtl1+Gt98GHx9r63IhBV8RERERMVds6NsXDh2CadMgMtLqilxOc3xFRERE3NWxY7Bq1ZX2E0/Avn35MvSCgq+IiIiIe5ozx5zD26qVuYLDZQULWldTNtNUBxcwDHMuuKskJLjuWiIiIiIZXLgAvXvD1Klmu149uHTJ0pJyioLvTTIMuPtuWLvW6kpERERE/sP69dC+PRw8aM7pHTgQoqPBy8vqynKEgu9NSkzMvtDbsGGe3BRFREREchvDgGHDYOhQSE+HMmXgyy/hnnusrixHKfi60MmTrp0W4+9v/mdMRERE5KbYbHD0qBl627WD8eOhcGGrq8pxCr4uVLBgvp4PLiIiInmJYUBSEvj5me0PPoAmTcyth92UVnUQERERyW/OnzdHdlu0ALvd7CtUyK1DL2jEV0RERCR/+fVX6NABjhwBT0/4/XeIiLC6qlxBI74iIiIi+UFKirlKw333maG3fHlz+2GFXgeN+IqIiIjkdXv3msuUbdpktp99FsaMgYAAS8vKbRR8RURERPIywzDn827eDEWKwKRJ5tbDchVNdRARERHJy2w2+PRTaNoUtm1T6L0OBV8RERGRvObnn82R3cvq1IGffoLSpa2rKQ9Q8BURERHJK5KSoG9fcz3enj3NEV65YZrjKyIiIpIX7NhhzuXdvt1sP/883HabtTXlMRrxFREREcnNDAPGjoW6dc3QW7w4zJtnbjvs7291dXmKRnxFREREcivDgJYt4YcfzHazZjBlCgQHW1tXHqURXxEREZHcymaDhg3B19cc9V2wQKH3JmjEV0RERCQ3SUyE2FgoV85sv/yyOeqr+bw3TSO+IiIiIrnF5s3m0mSPPGIGYAAPD4VeF1HwFREREbGa3Q4jR8Kdd8KePRAXBwcPWl1VvqOpDiIiIiJWOnYMOnaEX34x2y1bmptT3HKLtXXlQxrxFREREbHKnDlQvboZev39zcD77bcKvdlEI74iIiIiVjAM+PRTOHfOXKN3xgyoWNHqqvI1jfiKiIiI5CTDMH+12WDqVHjzTVi7VqE3Byj4ioiIiOSEtDQYOhR69brSV6oUDBkCXl7W1eVGNNVBREREJLsdOgRPP22O7AJ06gT16llbkxvSiK+IiIhIdjEM+PJLqFHDDL2BgWZbodcSGvEVERERyQ7nz0O3bjBrltlu2NAMveHhVlbl1hR8RURERFzNMOCBB8yd2Dw94Y03oH9/KKDoZSVNdRARERFxNZsNXn/d3Gp4zRoYPFihNxdQ8BURERFxhX37YNmyK+3HH4cdOyAiwrKSJCMFXxEREZGbYRjmjmu1akHr1vDXX1ee8/Gxri65isbcRURERLLqzBno0gXmzjXbd95paTlyfRrxFREREcmKJUugenUz9Hp5wahRZl9oqNWVyTVoxFdERETEGYYB/frB+++b7cqVYcYMc6qD5Goa8RURERFxhs0GCQnm1927w8aNCr15hEZ8RURERP6LYcCFC+bOawCjR0OrVvDQQ9bWJU7RiK+IiIjI9cTGwiOPmEHXbjf7ChZU6M2DNOIrIiIici3z58Ozz8Lp0+DrC1u3alpDHqYRXxEREZF/S0w05+82b26G3urVNZc3H1DwFREREfmnzZuhTh34+GOzHRUFGzZAlSrW1iU3TVMdRERERC6z282pDXv2QEgITJsGDz5odVXiIhrxFREREbnMwwOmTDG3Ht6+XaE3n1HwFREREff2zTcwfvyVdq1aMHs23HKLdTVJttBUBxEREXFPFy5Anz7mCK+XF9x7L1SrZnVVko0UfEVERMT9rF8PTz8NBw6YO7G98gpUqmR1VZLNFHxFRETEfaSlwfDhMHQopKdDmTIwfbo52iv5noKviIiIuAe73dxt7ZdfzHbbtjBhAhQubGlZknN0c5uIiIi4Bw8PePRRCAyEL7+EmTMVet2Mgq+IiIjkX+fPw969V9ovvQS7dkH79lZVJBZS8BUREZH86ddfoUYNaNECEhLMPg8PKFXK2rrEMgq+IiIikr+kpsKgQXDffXDkiHlD2/HjVlcluYCCr4iIiOQf+/bBXXeZKzcYhrn98JYtULGi1ZVJLqDgKyIiInmfYcCkSeauaxs3QpEiMGcOfP45BARYXZ3kElrOTERERPI+wzC3Hk5MhMaNYdo0KF3a6qokl1HwFRERkbzLMMyd1zw8YOpUmD0bevc22yL/oj8VIiIikvckJUHfvvDCC1f6QkLM5coUeuUaLP+TMX78eMLDw/H19SUiIoINGzZc9/gxY8Zw++234+fnR1hYGH379iUpKSmHqhURERHL7dgB9evDmDHmvN6YGKsrkjzC0uA7e/ZsoqKiiI6OZvPmzdSoUYMmTZpw6tSpTI+fOXMm/fv3Jzo6mt27d/P5558ze/ZsBg4cmMOVi4iISI4zDBg7FurWhe3boXhxmDcPata0ujLJIywNvu+//z5dunShc+fO3HHHHUycOBF/f38mT56c6fFr166lYcOGtGvXjvDwcB566CHatm37n6PEIiIiksfFxsLDD5vzd5OToVkzM/w++qjVlUkeYlnwTUlJYdOmTURGRl4pxsODyMhI1q1bl+k5d911F5s2bXIE3YMHD7Jw4UIefvjha75OcnIy8fHxGR4iIiKSh9jtEBkJixaBr6856rtgAQQHW12Z5DGWBd8zZ86Qnp5O8L/+0AYHBxMbG5vpOe3atWPo0KHcfffdeHl5Ub58ee67777rTnUYMWIEQUFBjkdYWJhL34eIiIhkMw8PGDHC3H5440bo2dNcyUHESZbf3OaMFStWMHz4cCZMmMDmzZv57rvvWLBgAcOGDbvmOQMGDCAuLs7xOHr0aA5WLCIiIlmyebM5wntZ8+awaRNUqWJdTZLnWbaOb7FixfD09OTkyZMZ+k+ePEnJkiUzPef111+nQ4cOPP/88wBUq1aNhIQEunbtyqBBg/DIZPkSHx8ffHx8XP8GRERExPXsdnjvPRg8GAoVgm3brmxE4elpbW2S51k24uvt7U2dOnVYtmyZo89ut7Ns2TIaNGiQ6TmJiYlXhVvP//9LYBhG9hUrIiIi2e/oUXMu72uvQWoq3Hcf+PlZXZXkI5bu3BYVFUWnTp2oW7cu9evXZ8yYMSQkJNC5c2cAOnbsSKlSpRgxYgQAzZs35/3336dWrVpERESwf/9+Xn/9dZo3b+4IwCIiIpIHzZljbkZx7hz4+8NHH8Gzz2our7iUpcG3TZs2nD59miFDhhAbG0vNmjVZtGiR44a3I0eOZBjhHTx4MDabjcGDB3P8+HGKFy9O8+bNefvtt616CyIiInIz7HZ4/nmYMsVs16sHM2ZAhQrW1iX5ks1wszkC8fHxBAUFERcXR2Bg4E1fLyHBnIIEcPEiFCx405cUERFxLz16wMSJMGAAREeDl5fVFYnFXJ3XLrN0xFdERETcUFoaxMdD0aJme9QoePppuMY9PiKukqeWMxMREZE87tAhaNQIWrWC9HSzz99foVdyhIKviIiIZD/DgOnTzU0o1q6FLVtg926rqxI3o+ArIiIi2ev8eWjXDjp2hAsXoGFD2LoVqla1ujJxMwq+IiIikn1WroTq1WHWLHMDimHDYMUKCA+3ujJxQ7q5TURERLKH3Q69e5sbU5Qvby5TFhFhdVXixjTiKyIiItnDwwO++AK6dIGYGIVesZxGfEVERMQ1DAM++8xc2L5vX7OvRg349FNr6xL5fwq+IiIicvPOnDFHdufOhQIF4KGHoEoVq6sSyUDBV0RERG7Ozz/DM8/AiRPmrmsjRkDlylZXJXIVBV8RERHJmqQkc5vhMWPMduXKMHMm1KxpZVUi16TgKyIiIs5LT4d774XffzfbPXrAyJHmLmwiuZSCr4iIiDjP0xPat4fDh2HyZHj0UasrEvlPWs5MREREbkxsLOzYcaXdqxfs2qXQK3mGgq+IiIj8t3nzoFo1aNnSXK4MzHV6ixWzti4RJyj4ioiIyLUlJkL37vDYY+aSZf7+5q8ieZCCr4iIiGRu82aoUwc+/thsv/wybNgA4eGWliWSVQq+IiIikpHdbq7QcOedsGcPhITAkiXw3nvg42N1dSJZpuArIiIiGdls8MsvkJpqzundvh0iI62uSuSmaTkzERERMaWlmdsN22wwZQosWgSdOpltkXxAI74iIiLu7sIF6NwZuna90leypLkNsUKv5CMKviIiIu5s/Xpzi+GpU2HaNNi50+qKRLKNgq+IiIg7SkuDoUPh7rvh4EEoUwZWrIAqVayuTCTbaI6viIiIuzl0CJ5+GtauNdtt28KECVC4sKVliWQ3BV8RERF3kp4OTZrAH39AYKAZeNu3t7oqkRyhqQ4iIiLuxNMTxowxpzhs3arQK25FI74iIiL53a+/QlwcNG9uth9+GJo104oN4nY04isiIpJfpaTAwIFw333QsSMcPXrlOYVecUMa8RUREcmP9u41pzFs2mS2W7XSzWvi9jTiKyIikp8YBkyaBLVrm6G3SBH45hv4/HMICLC6OhFLacRXREQkv0hPhyefhO+/N9uNG5ubUpQubW1dIrmERnxFRETyC09PCAsDLy8YNQqWLFHoFfkHjfiKiIjkZUlJEB8PJUqY7Xfegeeeg+rVra1LJBfSiK+IiEhetXMnRESY0xvS080+Pz+FXpFrUPAVERHJawwDxo6FOnVg2zbYvRsOHLC6KpFcT8FXREQkL4mNNTeg6N0bkpPNjSi2b4eKFa2uTCTXU/AVERHJK+bNg2rVYNEi8PU1R30XLIDgYKsrE8kTdHObiIhIXpCWBoMGwZkz5hzemTOhShWrqxLJUzTiKyIikhcUKAAzZsArr8CGDQq9IlmgEV8REZHcyG6H0aPNX197zeyrVg1GjrS2LpE8TMFXREQktzl2DDp1guXLzU0pWrSASpWsrkokz9NUBxERkdxkzhxzDu/y5eDvDxMnwu23W12VSL6gEV8REZHc4MIF6NMHpkwx23XrmnN6tUyZiMso+IqIiFgtLQ3uugt27ACbDQYOhOho8PKyujKRfEVTHURERKxWoAB07QplysDKlfDWWwq9ItlAwVdERMQKhw5BTMyVds+e5g5s99xjWUki+Z2Cr4iISE4yDPjyS6hRA554wpzbC+YUh8BAa2sTyecUfEVERHLK+fPQrh106GAG3pCQK8FXRLKdgq+IiEhO+PVXc5R31ixzbd5hw2DFCggNtboyEbehVR1ERESyU1oaDBkC77xjTnMoX95cpiwiwurKRNyORnxFRESyk6cnbN1qht5nn4UtWxR6RSyiEV8RERFXMwxISQEfH/OmtSlTYPVqaNXK6spE3JpGfEVERFzp77/N1Rq6dr3SV6KEQq9ILnBTwTcpKclVdYiIiOR9S5ZAtWrw/ffw1Vewb5/VFYnIPzgdfO12O8OGDaNUqVIUKlSIgwcPAvD666/z+eefu7xAERGRXC8pCaKi4KGH4MQJqFwZfvsNKla0ujIR+Qeng+9bb73F1KlTGTlyJN7e3o7+qlWr8tlnn7m0OBERkVxv507zZrUPPjDb3bvDxo1Qq5a1dYnIVZwOvl988QWffvop7du3x9PT09Ffo0YN9uzZ49LiREREcrW0NHj0Udi2DYoXh3nzYPx48Pe3ujIRyYTTwff48ePcdtttV/Xb7XZSU1NdUpSIiEieUKAAfPwxPPwwbN9uhmARybWcDr533HEHq1atuqr/m2++oZZ+rCMiIvnd/Pnw3XdX2k2bmn3BwdbVJCI3xOl1fIcMGUKnTp04fvw4drud7777jr179/LFF18wf/787KhRRETEeomJ0K+fOcIbFAR160KZMuZzNpu1tYnIDXF6xLdFixbMmzePpUuXUrBgQYYMGcLu3buZN28eDz74YHbUKCIiYq3Nm6FOHTP0Ajz3nEZ4RfKgLO3cds8997BkyRJX1yIiIpK72O0wejQMGgSpqRASAtOmgQZ6RPIkp0d8y5Urx99//31V//nz5ylXrpxLihIREbFcaqq5Lu+rr5pft2xprt6g0CuSZzkdfA8fPkx6evpV/cnJyRw/ftwlRYmIiFjOy8vchc3fHyZNgm+/hWLFrK5KRG7CDU91+PHHHx1fL168mKCgIEc7PT2dZcuWER4e7tLiREREctSFC+YjNNRsjxgBPXpAJst4ikjec8PB9/HHHwfAZrPRqVOnDM95eXkRHh7O6NGjXVqciIhIjlm/Hp5+GkqWhBUrzDV6fX0VekXykRsOvna7HYCyZcvy+++/U0w/7hERkfwgLQ2GD4ehQyE93ZzPe/QolC1rdWUi4mJOr+pw6NCh7KhDREQk5x06ZI7yrl1rttu2hQkToHBhS8sSkeyRpeXMEhISWLlyJUeOHCElJSXDc71793ZJYSIiItnGMGDGDOje3ZzTGxBgrtHbvr3VlYlINnI6+G7ZsoWHH36YxMREEhISKFq0KGfOnMHf358SJUoo+IqISO6XlgbvvWeG3oYNYfp0TW0QcQNOL2fWt29fmjdvzrlz5/Dz82P9+vX8+eef1KlTh/feey87ahQREXEtLy+YOROGDTNvZFPoFXELTgffmJgYXn75ZTw8PPD09CQ5OZmwsDBGjhzJwIEDs6NGERGRm5Oaau6+9tZbV/ruuAMGDzZXbxARt+D033YvLy88PMy8XKJECY4cOULlypUJCgri6NGjLi9QRETkpuzbZ87d3bgRPD3NG9jKl7e6KhGxgNPBt1atWvz+++9UqFCBRo0aMWTIEM6cOcP06dOpWrVqdtQoIiLiPMOAzz6Dl16CxEQoUsTcgU2hV8RtOT3VYfjw4YSEhADw9ttvU6RIEbp168bp06f55JNPXF6giIiI086cgVatoGtXM/Q2bgzbtsETT1hdmYhYyGYYhmF1ETkpPj6eoKAg4uLiCAwMvOnrJSRAoULm1xcvQsGCN31JERG5GampULkyHDhg3sQ2YgT07QseTo/1iIhFXJ3XLnPZd4HNmzfz6KOPuupyIiIiWePlBVFRZvj97Td4+WWFXhEBnAy+ixcvpl+/fgwcOJCDBw8CsGfPHh5//HHq1avn2NbYGePHjyc8PBxfX18iIiLYsGHDdY8/f/48PXr0ICQkBB8fHypWrMjChQudfl0REclHduyA33+/0u7WDTZtglq1rKtJRHKdGw6+n3/+Oc2aNWPq1Km8++673HnnnXz55Zc0aNCAkiVLsmPHDqcD6OzZs4mKiiI6OprNmzdTo0YNmjRpwqlTpzI9PiUlhQcffJDDhw/zzTffsHfvXiZNmkSpUqWcel0REcknDAPGjoW6daF1a4iPN/ttNvDzs7Y2Ecl1bniOb/Xq1enQoQOvvPIK3377LU8++SR33nknX3/9NaVLl87Si0dERFCvXj3GjRsHgN1uJywsjF69etG/f/+rjp84cSKjRo1iz549eHl5Zek1NcdXRCSfiI2Fzp1h0SKz3awZfPEFFCtmbV0ictMsn+N74MABnnzySQBatWpFgQIFGDVqVJZDb0pKCps2bSIyMvJKMR4eREZGsm7dukzP+fHHH2nQoAE9evQgODiYqlWrMnz4cNLT06/5OsnJycTHx2d4iIhIHjd/PlSvboZeX19z1HfBAoVeEbmuGw6+ly5dwt/fHwCbzYaPj49jWbOsOHPmDOnp6QQHB2foDw4OJjY2NtNzDh48yDfffEN6ejoLFy7k9ddfZ/To0bz1z514/mXEiBEEBQU5HmFhYVmuWURELJaaCt27Q/PmcPq0GX43boSePc3pDSIi1+HUBhafffYZhf7/5/ppaWlMnTqVYv/633Xv3r1dV92/2O12SpQowaeffoqnpyd16tTh+PHjjBo1iujo6EzPGTBgAFFRUY52fHy8wq+ISF5VoAAcP25+/fLL8Pbb4ONjbU0ikmfccPAtU6YMkyZNcrRLlizJ9OnTMxxjs9luOPgWK1YMT09PTp48maH/5MmTlCxZMtNzQkJC8PLywtPT09FXuXJlYmNjSUlJwdvb+6pzfHx88NE3RRGRvMtuh6Qk8Pc3R3U/+8zcjOKBB6yuTETymBsOvocPH3bpC3t7e1OnTh2WLVvG448/DpgjusuWLaNnz56ZntOwYUNmzpyJ3W7H4//XZNy3bx8hISGZhl4REcnjjh6FTp0gNBS+/NLsK15coVdEssTSFb2joqKYNGkS06ZNY/fu3XTr1o2EhAQ6d+4MQMeOHRkwYIDj+G7dunH27Fn69OnDvn37WLBgAcOHD6dHjx5WvQUREckuc+aYc3h/+QW+/x4OHbK6IhHJ45ya4+tqbdq04fTp0wwZMoTY2Fhq1qzJokWLHDe8HTlyxDGyCxAWFsbixYvp27cv1atXp1SpUvTp04fXXnvNqrcgIiKuduEC9OoF06aZ7Xr1YMYMKFvW2rpEJM+74XV88wut4ysikoutXw/t28PBg+Y2wwMGQHS0uQ2xiLiN7FrH19IRXxEREYeUFHP3taNHoUwZc07vPfdYXZWI5COWzvEVERFx8PaGzz+Hdu1g61aFXhFxuSwF3wMHDjB48GDatm3LqVOnAPjpp5/YuXOnS4sTEZF8zDBg+nSYNetK34MPmvN5Cxe2rCwRyb+cDr4rV66kWrVq/Pbbb3z33XdcvHgRgK1bt15zEwkREZEMzp83R3Y7doSuXeHIEasrEhE34HTw7d+/P2+99RZLlizJsHZu48aNWb9+vUuLExGRfGjlSnOZslmzwNMTXn3VXKdXRCSbOR18t2/fTsuWLa/qL1GiBGfOnHFJUSIikg+lpMDAgXD//eYNbOXLw5o1MHiwuRWxiEg2czr4Fi5cmBMnTlzVv2XLFkqVKuWSokREJJ9JToa774YRI8y5vc8+CzExEBFhdWUi4kacDr5PPfUUr732GrGxsdhsNux2O2vWrKFfv3507NgxO2oUEZG8zscH7r0XihSBb74xV2+4vAi6iEgOcXoDi5SUFHr06MHUqVNJT0+nQIECpKen065dO6ZOnYqnp2d21eoS2sBCRCSHnDkDly5BWJjZTk42+/TTQRH5D9m1gUWWd247cuQIO3bs4OLFi9SqVYsKFSq4rKjspOArIpIDfv4ZOnUytxn+9VfN4RURp+SandtWr17N3XffTZkyZShTpozLChERkXwgKcncZnjMGLNdpAjExkLp0paWJSICWZjj27hxY8qWLcvAgQPZtWtXdtQkIiJ50Y4dUL/+ldDbvTts3KjQKyK5htPB96+//uLll19m5cqVVK1alZo1azJq1CiOHTuWHfWJiEhuZxgwdizUrQvbt0Px4jBvHowfD/7+VlcnIuLgdPAtVqwYPXv2ZM2aNRw4cIAnn3ySadOmER4eTuPGjbOjRhERyc1SU2HKFPPmtWbNzPD76KNWVyUicpUs39x2WXp6Oj/99BOvv/4627ZtIz093VW1ZQvd3CYi4iKGATab+fWePbB0KfTocaVPRCSLsuvmNqdHfC9bs2YN3bt3JyQkhHbt2lG1alUWLFjgssJERCSXSkyEbt3gjTeu9FWqBD17KvSKSK7m9KoOAwYMYNasWfz11188+OCDfPjhh7Ro0QJ/zeMSEcn/Nm+G9u3NEd4CBcwd2G691eqqRERuiNPB99dff+WVV16hdevWFCtWLDtqEhGR3MZuh/feg8GDzTm9ISEwbZpCr4jkKU4H3zVr1mRHHSIiklsdPWpuRvHLL2a7ZUuYNAluucXaukREnHRDwffHH3+kWbNmeHl58eOPP1732Mcee8wlhYmISC6QnAx33QXHjplLk330kTm9QXN5RSQPuqFVHTw8PIiNjaVEiRJ4eFz7fjibzaZVHbSqg4jkN59+ao7wzpgBFStaXY2IuAFLtyy22+2Zfi0iIvnQ+vXmUmUNGpjtLl2gc2fw8rK2LhGRm+T0cmZffPEFycnJV/WnpKTwxRdfuKQoERGxQFoaDB0Kd98NTz0F58+b/TabQq+I5AtOB9/OnTsTFxd3Vf+FCxfo3LmzS4oSEZEcdugQNGoE0dGQng4NG2oer4jkO04HX8MwsGXyzfDYsWMEBQW5pCgREckhhgHTp0ONGrB2LQQGwpdfwsyZoO/pIpLP3PByZrVq1cJms2Gz2XjggQcoUODKqenp6Rw6dIimTZtmS5EiIpINkpPhmWdg1iyz3bChGXrDw62sSkQk29xw8H388ccBiImJoUmTJhS6vJQB4O3tTXh4OE888YTLCxQRkWzi7Q1JSeDpaW4/3L+/uRubiEg+dcPf4aKjowEIDw+nTZs2+Pr6ZltRIiKSTVJSzJHegABzDu+kSXDwINSvb3VlIiLZzuk5vp06dVLoFRHJi/btM6czdOlizu0FKFZMoVdE3MYNjfgWLVqUffv2UaxYMYoUKZLpzW2XnT171mXFiYiICxgGfPYZvPQSJCbCgQPmTmxhYVZXJiKSo24o+H7wwQcEBAQ4vr5e8BURkVzkzBlzhHfuXLPduDFMmwalS1taloiIFW5oy+L8RFsWi4jbWLIEOnWCEyfMDSiGD4eoKLjO1vMiIrlBdm1Z7PR3v82bN7N9+3ZH+4cffuDxxx9n4MCBpKSkuKwwERG5CUlJ8OyzZuitXBl++w369VPoFRG35vR3wBdeeIF9+/YBcPDgQdq0aYO/vz9z5szh1VdfdXmBIiKSBb6+5pSG7t1h40aoVcvqikRELOd08N23bx81a9YEYM6cOTRq1IiZM2cydepUvv32W1fXJyIiN8IwYOxYcwOKyxo3hvHjwd/furpERHIRp1cqNwwDu90OwNKlS3n00UcBCAsL48yZM66tTkRE/ltsLHTuDIsWmTcd3Hefbl4TEcmE0yO+devW5a233mL69OmsXLmSRx55BIBDhw4RHBzs8gJFROQ65s2DatXM0OvrCyNGQKlSVlclIpIrOR18x4wZw+bNm+nZsyeDBg3itttuA+Cbb77hrrvucnmBIiKSicREc/7uY4+ZS5ZVr27O5e3Z09yRTUREruKy5cySkpLw9PTEy8vLFZfLNlrOTETyvEuXoG5d2LXLbL/8Mrz9Nvj4WFuXiIiLZNdyZk7P8b1s06ZN7N69G4A77riD2rVru6woERG5Dj8/ePRROHfOXLnhwQetrkhEJE9wesT31KlTtGnThpUrV1K4cGEAzp8/z/3338+sWbMoXrx4dtTpMhrxFZE86dgxSE2FsmXNdkoKXLgAt9xibV0iItkg12xg0atXLy5evMjOnTs5e/YsZ8+eZceOHcTHx9O7d2+XFSYiIv9vzhxzDm/btmb4BfD2VugVEXGS01MdFi1axNKlS6lcubKj74477mD8+PE89NBDLi1ORMStXbgAffrAlClmOz0dzp4FraAjIpIlTo/42u32TG9g8/LycqzvKyIiN2n9enO3tSlTzFUaBg2CtWsVekVEboLTwbdx48b06dOHv/76y9F3/Phx+vbtywMPPODS4kRE3E5aGgwbBnffDQcOQJkysGIFvPUW5PJVc0REcjung++4ceOIj48nPDyc8uXLU758ecqWLUt8fDxjx47NjhpFRNyH3Q4//GBOa2jbFrZuhXvvtboqEZF8wek5vmFhYWzevJlly5Y5ljOrXLkykZGRLi9ORMQtGIb58PAwb1qbMQN+/x2eftrqykRE8hWngu/s2bP58ccfSUlJ4YEHHqBXr17ZVZeIiHs4fx66dYPy5c3pDAC3324+RETEpW44+H788cf06NGDChUq4Ofnx3fffceBAwcYNWpUdtYnIpJ//fordOgAR46YI73dukGpUlZXJSKSb93wHN9x48YRHR3N3r17iYmJYdq0aUyYMCE7axMRyZ9SUmDgQLjvPjP0li9vhmCFXhGRbHXDwffgwYN06tTJ0W7Xrh1paWmcOHEiWwoTEcmX9u2Dhg1hxAhzXu+zz8KWLRARYXVlIiL53g1PdUhOTqbgP/bj9fDwwNvbm0uXLmVLYSIi+c6lS3DPPXDqFBQpAp9+Cv/7n9VViYi4Dadubnv99dfx9/d3tFNSUnj77bcJCgpy9L3//vuuq05EJD/x84Phw2HmTJg2DUqXtroiERG3YjMMw7iRA++77z5sNtv1L2azsXz5cpcUll3i4+MJCgoiLi6OwMDAm75eQgIUKmR+ffEi/GNQXEQEliwxA+/dd5vtfy5dJiIimXJ1Xrvshkd8V6xY4bIXFRHJ95KSzBvYPvgAwsLMjSiKFDG3H/6PQQQREckeTm9gISIi/2HnTmjXDrZtM9vNm4OPj7U1iYiI81sWi4jINRgGjB0LdeqYobd4cZg3D8aPh3/cHyEiItbQiK+IiCskJsITT8CiRWa7WTOYMgWCg62tS0REHDTiKyLiCn5+5p2uPj7mqO+CBQq9IiK5jIKviEhWJSZCXJz5tc0Gn3wCmzZBz566gU1EJBfKUvBdtWoVTz/9NA0aNOD48eMATJ8+ndWrV7u0OBGRXGvLFnMub5cu5txegKJFoUoVa+sSEZFrcjr4fvvttzRp0gQ/Pz+2bNlCcnIyAHFxcQwfPtzlBYqI5Cp2O4waZW4xvGcPrF4NsbFWVyUiIjfA6eD71ltvMXHiRCZNmoSXl5ejv2HDhmzevNmlxYmI5CrHjsGDD8Krr0JqKrRsaa7eEBJidWUiInIDnA6+e/fu5d57772qPygoiPPnz7uiJhGR3Oebb6B6dVi+3FyabNIk+PZbKFbM6spEROQGOR18S5Ysyf79+6/qX716NeXKlXNJUSIiuUpiIvTtC+fOQd265vze55/XDWwiInmM08G3S5cu9OnTh99++w2bzcZff/3FjBkz6NevH926dcuOGkVErOXvD198YW5BvHYtVKxodUUiIpIFTm9g0b9/f+x2Ow888ACJiYnce++9+Pj40K9fP3r16pUdNYqI5Ky0NBgxAsLC4JlnzL777zcfIiKSZ9kM4/I6PM5JSUlh//79XLx4kTvuuINChQq5urZsER8fT1BQEHFxcQQGBt709RISzDXrAS5ehIIFb/qSImKlQ4egQwdYs8b8C/3HH7p5TUQkh7k6r12W5S2Lvb29ueOOO1xWiIiIpQwDZsyA7t3hwgUIDIQJExR6RUTyEaeD7/3334/tOjd0LF++/KYKEhHJcefPm4H3q6/MdsOG8OWXEB5uZVUiIuJiTgffmjVrZminpqYSExPDjh076NSpk6vqEhHJGYmJULu2OcXB0xPeeAP694cCWf6BmIiI5FJOf2f/4IMPMu1/4403uHjx4k0XJCKSo/z9oU0bmDPHnOoQEWF1RSIikk2yfHPbv+3fv5/69etz9uxZV1wu2+jmNhFh3z7w8IDbbjPbKSmQnAwBAdbWJSIiQPbd3Ob0Or7Xsm7dOnx9fV11ORER1zMMc8e1WrWgbVtz22EAb2+FXhERN+D0VIdWrVplaBuGwYkTJ9i4cSOvv/66ywoTEXGpM2egSxeYO9dsBwZCfDzccoulZYmISM5xOvgGBQVlaHt4eHD77bczdOhQHnroIZcVJiLiMj//bG5EceIEeHmZm1P07WtOdxAREbfhVPBNT0+nc+fOVKtWjSJFimRXTSIirpGcDAMGwOWbcitXhpkz4V+r04iIiHtwarjD09OThx56iPPnz7u0iPHjxxMeHo6vry8RERFs2LDhhs6bNWsWNpuNxx9/3KX1iEg+4eEBq1ebX/foARs3KvSKiLgxp3/OV7VqVQ4ePOiyAmbPnk1UVBTR0dFs3ryZGjVq0KRJE06dOnXd8w4fPky/fv245557XFaLiOQDhgFpaebXXl7mEmXz5sG4cebSZSIi4racDr5vvfUW/fr1Y/78+Zw4cYL4+PgMD2e9//77dOnShc6dO3PHHXcwceJE/P39mTx58jXPSU9Pp3379rz55puUK1fO6dcUkXwqNhYefhgGD77SV6ECPPqodTWJiEiuccPBd+jQoSQkJPDwww+zdetWHnvsMUqXLk2RIkUoUqQIhQsXdnreb0pKCps2bSIyMvJKQR4eREZGsm7duuvWUqJECZ577rn/fI3k5OSbDucikgfMmwfVqsGiRTB2LJw8aXVFIiKSy9zwzW1vvvkmL774Ir/88ovLXvzMmTOkp6cTHBycoT84OJg9e/Zkes7q1av5/PPPiYmJuaHXGDFiBG+++ebNlioiuVViIrz8MkycaLarVzdvYPvX9xUREZEbDr6XN3hr1KhRthXzXy5cuECHDh2YNGkSxYoVu6FzBgwYQFRUlKMdHx9PWFhYdpUoIjlp82Zo1w727jXbL78Mb78NPj7W1iUiIrmSU8uZ2Ww2l754sWLF8PT05OS/fiR58uRJSpYsedXxBw4c4PDhwzRv3tzRZ7fbAShQoAB79+6lfPnyGc7x8fHBR/8IiuQ/Fy/Cgw/C2bMQGgrTpsE/pk2JiIj8m1PBt2LFiv8Zfs+ePXvD1/P29qZOnTosW7bMsSSZ3W5n2bJl9OzZ86rjK1WqxPbt2zP0DR48mAsXLvDhhx9qJFfEnRQqBKNHw48/mtsQawc2ERH5D04F3zfffPOqndtuVlRUFJ06daJu3brUr1+fMWPGkJCQQOfOnQHo2LEjpUqVYsSIEfj6+lK1atUM5xcuXBjgqn4RyYfmzIHixeG++8x2p07mw8U/jRIRkfzJqeD71FNPUaJECZcW0KZNG06fPs2QIUOIjY2lZs2aLFq0yHHD25EjR/DQtqIi7u3CBejdG6ZOhVKlYNs2KFpUgVdERJxiMy7ftfYfPD09OXHihMuDb06Lj48nKCiIuLg4AgMDb/p6CQnmT1zBnHJYsOBNX1JE/mn9emjfHg4eNIPuwIEQHW1uTiEiIvmSq/PaZU6v6iAikiPS0mD4cBg6FNLToUwZ+PJL0G6NIiKSRTccfC+vniAiku0uXoQmTWDtWrPdrh2MHw//P6dfREQkK5ya4ysikiMKFoSwMAgMhAkTzKkOIiIiN0nBV0Ryh/PnwW6/ctPaxx+bfWXLWl2ZiIjkE1ouQUSst3KludXw88/D5fsJihRR6BUREZdS8BUR66SkmKs03H8/HD1qLlN2+rTVVYmISD6l4Csi1ti7F+66C0aMMEd5n30WtmyBPL5kooiI5F4KviKSswzD3GK4dm3YtMmc0vDNN/D55xAQYHV1IiKSj+nmNhHJWQkJ8NZbkJgIjRvDtGlQurTVVYmIiBtQ8BWRnFWokLkRxW+/QVQUaEtyERHJIQq+IpK9kpLMG9gqV4YuXcy+e+7RDmwiIpLjFHxFJPvs2GHuurZ9u7kpxeOPQ/HiVlclIiJuSj9jFBHXMwwYOxbq1jVDb/HiMGuWQq+IiFhKI74i4lqxsdC5MyxaZLabNYMpUyA42Nq6RETE7Sn4iojrXLgAtWqZ4dfXF0aNgh49zC2IRURELKapDiLiOgEB5rbD1avDxo3Qs6dCr4iI5BoKviJyc7ZsMXdhu2zIENiwAapUsa4mERGRTCj4ikjW2O3mVIaICHPlhpQUs9/LC3x8rK1NREQkE5rjKyLOO3YMOnWC5cvN9q23wqVL4O1tbV0iIiLXoRFfEXHOnDnmHN7ly8HfHyZNgm+/haAgqysTERG5Lo34isiNSUw0b1abMsVs160LM2ZAxYrW1iUiInKDNOIrIjfG2xt27zZXaRg0CNauVegVEZE8RSO+InJtaWnmTWze3lCgAHz5JRw/Dvfea3VlIiIiTtOIr4hk7tAhaNQIBg++0le+vEKviIjkWQq+IpKRYcD06VCjhjmdYdIkOHPG6qpERERumoKviFxx/ry5Jm/Hjub2ww0bmhtUFCtmdWUiIiI3TcFXREwrV5rLlM2aBZ6eMGwYrFgB4eFWVyYiIuISurlNRCAuDlq0MH8tX95cpiwiwuqqREREXErBV0TMzSc++sgc9R0zBgICrK5IRETE5TTVQcQdGYZ509rSpVf6OnaEzz9X6BURkXxLI74i7ubMGejSBebOhZAQ2LkTihSxuioREZFsp+Ar4k5+/hmeeQZOnAAvL4iKMqc5iIiIuAEFXxF3kJQEAwaY83cBKlc2b2CrVcvSskRERHKSgq9IfhcXB/fcA9u3m+3u3WHUKPD3t7YuERGRHKbgK5LfBQZC1aoQGwuTJ8Ojj1pdkYiIiCUUfEXyo9hYcw7vLbeAzQYTJkByMgQHW12ZiIiIZbScmUh+M28eVKsGzz1nLlsGULiwQq+IiLg9BV+R/CIx0Zy/+9hj5pJlhw7BuXNWVyUiIpJrKPiK5AebN0OdOvDxx2Y7Kgo2bICiRa2tS0REJBdR8BXJy+x2GDkS7rwT9uwxN6T4+WcYPRp8fKyuTkREJFdR8BXJyy5eNG9cS02Fli3NJcsefNDqqkRERHIlreogkhcZhrlaQ2CguRHF7t3mzWw2m9WViYiI5Foa8RXJSy5cgM6d4dNPr/Q1bAjPP6/QKyIi8h8UfEXyivXroWZNmDoV+vWDs2etrkhERCRPUfAVye3S0mDoULj7bjh4EMqUgQULtGKDiIiIkzTHVyQ3O3QInn4a1q41223bmjezFS5saVkiIiJ5kYKvSG51/ry5Nu+5cxAQYK7R27691VWJiIjkWQq+IrlV4cLQuzcsXQrTp0PZslZXJCIikqdpjq9IbvLrr+bSZJcNHgwrVij0ioiIuICCr0hukJoKgwbBffdBu3aQnGz2FyhgPkREROSm6V9UEavt22fO3d240WzXqmWu5KAth0VERFxKI74iVjEMmDTJDLobN0KRIjBnDkyeDAULWl2diIhIvqMRXxErXLgAHTvC3Llmu3FjmDYNSpe2tCwREZH8TCO+Ilbw84NTp8DLC0aNgiVLFHpFRESymUZ8RXLK5RvWfHzMG9a+/NJcq7dWLUvLEhERcRca8RXJCTt3Qv36MHDglb6yZRV6RUREcpCCr0h2MgwYOxbq1oVt28xR3nPnrK5KRETELSn4imSX2Fh45BFz97WkJGjaFLZuNVdvEBERkRyn4CuSHebPh+rV4aefzDm9Y8fCwoVQsqTVlYmIiLgt3dwm4mrnzsHTT0NcnBl+Z86EKlWsrkpERMTtKfiKuFqRIjBhAmzaBMOHawc2ERGRXEJTHURult1ursW7ePGVvnbtYPRohV4REZFcRCO+Ijfj2DHo1AmWLzfn7+7eDYULW12ViIiIZEIjviJZNWeOOYd3+XIoWBDefhuCgqyuSkRERK5BI74izrpwwVyibOpUs12vHsyYARUqWFqWiIiIXJ+Cr4gzzp41g+7Bg2CzmTuxRUeDl5fVlYmIiMh/UPAVcUbRonDXXZCWBtOnw733Wl2RiIiI3CAFX5H/cuiQOYe3RAmzPX68uZKDbmITERHJU3Rzm8i1GIY5qlujBjz3nNkGCAxU6BUREcmDFHxFMnP+vLkWb8eO5s1s589DfLzVVYmIiMhNUPAV+bdffzVHeWfNAk9PeOstWLFCS5WJiIjkcZrjK3JZaiq88QaMGGFOayhf3lymLCLC6spERETEBTTiK3LZpUvw1Vdm6H3uOYiJUegVERHJRzTiK+7t8g1rNpt509rMmXD8ODzxhLV1iYiIiMtpxFfc15kz0LIlfPzxlb4771ToFRERyacUfMU9/fwzVKsGP/xg7r4WF2d1RSIiIpLNFHzFvSQlQd++0KQJxMZC5cpasUFERMRN5IrgO378eMLDw/H19SUiIoINGzZc89hJkyZxzz33UKRIEYoUKUJkZOR1jxdx2LED6teHMWPMdvfusHEj1KxpZVUiIiKSQywPvrNnzyYqKoro6Gg2b95MjRo1aNKkCadOncr0+BUrVtC2bVt++eUX1q1bR1hYGA899BDHjx/P4colT/n7b2jQALZvh+LFYd48c+thf3+rKxMREZEcYjOMy7e1WyMiIoJ69eoxbtw4AOx2O2FhYfTq1Yv+/fv/5/np6ekUKVKEcePG0bFjx/88Pj4+nqCgIP76K47AwMCbrj8hAYKDza8vXoSCBW/6kpJdhg2DdetgypQrH5qIiIjkOpfzWlyca/LaZZYuZ5aSksKmTZsYMGCAo8/Dw4PIyEjWrVt3Q9dITEwkNTWVokWLZvp8cnIyycnJjnb8/287Gxp6E4VL3jBvHpQtC1Wrmu2BA8HDw1y6TERERNyOpVMdzpw5Q3p6OsH/Gn0LDg4mNjb2hq7x2muvERoaSmRkZKbPjxgxgqCgIMcjLCzspuvOTMOG+ql5rpGYCN26wWOPQfv25g1tYG4/rNArIiLitvL0BhbvvPMOs2bNYsWKFfj6+mZ6zIABA4iKinK04+PjCQsLY/9+KFnSdbX4+ytT5QqbN0O7drB3r9mOjNQHIyIiIoDFwbdYsWJ4enpy8uTJDP0nT56k5H+k0vfee4933nmHpUuXUr169Wse5+Pjg4+Pz1X9/v6aj5uv2O3w3nsweDCkpkJICHzxhRl8RURERLB4qoO3tzd16tRh2bJljj673c6yZcto0KDBNc8bOXIkw4YNY9GiRdStWzcnSpXc7Nw5M+C+9poZelu2NFdvUOgVERGRf7B8qkNUVBSdOnWibt261K9fnzFjxpCQkEDnzp0B6NixI6VKlWLEiBEAvPvuuwwZMoSZM2cSHh7umAtcqFAhChUqZNn7EAsFBpqB198fPvoInn1W0xtERETkKpYH3zZt2nD69GmGDBlCbGwsNWvWZNGiRY4b3o4cOYKHx5WB6Y8//piUlBT+97//ZbhOdHQ0b7zxRk6WLla6cAG8vMDX17xpbcYMSE6GChWsrkxERERyKcvX8c1p/1zHNyTEdevCSQ5av95craF58yu7sImIiEi+kV3r+Fq+c5vIDUtLg6FD4e674eBBmDsX/n9dZhEREZH/ouArecOhQ9CoEURHQ3q6uWRZTIw5v1dERETkBij4Su5mGDB9OtSoAWvXmkH3yy/NOb2FC1tdnYiIiOQhlt/cJnJdf/8NvXqZN7M1bGiG3vBwq6sSERGRPEjBV3K3YsXgk0/gjz+gf38ooD+yIiIikjVKEZK7pKTAG2+YN7A9/LDZ16aNpSWJiIhI/qDgK7nH3r3mMmWbNkGJErB/PwQEWF2ViIiI5BO6uU2sZxgwaRLUrm2G3iJFYMIEhV4RERFxKY34irXOnIEuXcw1eQEaN4Zp06B0aUvLEhERkfxHwVesc/q0uUzZiRPm9sMjRkDfvuChH0SIiIiI6yn4inWKF4eHHoING8x1eWvVsroiERERyccUfCVn7dxpLlEWHGy2x40zR3j9/a2tS0RERPI9/UxZcoZhwNixUKcOPPus2QYoVEihV0RERHKERnwl+8XGQufOsGjRlb6EBDP0ioiIiOQQjfhK9po3D6pVM0Ovr685tWH+fIVeERERyXEa8ZXskZgIL78MEyea7erVYeZMqFLF2rpERETEbWnEV7JHejosWWJ+/fLL5soNCr0iIiJiIY34iuvY7eavHh7mrmtffQVxcRAZaW1dIiIiImjEV1zl2DF48EFzDu9l9eop9IqIiEiuoeArN2/OHHMO7/LlMHQoXLxodUUiIiIiV1Hwlay7cMFcpqx1azh3zhzhXbdOKzaIiIhIrqTgK1mzfj3UrAlTp4LNBoMGwZo1UKGC1ZWJiIiIZEo3t4nzTp6E+++HpCQoUwa+/BLuucfqqkRERESuS8FXnBccDK+/Djt2wIQJULiw1RWJiIiI/CcFX/lvhmGO6taoYd7EBjBggDnFQURERCSP0Bxfub7z56FdO+jY0fz10iWzX6FXRERE8hiN+Mq1rVwJHTrA0aPg6QlPPQVeXlZXJSIiIpIlCr5ytZQUeOMNeOcdc5pD+fIwYwZERFhdmYiIiEiWKfhKRqdPw8MPw8aNZvvZZ2HMGHMLYhEREZE8TMFXMipaFAoWhCJF4NNP4X//s7oiEREREZdQ8BU4c8YMu35+5lzeL780+0uXtrYuERERERfSqg7u7uefzSXKXn31Sl/p0gq9IiIiku8o+LqrpCSIioImTeDECVi2DBISrK5KREREJNso+LqjnTvNFRo++MBsd+9u3sxWsKC1dYmIiIhkIwVfd2IYMHYs1KkD27ZB8eIwbx6MHw/+/lZXJyIiIpKtdHObOzl1CqKjITkZmjWDKVMgONjqqkRERERyhIKvOwkOhkmTzDm9PXpo22ERERFxKwq++VliIvTrZ25I8eijZt8TT1hbk4iIiIhFFHzzq82boX172LMHvv0WDh7UzWsiIiLi1nRzW35jt8OoUXDnnWboDQkxN6RQ6BURERE3pxHf/OTYMejUCZYvN9stW5pzem+5xdq6RERERHIBBd/84sQJcwe2c+fMpck+/BCee043sImIiIj8PwXf/CIkxBzh3bYNZsyAihWtrkhEREQkV1Hwzct++w3KlDFDL5ibU3h5mQ8RERERyUA3t+VFaWkwdCg0bAidO5s3tIE5xUGhV0RERCRTGvHNaw4dgqefhrVrzXbRouZObH5+1tYlIiIikstpxDevMAxzWbIaNczQGxhotmfOVOgVERERuQEa8c0L4uPhxRfhq6/MdsOGMH06lC1rbV0iIiIieYiCb17g6QkbN5q/RkfDgAFQQB+diEh2MAyDtLQ00tPTrS5FJF/z8vLC09MzR19T6Sm3Sk01g66Hh7nr2qxZZl9EhNWViYjkWykpKZw4cYLExESrSxHJ92w2G6VLl6ZQoUI59poKvrnRvn3Qvr35eOkls692bUtLEhHJ7+x2O4cOHcLT05PQ0FC8vb2xaRMgkWxhGAanT5/m2LFjVKhQIcdGfhV8cxPDgM8+M8NuYiIcPw5du5rLlImISLZKSUnBbrcTFhaGv77vimS74sWLc/jwYVJTU3Ms+GpVh9zizBlo1coMuomJ0LgxbNig0CsiksM8PPRPo0hOsOInKvrbnRv8/DNUrw5z55obUIwaBUuWQOnSVlcmIiIikm9oqoPV/voLmjeHlBSoXBlmzIBatayuSkRERCTf0Yiv1UJDze2Hu3c3lyxT6BUREckxe/fupWTJkly4cMHqUvKVlJQUwsPD2bhxo9WlZKDgm9MMA8aNg5iYK32vvgrjx2s+r4iIZMkzzzyDzWbDZrPh5eVF2bJlefXVV0lKSrrq2Pnz59OoUSMCAgLw9/enXr16TJ06NdPrfvvtt9x3330EBQVRqFAhqlevztChQzl79mw2v6OcM2DAAHr16kVAQIDVpWSb8ePHEx4ejq+vLxEREWzYsOG6x6empjJ06FDKly+Pr68vNWrUYNGiRRmOCQ8Pd/yZ++ejR48eAHh7e9OvXz9ee+21bHtfWaHgm5NiY+GRR6BXL2jXDi5/Q9JyOSIicpOaNm3KiRMnOHjwIB988AGffPIJ0dHRGY4ZO3YsLVq0oGHDhvz2229s27aNp556ihdffJF+/fplOHbQoEG0adOGevXq8dNPP7Fjxw5Gjx7N1q1bmT59eo69r5SUlGy79pEjR5g/fz7PPPPMTV0nO2u8WbNnzyYqKoro6Gg2b95MjRo1aNKkCadOnbrmOYMHD+aTTz5h7Nix7Nq1ixdffJGWLVuyZcsWxzG///47J06ccDyWLFkCwJNPPuk4pn379qxevZqdO3dm3xt0luFm4uLiDMD466+4nH3hefMMo3hxwwDD8PExjLFjDcNuz9kaRETkmi5dumTs2rXLuHTpkqPPbjeMixeteTjzT0SnTp2MFi1aZOhr1aqVUatWLUf7yJEjhpeXlxEVFXXV+R999JEBGOvXrzcMwzB+++03AzDGjBmT6eudO3fumrUcPXrUeOqpp4wiRYoY/v7+Rp06dRzXzazOPn36GI0aNXK0GzVqZPTo0cPo06ePccsttxj33Xef0bZtW6N169YZzktJSTFuueUWY9q0aYZhGEZ6eroxfPhwIzw83PD19TWqV69uzJkz55p1GoZhjBo1yqhbt26GvjNnzhhPPfWUERoaavj5+RlVq1Y1Zs6cmeGYzGo0DMPYvn270bRpU6NgwYJGiRIljKeffto4ffq047yffvrJaNiwoREUFGQULVrUeOSRR4z9+/dft8abVb9+faNHjx6Odnp6uhEaGmqMGDHimueEhIQY48aNy9DXqlUro3379tc8p0+fPkb58uUN+7/+4N5///3G4MGDMz0ns79zl13Oa3Fxrs1rGvHNbomJ5vzd5s3h9Glz9YZNm6BnT430iojkcomJUKiQNY+b2Txux44drF27Fm9vb0ffN998Q2pq6lUjuwAvvPAChQoV4quvvgJgxowZFCpUiO7du2d6/cKFC2faf/HiRRo1asTx48f58ccf2bp1K6+++ip2u92p+qdNm4a3tzdr1qxh4sSJtG/fnnnz5nHx4kXHMYsXLyYxMZGWLVsCMGLECL744gsmTpzIzp076du3L08//TQrV6685uusWrWKunXrZuhLSkqiTp06LFiwgB07dtC1a1c6dOhw1fSAf9d4/vx5GjduTK1atdi4cSOLFi3i5MmTtG7d2nFOQkICUVFRbNy4kWXLluHh4UHLli2v+/szfPhwChUqdN3HkSNHMj03JSWFTZs2ERkZ6ejz8PAgMjKSdevWXfM1k5OT8fX1zdDn5+fH6tWrr/k6X375Jc8+++xVS5TVr1+fVatWXfO1cppWdchOJ06Y6/Hu2WO2o6Jg+HDw8bG2LhERyXfmz59PoUKFSEtLIzk5GQ8PD8aNG+d4ft++fQQFBRESEnLVud7e3pQrV459+/YB8Mcff1CuXDm8vLycqmHmzJmcPn2a33//naJFiwJw2223Of1eKlSowMiRIx3t8uXLU7BgQb7//ns6dOjgeK3HHnuMgIAAkpOTGT58OEuXLqVBgwYAlCtXjtWrV/PJJ5/QqFGjTF/nzz//vCr4lipVKsN/Dnr16sXixYv5+uuvqV+//jVrfOutt6hVqxbDhw939E2ePJmwsDD27dtHxYoVeeKJJzK81uTJkylevDi7du2iatWqmdb44osvZgjPmQkNDc20/8yZM6SnpxMcHJyhPzg4mD2Xs0kmmjRpwvvvv8+9995L+fLlWbZsGd999x3p6emZHj937lzOnz+f6ZSR0NBQ/vzzz+vWn5MUfLNTcDCEhEBcHEybBg8+aHVFIiLiBH9/+McgY46/tjPuv/9+Pv74YxISEvjggw8oUKDAVUHrRhmGkaXzYmJiqFWrliP0ZlWdOnUytAsUKEDr1q2ZMWMGHTp0ICEhgR9++IFZs2YBsH//fhITE3nwX//OpqSkUOs6qyVdunTpqpHN9PR0hg8fztdff83x48dJSUkhOTn5qt38/l3j1q1b+eWXXyhUqNBVr3PgwAEqVqzIH3/8wZAhQ/jtt984c+aMY6T3yJEj1wy+RYsWvenfT2d9+OGHdOnShUqVKmGz2ShfvjydO3dm8uTJmR7/+eef06xZs0wDuJ+fH4k38+MLF1PwdbVjx6BoUfM7loeHuS6vlxcUK2Z1ZSIi4iSbDQoWtLqKG1OwYEHH6OrkyZOpUaMGn3/+Oc899xwAFStWJC4ujr/++uuqgJKSksKBAwe4//77HceuXr2a1NRUp0Z9/fz8rvu8h4fHVaE6NTU10/fyb+3bt6dRo0acOnWKJUuW4OfnR9OmTQEcUyAWLFhAqVKlMpznc52fshYrVoxz585l6Bs1ahQffvghY8aMoVq1ahQsWJCXXnrpqhvY/l3jxYsXad68Oe++++5Vr3N5lL158+bceuutTJo0idDQUOx2O1WrVr3uzXHDhw/PMIqcmV27dlGmTJlM35+npycnT57M0H/y5ElKlix5zesVL16cuXPnkpSUxN9//01oaCj9+/enXLlyVx37559/snTpUr777rtMr3X27FmKFy9+3fpzkub4utKcOeYc3n/OnwoJUegVEZEc5eHhwcCBAxk8eDCXLl0C4IknnsDLy4vRo0dfdfzEiRNJSEigbdu2ALRr146LFy8yYcKETK9//vz5TPurV69OTEzMNZc7K168OCdOnMjQF/PP5T2v46677iIsLIzZs2czY8YMnnzySUcov+OOO/Dx8eHIkSPcdtttGR5hYWHXvGatWrXYtWtXhr41a9bQokULnn76aWrUqJFhCsj11K5dm507dxIeHn5VDQULFuTvv/9m7969DB48mAceeIDKlStfFboz8+KLLxITE3Pdx7WmOnh7e1OnTh2WLVvm6LPb7SxbtswxJeR6fH19KVWqFGlpaXz77be0aNHiqmOmTJlCiRIleOSRRzK9xo4dO6476p7TFHxd4cIFePZZaN0azp0zb177/280IiIiVnjyySfx9PRk/PjxAJQpU4aRI0cyZswYBg0axJ49ezhw4ADvv/8+r776Ki+//DIREREAREREOPpeffVV1q1bx59//smyZct48sknmTZtWqav2bZtW0qWLMnjjz/OmjVrOHjwIN9++63jRqrGjRuzceNGvvjiC/744w+io6PZsWPHDb+ndu3aMXHiRJYsWUL79u0d/QEBAfTr14++ffsybdo0Dhw4wObNmxk7duw1awVzLuu6desyzF2tUKECS5YsYe3atezevZsXXnjhqhHTzPTo0YOzZ8/Stm1bfv/9dw4cOMDixYvp3Lkz6enpFClShFtuuYVPP/2U/fv3s3z5cqKiov7zukWLFr0qSP/7UaDAtX+AHxUVxaRJk5g2bRq7d++mW7duJCQk0LlzZ8cxHTt2ZMCAAY72b7/9xnfffcfBgwdZtWoVTZs2xW638+qrr2a4tt1uZ8qUKXTq1OmaNaxatYqHHnroP99njnHpGhF5gMuXM1u3zjDKlzeXKbPZDGPQIMNISXHNtUVEJMdcb2ml3C6zZcIMwzBGjBhhFC9e3Lh48aKj74cffjDuueceo2DBgoavr69Rp04dY/LkyZled/bs2ca9995rBAQEGAULFjSqV69uDB069LrLmR0+fNh44oknjMDAQMPf39+oW7eu8dtvvzmeHzJkiBEcHGwEBQUZffv2NXr27HnVcmZ9+vTJ9Nq7du0yAOPWW2+9atksu91ujBkzxrj99tsNLy8vo3jx4kaTJk2MlStXXrPW1NRUIzQ01Fi0aJGj7++//zZatGhhFCpUyChRooQxePBgo2PHjhl+f69V4759+4yWLVsahQsXNvz8/IxKlSoZL730kqPWJUuWGJUrVzZ8fHyM6tWrGytWrDAA4/vvv79mja4wduxYo0yZMoa3t7dRv359x/Jy/3w/nTp1crRXrFjhqPOWW24xOnToYBw/fvyq6y5evNgAjL1792b6umvXrjUKFy5sJCYmZvq8FcuZ2QwjizPY86j4+HiCgoL46684QkICs36htDRzhYahQyE9HcqUgenT4d57XVesiIjkmKSkJA4dOkTZsmWvuuFJ8q/x48fz448/snjxYqtLyXfatGlDjRo1GDhwYKbPX+/v3OW8FhcXR2DgTeS1f9HNbVl1+jR8+KEZetu2hQkT4BrrGoqIiEju9MILL3D+/HkuXLiQr7ctzmkpKSlUq1aNvn37Wl1KBgq+WRUSApMnm/N7n37a6mpEREQkCwoUKMCgQYOsLiPf8fb2ZvDgwVaXcRXd3Hajzp83R3Z/+OFKX4sWCr0iIiIieYSC741YudJcpmzWLHjxRUhKsroiEREREXGSgu/1pKTAgAFw//1w9CiULw9z54JuehARybfc7J5vEctY8XdNc3yvZe9eaN/eXJMXzHV6P/wQMtmKUERE8r7LmyEkJib+5w5kInLzLu9Y5+npmWOvqeCbmaNHoXZtSEyEIkVg0iTI4n7nIiKSN3h6elK4cGFOnToFgL+/PzabzeKqRPInu93O6dOn8ff3v+4GHK6m4JuZsDDzprX9+2HaNChd2uqKREQkB5QsWRLAEX5FJPt4eHhQpkyZHP0PpoLvZUuWQJUqcHm/648+Ai8v8NA0aBERd2Gz2QgJCaFEiRKkpqZaXY5Ivubt7Y1HDucsBd+kJPMGtjFjIDISFi82w66Pj9WViYiIRTw9PXN03qGI5IxcMZw5fvx4wsPD8fX1JSIigg0bNlz3+Dlz5lCpUiV8fX2pVq0aCxcuzNoL79gB9euboRegYkXQ//BFRERE8iXLg+/s2bOJiooiOjqazZs3U6NGDZo0aXLN+VVr166lbdu2PPfcc2zZsoXHH3+cxx9/nB07djj1ugU+nwh168L27VC8OMybB+PHa6RXREREJJ+yGRYvWBgREUG9evUYN24cYN7lFxYWRq9evejfv/9Vx7dp04aEhATmz5/v6LvzzjupWbMmEydO/M/Xi4+PJygoiDggEKBZM5gyBYKDXfSORERERORmOPJaXByBgYEuu66lc3xTUlLYtGkTAwYMcPR5eHgQGRnJunXrMj1n3bp1REVFZehr0qQJc+fOzfT45ORkkpOTHe24uDjzVy8vePtt6NoVbDaIj7/JdyMiIiIirhD//7nM1eOzlgbfM2fOkJ6eTvC/RluDg4PZs2dPpufExsZmenxsbGymx48YMYI333zzqv4yqanw6qvmQ0RERERynb///pugoCCXXS/fr+owYMCADCPE58+f59Zbb+XIkSMu/Y2U3Ck+Pp6wsDCOHj3q0h+VSO6kz9u96PN2L/q83UtcXBxlypShaNGiLr2upcG3WLFieHp6cvLkyQz9J0+edCwi/m8lS5Z06ngfHx98MrlhLSgoSH9x3EhgYKA+bzeiz9u96PN2L/q83Yur1/m1dFUHb29v6tSpw7Jlyxx9drudZcuW0aBBg0zPadCgQYbjAZYsWXLN40VEREREIBdMdYiKiqJTp07UrVuX+vXrM2bMGBISEujcuTMAHTt2pFSpUowYMQKAPn360KhRI0aPHs0jjzzCrFmz2LhxI59++qmVb0NEREREcjnLg2+bNm04ffo0Q4YMITY2lpo1a7Jo0SLHDWxHjhzJMMx91113MXPmTAYPHszAgQOpUKECc+fOpWrVqjf0ej4+PkRHR2c6/UHyH33e7kWft3vR5+1e9Hm7l+z6vC1fx1dEREREJCdYvnObiIiIiEhOUPAVEREREbeg4CsiIiIibkHBV0RERETcQr4MvuPHjyc8PBxfX18iIiLYsGHDdY+fM2cOlSpVwtfXl2rVqrFw4cIcqlRcwZnPe9KkSdxzzz0UKVKEIkWKEBkZ+Z9/PiR3cfbv92WzZs3CZrPx+OOPZ2+B4lLOft7nz5+nR48ehISE4OPjQ8WKFfU9PQ9x9vMeM2YMt99+O35+foSFhdG3b1+SkpJyqFq5Gb/++ivNmzcnNDQUm83G3Llz//OcFStWULt2bXx8fLjtttuYOnWq8y9s5DOzZs0yvL29jcmTJxs7d+40unTpYhQuXNg4efJkpsevWbPG8PT0NEaOHGns2rXLGDx4sOHl5WVs3749hyuXrHD2827Xrp0xfvx4Y8uWLcbu3buNZ555xggKCjKOHTuWw5VLVjj7eV926NAho1SpUsY999xjtGjRImeKlZvm7OednJxs1K1b13j44YeN1atXG4cOHTJWrFhhxMTE5HDlkhXOft4zZswwfHx8jBkzZhiHDh0yFi9ebISEhBh9+/bN4colKxYuXGgMGjTI+O677wzA+P777697/MGDBw1/f38jKirK2LVrlzF27FjD09PTWLRokVOvm++Cb/369Y0ePXo42unp6UZoaKgxYsSITI9v3bq18cgjj2Toi4iIMF544YVsrVNcw9nP+9/S0tKMgIAAY9q0adlVorhQVj7vtLQ046677jI+++wzo1OnTgq+eYizn/fHH39slCtXzkhJScmpEsWFnP28e/ToYTRu3DhDX1RUlNGwYcNsrVNc70aC76uvvmpUqVIlQ1+bNm2MJk2aOPVa+WqqQ0pKCps2bSIyMtLR5+HhQWRkJOvWrcv0nHXr1mU4HqBJkybXPF5yj6x83v+WmJhIamoqRYsWza4yxUWy+nkPHTqUEiVK8Nxzz+VEmeIiWfm8f/zxRxo0aECPHj0IDg6matWqDB8+nPT09JwqW7IoK5/3XXfdxaZNmxzTIQ4ePMjChQt5+OGHc6RmyVmuymuW79zmSmfOnCE9Pd2x69tlwcHB7NmzJ9NzYmNjMz0+NjY22+oU18jK5/1vr732GqGhoVf9ZZLcJyuf9+rVq/n888+JiYnJgQrFlbLyeR88eJDly5fTvn17Fi5cyP79++nevTupqalER0fnRNmSRVn5vNu1a8eZM2e4++67MQyDtLQ0XnzxRQYOHJgTJUsOu1Zei4+P59KlS/j5+d3QdfLViK+IM9555x1mzZrF999/j6+vr9XliItduHCBDh06MGnSJIoVK2Z1OZID7HY7JUqU4NNPP6VOnTq0adOGQYMGMXHiRKtLk2ywYsUKhg8fzoQJE9i8eTPfffcdCxYsYNiwYVaXJrlYvhrxLVasGJ6enpw8eTJD/8mTJylZsmSm55QsWdKp4yX3yMrnfdl7773HO++8w9KlS6levXp2liku4uznfeDAAQ4fPkzz5s0dfXa7HYACBQqwd+9eypcvn71FS5Zl5e93SEgIXl5eeHp6OvoqV65MbGwsKSkpeHt7Z2vNknVZ+bxff/11OnTowPPPPw9AtWrVSEhIoGvXrgwaNAgPD43t5SfXymuBgYE3PNoL+WzE19vbmzp16rBs2TJHn91uZ9myZTRo0CDTcxo0aJDheIAlS5Zc83jJPbLyeQOMHDmSYcOGsWjRIurWrZsTpYoLOPt5V6pUie3btxMTE+N4PPbYY9x///3ExMQQFhaWk+WLk7Ly97thw4bs37/f8R8cgH379hESEqLQm8tl5fNOTEy8Ktxe/k+Peb+U5Ccuy2vO3XeX+82aNcvw8fExpk6dauzatcvo2rWrUbhwYSM2NtYwDMPo0KGD0b9/f8fxa9asMQoUKGC89957xu7du43o6GgtZ5aHOPt5v/POO4a3t7fxzTffGCdOnHA8Lly4YNVbECc4+3n/m1Z1yFuc/byPHDliBAQEGD179jT27t1rzJ8/3yhRooTx1ltvWfUWxAnOft7R0dFGQECA8dVXXxkHDx40fv75Z6N8+fJG69atrXoL4oQLFy4YW7ZsMbZs2WIAxvvvv29s2bLF+PPPPw3DMIz+/fsbHTp0cBx/eTmzV155xdi9e7cxfvx4LWd22dixY40yZcoY3t7eRv369Y3169c7nmvUqJHRqVOnDMd//fXXRsWKFQ1vb2+jSpUqxoIFC3K4YrkZznzet956qwFc9YiOjs75wiVLnP37/U8KvnmPs5/32rVrjYiICMPHx8coV66c8fbbbxtpaWk5XLVklTOfd2pqqvHGG28Y5cuXN3x9fY2wsDCje/fuxrlz53K+cHHaL7/8kum/x5c/406dOhmNGjW66pyaNWsa3t7eRrly5YwpU6Y4/bo2w9DPA0REREQk/8tXc3xFRERERK5FwVdERERE3IKCr4iIiIi4BQVfEREREXELCr4iIiIi4hYUfEVERETELSj4ioiIiIhbUPAVEREREbeg4CsiAkydOpXChQtbXUaW2Ww25s6de91jnnnmGR5//PEcqUdEJDdS8BWRfOOZZ57BZrNd9di/f7/VpTF16lRHPR4eHpQuXZrOnTtz6tQpl1z/xIkTNGvWDIDDhw9js9mIiYnJcMyHH37I1KlTXfJ61/LGG2843qenpydhYWF07dqVs2fPOnUdhXQRyQ4FrC5ARMSVmjZtypQpUzL0FS9e3KJqMgoMDGTv3r3Y7Xa2bt1K586d+euvv1i8ePFNX7tkyZL/eUxQUNBNv86NqFKlCkuXLiU9PZ3du3fz7LPPEhcXx+zZs3Pk9UVErkUjviKSr/j4+FCyZMkMD09PT95//32qVatGwYIFCQsLo3v37ly8ePGa19m6dSv3338/AQEBBAYGUqdOHTZu3Oh4fvXq1dxzzz34+fkRFhZG7969SUhIuG5tNpuNkiVLEhoaSrNmzejduzdLly7l0qVL2O12hg4dSunSpfHx8aFmzZosWrTIcW5KSgo9e/YkJCQEX19fbr31VkaMGJHh2penOpQtWxaAWrVqYbPZuO+++4CMo6iffvopoaGh2O32DDW2aNGCZ5991tH+4YcfqF27Nr6+vpQrV44333yTtLS0677PAgUKULJkSUqVKkVkZCRPPvkkS5YscTyfnp7Oc889R9myZfHz8+P222/nww8/dDz/xhtvMG3aNH744QfH6PGKFSsAOHr0KK1bt6Zw4cIULVqUFi1acPjw4evWIyJymYKviLgFDw8PPvroI3bu3Mm0adNYvnw5r7766jWPb9++PaVLl+b3339n06ZN9O/fHy8vLwAOHDhA06ZNeeKJJ9i2bRuzZ89m9erV9OzZ06ma/Pz8sNvtpKWl8eGHHzJ69Gjee+89tm3bRpMmTXjsscf4448/APjoo4/48ccf+frrr9m7dy8zZswgPDw80+tu2LABgKVLl3LixAm+++67q4558skn+fvvv/nll18cfWfPnmXRokW0b98egFWrVtGxY0f69OnDrl27+OSTT5g6dSpvv/32Db/Hw4cPs3jxYry9vR19drud0qVLM2fOHHbt2sWQIUMYOHAgX3/9NQD9+vWjdevWNG3alBMnTnDixAnuuusuUlNTadKkCQEBAaxatYo1a9ZQqFAhmjZtSkpKyg3XJCJuzBARySc6depkeHp6GgULFnQ8/ve//2V67Jw5c4xbbrnF0Z4yZYoRFBTkaAcEBBhTp07N9NznnnvO6Nq1a4a+VatWGR4eHsalS5cyPeff19+3b59RsWJFo27duoZhGEZoaKjx9ttvZzinXr16Rvfu3Q3DMIxevXoZjRs3Nux2e6bXB4zvv//eMAzDOHTokAEYW7ZsyXBMp06djBYtWjjaLVq0MJ599llH+5NPPjFCQ0ON9PR0wzAM44EHHjCGDx+e4RrTp083QkJCMq3BMAwjOjra8PDwMAoWLGj4+voagAEY77///jXPMQzD6NGjh/HEE09cs9bLr3377bdn+D1ITk42/Pz8jMWLF1/3+iIihmEYmuMrIvnK/fffz8cff+xoFyxYEDBHP0eMGMGePXuIj48nLS2NpKQkEhMT8ff3v+o6UVFRPP/880yfPt3x4/ry5csD5jSIbdu2MWPGDMfxhmFgt9s5dOgQlStXzrS2uLg4ChUqhN1uJykpibvvvpvPPvuM+Ph4/vrrLxo2bJjh+IYNG7J161bAnKbw4IMPcvvtt9O0aVMeffRRHnrooZv6vWrfvj1dunRhwoQJ+Pj4MGPGDJ566ik8PDwc73PNmjUZRnjT09Ov+/sGcPvtt/Pjjz+SlJTEl19+SUxMDL169cpwzPjx45k8eTJHjhzh0qVLpKSkULNmzevWu3XrVvbv309AQECG/qSkJA4cOJCF3wERcTcKviKSrxQsWJDbbrstQ9/hw4d59NFH6datG2+//TZFixZl9erVPPfcc6SkpGQa4N544w3atWvHggUL+Omnn4iOjmbWrFm0bNmSixcv8sILL9C7d++rzitTpsw1awsICGDz5s14eHgQEhKCn58fAPHx8f/5vmrXrs2hQ4f46aefWLp0Ka1btyYyMpJvvvnmP8+9lubNm2MYBgsWLKBevXqsWrWKDz74wPH8xYsXefPNN2nVqtVV5/r6+l7zut7e3o7P4J133uGRRx7hzTffZNiwYQDMmjWLfv36MXr0aBo0aEBAQACjRo3it99+u269Fy9epE6dOhn+w3FZbrmBUURyNwVfEcn3Nm3ahN1uZ/To0Y7RzMvzSa+nYsWKVKxYkb59+9K2bVumTJlCy5YtqV27Nrt27boqYP8XDw+PTM8JDAwkNDSUNWvW0KhRI0f/mjVrqF+/fobj2rRpQ5s2bfjf//5H06ZNOXv2LEWLFs1wvcvzadPT069bj6+vL61atWLGjBns37+f22+/ndq1azuer127Nnv37nX6ff7b4MGDady4Md26dXO8z7vuuovu3bs7jvn3iK23t/dV9deuXZvZs2dTokQJAgMDb6omEXFPurlNRPK92267jdTUVMaOHcvBgweZPn06EydOvObxly5domfPnqxYsYI///yTNWvW8PvvvzumMLz22musXbuWnj17EhMTwx9//MEPP/zg9M1t//TKK6/w7rvvMnv2bPbu3Uv//v2JiYmhT58+ALz//vt89dVX7Nmzh3379jFnzhxKliyZ6aYbJUqUwM/Pj0WLFnHy5Eni4uKu+brt27dnwYIFTJ482XFT22VDhgzhiy++4M0332Tnzp3s3r2bWbNmMXjwYKfeW4MGDahevTrDhw8HoEKFCmzcuJHFixezb98+Xn/9dX7//fcM54SHh7Nt2zb27t3LmTNnSE1NpX379hQrVowWLVqwatUqDh06xIoVK+jduzfHjh1zqiYRcU8KviKS79WoUYP333+fd999l6pVqzJjxowMS4H9m6enJ3///TcdO3akYsWKtG7dmmbNmvHmm28CUL16dVauXMm+ffu45557qFWrFkOGDCE0NDTLNfbu3ZuoqChefvllqlWrxqJFi/jxxx+pUKECYE6TGDlyJHXr1qVevXocPnyYhQsXOkaw/6lAgQJ89NFHfPLJJ4SGhtKiRYtrvm7jxo0pWrQoe/fupV27dhmea9KkCfPnz+fnn3+mXr163HnnnXzwwQfceuutTr+/vn378tlnn3H06FFeeOEFWrVqRZs2bYiIiODvv//OMPoL0KVLF26//Xbq1q1L8eLFWbNmDf7+/vz666+UKVOGVq1aUblyZZ577jmSkpI0AiwiN8RmGIZhdREiIiIiItlNI74iIiIi4hYUfEVERETELSj4ioiIiIhbUPAVEREREbeg4CsiIiIibkHBV0RERETcgoKviIiIiLgFBV8RERERcQsKviIiIiLiFhR8RURERMQtKPiKiIiIiFv4Px5hpIdiv4VJAAAAAElFTkSuQmCC", + "text/plain": [ + "<Figure size 800x600 with 1 Axes>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from sklearn.metrics import roc_curve, auc\n", + "# Calculate the false positive rate (FPR), true positive rate (TPR), and thresholds\n", + "fpr, tpr, thresholds = roc_curve(y_test, y_proba)\n", + "\n", + "# Calculate the area under the ROC curve (AUC)\n", + "roc_auc = auc(fpr, tpr)\n", + "\n", + "# Plot the ROC curve\n", + "plt.figure(figsize=(8, 6))\n", + "plt.plot(fpr, tpr, color='blue', label='ROC curve (area = %0.2f)' % roc_auc)\n", + "plt.plot([0, 1], [0, 1], color='red', linestyle='--')\n", + "plt.xlim([0.0, 1.0])\n", + "plt.ylim([0.0, 1.05])\n", + "plt.xlabel('False Positive Rate')\n", + "plt.ylabel('True Positive Rate')\n", + "plt.title('XGBoost')\n", + "plt.legend(loc='lower right')\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "id": "2ed2e4bf", + "metadata": {}, + "source": [ + "### The ROC curve above shows that the XGBoost model has an AUC of 0.97 which indicates that the model preformed good in classification of non cancer and cancer." + ] + }, + { + "cell_type": "code", + "execution_count": 43, + "id": "603f38e9", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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19eEhISY119/PdVrOnz4sGnTpo3x8/MzgYGB5plnnjHLly9PV8C/VvA1xpgxY8YYwEybNs3Zlp73JK3P+d/vz4wZM8zdd99tAgMDjZeXl6lcubKZMmXKNWsVyYkKZHWPskh+4ubmxvvvv0+tWrXo3bs3P/30E3Xr1qVv374p9luyZAlgjQvOqNjYWM6cOQNATEwM33zzDcuXL2fw4MEp9nv55Zd55ZVXCA8Pp3fv3uzdu5f33nuPjRs3sm7dOjw9PYF/vjqtV68eY8eO5eTJk7zzzjusW7eOrVu3UqRIEQAeeOABdu3aRf/+/QkLC+PUqVOsXLmSI0eOEBYWxoQJE+jfvz+FChVi6NChAAQFBWX49WVEYmIix44do2jRoinalyxZgo+PDx07dkzzuLJly9KkSRNWr17N5cuX8fX1ZfHixfj6+vK///0vU7XExsayatUq7rzzTsqUKZOpc1xLYmIiERERNGnShDfffBM/Pz/CwsKYPHkyS5cu5cEHH0xRy5IlS3jkkUfw8PAAYM6cOfTo0YOIiAhef/11YmNjee+992jSpAlbt2696lfbHTp0oEiRIgwcONA5zKZQoUIA7Nq1izvuuAN/f3+ef/55PD09ef/997nrrrv44YcfaNCgQYpz9enTh8DAQIYPH86lS5du+D158MEHqVChAmPGjMH8/6i9lStXcvDgQXr27EnJkiXZtWsX06ZNY9euXfz888/XHdawf/9+/ve///HYY4/Ro0cPZsyYwSOPPEKdOnWoUqXKNY89d+4cLVq0oEOHDnTs2JHPPvuMF154gWrVqtGyZUsALl26RLNmzThx4gQDBgygZMmSzJs3j++///6G3w+Abt26MWTIEFasWOEc/pOe96RDhw7s27ePTz75hLfffpvixYsDEBgYCMB7771HlSpVuP/++ylQoABLliyhT58+OByOVH+/ieRodidvkbxo8ODBBjAeHh5m8+bNqZ5v3769Acz58+dTtF++fNmcPn3a+fh372xyT2Baj969exuHw+Hc99SpU8bLy8s0b97cJCUlOdsnTZpkADNjxgxjjDHx8fGmRIkSpmrVquby5cvO/b7++msDmOHDhxtjrGEApOOr7qwe6tC8eXPne7Njxw7TrVs3A5i+ffum2LdIkSKmRo0a1zzf008/bQDz22+/GWOMKVq06HWPuZbt27cbwAwYMCBd+2e0xxcwL774Yop9HQ6HKVWqlHnggQdStH/66acGMD/++KMxxpgLFy6YIkWKmF69eqXYLyoqygQEBKRq/6+rfdvQrl074+XlZQ4cOOBsO378uClcuLC58847nW3JvZRNmjRJ0QOdHtfq8e3cuXOq/dP6ij/5m5fk9+PfNf23x/e/+506dcp4e3ubZ5991tl2tR5f/vMtQ1xcnClZsmSKz2f8+PEGMIsWLXK2Xb582VSqVMklPb7GGBMQEGBq1arl3E7ve3KtoQ5pnSMiIsKUK1fumvWK5DSa1UEkCyT3loSEhFC1atVUz8fExAA4e86STZ06lcDAQOejSZMmqY594oknWLlyJStXruTzzz+nb9++vP/++0RGRjr3+e6774iPj+eZZ55JcfNNr1698Pf3Z+nSpYB109apU6fo06cPPj4+zv1at25NpUqVnPv5+vri5eXFmjVrOHfuXGbflhu2YsUK53tTrVo15syZQ8+ePVPd1HfhwgUKFy58zXMlP5/8WcTExFz3mGtJPs+NnON6evfunWLbzc2NBx98kGXLlnHx4kVn+4IFCyhVqpTz52flypWcP3+ezp07c+bMGefDw8ODBg0aZKq3MSkpiRUrVtCuXTvKlSvnbA8ODqZLly6sXbvW+Z4k69Wrl7MH2hWeeuqpVG2+vr7O31+5coUzZ85w++23A7Bly5brnvO2227jjjvucG4HBgZy6623cvDgweseW6hQoRTf4nh5eVG/fv0Uxy5fvpxSpUpx//33O9t8fHxS3Zx5IwoVKpRidocbfU/+e47o6GjOnDlD06ZNOXjwINHR0S6qXCTrKfiKuNjRo0cZMWIEVatW5ejRo7zxxhup9kkOR/8OK2ANJ0gOtVe7K7tChQqEh4cTHh5Ohw4dmDRpEn369GHChAns2LEDgD///BOAW2+9NcWxXl5elCtXzvn81fYDqFSpkvN5b29vXn/9db755huCgoK48847eeONN4iKikr3+/Jfp0+fJioqyvn473uRlgYNGrBy5UqWL1/Om2++SZEiRTh37hxeXl4p9itcuPB1p3VKfj75s/D397+hqaD8/f1TnNfVChQoQOnSpVO1d+rUicuXL7N48WLA+platmwZDz74oPNr/T/++AOAZs2apfiPVWBgICtWrODUqVMZruf06dPExsam+bNTuXJlHA4HR48eTdFetmzZDF/n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REREJJu4GZN8W7s9GjRoQL169Zg0aRIADoeD0NBQ+vfvz4svvnjd45OSkihatCiTJk2ie/fu190/JiaGgIAAjh+PJjjY/4brl1xk1CjYsAFmzoSgILurERERkatIzmvR0dH4+7sur9k6nVl8fDybN29m8ODBzjZ3d3fCw8PZsGFDus4RGxtLQkICxYoVS/P5uLg44uLinNsxWnY2/1iyBMqWhapVre0hQ8Dd3Zq6TERERPIdW4c6nDlzhqSkJIL+0/sWFBREVFRUus7xwgsvEBISQnh4eJrPjx07loCAAOcjNDT0huuWHC42Fnr3hvvvh65drRvawFp+WKFXREQk37J9jO+NeO2115g/fz5ffvklPj4+ae4zePBgoqOjnY+jR49mc5WSrbZsgdq1YepUazs8XGFXREREAJuHOhQvXhwPDw9OnjyZov3kyZOULFnymse++eabvPbaa3z33XdUr179qvt5e3vj7e3tknolB3M44M03YdgwSEiA4GD46CMr+IqIiIhgc4+vl5cXderUYdWqVc42h8PBqlWraNiw4VWPe+ONNxg1ahTLly+nbt262VGq5GTnzlkB94UXrNDbvr01e4NCr4iIiPyLrT2+AJGRkfTo0YO6detSv359JkyYwKVLl+jZsycA3bt3p1SpUowdOxaA119/neHDhzNv3jzCwsKcY4ELFSpEoUKFbHsdYiN/fyvw+vnBu+/Co49qeIOIiIikYnvw7dSpE6dPn2b48OFERUVRs2ZNli9f7rzh7ciRI7i7/9Mx/d577xEfH8///ve/FOcZMWIEL7/8cnaWLna6cAE8PcHHx7ppbe5ciIuDChXsrkxERERyKNvn8c1umsc3D/j5Z2u2hjZt/lmFTURERPKMrJrHN1fP6iD5TGIijBwJTZrAwYOwaBFoXmYRERFJJwVfyR0OHYKmTWHECEhKgi5dYNs2a3yviIiISDoo+ErOZgzMmQM1asD69VbQ/fhja0xvkSJ2VyciIiK5iO03t4lc099/Q//+1s1sjRtboTcszO6qREREJBdS8JWcrXhxeP99+OMPePFFKKAfWREREckcpQjJWeLj4eWXrRvYWrWy2jp1srUkERERyRsUfCXn2LvXmqZs82YoUQL274fChe2uSkRERPII3dwm9jMGpk+H2rWt0Fu0KEyZotArIiIiLqUeX7HXmTPQq5c1Jy9A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mxIlSpjRo0fb9RIkAzL6eY8YMcIULlzYfPLJJ+bgwYNmxYoVpnz58qZjx452vQTJgAsXLpitW7earVu3GsC89dZbZuvWrebPP/80xhjz4osvmm7dujn3T57O7LnnnjO7d+82kydP1nRmySZOnGjKlCljvLy8TP369c3PP//sfK5p06amR48eKfb/9NNPTcWKFY2Xl5epUqWKWbp0aTZXLDciI5/3zTffbIBUjxEjRmR/4ZIpGf3z/W8KvrlPRj/v9evXmwYNGhhvb29Trlw58+qrr5rExMRsrloyKyOfd0JCgnn55ZdN+fLljY+PjwkNDTV9+vQx586dy/7CJcO+//77NP89Tv6Me/ToYZo2bZrqmJo1axovLy9Trlw5M3PmzAxf180YfR8gIiIiInlfnhrjKyIiIiJyNQq+IiIiIpIvKPiKiIiISL6g4CsiIiIi+YKCr4iIiIjkCwq+IiIiIpIvKPiKiIiISL6g4CsiIiIi+YKCr4gIMGvWLIoUKWJ3GZnm5ubGokWLrrnPI488Qrt27bKlHhGRnEjBV0TyjEceeQQ3N7dUj/3799tdGrNmzXLW4+7uTunSpenZsyenTp1yyflPnDhBy5YtATh8+DBubm5s27YtxT7vvPMOs2bNcsn1rubll192vk4PDw9CQ0N54oknOHv2bIbOo5AuIlmhgN0FiIi4UosWLZg5c2aKtsDAQJuqScnf35+9e/ficDjYvn07PXv25Pjx43z77bc3fO6SJUted5+AgIAbvk56VKlShe+++46kpCR2797No48+SnR0NAsWLMiW64uIXI16fEUkT/H29qZkyZIpHh4eHrz11ltUq1aNggULEhoaSp8+fbh48eJVz7N9+3buvvtuChcujL+/P3Xq1GHTpk3O59euXcsdd9yBr68voaGhPP3001y6dOmatbm5uVGyZElCQkJo2bIlTz/9NN999x2XL1/G4XAwcuRISpcujbe3NzVr1mT58uXOY+Pj4+nXrx/BwcH4+Phw8803M3bs2BTnTh7qULZsWQBq1aqFm5sbd911F5CyF3XatGmEhITgcDhS1Ni2bVseffRR5/ZXX31F7dq18fHxoVy5crzyyiskJiZe83UWKFCAkiVLUqpUKcLDw3nwwQdZuXKl8/mkpCQee+wxypYti6+vL7feeivvvPOO8/mXX36Z2bNn89VXXzl7j9esWQPA0aNH6dixI0WKFKFYsWK0bduWw4cPX7MeEZFkCr4iki+4u7vz7rvvsmvXLmbPns3q1at5/vnnr7p/165dKV26NBs3bmTz5s28+OKLeHp6AnDgwAFatGjBAw88wG+//caCBQtYu3Yt/fr1y1BNvr6+OBwOEhMTeeeddxg/fjxvvvkmv/32GxEREdx///388ccfALz77rssXryYTz/9lL179zJ37lzCwsLSPO+vv/4KwHfffceJEyf44osvUu3z4IMP8vfff/P99987286ePcvy5cvp2rUrAD/99BPdu3dnwIAB/P7777z//vvMmjWLV199Nd2v8fDhw3z77bd4eXk52xwOB6VLl2bhwoX8/vvvDB8+nCFDhvDpp58CMGjQIDp27EiLFi04ceIEJ06coFGjRiQkJBAREUHhwoX56aefWLduHYUKFaJFixbEx8enuyYRyceMiEge0aNHD+Ph4WEKFizofPzvf/9Lc9+FCxeam266ybk9c+ZMExAQ4NwuXLiwmTVrVprHPvbYY+aJJ55I0fbTTz8Zd3d3c/ny5TSP+e/59+3bZypWrGjq1q1rjDEmJCTEvPrqqymOqVevnunTp48xxpj+/fubZs2aGYfDkeb5AfPll18aY4w5dOiQAczWrVtT7NOjRw/Ttm1b53bbtm3No48+6tx+//33TUhIiElKSjLGGHPPPfeYMWPGpDjHnDlzTHBwcJo1GGPMiBEjjLu7uylYsKDx8fExgAHMW2+9ddVjjDGmb9++5oEHHrhqrcnXvvXWW1O8B3FxccbX19d8++231zy/iIgxxmiMr4jkKXfffTfvvfeec7tgwYKA1fs5duxY9uzZQ0xMDImJiVy5coXY2Fj8/PxSnScyMpLHH3+cOXPmOL+uL1++PGANg/jtt9+YO3euc39jDA6Hg0OHDlG5cuU0a4uOjqZQoUI4HA6uXLlCkyZN+OCDD4iJieH48eM0btw4xf6NGzdm+/btgDVM4d577+XWW2+lRYsW3HfffTRv3vyG3quuXbvSq1cvpkyZgre3N3PnzuWhhx7C3d3d+TrXrVuXooc3KSnpmu8bwK233srixYu5cuUKH3/8Mdu2baN///4p9pk8eTIzZszgyJEjXL58mfj4eGrWrHnNerdv387+/fspXLhwivYrV65w4MCBTLwDIpLfKPiKSJ5SsGBBbrnllhRthw8f5r777qN37968+uqrFCtWjLVr1/LYY48RHx+fZoB7+eWX6dKlC0uXLuWbb75hxIgRzJ8/n/bt23Px4kWefPJJnn766VTHlSlT5qq1FS5cmC1btuDu7k5wcDC+vr4AxMTEXPd11a5dm0OHDvHNN9/w3Xff0bFjR8LDw/nss8+ue+zVtGnTBmMMS5cupV69evz000+8/fbbzucvXrzIK6+8QocOHVId6+Pjc9Xzenl5OT+D1157jdatW/PKK68watQoAObPn8+gQYMYP348DRs2pHDhwowbN45ffvnlmvVevHiROnXqpPgPR7KccgOjiORsCr4ikudt3rwZh8PB+PHjnb2ZyeNJr6VixYpUrFiRgQMH0rlzZ2bOnEn79u2pXbs2v//+e6qAfT3u7u5pHuPv709ISAjr1q2jadOmzvZ169ZRv379FPt16tSJTp068b///Y8WLVpw9uxZihUrluJ8yeNpk5KSrlmPj48PHTp0YO7cuezfv59bb72V2rVrO5+vXbs2e/fuzfDr/K9hw4bRrFkzevfu7XydjRo1ok+fPs59/ttj6+Xllar+2rVrs2DBAkqUKIG/v/8N1SQi+ZNubhORPO+WW24hISGBiRMncvDgQebMmcPUqVOvuv/ly5fp168fa9as4c8//2TdunVs3LjROYThhRdeYP369fTr149t27bxxx9/8NVXX2X45rZ/e+6553j99ddZsGABe/fu5cUXX2Tbtm0MGDAAgLfeeotPPvmEPXv2sG/fPhYuXEjJkiXTXHSjRIkS+Pr6snz5ck6ePEl0dPRVr9u1a1eWLl3KjBkznDe1JRs+fDgfffQRr7zyCrt27WL37t3Mnz+fYcOGZei1NWzYkOrVqzNmzBgAKlSowKZNm/j222/Zt28fL730Ehs3bkxxTFhYGL/99ht79+7lzJkzJCQk0LVrV4oXL07btm356aefOHToEGvWrOHpp5/m2LFjGapJRPInBV8RyfNq1KjBW2+9xeuvv07VqlWZO3duiqnA/svDw4O///6b7t27U7FiRTp27EjLli155ZVXAKhevTo//PAD+/bt44477qBWrVoMHz6ckJCQTNf49NNPExkZybPPPku1atVYvnw5ixcvpkKFCoA1TOKNN96gbt261KtXj8OHD7Ns2TJnD/a/FShQgHfffZf333+fkJAQ2rZte9XrNmvWjGLFirF37166dOmS4rmIiAi+/vprVqxYQb169bj99tt5++23ufnmmzP8+gYOHMgHH3zA0aNHefLJJ+nQoQOdOnWiQYMG/P333yl6fwF69erFrbfeSt26dQkMDGTdunX4+fnx448/UqZMGTp06EDlypV57LHHuHLlinqARSRd3Iwxxu4iRERERESymnp8RURERCRfUPAVERERkXxBwVdERERE8gUFXxERERHJFxR8RURERCRfUPAVERERkXxBwVdERERE8gUFXxERERHJFxR8RURERCRfUPAVERERkXxBwVdERERE8oX/A8lTrErJuNg/AAAAAElFTkSuQmCC", + "text/plain": [ + "<Figure size 800x600 with 1 Axes>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Predict probabilities for the training data\n", + "y_train_proba = model_xgb.predict_proba(X_train)[:, 1]\n", + "\n", + "# Calculate the false positive rate (FPR), true positive rate (TPR), and thresholds\n", + "fpr_train, tpr_train, thresholds_train = roc_curve(y_train, y_train_proba)\n", + "\n", + "# Calculate the area under the ROC curve (AUC) for training data\n", + "roc_auc_train = auc(fpr_train, tpr_train)\n", + "\n", + "# Plot the ROC curve for training data\n", + "plt.figure(figsize=(8, 6))\n", + "plt.plot(fpr_train, tpr_train, color='blue', label='ROC curve (area = %0.2f)' % roc_auc_train)\n", + "plt.plot([0, 1], [0, 1], color='red', linestyle='--')\n", + "plt.xlim([0.0, 1.0])\n", + "plt.ylim([0.0, 1.05])\n", + "plt.xlabel('False Positive Rate')\n", + "plt.ylabel('True Positive Rate')\n", + "plt.title('XGBoost - ROC Curve for Training Data')\n", + "plt.legend(loc='lower right')\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "id": "942e1a1f", + "metadata": {}, + "source": [ + "#### In the ROC curve above we can see that the AUC value of 1 for the train set which indicates the model's flawless ability to distinguish between positive and negative classes during training, showcasing excellent performance on the training data." + ] + }, + { + "cell_type": "code", + "execution_count": 45, + "id": "169beac5", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " precision recall f1-score support\n", + "\n", + " 0 1.00 0.87 0.93 30\n", + " 1 0.88 1.00 0.94 30\n", + "\n", + " accuracy 0.93 60\n", + " macro avg 0.94 0.93 0.93 60\n", + "weighted avg 0.94 0.93 0.93 60\n", + "\n" + ] + } + ], + "source": [ + "from sklearn.metrics import classification_report, confusion_matrix\n", + "grid_predictions = grid.predict(X_test)\n", + "print(classification_report(y_test, grid_predictions))" + ] + }, + { + "cell_type": "markdown", + "id": "ce1b8ee7", + "metadata": {}, + "source": [ + "### The model displayed high precision and recall for both classes, resulting in an overall F1-score of 0.93, indicating its strong performance on the test dataset." + ] + }, + { + "cell_type": "code", + "execution_count": 46, + "id": "aeeb0b36", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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q6++Wl988YVHUgLUBPHx8dqzZ4/HtqysLPf8nHbt2slut+vw4cO0HxAwmPSIKpOSkqLS0lK9+OKLOnDggF5//XXNnz//kvt///33Sk9P16ZNm/Tll1/qo48+0ieffOJuNUyaNElbt25Venq6srKytH//fr3zzjtMekTAu+GGG7Rjxw4tXrxY+/fv1/Tp0z0SiJiYGI0fP15jx47VokWLlJubq08//VQvvviiFi1aVI2R43JGwoAq06lTJz377LP6wx/+oPbt22vJkiVyOp2X3D80NFTfffedhg4dqlatWumOO+5Qv379NHPmTElSx44dtXnzZv373/9W165dddVVV2natGlKTEysqksCKqVPnz6aOnWqJk6cqGuvvVZnzpzR0KFDPfaZPXu2pk6dKqfTqbZt26pv375au3atkpOTqylqXO54vTUAAPCKCgMAAPCKhAEAAHhFwgAAALwiYQAAAF6RMAAAAK9IGAAAgFckDAAAwCsSBqCGGD58uPr37+9e79Gjh/tNnVVp06ZNstlsOnXq1CX3sdlsWrVqVYWPOWPGDF155ZWm4jp06JBsNpuysrJMHQfAxZEwACYMHz5cNptNNptNYWFhSklJ0axZs3Tu3Dm/n/utt97S7NmzK7RvRb7kAeCn8PIpwKS+ffsqIyNDxcXF+tvf/qZRo0apdu3amjJlygX7lpSUKCwszJLzxsXFWXIcAKgIKgyASXa7XQkJCWrWrJkeeugh9erVS++++66k/7URnnjiCSUmJqp169aSpLy8PN1xxx2qU6eO4uLidNttt+nQoUPuY5aVlWncuHGqU6eO6tWrp4kTJ17wOuQftySKi4s1adIkJSUlyW63KyUlRa+++qoOHTqknj17SpLq1q0rm82m4cOHS5JcLpecTqeSk5MVERGhTp06aeXKlR7n+dvf/qZWrVopIiJCPXv29IizoiZNmqRWrVopMjJSzZs319SpUz1e53zeggULlJSUpMjISN1xxx06ffq0x+evvPKK2rZtq/DwcLVp00YvvfSSz7EAqBwSBsBiERERKikpca+///77ys7O1oYNG7RmzRqVlpaqT58+iomJ0YcffqiPPvpI0dHR6tu3r3vcM888o4ULF+q1115TZmamTp48qbfffvsnzzt06FD99a9/1Zw5c7R3714tWLBA0dHRSkpK0ptvvilJys7O1rFjx/TCCy9IkpxOpxYvXqz58+fr888/19ixY3XPPfdo8+bNksoTm4EDB+qWW25RVlaWRo4cqcmTJ/v8v0lMTIwWLlyoL774Qi+88IJefvllPffccx775OTkaMWKFVq9erXWr1+vXbt26eGHH3Z/vmTJEk2bNk1PPPGE9u7dqyeffFJTp07l7Y1AVTEAVNqwYcOM2267zTAMw3C5XMaGDRsMu91ujB8/3v15w4YNjeLiYveY119/3WjdurXhcrnc24qLi42IiAjjvffeMwzDMBo1amQ89dRT7s9LS0uNJk2auM9lGIbRvXt349FHHzUMwzCys7MNScaGDRsuGuc//vEPQ5Lxn//8x72tqKjIiIyMNLZu3eqx74gRI4zBgwcbhmEYU6ZMMdq1a+fx+aRJky441o9JMt5+++1Lfv70008bqamp7vXp06cboaGhxpEjR9zb1q1bZ4SEhBjHjh0zDMMwWrRoYSxdutTjOLNnzzbS0tIMwzCMgwcPGpKMXbt2XfK8ACqPOQyASWvWrFF0dLRKS0vlcrl09913a8aMGe7PO3To4DFv4bPPPlNOTo5iYmI8jlNUVKTc3FydPn1ax44dU+fOnd2f1apVS9dcc80FbYnzsrKyFBoaqu7du1c47pycHJ09e1Y33XSTx/aSkhJdddVVkqS9e/d6xCFJaWlpFT7HecuXL9ecOXOUm5urgoICnTt3Tg6Hw2Ofpk2bqnHjxh7ncblcys7OVkxMjHJzczVixAjdf//97n3OnTun2NhYn+MB4DsSBsCknj17at68eQoLC1NiYqJq1fL8zyoqKspjvaCgQKmpqVqyZMkFx4qPj69UDBERET6PKSgokCStXbvW44taKp+XYZVt27ZpyJAhmjlzpvr06aPY2FgtW7ZMzzzzjM+xvvzyyxckMKGhoZbFCuDSSBgAk6KiopSSklLh/a+++motX75cDRo0uOBf2ec1atRIH3/8sbp16yap/F/SO3fu1NVXX33R/Tt06CCXy6XNmzerV69eF3x+vsJRVlbm3tauXTvZ7XYdPnz4kpWJtm3buidwnrd9+3bvF/kDW7duVbNmzfTYY4+5t3355ZcX7Hf48GEdPXpUiYmJ7vOEhISodevWatiwoRITE3XgwAENGTLEp/MDsAaTHoEqNmTIENWvX1+33XabPvzwQx08eFCbNm3S6NGjdeTIEUnSo48+qt///vdatWqV9u3bp4cffvgnn6FwxRVXaNiwYbrvvvu0atUq9zFXrFghSWrWrJlsNpvWrFmjb775RgUFBYqJidH48eM1duxYLVq0SLm5ufr000/14osvuicSPvjgg9q/f78mTJig7OxsLV26VAsXLvTpelu2bKnDhw9r2bJlys3N1Zw5cy46gTM8PFzDhg3TZ599pg8//FCjR4/WHXfcoYSEBEnSzJkz5XQ6NWfOHP373//Wv/71L2VkZOjZZ5/1KR4AlUPCAFSxyMhIbdmyRU2bNtXAgQPVtm1bjRgxQkVFRe6Kw29+8xv96le/0rBhw5SWlqaYmBgNGDDgJ487b9483X777Xr44YfVpk0b3X///SosLJQkNW7cWDNnztTkyZPVsGFDpaenS5Jmz56tqVOnyul0qm3bturbt6/Wrl2r5ORkSeXzCt58802tWrVKnTp10vz58/Xkk0/6dL233nqrxo4dq/T0dF155ZXaunWrpk6desF+KSkpGjhwoG6++Wb17t1bHTt29LhtcuTIkXrllVeUkZGhDh06qHv37lq4cKE7VgD+ZTMuNYsKAADgv6gwAAAAr0gYAACAVyQMAADAKxIGAADgFQkDAADwioQBAAB4RcIAAAC8ImEAAABekTAAAACvSBgAAIBXJAwAAMArEgYAAODV/wcPNKzp3WrpfwAAAABJRU5ErkJggg==", + "text/plain": [ + "<Figure size 640x480 with 2 Axes>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "#######CONFUSION MATRIX ###########\n", + "from sklearn import metrics\n", + "y_test_pred_xgb = model_xgb.predict(X_test)\n", + "confusion_matrix_test = metrics.confusion_matrix(y_test, y_test_pred_xgb)\n", + "cm_display = metrics.ConfusionMatrixDisplay(confusion_matrix = confusion_matrix_test, display_labels = [False, True])\n", + "cm_display.plot()\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "id": "74e5f71e", + "metadata": {}, + "source": [ + "### The XGBoost model achieved 26 true positive predictions and 30 true negative predictions, with only 4 false positives and no false negatives, indicating strong overall performance in correctly classifying positive and negative samples." + ] + }, + { + "cell_type": "code", + "execution_count": 47, + "id": "ca09e716", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Accuracy : 0.9333333333333333\n", + "Sensitivity : 0.8666666666666667\n", + "Specificity : 1.0\n" + ] + } + ], + "source": [ + "total1=sum(sum(confusion_matrix_test))\n", + "#####from confusion matrix calculate accuracy\n", + "accuracy1=(confusion_matrix_test[0,0]+confusion_matrix_test[1,1])/total1\n", + "print ('Accuracy : ', accuracy1)\n", + "\n", + "sensitivity1 = confusion_matrix_test[0,0]/(confusion_matrix_test[0,0]+confusion_matrix_test[0,1])\n", + "print('Sensitivity : ', sensitivity1 )\n", + "\n", + "specificity1 = confusion_matrix_test[1,1]/(confusion_matrix_test[1,0]+confusion_matrix_test[1,1])\n", + "print('Specificity : ', specificity1)" + ] + }, + { + "cell_type": "markdown", + "id": "a8ae087b", + "metadata": {}, + "source": [ + "### The XGBoost model demonstrated strong performance with an accuracy of 93.3%, correctly identifying all negative samples with a specificity of 100% and achieving a high sensitivity of 86.7% for positive samples." + ] + }, + { + "cell_type": "markdown", + "id": "4c85b645", + "metadata": {}, + "source": [ + "# Feature importance:" + ] + }, + { + "cell_type": "code", + "execution_count": 48, + "id": "c1095af0", + "metadata": {}, + "outputs": [], + "source": [ + "# for important features:\n", + "important_feat = model_xgb.feature_importances_\n", + "#get indices of those important features\n", + "idx = important_feat.argsort(kind= \"quicksort\")\n", + "idx= idx[::-1][:50]" + ] + }, + { + "cell_type": "code", + "execution_count": 49, + "id": "ae7e0162", + "metadata": {}, + "outputs": [], + "source": [ + "df1 = X_selected.T" + ] + }, + { + "cell_type": "code", + "execution_count": 50, + "id": "1d97f818", + "metadata": {}, + "outputs": [], + "source": [ + "top_met = df1.iloc[idx]" + ] + }, + { + "cell_type": "code", + "execution_count": 51, + "id": "4cd4227b", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Index(['CRISP3', 'TRIP13', 'RPN1', 'CRNN', 'ALDH9A1', 'ECT2', 'HSPB8', 'MCM2',\n", + " 'EMP1', 'SIM2', 'RAB11FIP1', 'COL1A1', 'EFNA1', 'IGFBP3', 'KANK1',\n", + " 'CFD', 'CLIC3', 'ID4', 'CH25H', 'LCN2', 'DHRS1', 'IGF2BP2', 'MMP10',\n", + " 'ANO1', 'MYH10', 'LAMC2', 'SLK', 'ZBTB16', 'AIM2', 'AQP3', 'COL5A2',\n", + " 'UCHL1', 'ENTPD6', 'GALE', 'ATP6V1D', 'HSPBAP1', 'GPX3', 'LEPROTL1',\n", + " 'NT5C2', 'SCNN1A', 'FSCN1', 'ERCC3', 'TMPRSS11D', 'RHCG', 'PTN',\n", + " 'CRABP2', 'DHRS2', 'GABRP', 'FLG', 'TMF1'],\n", + " dtype='object')" + ] + }, + "execution_count": 51, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "top_met.index" + ] + }, + { + "cell_type": "code", + "execution_count": 52, + "id": "8f6d88bb", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Index(['ACLY', 'ACPP', 'AIM2', 'ALDH9A1', 'ALOX12', 'ANO1', 'AQP3', 'ATP6V1D',\n", + " 'CCNG2', 'CES2', 'CFD', 'CH25H', 'CLIC3', 'COL1A1', 'COL5A2', 'CRABP2',\n", + " 'CRISP3', 'CRNN', 'CYP4B1', 'DHRS1', 'DHRS2', 'DUOX1', 'DUSP5', 'ECM1',\n", + " 'ECT2', 'EFNA1', 'EMP1', 'ENTPD6', 'ERCC3', 'FLG', 'FSCN1', 'GABRP',\n", + " 'GALE', 'GALNT1', 'GPX3', 'HOPX', 'HSPB8', 'HSPBAP1', 'HSPD1', 'ID4',\n", + " 'IFI35', 'IGF2BP2', 'IGFBP3', 'IL1RN', 'INPP1', 'KANK1', 'KLK13',\n", + " 'KRT4', 'LAMC2', 'LCN2', 'LEPROTL1', 'LYPD3', 'MAL', 'MCM2', 'MMP10',\n", + " 'MUC1', 'MYH10', 'NDRG2', 'NT5C2', 'PCSK5', 'PHLDA1', 'PITX1',\n", + " 'PPP1R3C', 'PSMB9', 'PTN', 'RAB11FIP1', 'RANBP9', 'RHCG', 'RND3',\n", + " 'RPN1', 'RUVBL1', 'SCNN1A', 'SERPINB13', 'SERPINB2', 'SIM2', 'SLC2A1',\n", + " 'SLK', 'SLURP1', 'SPINK5', 'SPRR3', 'SSRP1', 'STK24', 'SYNPO2L',\n", + " 'TAPBP', 'TFAP2B', 'TGIF1', 'TIAM1', 'TJP1', 'TMF1', 'TMPRSS11D',\n", + " 'TMPRSS11E', 'TRIP13', 'TSPAN6', 'TST', 'TYMP', 'UCHL1', 'ZBTB16',\n", + " 'ZNF185'],\n", + " dtype='object')" + ] + }, + "execution_count": 52, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "X_selected.columns" + ] + }, + { + "cell_type": "code", + "execution_count": 53, + "id": "cf86e1f2", + "metadata": {}, + "outputs": [], + "source": [ + "from matplotlib import pyplot as plt" + ] + }, + { + "cell_type": "code", + "execution_count": 54, + "id": "6353bd9e", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Text(0.5, 0, 'Xgboost Feature Importance')" + ] + }, + "execution_count": 54, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "<Figure size 640x480 with 1 Axes>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "sorted_idx = model_xgb.feature_importances_.argsort()\n", + "plt.barh(top_met.index, model_xgb.feature_importances_[idx])[::-1]\n", + "plt.xlabel(\"Xgboost Feature Importance\")" + ] + }, + { + "cell_type": "markdown", + "id": "29a668b0", + "metadata": { + "scrolled": true + }, + "source": [ + "#### The above plot shows the feature importance from low importance to high importance found by the model." + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "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.9.16" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/03_Machine_Learning/miRNA_limma_dataset_SVM_final.ipynb b/03_Machine_Learning/miRNA_limma_dataset_SVM_final.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..65d2ddd95f82caaa4541ed411f417e69c5289648 --- /dev/null +++ b/03_Machine_Learning/miRNA_limma_dataset_SVM_final.ipynb @@ -0,0 +1,814 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "id": "f097ad55", + "metadata": {}, + "outputs": [], + "source": [ + "import warnings\n", + "warnings.filterwarnings('ignore')\n", + "import pandas as pd\n", + "from sklearn.model_selection import train_test_split\n", + "from sklearn.metrics import RocCurveDisplay\n", + "import matplotlib.pyplot as plt\n", + "import numpy as np\n", + "from imblearn.over_sampling import SMOTE\n", + "from sklearn.linear_model import Lasso\n", + "import xgboost as xgb\n", + "from sklearn.model_selection import GridSearchCV\n", + "import pandas as pd\n", + "import numpy as np\n", + "\n", + "#np.random.seed(7)" + ] + }, + { + "cell_type": "markdown", + "id": "73b6611a", + "metadata": {}, + "source": [ + "# Data Preprocessing" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "0eeb7a35", + "metadata": {}, + "outputs": [], + "source": [ + "df = pd.read_csv(\"DS/miRNA_DS_preprocessed_data.csv\")" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "0dd80c33", + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "df=(df)" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "6e7836e1", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(230, 239)" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.shape" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "aea07471", + "metadata": {}, + "outputs": [], + "source": [ + "#df = df.drop(df.columns[:14], axis=1)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "683b63ce", + "metadata": {}, + "outputs": [], + "source": [ + "df = df.T" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "2e78017d", + "metadata": {}, + "outputs": [], + "source": [ + "#Transform the input data\n", + "df.rename(columns=df.iloc[0], inplace = True)\n", + "df.drop(df.index[0], inplace = True)\n", + "df=df.reset_index()" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "4c50c510", + "metadata": {}, + "outputs": [], + "source": [ + "metadata = pd.read_csv(\"DS/miRNA_DS_metadata_col_info.csv\")" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "6730cf89", + "metadata": {}, + "outputs": [], + "source": [ + "df= df.merge(metadata, left_on=\"index\", right_on= \"Unnamed: 0\")" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "7a8ad8ad", + "metadata": {}, + "outputs": [], + "source": [ + "df['title0'] = df['title0'].replace('(?i)mucosa|normal|healthy', 0, regex=True)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "a8cf8643", + "metadata": {}, + "outputs": [], + "source": [ + "df['title0'] = df['title0'].replace('(?i)Tumor|Cancer|carcinoma', 1, regex=True)" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "f5d203aa", + "metadata": {}, + "outputs": [], + "source": [ + "df = df[pd.to_numeric(df['title0'], errors='coerce').notnull()]#remove all non-numeric data from the column." + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "523bdaa6", + "metadata": {}, + "outputs": [], + "source": [ + "df= df.drop(['index', 'Unnamed: 0'], axis=1)" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "46a6fb36", + "metadata": {}, + "outputs": [], + "source": [ + "df= df.rename(columns={\"title0\": \"index\"})" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "e26f88c5", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "index\n", + "1 119\n", + "0 119\n", + "Name: count, dtype: int64" + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df['index'].value_counts()" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "id": "fbaf2507", + "metadata": {}, + "outputs": [], + "source": [ + "df= df.apply(pd.to_numeric)" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "id": "6a50f416", + "metadata": {}, + "outputs": [], + "source": [ + "X=df.drop(\"index\",axis=1)\n", + "y=df['index']" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "id": "e644ab0e", + "metadata": {}, + "outputs": [], + "source": [ + "y=y.astype('int')" + ] + }, + { + "cell_type": "markdown", + "id": "6cee6462", + "metadata": {}, + "source": [ + "# Test train split" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "id": "1da48142", + "metadata": {}, + "outputs": [], + "source": [ + "# split data into training and testing data-sets\n", + "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.5, random_state=7)" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "id": "129430e6", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(index\n", + " 1 61\n", + " 0 58\n", + " Name: count, dtype: int64,\n", + " index\n", + " 0 61\n", + " 1 58\n", + " Name: count, dtype: int64)" + ] + }, + "execution_count": 20, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "y_test.value_counts(),y_train.value_counts()" + ] + }, + { + "cell_type": "markdown", + "id": "1cfe2a06", + "metadata": {}, + "source": [ + "# Cross validation" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "id": "d3550b5e", + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Fitting 5 folds for each of 4 candidates, totalling 20 fits\n", + "[CV 1/5] END ..........................C=0.0005;, score=1.000 total time= 0.0s\n", + "[CV 2/5] END ..........................C=0.0005;, score=1.000 total time= 0.0s\n", + "[CV 3/5] END ..........................C=0.0005;, score=0.958 total time= 0.0s\n", + "[CV 4/5] END ..........................C=0.0005;, score=1.000 total time= 0.0s\n", + "[CV 5/5] END ..........................C=0.0005;, score=0.913 total time= 0.0s\n", + "[CV 1/5] END ..........................C=0.0001;, score=0.917 total time= 0.0s\n", + "[CV 2/5] END ..........................C=0.0001;, score=0.833 total time= 0.0s\n", + "[CV 3/5] END ..........................C=0.0001;, score=0.875 total time= 0.0s\n", + "[CV 4/5] END ..........................C=0.0001;, score=0.958 total time= 0.0s\n", + "[CV 5/5] END ..........................C=0.0001;, score=0.957 total time= 0.0s\n", + "[CV 1/5] END ...........................C=0.001;, score=1.000 total time= 0.0s\n", + "[CV 2/5] END ...........................C=0.001;, score=1.000 total time= 0.0s\n", + "[CV 3/5] END ...........................C=0.001;, score=1.000 total time= 0.0s\n", + "[CV 4/5] END ...........................C=0.001;, score=0.958 total time= 0.0s\n", + "[CV 5/5] END ...........................C=0.001;, score=1.000 total time= 0.0s\n", + "[CV 1/5] END .............................C=0.1;, score=1.000 total time= 0.0s\n", + "[CV 2/5] END .............................C=0.1;, score=1.000 total time= 0.0s\n", + "[CV 3/5] END .............................C=0.1;, score=0.958 total time= 0.0s\n", + "[CV 4/5] END .............................C=0.1;, score=0.958 total time= 0.0s\n", + "[CV 5/5] END .............................C=0.1;, score=0.957 total time= 0.0s\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(estimator=SVC(kernel='linear', probability=True, random_state=47),\n", + " param_grid={'C': [0.0005, 0.0001, 0.001, 0.1]}, verbose=3)</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(estimator=SVC(kernel='linear', probability=True, random_state=47),\n", + " param_grid={'C': [0.0005, 0.0001, 0.001, 0.1]}, verbose=3)</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: SVC</label><div class=\"sk-toggleable__content\"><pre>SVC(kernel='linear', probability=True, random_state=47)</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\">SVC</label><div class=\"sk-toggleable__content\"><pre>SVC(kernel='linear', probability=True, random_state=47)</pre></div></div></div></div></div></div></div></div></div></div>" + ], + "text/plain": [ + "GridSearchCV(estimator=SVC(kernel='linear', probability=True, random_state=47),\n", + " param_grid={'C': [0.0005, 0.0001, 0.001, 0.1]}, verbose=3)" + ] + }, + "execution_count": 21, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "from sklearn.svm import SVC\n", + "# we can add class_weight='balanced' to add panalize mistake\n", + "svm_model = SVC(kernel = \"linear\", probability=True,random_state=47)\n", + "\n", + "# Defining parameter range\n", + "param_grid = {\n", + " 'C': [0.0005,0.0001,0.001,0.1]\n", + "}\n", + "\n", + "grid = GridSearchCV(svm_model, param_grid, refit=True, verbose=3)\n", + "# Fitting the model for grid search\n", + "grid.fit(X_train, y_train)" + ] + }, + { + "cell_type": "markdown", + "id": "f92701ad", + "metadata": {}, + "source": [ + "# model with best hyperparameter" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "id": "556e249c", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'C': 0.001}\n", + "SVC(C=0.001, kernel='linear', probability=True, random_state=47)\n" + ] + } + ], + "source": [ + "# print best parameter after tuning\n", + "print(grid.best_params_)\n", + " \n", + "# print how our model looks after hyper-parameter tuning\n", + "print(grid.best_estimator_)" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "id": "7835d984", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<style>#sk-container-id-2 {color: black;background-color: white;}#sk-container-id-2 pre{padding: 0;}#sk-container-id-2 div.sk-toggleable {background-color: white;}#sk-container-id-2 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-2 label.sk-toggleable__label-arrow:before {content: \"▸\";float: left;margin-right: 0.25em;color: #696969;}#sk-container-id-2 label.sk-toggleable__label-arrow:hover:before {color: black;}#sk-container-id-2 div.sk-estimator:hover label.sk-toggleable__label-arrow:before {color: black;}#sk-container-id-2 div.sk-toggleable__content {max-height: 0;max-width: 0;overflow: hidden;text-align: left;background-color: #f0f8ff;}#sk-container-id-2 div.sk-toggleable__content pre {margin: 0.2em;color: black;border-radius: 0.25em;background-color: #f0f8ff;}#sk-container-id-2 input.sk-toggleable__control:checked~div.sk-toggleable__content {max-height: 200px;max-width: 100%;overflow: auto;}#sk-container-id-2 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {content: \"▾\";}#sk-container-id-2 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-2 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-2 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-2 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-2 div.sk-estimator:hover {background-color: #d4ebff;}#sk-container-id-2 div.sk-parallel-item::after {content: \"\";width: 100%;border-bottom: 1px solid gray;flex-grow: 1;}#sk-container-id-2 div.sk-label:hover label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-2 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-2 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-2 div.sk-item {position: relative;z-index: 1;}#sk-container-id-2 div.sk-parallel {display: flex;align-items: stretch;justify-content: center;background-color: white;position: relative;}#sk-container-id-2 div.sk-item::before, #sk-container-id-2 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-2 div.sk-parallel-item {display: flex;flex-direction: column;z-index: 1;position: relative;background-color: white;}#sk-container-id-2 div.sk-parallel-item:first-child::after {align-self: flex-end;width: 50%;}#sk-container-id-2 div.sk-parallel-item:last-child::after {align-self: flex-start;width: 50%;}#sk-container-id-2 div.sk-parallel-item:only-child::after {width: 0;}#sk-container-id-2 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-2 div.sk-label label {font-family: monospace;font-weight: bold;display: inline-block;line-height: 1.2em;}#sk-container-id-2 div.sk-label-container {text-align: center;}#sk-container-id-2 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-2 div.sk-text-repr-fallback {display: none;}</style><div id=\"sk-container-id-2\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>SVC(C=0.001, kernel='linear', probability=True, random_state=47)</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\"><div class=\"sk-estimator sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-4\" type=\"checkbox\" checked><label for=\"sk-estimator-id-4\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">SVC</label><div class=\"sk-toggleable__content\"><pre>SVC(C=0.001, kernel='linear', probability=True, random_state=47)</pre></div></div></div></div></div>" + ], + "text/plain": [ + "SVC(C=0.001, kernel='linear', probability=True, random_state=47)" + ] + }, + "execution_count": 23, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "model_xgb = grid.best_estimator_\n", + "model_xgb.fit(X_train,y_train)" + ] + }, + { + "cell_type": "markdown", + "id": "3ea57532", + "metadata": {}, + "source": [ + "# classification report" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "id": "18becbe2", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " precision recall f1-score support\n", + "\n", + " 0 0.97 1.00 0.98 58\n", + " 1 1.00 0.97 0.98 61\n", + "\n", + " accuracy 0.98 119\n", + " macro avg 0.98 0.98 0.98 119\n", + "weighted avg 0.98 0.98 0.98 119\n", + "\n" + ] + } + ], + "source": [ + "from sklearn.metrics import classification_report, confusion_matrix\n", + "grid_predictions = grid.predict(X_test)\n", + "print(classification_report(y_test, grid_predictions))" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "id": "9ed43446", + "metadata": {}, + "outputs": [], + "source": [ + "y_proba = model_xgb.fit(X_train, y_train).predict_proba(X_test)[:,1]" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "id": "c0193b78", + "metadata": {}, + "outputs": [], + "source": [ + "classes = model_xgb.classes_" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "id": "d723c69f", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([0, 1])" + ] + }, + "execution_count": 27, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "classes" + ] + }, + { + "cell_type": "markdown", + "id": "6603d82c", + "metadata": {}, + "source": [ + "# ROC curve" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "id": "0e2a2694", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAr4AAAIjCAYAAADlfxjoAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAABo+0lEQVR4nO3deZyN5f/H8deZMSszgzALo0FI2bcJSaRQyVKRdZK0WJLJV7ZMqeiblBIpFRKRFtkiEWXPMvYl29c6ljCDMeu5f3/cP0eTsZxxZu6ZOe/n43EeXNfc9zmf42R6u+ZabIZhGIiIiIiI5HMeVhcgIiIiIpITFHxFRERExC0o+IqIiIiIW1DwFRERERG3oOArIiIiIm5BwVdERERE3IKCr4iIiIi4BQVfEREREXELCr4iIiIi4hYUfEVERETELSj4iojkAlu3buWJJ57g9ttvx9fXl5IlS/Lggw8yduxYNm7ciM1mY+jQode8/6+//sJmsxEdHQ3A66+/js1mw8PDg8OHD191fUJCAn5+fthsNnr37p1t70tEJDdR8BURsdiqVauoXbs2mzdvpkePHnz88cc8++yzeHh48OGHH1KzZk3uvPNOvvnmm2s+x/Tp0wHo3Llzhn4fH59M7/vhhx9c+yZERPKAAlYXICLi7t5++22CgoL4888/KVy4cIavnTx5EoBOnTrx2muvsWbNGu65556rnuObb77hzjvvpGbNmhn6H374Yb755hsGDBiQoX/69Ok88sgjfP/99659MyIiuZhGfEVELLZv3z7uvvvuq0IvQIkSJQAz+MKVkd1/2rBhA7t373Zc808dO3YkNjaWXbt2Ofri4uJYunQpHTt2dNE7EBHJGxR8RUQsdvvtt7Nhwwa2bdt2zWvKlClD/fr1+fbbb0lPT8/wtcthOLMge99991GqVKkMgXnmzJkUKlSIRx55xEXvQEQkb1DwFRGxWP/+/UlMTKR69erUr1+fV199lV9++YXU1NQM13Xq1IkTJ06wZMkSR5/dbmfmzJnUq1ePsmXLXvXcNpuNp556KsM832nTptG2bVt8fHyy702JiORCCr4iIhZ78MEHWb16NY899hibN2/m3XffpVmzZpQsWZI5c+Y4rmvfvj1eXl4ZRm+XL1/O0aNHM53mcFnHjh3Zu3cvf/75p+NXTXMQEXek4CsikgvUqVOHH374gbNnz7Ju3ToGDRrE+fPneeKJJ9ixYwcAt912G82aNePHH38kKSkJMKc5FChQgHbt2l3zuWvUqMGdd97J9OnTmTZtGiEhITRp0iRH3peISG6i4Csikot4e3tTp04dRowYwSeffEJqaiqzZs1yfL1z584kJCQwb948UlJS+P7773nooYcoXrz4dZ+3Y8eOzJw5k+nTp9O+fXs8PPTtX0Tcj77ziYjkUrVr1wbg+PHjjr7HHnuMgIAApk+fzs8//8zZs2evO83hso4dO3L8+HH27NmjaQ4i4ra0j6+IiMV+++037r//fmw2W4b+BQsWAFCxYkVHn5+fH23atGHmzJkkJiZSsGBBWrVqdcPXKFeuHGPGjOHSpUvUrVvXtW9ARCSPUPAVEbFYnz59SExMpE2bNtx5552kpKSwatUqZs6cSUREBN26dctwfefOnfnqq69YtGgRnTp1omDBgjf1On379s2O8kVE8gwFXxERi7333nvMmjWLBQsW8Nlnn5GSkkLp0qXp2bMnQ4cOvepgiyZNmhAaGsrx48dvapqDiIiYbIZhGFYXISIiIiKS3bS4TURERETcgoKviIiIiLgFBV8RERERcQsKviIiIiLiFhR8RURERMQtKPiKiIiIiFtwu3187XY7x44dIyAg4KpTkkRERETEeoZhcP78ecLCwvDwcN04rdsF32PHjhEeHm51GSIiIiJyA4cPH6ZUqVIuez63C74BAQGA+QcZGBhocTUiIiIi8m8JCQmEh4c7cpuruF3wvTy9ITAwUMFXREREJBdz9bRULW4TEREREbeg4CsiIiIibkHBV0RERETcgoKviIiIiLgFBV8RERERcQsKviIiIiLiFhR8RURERMQtKPiKiIiIiFtQ8BURERERt6DgKyIiIiJuQcFXRERERNyCgq+IiIiIuAUFXxERERFxCwq+IiIiIuIWFHxFRERExC1YGnx///13WrZsSVhYGDabjdmzZ9/wnmXLllGzZk18fHy44447mDx5crbXKSIiIiJ5n6XB9+LFi1SrVo1x48bd1PUHDhzgkUceoXHjxsTGxvLyyy/z7LPPsmjRomyuVERERETyugJWvniLFi1o0aLFTV8/YcIEypQpw+jRowGoVKkSK1as4IMPPqBZs2ZOvfbFi+Dp6dQtIiIiIpIDLl7Mnue1NPg6a/Xq1TRt2jRDX7NmzXj55ZeveU9ycjLJycmOdkJCAgBhYdlSooiIiIjcggKkkpZNz52nFrfFxcURHBycoS84OJiEhAQuXbqU6T0jR44kKCjI8QgPD8+JUkVERETECX4kMp4XmcNjgD1bXiNPjfhmxaBBg4iOjna0ExISCA8PZ+9eCAmxsDARERERAcAjdiM+3Tri8dduAOJ+WENIW9e/Tp4KviEhIZw4cSJD34kTJwgMDMTPzy/Te3x8fPDx8bmq398fChbMljJFRERE5GbY7TB6NAwZAqmp5lzUKVPwq1s3W14uTwXfevXqsWDBggx9ixcvpl69ehZVJCIiIiJZcuQIREXB0qVmu00bmDgRbrsN/n9NlqtZOsf3woULxMbGEhsbC5jblcXGxnLo0CHAnKbQtWtXx/UvvPAC+/fvZ8CAAezatYvx48fz7bff0q9fPyvKFxEREZGsMAx44gkz9Pr7w+efw/ffm6E3G1kafNevX0+NGjWoUaMGANHR0dSoUYNhw4YBcPz4cUcIBihTpgzz589n8eLFVKtWjdGjR/P55587vZWZiIiIiFjIZoOxY6F+fYiNhe7dzb7sflnDMIxsf5VcJCEhgaCgII4diyc0NNDqckRERETcw5o1sGcP/OOn+RhGpoH3cl6Lj48nMNB1eS1PbWcmIiIiInlMWhoMHw733gs9esCWLVe+lgOjvP+Upxa3iYiIiEgesn8/dOkCq1aZ7fbtoXRpy8rRiK+IiIiIuJZhwNSpUL26GXoDA+Hrr2HaNChc2LKyNOIrIiIiIq5jGPD00/DVV2a7QQMz9EZEWFkVoBFfEREREXElmw0qVQJPT3jzTVi2LFeEXtCIr4iIiIjcqpQUOHECwsPN9n/+Aw8/DFWrWlvXv2jEV0RERESybvducz/e5s3h0iWzz9Mz14VeUPAVERERkawwDPOI4Zo1YcMGOH4cduywuqrrUvAVEREREeecPg1t28Jzz0FiIjRpYu7PW6uW1ZVdl4KviIiIiNy8X34xpzHMng1eXvDee7B4MZQqZXVlN6TFbSIiIiJycwwD3n3XnNZQqRJMn27u1ZtHaMRXRERERG6OzQaTJsErr8D69Xkq9IKCr4iIiIhci2HA2LEQHX2lLzzcnN7g729dXVmkqQ4iIiIicrW4OOjWDRYuNNtPPGFuW5aHacRXRERERDKaOxeqVDFDr6+vOepbr57VVd0yjfiKiIiIiCkxEfr3h08+MdtVq5oL2O6+29q6XETBV0RERETM+bwPPQQrV5rtV16Bt98GHx9r63IhBV8RERERMXds6NcPDhyAKVOgaVOrK3I5zfEVERERcVdHjsAff1xpP/447NmTL0MvKPiKiIiIuKdZs8w5vG3bmjs4XFawoHU1ZTMFXxERERF3cv68uU1Zu3Zw9iyUKQOXLlldVY5Q8BURERFxF2vWmKetTZ5szukdMsRczFamjNWV5QgtbhMRERHJ7wwD3nwThg+H9HQoXRq+/hoaNrS6shylEV8RERGR/M5mg8OHzdDbsSNs3ux2oRc04isiIiKSPxkGJCWBn5/Z/uADaNbMPHrYTWnEV0RERCS/OXfOHNlt1QrsdrOvUCG3Dr2gEV8RERGR/OX336FLFzh0CDw94c8/ITLS6qpyBY34ioiIiOQHKSkweDDcf78ZesuVM3dsUOh10IiviIiISF63ezd06gQbNpjtZ56BMWMgIMDSsnIbBV8RERGRvMwwzPm8GzdCkSIwcaJ59LBcRVMdRERERPIymw0++wyaN4ctWxR6r0PBV0RERCSv+eUXc2T3slq14OefoVQp62rKAxR8RURERPKKpCTo18/cj7d3b3OEV26a5viKiIiI5AXbtplzebduNdvPPgt33GFtTXmMRnxFREREcjPDgLFjoXZtM/QWLw5z58K4ceDvb3V1eYpGfEVERERyK8OANm3gp5/MdosWMGkSBAdbW1cepRFfERERkdzKZoMGDcDX1xz1nT9fofcWaMRXREREJDdJTIS4OChb1my/8oo56qv5vLdMI74iIiIiucXGjebWZI88YgZgAA8PhV4XUfAVERERsZrdDu++C/fcA7t2QXw87N9vdVX5jqY6iIiIiFjpyBHo2hV++81st2ljHk5x223W1pUPacRXRERExCqzZkHVqmbo9fc3A+/33yv0ZhON+IqIiIhYwTDgs8/g7Flzj95p06BCBaurytc04isiIiKSkwzD/NVmg8mT4Y03YNUqhd4coOArIiIikhPS0mD4cOjT50pfyZIwbBh4eVlXlxvRVAcRERGR7HbgAHTubI7sAkRFQZ061tbkhjTiKyIiIpJdDAO+/hqqVTNDb2Cg2VbotYRGfEVERESyw7lz8OKLMGOG2W7QwAy9ERFWVuXWFHxFREREXM0w4IEHzJPYPD3h9ddh4EAooOhlJU11EBEREXE1mw1ee808anjlShg6VKE3F1DwFREREXGFPXtgyZIr7datYds2iIy0rCTJSMFXRERE5FYYhnniWo0a0K4dHDt25Ws+PtbVJVfRmLuIiIhIVp0+DT16wOzZZvueeywtR65PI74iIiIiWbF4MVStaoZeLy8YNcrsCwuzujK5Bo34ioiIiDjDMKB/f3j/fbNdqRJMm2ZOdZBcTSO+IiIiIs6w2eDiRfP3PXvC+vUKvXmERnxFREREbsQw4Px58+Q1gNGjoW1beOgha+sSp2jEV0REROR64uLgkUfMoGu3m30FCyr05kEa8RURERG5lnnz4Jln4NQp8PWFzZs1rSEP04iviIiIyL8lJprzd1u2NENv1aqay5sPKPiKiIiI/NPGjVCrFnzyidmOjoZ16+Duu62tS26ZpjqIiIiIXGa3m1Mbdu2C0FCYMgUefNDqqsRFNOIrIiIicpmHB0yaZB49vHWrQm8+o+ArIiIi7u2772DcuCvtGjVg5ky47TbrapJsoakOIiIi4p7On4e+fc0RXi8vuO8+qFLF6qokGyn4ioiIiPtZswY6d4Z9+8yT2P7zH7jzTqurkmym4CsiIiLuIy0NRoyA4cMhPR1Kl4apU83RXsn3FHxFRETEPdjt5mlrv/1mtjt0gPHjoXBhS8uSnKPFbSIiIuIePDzg0UchMBC+/hqmT1fodTMKviIiIpJ/nTsHu3dfab/8MuzYAZ06WVWRWEjBV0RERPKn33+HatWgVSu4eNHs8/CAkiWtrUsso+ArIiIi+UtqKgwZAvffD4cOmQvajh61uirJBRR8RUREJP/Yswfq1zd3bjAM8/jhTZugQgWrK5NcQMFXRERE8j7DgIkTzVPX1q+HIkVg1iz44gsICLC6OskltJ2ZiIiI5H2GYR49nJgITZrAlClQqpTVVUkuo+ArIiIieZdhmCeveXjA5Mkwcya89JLZFvkX/VchIiIieU9SEvTrB88/f6UvNNTcrkyhV67B8v8yxo0bR0REBL6+vkRGRrJu3brrXj9mzBgqVqyIn58f4eHh9OvXj6SkpByqVkRERCy3bRvUrQtjxpjzemNjra5I8ghLg+/MmTOJjo4mJiaGjRs3Uq1aNZo1a8bJkyczvX769OkMHDiQmJgYdu7cyRdffMHMmTMZPHhwDlcuIiIiOc4wYOxYqF0btm6F4sVh7lyoXt3qyiSPsDT4vv/++/To0YNu3bpx1113MWHCBPz9/fnyyy8zvX7VqlU0aNCAjh07EhERwUMPPUSHDh1uOEosIiIieVxcHDz8sDl/NzkZWrQww++jj1pdmeQhlgXflJQUNmzYQNOmTa8U4+FB06ZNWb16dab31K9fnw0bNjiC7v79+1mwYAEPP/zwNV8nOTmZhISEDA8RERHJQ+x2aNoUFi4EX19z1Hf+fAgOtroyyWMsC76nT58mPT2d4H/9RxscHExcXFym93Ts2JHhw4dz77334uXlRbly5bj//vuvO9Vh5MiRBAUFOR7h4eEufR8iIiKSzTw8YORI8/jh9euhd29zJwcRJ1m+uM0Zy5YtY8SIEYwfP56NGzfyww8/MH/+fN58881r3jNo0CDi4+Mdj8OHD+dgxSIiIpIlGzeaI7yXtWwJGzbA3XdbV5PkeZbt41usWDE8PT05ceJEhv4TJ04QEhKS6T2vvfYaXbp04dlnnwWgSpUqXLx4keeee44hQ4bgkcn2JT4+Pvj4+Lj+DYiIiIjr2e3w3nswdCgUKgRbtlw5iMLT09raJM+zbMTX29ubWrVqsWTJEkef3W5nyZIl1KtXL9N7EhMTrwq3nv//l8AwjOwrVkRERLLf4cPmXN5XX4XUVLj/fvDzs7oqyUcsPbktOjqaqKgoateuTd26dRkzZgwXL16kW7duAHTt2pWSJUsycuRIAFq2bMn7779PjRo1iIyMZO/evbz22mu0bNnSEYBFREQkD5o1yzyM4uxZ8PeHjz6CZ57RXF5xKUuDb/v27Tl16hTDhg0jLi6O6tWrs3DhQseCt0OHDmUY4R06dCg2m42hQ4dy9OhRihcvTsuWLXn77betegsiIiJyK+x2ePZZmDTJbNepA9OmQfny1tYl+ZLNcLM5AgkJCQQFBXHsWDyhoYFWlyMiIiK9esGECTBoEMTEgJeX1RWJxS7ntfj4eAIDXZfXLB3xFRERETeUlgYJCVC0qNkeNQo6d4ZrrPERcZU8tZ2ZiIiI5HEHDkCjRtC2LaSnm33+/gq9kiMUfEVERCT7GQZMnWoeQrFqFWzaBDt3Wl2VuBkFXxEREcle585Bx47QtSucPw8NGsDmzVC5stWViZtR8BUREZHss3w5VK0KM2aYB1C8+SYsWwYREVZXJm5Ii9tEREQke9jt8NJL5sEU5cqZ25RFRlpdlbgxjfiKiIhI9vDwgK++gh49IDZWoVcspxFfERERcQ3DgM8/hwsXoF8/s69aNfjsM2vrEvl/Cr4iIiJy606fNkd2Z8+GAgXgoYfg7rutrkokAwVfERERuTW//AJPPw3Hj5unro0cCZUqWV2VyFUUfEVERCRrkpLMY4bHjDHblSrB9OlQvbqVVYlck4KviIiIOC89He67D/7802z36gXvvmuewiaSSyn4ioiIiPM8PaFTJzh4EL78Eh591OqKRG5I25mJiIjIzYmLg23brrT79IEdOxR6Jc9Q8BUREZEbmzsXqlSBNm3M7crA3Ke3WDFr6xJxgoKviIiIXFtiIvTsCY89Zm5Z5u9v/iqSByn4ioiISOY2boRateCTT8z2K6/AunUQEWFpWSJZpeArIiIiGdnt5g4N99wDu3ZBaCgsXgzvvQc+PlZXJ5JlCr4iIiKSkc0Gv/0GqanmnN6tW6FpU6urErll2s5MRERETGlp5nHDNhtMmgQLF0JUlNkWyQc04isiIuLuzp+Hbt3gueeu9IWEmMcQK/RKPqLgKyIi4s7WrDGPGJ48GaZMge3bra5IJNso+IqIiLijtDQYPhzuvRf274fSpWHZMrj7bqsrE8k2muMrIiLibg4cgM6dYdUqs92hA4wfD4ULW1qWSHZT8BUREXEn6enQrBn89RcEBpqBt1Mnq6sSyRGa6iAiIuJOPD1hzBhzisPmzQq94lY04isiIpLf/f47xMdDy5Zm++GHoUUL7dggbkcjviIiIvlVSgoMHgz33w9du8Lhw1e+ptArbkgjviIiIvnR7t3mNIYNG8x227ZavCZuTyO+IiIi+YlhwMSJULOmGXqLFIHvvoMvvoCAAKurE7GURnxFRETyi/R0ePJJ+PFHs92kiXkoRalS1tYlkktoxFdERCS/8PSE8HDw8oJRo2DxYoVekX/QiK+IiEhelpQECQlQooTZfucd6N4dqla1ti6RXEgjviIiInnV9u0QGWlOb0hPN/v8/BR6Ra5BwVdERCSvMQwYOxZq1YItW2DnTti3z+qqRHI9BV8REZG8JC7OPIDipZcgOdk8iGLrVqhQwerKRHI9BV8REZG8Yu5cqFIFFi4EX19z1Hf+fAgOtroykTxBi9tERETygrQ0GDIETp825/BOnw533211VSJ5ikZ8RURE8oICBWDaNPjPf2DdOoVekSzQiK+IiEhuZLfD6NHmr6++avZVqQLvvmttXSJ5mIKviIhIbnPkCERFwdKl5qEUrVrBnXdaXZVInqepDiIiIrnJrFnmHN6lS8HfHyZMgIoVra5KJF/QiK+IiEhucP489O0LkyaZ7dq1zTm92qZMxGUUfEVERKyWlgb168O2bWCzweDBEBMDXl5WVyaSr2iqg4iIiNUKFIDnnoPSpWH5cnjrLYVekWyg4CsiImKFAwcgNvZKu3dv8wS2hg0tK0kkv1PwFRERyUmGAV9/DdWqweOPm3N7wZziEBhobW0i+ZyCr4iISE45dw46doQuXczAGxp6JfiKSLZT8BUREckJv/9ujvLOmGHuzfvmm7BsGYSFWV2ZiNvQrg4iIiLZKS0Nhg2Dd94xpzmUK2duUxYZaXVlIm5HI74iIiLZydMTNm82Q+8zz8CmTQq9IhbRiK+IiIirGQakpICPj7lobdIkWLEC2ra1ujIRt6YRXxEREVf6+29zt4bnnrvSV6KEQq9ILnBLwTcpKclVdYiIiOR9ixdDlSrw44/wzTewZ4/VFYnIPzgdfO12O2+++SYlS5akUKFC7N+/H4DXXnuNL774wuUFioiI5HpJSRAdDQ89BMePQ6VKsHYtVKhgdWUi8g9OB9+33nqLyZMn8+677+Lt7e3or1y5Mp9//rlLixMREcn1tm83F6t98IHZ7tkT1q+HGjWsrUtEruJ08P3qq6/47LPP6NSpE56eno7+atWqsWvXLpcWJyIikqulpcGjj8KWLVC8OMydC+PGgb+/1ZWJSCacDr5Hjx7ljjvuuKrfbreTmprqkqJERETyhAIF4JNP4OGHYetWMwSLSK7ldPC96667+OOPP67q/+6776ihH+uIiEh+N28e/PDDlXbz5mZfcLB1NYnITXF6H99hw4YRFRXF0aNHsdvt/PDDD+zevZuvvvqKefPmZUeNIiIi1ktMhP79zRHeoCCoXRtKlza/ZrNZW5uI3BSnR3xbtWrF3Llz+fXXXylYsCDDhg1j586dzJ07lwcffDA7ahQREbHWxo1Qq5YZegG6d9cIr0gelKWT2xo2bMjixYtdXYuIiEjuYrfD6NEwZAikpkJoKEyZAhroEcmTnB7xLVu2LH///fdV/efOnaNs2bIuKUpERMRyqanmvrwDBpi/b9PG3L1BoVckz3I6+B48eJD09PSr+pOTkzl69KhLihIREbGcl5d5Cpu/P0ycCN9/D8WKWV2ViNyCm57qMGfOHMfvFy1aRFBQkKOdnp7OkiVLiIiIcGlxIiIiOer8efMRFma2R46EXr0gk208RSTvueng27p1awBsNhtRUVEZvubl5UVERASjR492aXEiIiI5Zs0a6NwZQkJg2TJzj15fX4VekXzkpoOv3W4HoEyZMvz5558U0497REQkP0hLgxEjYPhwSE835/MePgxlylhdmYi4mNO7Ohw4cCA76hAREcl5Bw6Yo7yrVpntDh1g/HgoXNjSskQke2RpO7OLFy+yfPlyDh06REpKSoavvfTSSy4pTEREJNsYBkybBj17mnN6AwLMPXo7dbK6MhHJRk4H302bNvHwww+TmJjIxYsXKVq0KKdPn8bf358SJUoo+IqISO6XlgbvvWeG3gYNYOpUTW0QcQNOb2fWr18/WrZsydmzZ/Hz82PNmjX873//o1atWrz33nvZUaOIiIhreXnB9Onw5pvmQjaFXhG3YDMMw3DmhsKFC7N27VoqVqxI4cKFWb16NZUqVWLt2rVERUWxa9eu7KrVJRISEggKCuLYsXhCQwOtLkdERHJCaiq8/jr4+cHQoVZXIyI3cDmvxcfHExjourzm9FQHLy8vPDzMgeISJUpw6NAhKlWqRFBQEIcPH3ZZYSIiIi6xZ485d3f9evD0NBewlStndVUiYgGng2+NGjX4888/KV++PI0aNWLYsGGcPn2aqVOnUrly5eyoUURExHmGAZ9/Di+/DImJUKSIeQKbQq+I23J6ju+IESMIDQ0F4O2336ZIkSK8+OKLnDp1ik8//dTlBYqIiDjt9Glo2xaee84MvU2awJYt8PjjVlcmIhZyeo5vXqc5viIi+VxqKlSqBPv2mYvYRo6Efv3Aw+mxHhGxSHbN8XXZd4GNGzfy6KOPuurpREREssbLC6KjzfC7di288opCr4gATgbfRYsW0b9/fwYPHsz+/fsB2LVrF61bt6ZOnTqOY42dMW7cOCIiIvD19SUyMpJ169Zd9/pz587Rq1cvQkND8fHxoUKFCixYsMDp1xURkXxk2zb4888r7RdfhA0boEYN62oSkVznpoPvF198QYsWLZg8eTL//e9/ueeee/j666+pV68eISEhbNu2zekAOnPmTKKjo4mJiWHjxo1Uq1aNZs2acfLkyUyvT0lJ4cEHH+TgwYN899137N69m4kTJ1KyZEmnXldERPIJw4CxY6F2bWjXDhISzH6bzdy6TETkH256jm/VqlXp0qUL//nPf/j+++958sknueeee/j2228pVapUll48MjKSOnXq8PHHHwNgt9sJDw+nT58+DBw48KrrJ0yYwKhRo9i1axdeXl5Zek3N8RURySfi4qBbN1i40Gy3aAFffQXFillbl4jcMsvn+O7bt48nn3wSgLZt21KgQAFGjRqV5dCbkpLChg0baNq06ZViPDxo2rQpq1evzvSeOXPmUK9ePXr16kVwcDCVK1dmxIgRpKenX/N1kpOTSUhIyPAQEZE8bt48qFrVDL2+vuao7/z5Cr0icl03HXwvXbqEv78/ADabDR8fH8e2Zllx+vRp0tPTCQ4OztAfHBxMXFxcpvfs37+f7777jvT0dBYsWMBrr73G6NGjeeutt675OiNHjiQoKMjxCA8Pz3LNIiJisdRU6NkTWraEU6fM8Lt+PfTubU5vEBG5DqcOsPj8888pVKgQAGlpaUyePJli//rX9UsvveS66v7FbrdTokQJPvvsMzw9PalVqxZHjx5l1KhRxMTEZHrPoEGDiI6OdrQTEhIUfkVE8qoCBeDoUfP3r7wCb78NPj7W1iQiecZNB9/SpUszceJERzskJISpU6dmuMZms9108C1WrBienp6cOHEiQ/+JEycICQnJ9J7Q0FC8vLzw9PR09FWqVIm4uDhSUlLw9va+6h4fHx989E1RRCTvstshKQn8/c1R3c8/Nw+jeOABqysTkTzmpoPvwYMHXfrC3t7e1KpViyVLltC6dWvAHNFdsmQJvXv3zvSeBg0aMH36dOx2Ox7/vyfjnj17CA0NzTT0iohIHnf4MERFQVgYfP212Ve8uEKviGSJpTt6R0dHM3HiRKZMmcLOnTt58cUXuXjxIt26dQOga9euDBo0yHH9iy++yJkzZ+jbty979uxh/vz5jBgxgl69eln1FkREJLvMmmXO4f3tN/jxRzhwwOqKRCSPc2qOr6u1b9+eU6dOMWzYMOLi4qhevToLFy50LHg7dOiQY2QXIDw8nEWLFtGvXz+qVq1KyZIl6du3L6+++qpVb0FERFzt/Hno0wemTDHbderAtGlQpoy1dYlInnfT+/jmF9rHV0QkF1uzBjp1gv37zWOGBw2CmBjzGGIRcRvZtY+vpSO+IiIiDikp5ulrhw9D6dLmnN6GDa2uSkTyEUvn+IqIiDh4e8MXX0DHjrB5s0KviLhcloLvvn37GDp0KB06dODkyZMA/Pzzz2zfvt2lxYmISD5mGDB1KsyYcaXvwQfN+byFC1tWlojkX04H3+XLl1OlShXWrl3LDz/8wIULFwDYvHnzNQ+REBERyeDcOXNkt2tXeO45OHTI6opExA04HXwHDhzIW2+9xeLFizPsndukSRPWrFnj0uJERCQfWr7c3KZsxgzw9IQBA8x9ekVEspnTwXfr1q20adPmqv4SJUpw+vRplxQlIiL5UEoKDB4MjRubC9jKlYOVK2HoUPMoYhGRbOZ08C1cuDDHjx+/qn/Tpk2ULFnSJUWJiEg+k5wM994LI0eac3ufeQZiYyEy0urKRMSNOB18n3rqKV599VXi4uKw2WzY7XZWrlxJ//796dq1a3bUKCIieZ2PD9x3HxQpAt99Z+7eUKiQ1VWJiJtx+gCLlJQUevXqxeTJk0lPT6dAgQKkp6fTsWNHJk+ejKenZ3bV6hI6wEJEJIecPg2XLkF4uNlOTjb79NNBEbmB7DrAIssntx06dIht27Zx4cIFatSoQfny5V1WVHZS8BURyQG//AJRUeYxw7//rjm8IuKUXHNy24oVK7j33nspXbo0pUuXdlkhIiKSDyQlmccMjxljtosUgbg4KFXK0rJERCALc3ybNGlCmTJlGDx4MDt27MiOmkREJC/atg3q1r0Senv2hPXrFXpFJNdwOvgeO3aMV155heXLl1O5cmWqV6/OqFGjOHLkSHbUJyIiuZ1hwNixULs2bN0KxYvD3Lkwbhz4+1tdnYiIg9PBt1ixYvTu3ZuVK1eyb98+nnzySaZMmUJERARNmjTJjhpFRCQ3S02FSZPMxWstWpjh99FHra5KROQqWV7cdll6ejo///wzr732Glu2bCE9Pd1VtWULLW4TEXERwwCbzfz9rl3w66/Qq9eVPhGRLMquxW1Oj/hetnLlSnr27EloaCgdO3akcuXKzJ8/32WFiYhILpWYCC++CK+/fqXvzjuhd2+FXhHJ1Zze1WHQoEHMmDGDY8eO8eCDD/Lhhx/SqlUr/DWPS0Qk/9u4ETp1Mkd4CxQwT2C7/XarqxIRuSlOB9/ff/+d//znP7Rr145ixYplR00iIpLb2O3w3nswdKg5pzc0FKZMUegVkTzF6eC7cuXK7KhDRERyq8OHzcMofvvNbLdpAxMnwm23WVuXiIiTbir4zpkzhxYtWuDl5cWcOXOue+1jjz3mksJERCQXSE6G+vXhyBFza7KPPjKnN2gur4jkQTe1q4OHhwdxcXGUKFECD49rr4ez2Wza1UFEJL/57DNzhHfaNKhQwepqRMQNZNeuDre8nVleo+ArInIDa9aYW5XVq2e2DQPS0sDLy9q6RMRt5JrtzL766iuSk5Ov6k9JSeGrr75ySVEiImKBtDQYPhzuvReeegrOnTP7bTaFXhHJF5wOvt26dSM+Pv6q/vPnz9OtWzeXFCUiIjnswAFo1AhiYiA9HRo00DxeEcl3nA6+hmFgy+Sb4ZEjRwgKCnJJUSIikkMMA6ZOhWrVYNUqCAyEr7+G6dNB39NFJJ+56e3MatSogc1mw2az8cADD1CgwJVb09PTOXDgAM2bN8+WIkVEJBskJ8PTT8OMGWa7QQMz9EZEWFmViEi2ueng27p1awBiY2Np1qwZhQoVcnzN29ubiIgIHn/8cZcXKCIi2cTbG5KSwNPTPH544EDzNDYRkXzqpr/DxcTEABAREUH79u3x9fXNtqJERCSbpKSYI70BAeYc3okTYf9+qFvX6spERLKd03N8o6KiFHpFRPKiPXvM6Qw9ephzewGKFVPoFRG3cVMjvkWLFmXPnj0UK1aMIkWKZLq47bIzZ864rDgREXEBw4DPP4eXX4bERNi3zzyJLTzc6spERHLUTQXfDz74gICAAMfvrxd8RUQkFzl92hzhnT3bbDdpAlOmQKlSlpYlImIFndwmIpJfLV4MUVFw/Lh5AMWIERAdDdc5el5EJDfINSe3bdy4ka1btzraP/30E61bt2bw4MGkpKS4rDAREbkFSUnwzDNm6K1UCdauhf79FXpFxK05/R3w+eefZ8+ePQDs37+f9u3b4+/vz6xZsxgwYIDLCxQRkSzw9TWnNPTsCevXQ40aVlckImI5p4Pvnj17qF69OgCzZs2iUaNGTJ8+ncmTJ/P999+7uj4REbkZhgFjx5oHUFzWpAmMGwf+/tbVJSKSizi9U7lhGNjtdgB+/fVXHn30UQDCw8M5ffq0a6sTEZEbi4uDbt1g4UIoVAjuv1+L10REMuH0iG/t2rV56623mDp1KsuXL+eRRx4B4MCBAwQHB7u8QBERuY65c6FKFTP0+vrCyJFQsqTVVYmI5EpOB98xY8awceNGevfuzZAhQ7jjjjsA+O6776hfv77LCxQRkUwkJprzdx97zNyyrGpVcy5v797miWwiInIVl21nlpSUhKenJ15eXq54umyj7cxEJM+7dAlq14YdO8z2K6/A22+Dj4+1dYmIuEh2bWfm9BzfyzZs2MDOnTsBuOuuu6hZs6bLihIRkevw84NHH4WzZ82dGx580OqKRETyBKdHfE+ePEn79u1Zvnw5hQsXBuDcuXM0btyYGTNmULx48eyo02U04isiedKRI5CaCmXKmO2UFDh/Hm67zdq6RESyQa45wKJPnz5cuHCB7du3c+bMGc6cOcO2bdtISEjgpZdecllhIiLy/2bNMufwduhghl8Ab2+FXhERJzk91WHhwoX8+uuvVKpUydF31113MW7cOB566CGXFici4tbOn4e+fWHSJLOdng5nzoB20BERyRKnR3ztdnumC9i8vLwc+/uKiMgtWrPGPG1t0iRzl4YhQ2DVKoVeEZFb4HTwbdKkCX379uXYsWOOvqNHj9KvXz8eeOABlxYnIuJ20tLgzTfh3nth3z4oXRqWLYO33oJcvmuOiEhu53Tw/fjjj0lISCAiIoJy5cpRrlw5ypQpQ0JCAmPHjs2OGkVE3IfdDj/9ZE5r6NABNm+G++6zuioRkXzB6Tm+4eHhbNy4kSVLlji2M6tUqRJNmzZ1eXEiIm7BMMyHh4e5aG3aNPjzT+jc2erKRETyFaeC78yZM5kzZw4pKSk88MAD9OnTJ7vqEhFxD+fOwYsvQrly5nQGgIoVzYeIiLjUTQffTz75hF69elG+fHn8/Pz44Ycf2LdvH6NGjcrO+kRE8q/ff4cuXeDQIXOk98UXoWRJq6sSEcm3bnqO78cff0xMTAy7d+8mNjaWKVOmMH78+OysTUQkf0pJgcGD4f77zdBbrpwZghV6RUSy1U0H3/379xMVFeVod+zYkbS0NI4fP54thYmI5Et79kCDBjBypDmv95lnYNMmiIy0ujIRkXzvpqc6JCcnU7BgQUfbw8MDb29vLl26lC2FiYjkO5cuQcOGcPIkFCkCn30GTzxhdVUiIm7DqcVtr732Gv7+/o52SkoKb7/9NkFBQY6+999/33XViYjkJ35+MGIETJ8OU6ZAqVJWVyQi4lZshmEYN3Ph/fffj81mu/6T2WwsXbrUJYVll4SEBIKCgjh2LJ7Q0ECryxGR/G7xYjPw3nuv2f7n1mUiIpKpy3ktPj6ewEDX5bWbHvFdtmyZy15URCTfS0oyF7B98AGEh5sHURQpYh4/fINBBBERyR5OH2AhIiI3sH07dOwIW7aY7ZYtwcfH2ppERMT5I4tFROQaDAPGjoVatczQW7w4zJ0L48bBP9ZHiIiINTTiKyLiComJ8PjjsHCh2W7RAiZNguBga+sSEREHjfiKiLiCnx8UKmROaRg7FubPV+gVEcllFHxFRLIqMRHi483f22zw6aewYQP07q0FbCIiuVCWgu8ff/xB586dqVevHkePHgVg6tSprFixwqXFiYjkWps2mXN5e/Qw5/YCFC0Kd99tbV0iInJNTgff77//nmbNmuHn58emTZtITk4GID4+nhEjRri8QBGRXMVuh1GjzCOGd+2CFSsgLs7qqkRE5CY4HXzfeustJkyYwMSJE/Hy8nL0N2jQgI0bN7q0OBGRXOXIEXjwQRgwAFJToU0bc/eG0FCrKxMRkZvgdPDdvXs3991331X9QUFBnDt3zhU1iYjkPt99B1WrwtKl5tZkEyfC999DsWJWVyYiIjfJ6eAbEhLC3r17r+pfsWIFZcuWdUlRIiK5SmIi9OsHZ89C7drm/N5nn9UCNhGRPMbp4NujRw/69u3L2rVrsdlsHDt2jGnTptG/f39efPHF7KhRRMRa/v7w1VfmEcSrVkGFClZXJCIiWeD0ARYDBw7EbrfzwAMPkJiYyH333YePjw/9+/enT58+2VGjiEjOSkuDkSMhPByeftrsa9zYfIiISJ5lM4zL+/A4JyUlhb1793LhwgXuuusuChUq5OraskVCQgJBQUEcOxZPaGig1eWISG5z4AB06QIrV0LBgvDXX1q8JiKSwy7ntfj4eAIDXZfXsnxksbe3N3fddZfLChERsZRhwLRp0LMnnD8PgYEwfrxCr4hIPuJ08G3cuDG26yzoWLp06S0VJCKS486dMwPvN9+Y7QYN4OuvISLCyqpERMTFnA6+1atXz9BOTU0lNjaWbdu2ERUV5aq6RERyRmIi1KxpTnHw9ITXX4eBA6FAln8gJiIiuZTT39k/+OCDTPtff/11Lly4cMsFiYjkKH9/aN8eZs0ypzpERlpdkYiIZJMsL277t71791K3bl3OnDnjiqfLNlrcJiLs2QMeHnDHHWY7JQWSkyEgwNq6REQEyL7FbU7v43stq1evxtfX11VPJyLieoZhnrhWowZ06GAeOwzg7a3QKyLiBpye6tC2bdsMbcMwOH78OOvXr+e1115zWWEiIi51+jT06AGzZ5vtwEBISIDbbrO0LBERyTlOB9+goKAMbQ8PDypWrMjw4cN56KGHXFaYiIjL/PKLeRDF8ePg5WUeTtGvnzndQURE3IZTwTc9PZ1u3bpRpUoVihQpkl01iYi4RnIyDBoElxflVqoE06fDv3anERER9+DUcIenpycPPfQQ586dc2kR48aNIyIiAl9fXyIjI1m3bt1N3TdjxgxsNhutW7d2aT0ikk94eMCKFebve/WC9esVekVE3JjTP+erXLky+/fvd1kBM2fOJDo6mpiYGDZu3Ei1atVo1qwZJ0+evO59Bw8epH///jRs2NBltYhIPmAYkJZm/t7Ly9yibO5c+Phjc+syERFxW04H37feeov+/fszb948jh8/TkJCQoaHs95//3169OhBt27duOuuu5gwYQL+/v58+eWX17wnPT2dTp068cYbb1C2bFmnX1NE8qm4OHj4YRg69Epf+fLw6KPW1SQiIrnGTQff4cOHc/HiRR5++GE2b97MY489RqlSpShSpAhFihShcOHCTs/7TUlJYcOGDTRt2vRKQR4eNG3alNWrV1+3lhIlStC9e/cbvkZycvIth3MRyQPmzoUqVWDhQhg7Fk6csLoiERHJZW56cdsbb7zBCy+8wG+//eayFz99+jTp6ekEBwdn6A8ODmbXrl2Z3rNixQq++OILYmNjb+o1Ro4cyRtvvHGrpYpIbpWYCK+8AhMmmO2qVc0FbP/6viIiInLTwffyAW+NGjXKtmJu5Pz583Tp0oWJEydSrFixm7pn0KBBREdHO9oJCQmEh4dnV4kikpM2boSOHWH3brP9yivw9tvg42NtXSIikis5tZ2ZzWZz6YsXK1YMT09PTvzrR5InTpwgJCTkquv37dvHwYMHadmypaPPbrcDUKBAAXbv3k25cuUy3OPj44OP/icokv9cuAAPPghnzkBYGEyZAv+YNiUiIvJvTgXfChUq3DD8njlz5qafz9vbm1q1arFkyRLHlmR2u50lS5bQu3fvq66/88472bp1a4a+oUOHcv78eT788EON5Iq4k0KFYPRomDPHPIZYJ7CJiMgNOBV833jjjatObrtV0dHRREVFUbt2berWrcuYMWO4ePEi3bp1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eaemphqvv/66Ua5cOcPX19cIDw83evbsaZw9ezbnCxen/fbbb5n+//jyZxwVFWU0atToqnuqV69ueHt7G2XLljUmTZrk9OvaDEM/DxARERGR/C9fzfEVEREREbkWBV8RERERcQsKviIiIiLiFhR8RURERMQtKPiKiIiIiFtQ8BURERERt6DgKyIiIiJuQcFXRERERNyCgq+ICDB58mQKFy5sdRlZZrPZmD179nWvefrpp2ndunWO1CMikhsp+IpIvvH0009js9mueuzdu9fq0pg8ebKjHg8PD0qVKkW3bt04efKkS57/+PHjtGjRAoCDBw9is9mIjY3NcM2HH37I5MmTXfJ61/L666873qenpyfh4eE899xznDlzxqnnUUgXkexQwOoCRERcqXnz5kyaNClDX/HixS2qJqPAwEB2796N3W5n8+bNdOvWjWPHjrFo0aJbfu6QkJAbXhMUFHTLr3Mz7r77bn799VfS09PZuXMnzzzzDPHx8cycOTNHXl9E5Fo04isi+YqPjw8hISEZHp6enrz//vtUqVKFggULEh4eTs+ePblw4cI1n2fz5s00btyYgIAAAgMDqVWrFuvXr3d8fcWKFTRs2BA/Pz/Cw8N56aWXuHjx4nVrs9lshISEEBYWRosWLXjppZf49ddfuXTpEna7neHDh1OqVCl8fHyoXr06CxcudNybkpJC7969CQ0NxdfXl9tvv52RI0dmeO7LUx3KlCkDQI0aNbDZbNx///1AxlHUzz77jLCwMOx2e4YaW7VqxTPPPONo//TTT9SsWRNfX1/Kli3LG2+8QVpa2nXfZ4ECBQgJCaFkyZI0bdqUJ598ksWLFzu+np6eTvfu3SlTpgx+fn5UrFiRDz/80PH1119/nSlTpvDTTz85Ro+XLVsGwOHDh2nXrh2FCxemaNGitGrVioMHD163HhGRyxR8RcQteHh48NFHH7F9+3amTJnC0qVLGTBgwDWv79SpE6VKleLPP/9kw4YNDBw4EC8vLwD27dtH8+bNefzxx9myZQszZ85kxYoV9O7d26ma/Pz8sNvtpKWl8eGHHzJ69Gjee+89tmzZQrNmzXjsscf466+/APjoo4+YM2cO3377Lbt372batGlERERk+rzr1q0D4Ndff+X48eP88MMPV13z5JNP8vfff/Pbb785+s6cOcPChQvp1KkTAH/88Qddu3alb9++7Nixg08//ZTJkyfz9ttv3/R7PHjwIIsWLcLb29vRZ7fbKVWqFLNmzWLHjh0MGzaMwYMH8+233wLQv39/2rVrR/PmzTl+/DjHjx+nfv36pKam0qxZMwICAvjjjz9YuXIlhQoVonnz5qSkpNx0TSLixgwRkXwiKirK8PT0NAoWLOh4PPHEE5leO2vWLOO2225ztCdNmmQEBQU52gEBAcbkyZMzvbd79+7Gc889l6Hvjz/+MDw8PIxLly5les+/n3/Pnj1GhQoVjNq1axuGYRhhYWHG22+/neGeOnXqGD179jQMwzD69OljNGnSxLDb7Zk+P2D8+OOPhmEYxoEDBwzA2LRpU4ZroqKijFatWjnarVq1Mp555hlH+9NPPzXCwsKM9PR0wzAM44EHHjBGjBiR4TmmTp1qhIaGZlqDYRhGTEyM4eHhYRQsWNDw9fU1AAMw3n///WveYxiG0atXL+Pxxx+/Zq2XX7tixYoZ/gySk5MNPz8/Y9GiRdd9fhERwzAMzfEVkXylcePGfPLJJ452wYIFAXP0c+TIkezatYuEhATS0tJISkoiMTERf3//q54nOjqaZ599lqlTpzp+XF+uXDnAnAaxZcsWpk2b5rjeMAzsdjsHDhygUqVKmdYWHx9PoUKFsNvtJCUlce+99/L555+TkJDAsWPHaNCgQYbrGzRowObNmwFzmsKDDz5IxYoVad68OY8++igPPfTQLf1ZderUiR49ejB+/Hh8fHyYNm0aTz31FB4eHo73uXLlygwjvOnp6df9cwOoWLEic+bMISkpia+//prY2Fj69OmT4Zpx48bx5ZdfcujQIS5dukRKSgrVq1e/br2bN29m7969BAQEZOhPSkpi3759WfgTEBF3o+ArIvlKwYIFueOOOzL0HTx4kEcffZQXX3yRt99+m6JFi7JixQq6d+9OSkpKpgHu9ddfp2PHjsyfP5+ff/6ZmJgYZsyYQZs2bbhw4QLPP/88L7300lX3lS5d+pq1BQQEsHHjRjw8PAgNDcXPzw+AhISEG76vmjVrcuDAAX7++Wd+/fVX2rVrR9OmTfnuu+9ueO+1tGzZEsMwmD9/PnXq1OGPP/7ggw8+cHz9woULvPHGG7Rt2/aqe319fa/5vN7e3o7P4J133uGRRx7hjTfe4M033wRgxowZ9O/fn9GjR1OvXj0CAgIYNWoUa9euvW69Fy5coFatWhn+wXFZblnAKCK5m4KviOR7GzZswG63M3r0aMdo5uX5pNdToUIFKlSoQL9+/ejQoQOTJk2iTZs21KxZkx07dlwVsG/Ew8Mj03sCAwMJCwtj5cqVNGrUyNG/cuVK6tatm+G69u3b0759e5544gmaN2/OmTNnKFq0aIbnuzyfNj09/br1+Pr60rZtW6ZNm8bevXupWLEiNWvWdHy9Zs2a7N692+n3+W9Dhw6lSZMmvPjii473Wb9+fXr27Om45t8jtt7e3lfVX7NmTWbOnEmJEiUIDAy8pZpExD1pcZuI5Ht33HEHqampjB07lv379zN16lQmTJhwzesvXbpE7969WbZsGf/73/9YuXIlf/75p2MKw6uvvsqqVavo3bs3sbGx/PXXX/z0009OL277p//85z/897//ZebMmezevZuBAwcSGxtL3759AXj//ff55ptv2LVrF3v27GHWrFmEhIRkeuhGiRIl8PPzY+HChZw4cYL4+Phrvm6nTp2YP38+X375pWNR22XDhg3jq6++4o033mD79u3s3LmTGTNmMHToUKfeW7169ahatSojRowAoHz58qxfv55FixaxZ88eXnvtNf78888M90RERLBlyxZ2797N6dOnSU1NpVOnThQrVoxWrVrxxx9/cODAAZYtW8ZLL73EkSNHnKpJRNyTgq+I5HvVqlXj/fff57///S+VK1dm2rRpGbYC+zdPT0/+/vtvunbtSoUKFWjXrh0tWrTgjTfeAKBq1aosX76cPXv20LBhQ2rUqMGwYcMICwvLco0vvfQS0dHRvPLKK1SpUoWFCxcyZ84cypcvD5jTJN59911q165NnTp1OHjwIAsWLHCMYP9TgQIF+Oijj/j0008JCwujVatW13zdJk2aULRoUXbv3k3Hjh0zfK1Zs2bMmzePX375hTp16nDPPffwwQcfcPvttzv9/vr168fnn3/O4cOHef7552nbti3t27cnMjKSv//+O8PoL0CPHj2oWLEitWvXpnjx4qxcuRJ/f39+//13SpcuTdu2balUqRLdu3cnKSlJI8AiclNshmEYVhchIiIiIpLdNOIrIiIiIm5BwVdERERE3IKCr4iIiIi4BQVfEREREXELCr4iIiIi4hYUfEVERETELSj4ioiIiIhbUPAVEREREbeg4CsiIiIibkHBV0RERETcgoKviIiIiLiF/wMtqA1eR0oH2QAAAABJRU5ErkJggg==", + "text/plain": [ + "<Figure size 800x600 with 1 Axes>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from sklearn.metrics import roc_curve, auc\n", + "# Calculate the false positive rate (FPR), true positive rate (TPR), and thresholds\n", + "fpr, tpr, thresholds = roc_curve(y_test, y_proba)\n", + "\n", + "# Calculate the area under the ROC curve (AUC)\n", + "roc_auc = auc(fpr, tpr)\n", + "\n", + "# Plot the ROC curve\n", + "plt.figure(figsize=(8, 6))\n", + "plt.plot(fpr, tpr, color='blue', label='ROC curve (area = %0.2f)' % roc_auc)\n", + "plt.plot([0, 1], [0, 1], color='red', linestyle='--')\n", + "plt.xlim([0.0, 1.0])\n", + "plt.ylim([0.0, 1.05])\n", + "plt.xlabel('False Positive Rate')\n", + "plt.ylabel('True Positive Rate')\n", + "plt.title('SVM')\n", + "plt.legend(loc='lower right')\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 38, + "id": "d67d1765", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAr4AAAIjCAYAAADlfxjoAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAAB4jklEQVR4nO3deZyN5f/H8deZMatZ7AyGsWQp+xqyplBJFEJMKi2WyiTZMqXQNyklUiokIq2WIinKlixDCNkijCXMYIwZc67fH/dvTk0zmBln5p7l/Xw8zoP7OvfyOedY3nOd674uhzHGICIiIiKSx3nYXYCIiIiISHZQ8BURERGRfEHBV0RERETyBQVfEREREckXFHxFREREJF9Q8BURERGRfEHBV0RERETyBQVfEREREckXFHxFREREJF9Q8BURyeOOHz/OfffdR9GiRXE4HEyaNMnukq7LypUrcTgcrFy5MsPHHjx4EIfDwcyZM91el4jkfAq+IjnQb7/9xn333Uf58uXx9fWlTJky3HbbbUyePBmAzZs343A4GDVq1BXP8ccff+BwOIiIiADghRdewOFw4OHhweHDh1PtHxsbi5+fHw6Hg4EDB7r19bRq1QqHw+F6+Pn5UatWLSZNmoTT6UzzmL///ptnn32WqlWr4uvrS5EiRWjXrh2LFy++4nViY2N58cUXqV27NgEBAfj5+VGjRg2ee+45jh49mq5a9+3bx2OPPUbFihXx9fUlKCiIZs2a8eabb3Lx4sVMvX67DR48mGXLljF8+HBmz55N+/bts+Q6Dz74YIrP+UqPBx98MEuun9MlB/bkh4+PDyVLlqRVq1aMGzeOkydPZvrcO3fu5IUXXuDgwYPuK1gkDypgdwEiktLatWtp3bo15cqVo1+/fpQqVYrDhw+zfv163nzzTQYNGkS9evWoVq0an3zyCS+//HKa55k7dy4ADzzwQIp2Hx8fPvnkE4YOHZqi/YsvvsiaF/T/ypYty/jx4wE4deoUc+fOZfDgwZw8eZKxY8em2Hf37t3ceuutnDx5kr59+9KgQQPOnj3LnDlz6NixI0OGDGHChAkpjtm/fz9t27bl0KFDdO3alUcffRRvb2+2bdvGBx98wJdffsmePXuuWuOSJUvo2rUrPj4+9OnThxo1apCQkMDq1at59tln2bFjB++9955735hs8MMPP9CpUyeGDBmSpdd57LHHaNu2rWv7wIEDjB49mkcffZTmzZu72itVqnRd12nRogUXL17E29s7w8eWL1+eixcv4uXldV01XI8nn3yShg0bkpSUxMmTJ1m7di2RkZG8/vrrfPrpp7Rp0ybD59y5cycvvvgirVq1IiwszP1Fi+QVRkRylDvuuMMUL17cnDlzJtVzx48fd/3+pZdeMoBZt25dmuepWrWqqVatmms7MjLSAKZLly6mTp06qfa/7bbbzL333msAM2DAgOt/If/SsmVLc9NNN6Vou3jxoilfvrwJDAw0ly9fdrUnJCSYGjVqGH9/f7N+/foUx1y+fNl0797dAGbevHmu9sTERFO7dm3j7+9vfv7551TXj4mJMSNGjLhqjfv37zcBAQGmWrVq5ujRo6me/+OPP8ykSZPS9Xqv5fz58245T3o5HA63fqYXL140SUlJ19zv119/NYCZMWPGVffL7vfDLj/++KMBzIIFC1I9FxUVZUqUKGEKFSqU5p+/a1mwYIEBzI8//uiGSkXyLg11EMlh9u3bx0033UShQoVSPVeiRAnX73v16gX807P7b5s2bWL37t2uff6tZ8+eREVFsWvXLldbdHQ0P/zwAz179nTDK0gfX19fGjZsyLlz5zhx4oSr/fPPP2f79u0MGzaMxo0bpzjG09OTd999l0KFCvHCCy+kOGbr1q2MHDmSW265JdW1goKCUvUq/9err77K+fPn+eCDDwgJCUn1fOXKlXnqqaeAq48TdTgcKWpLHmKyc+dOevbsSeHChbnlllt47bXXcDgc/Pnnn6nOMXz4cLy9vTlz5oyr7ZdffqF9+/YEBwfj7+9Py5YtWbNmzVVf08yZM3E4HBhjmDJliusr9mT79++na9euFClSBH9/f26++WaWLFmS4hzJX8/PmzePUaNGUaZMGfz9/YmNjb3qta9V06pVq+jfvz8lSpSgbNmyAPz555/079+fqlWr4ufnR9GiRenatWuqr+/TGuPbqlUratSowc6dO2ndujX+/v6UKVOGV199NcWxaX12Dz74IAEBARw5coR77rmHgIAAihcvzpAhQ0hKSkpx/N9//03v3r0JCgqiUKFChIeHs3Xr1useN1y7dm0mTZrE2bNnefvtt13t6XlPZs6cSdeuXQFo3bq163NOfn++/vpr7rzzTkqXLo2Pjw+VKlXipZdeSvXaRPIDBV+RHKZ8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po/NTomJiezZs4caNWq42q73PTl79iwtW7YkKCiIMWPGUKlSJXx9fdm8eTPPPfdcpr4tEMnNFHxFcokGDRoAcOzYsRTtd999N4GBgcydOxcvLy/OnDlz1WEOyXr27Mno0aM5duyY64an9Jo4cWKKnrDSpUtn6HiAWrVq8cADD/Duu+8yZMgQV8i96667+OSTT/joo4/SXKAjNjaWr7/+mmrVqrl62pJvOPr4448ZPnx4hmtJvu57773HunXraNKkyVX3Tb7p7OzZsyna05qh4Vq6d+9O//792b17N/Pnz8ff35+OHTu6nk+e8zYoKCjFDw7Xq3z58uzevTtVe/JX3+XLl3fbtdLrs88+Izw8nIkTJ7ra4uPjU73Pdilfvjw//vgjcXFxKXp9k2+yvF6fffYZFy9epF27dina0vOeXOmHsZUrV/L333/zxRdf0KJFC1f7gQMH3FKzSG6joQ4iOcyPP/6YZg/VN998A5Dq62k/Pz86d+7MN998wzvvvEPBggVd40OvplKlSkyaNInx48fTqFGjDNVYv3592rZt63ok97xm1NChQ0lMTOT11193td13333ceOONvPLKK2zcuDHF/k6nkyeeeIIzZ86k6PW+7777qFmzJmPHjmXdunWprnPu3DlGjhx5zVoKFizII488wvHjx1M9v2/fPt58803ACqHFihXjp59+SrHP1KlTr/2i/+Pee+/F09OTTz75hAULFnDXXXdRsGBB1/P169enUqVKvPbaa5w/fz7V8Zld7euOO+5gw4YNKd6vCxcu8N577xEWFpbpz/R6eHp6pvqzP3ny5Bwz7Va7du1ITExk+vTprjan08mUKVOu+9xbt27l6aefpnDhwinGDKf3PUn+M/PfQJzck/3vcyQkJGTqz6pIXqAeX5EcZtCgQcTFxdG5c2eqVatGQkICa9euZf78+YSFhdG3b99UxzzwwAN89NFHLFu2jF69eqUITleTPC+tXW688UbuuOMO3n//fZ5//nmKFi2Kt7c3n332Gbfeeiu33HJLipXb5s6dy+bNm3nmmWe4//77Xefx8vLiiy++oG3btrRo0YJu3brRrFkzvLy82LFjB3PnzqVw4cJXncu3UqVKzJ07l+7du1O9evUUK7etXbuWBQsWpFhq95FHHuGVV17hkUceoUGDBvz000/XXBkuLSVKlKB169a8/vrrnDt3ju7du6d43sPDg/fff58OHTpw00030bdvX8qUKcORI0f48ccfCQoKck0BlxHDhg3jk08+oUOHDjz55JMUKVKEWbNmceDAAT7//PMMDX1xl7vuuovZs2cTHBzMjTfeyLp16/j+++8pWrRotteSlnvuuYdGjRrxzDPPsHfvXqpVq8bChQs5ffo0cOVe1//6+eefiY+PJykpib///ps1a9awcOFCgoOD+fLLLylVqpRr3/S+J3Xq1MHT05P//e9/xMTE4OPjQ5s2bWjatCmFCxcmPDycJ598EofDwezZs9M1/EMkT7JxRgkRScO3335rHnroIVOtWjUTEBBgvL29TeXKlc2gQYNSrNz2b5cvXzYhISEGMN98802a+/x7OrOrIZtWbku2cuXKVFOAGWPMiRMnTEREhKlcubLx8fExhQoVMm3btnVNYZaWM2fOmNGjR5uaNWsaf39/4+vra2rUqGGGDx9ujh07lq5a9+zZY/r162fCwsKMt7e3CQwMNM2aNTOTJ09OMfVTXFycefjhh01wcLAJDAw03bp1MydOnLjidGZXe9+nT59uABMYGGguXryY5j5btmwxXbp0MUWLFjU+Pj6mfPnyplu3bmbFihXXfE1X+kz37dtn7rvvPlOoUCHj6+trGjVqZBYvXpxin/RMwXUlV5vO7Ndff021/5kzZ0zfvn1NsWLFTEBAgGnXrp3ZtWuXKV++vAkPD09V03+nM0vrz1h4eLgpX768a/tK05kVLFgw1bHJn92/nTx50vTs2dMEBgaa4OBg8+CDD5o1a9akWk0wLcl1Jz+8vLxM8eLFTYsWLczYsWPNiRMnMv2eGGP9OapYsaLx9PRM8f6sWbPG3HzzzcbPz8+ULl3aNUXif99DkfzAYYx+7BMREcmsr776is6dO7N69WqaNWtmdzkichUKviIiIul08eLFFDNSJCUlcfvtt7Nx40aio6PdPvuFiLiXxviKiIik06BBg7h48SJNmjTh0qVLfPHFF6xdu5Zx48Yp9IrkAurxFRERSae5c+cyceJE9u7dS3x8PJUrV+aJJ55g4MCBdpcmIumg4CsiIiIi+YLm8RURERGRfEHBV0RERETyhXx3c5vT6eTo0aMEBgame7JxEREREck+xhjOnTtH6dKl3bqgTr4LvkePHiU0NNTuMkRERETkGg4fPkzZsmXddr58F3wDAwMB640M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BpQsaW9duZR6fEVERERyKocDmjUDX1+r13fJEoXe66AeXxEREZGcJC4OoqOhYkVr+5lnrF5fjee9burxFREREckpNm+2pia7804rAAN4eCj0uomCr4iIiIjdnE549VW4+WbYtQtiYmD/frurynM01EFERETETn/9BX36wI8/WtudO1uLUxQtam9deZB6fEVERETssmAB1KplhV5/fyvwfv65Qm8WUY+viIiIiB2MgffegzNnrDl658yBKlXsripPU4+viIiISHYyxvrV4YCZM+HFF2HtWoXebKDgKyIiIpIdLl+GMWNg0KB/2sqUgdGjwcvLvrryEQ11EBEREclqBw7AAw9YPbsA4eHQsKG9NeVD6vEVERERySrGwMcfQ+3aVugNCrK2FXptoR5fERERkaxw9iw88QTMm2dtN2tmhd6wMDurytcUfEVERETczRi49VZrJTZPT3jhBRg2DAooetlJQx1ERERE3M3hgOeft5YaXrMGRo1S6M0BFHxFRERE3GHPHlix4p/te+6B7duhcWPbSpKUFHxFRERErocx1oprdetCt25w9Og/z/n42FeXpKI+dxEREZHMOnUK+vWDr76ytm++2dZy5OrU4ysiIiKSGcuXQ61aVuj18oIJE6y20qXtrkyuQD2+IiIiIhlhDAwZAq+/bm1Xrw5z5lhDHSRHU4+viIiISEY4HHDhgvX7/v1h40aF3lxCPb4iIiIi12IMnDtnrbwGMHEidOkCt99ub12SIerxFREREbma6Gi4804r6DqdVlvBggq9uZB6fEVERESuZPFieOghOHkSfH1h61YNa8jF1OMrIiIi8l9xcdb43Y4drdBbq5bG8uYBCr4iIiIi/7Z5M9SvD++8Y21HRMCGDXDTTfbWJddNQx1EREREkjmd1tCGXbsgJARmzYLbbrO7KnET9fiKiIiIJPPwgBkzrKWHf/tNoTePUfAVERGR/O2zz2DKlH+269aF+fOhaFH7apIsoaEOIiIikj+dOwdPPWX18Hp5QYsWULOm3VVJFlLwFRERkfxn/Xp44AHYt89aie3ZZ6FaNburkiym4CsiIiL5x+XLMG4cjBkDSUlQrhzMnm319kqep+ArIiIi+YPTaa229uOP1naPHjB1KhQqZGtZkn10c5uIiIjkDx4ecNddEBQEH38Mc+cq9OYzCr4iIiKSd509C7t3/7P99NOwcyf06mVXRWIjBV8RERHJm376CWrXhk6d4MIFq83DA8qUsbcusY2Cr4iIiOQtiYkwciS0agWHDlk3tB05YndVkgMo+IqIiEjesWcPNG1qzdxgjLX88JYtUKWK3ZVJDqDgKyIiIrmfMTB9urXq2saNULgwLFgAH3wAgYF2Vyc5hKYzExERkdzPGGvp4bg4aNMGZs2CsmXtrkpyGAVfERERyb2MsVZe8/CAmTNh/nx48klrW+Q/9KdCREREcp/4eBg8GB577J+2kBBrujKFXrkC2/9kTJkyhbCwMHx9fWncuDEbNmy46v6TJk2iatWq+Pn5ERoayuDBg4mPj8+makVERMR227dDo0YwaZI1rjcqyu6KJJewNfjOnz+fiIgIIiMj2bx5M7Vr16Zdu3acOHEizf3nzp3LsGHDiIyM5Pfff+eDDz5g/vz5jBgxIpsrFxERkWxnDEyeDA0awG+/QfHisGgR1Kljd2WSS9gafF9//XX69etH3759ufHGG5k2bRr+/v58+OGHae6/du1amjVrRs+ePQkLC+P222+nR48e1+wlFhERkVwuOhruuMMav3vpEnToYIXfu+6yuzLJRWwLvgkJCWzatIm2bdv+U4yHB23btmXdunVpHtO0aVM2bdrkCrr79+/nm2++4Y477rjidS5dukRsbGyKh4iIiOQiTie0bQtLl4Kvr9Xru2QJlCxpd2WSy9gWfE+dOkVSUhIl//OHtmTJkkRHR6d5TM+ePRkzZgy33HILXl5eVKpUiVatWl11qMP48eMJDg52PUJDQ936OkRERCSLeXjA+PHW8sMbN8LAgdZMDiIZZPvNbRmxcuVKxo0bx9SpU9m8eTNffPEFS5Ys4aWXXrriMcOHDycmJsb1OHz4cDZWLCIiIpmyebPVw5usY0fYtAluusm+miTXs20e32LFiuHp6cnx48dTtB8/fpxSpUqleczzzz9P7969eeSRRwCoWbMmFy5c4NFHH2XkyJF4pDF9iY+PDz4+Pu5/ASIiIuJ+Tie89hqMGgUBAbBt2z8LUXh62lub5Hq29fh6e3tTv359VqxY4WpzOp2sWLGCJk2apHlMXFxcqnDr+f9/CYwxWVesiIiIZL3Dh62xvM89B4mJ0KoV+PnZXZXkIbau3BYREUF4eDgNGjSgUaNGTJo0iQsXLtC3b18A+vTpQ5kyZRg/fjwAHTt25PXXX6du3bo0btyYvXv38vzzz9OxY0dXABYREZFcaMECazGKM2fA3x/eegseekhjecWtbA2+3bt35+TJk4wePZro6Gjq1KnD0qVLXTe8HTp0KEUP76hRo3A4HIwaNYojR45QvHhxOnbsyNixY+16CSIiInI9nE545BGYMcPabtgQ5syBG26wty7Jkxwmn40RiI2NJTg4mKNHYwgJCbK7HBERERkwAKZNg+HDITISvLzsrkhslpzXYmJiCApyX16ztcdXRERE8qHLlyE2FooUsbYnTIAHHoAr3OMj4i65ajozERERyeUOHICWLaFLF0hKstr8/RV6JVso+IqIiEjWMwZmz7YWoVi7FrZsgd9/t7sqyWcUfEVERCRrnT0LPXtCnz5w7hw0awZbt0KNGnZXJvmMgq+IiIhknVWroFYtmDfPWoDipZdg5UoIC7O7MsmHdHObiIiIZA2nE5580lqYolIla5qyxo3trkryMfX4ioiISNbw8ICPPoJ+/SAqSqFXbKceXxEREXEPY+D99+H8eRg82GqrXRvee8/eukT+n4KviIiIXL9Tp6ye3a++ggIF4Pbb4aab7K5KJAUFXxEREbk+330HDz4Ix45Zq66NHw/Vq9tdlUgqCr4iIiKSOfHx1jLDkyZZ29Wrw9y5UKeOnVWJXJGCr4iIiGRcUhK0aAG//mptDxgAr75qrcImkkMp+IqIiEjGeXpCr15w8CB8+CHcdZfdFYlck6YzExERkfSJjobt2//ZHjQIdu5U6JVcQ8FXRERErm3RIqhZEzp3tqYrA2ue3mLF7K1LJAMUfEVEROTK4uKgf3+4+25ryjJ/f+tXkVxIwVdERETStnkz1K8P77xjbT/zDGzYAGFhtpYlklkKviIiIpKS02nN0HDzzbBrF4SEwPLl8Npr4ONjd3UimabgKyIiIik5HPDjj5CYaI3p/e03aNvW7qpErpumMxMRERHL5cvWcsMOB8yYAUuXQni4tS2SB6jHV0REJL87dw769oVHH/2nrVQpaxlihV7JQxR8RURE8rP1660lhmfOhFmzYMcOuysSyTIKviIiIvnR5cswZgzccgvs3w/lysHKlXDTTXZXJpJlNMZXREQkvzlwAB54ANautbZ79ICpU6FQIVvLEslqCr4iIiL5SVIStGsHf/wBQUFW4O3Vy+6qRLKFhjqIiIjkJ56eMGmSNcRh61aFXslX1OMrIiKS1/30E8TEQMeO1vYdd0CHDpqxQfId9fiKiIjkVQkJMGIEtGoFffrA4cP/PKfQK/mQenxFRETyot27rWEMmzZZ21266OY1yffU4ysiIpKXGAPTp0O9elboLVwYPvsMPvgAAgPtrk7EVurxFRERySuSkqBrV/jyS2u7TRtrUYqyZe2tSySHUI+viIhIXuHpCaGh4OUFEybA8uUKvSL/oh5fERGR3Cw+HmJjoUQJa/uVV+Dhh6FWLXvrEsmB1OMrIiKSW+3YAY0bW8MbkpKsNj8/hV6RK1DwFRERyW2MgcmToX592LYNfv8d9u2zuyqRHE/BV0REJDeJjrYWoHjySbh0yVqI4rffoEoVuysTyfEUfEVERHKLRYugZk1YuhR8fa1e3yVLoGRJuysTyRV0c5uIiEhucPkyjBwJp05ZY3jnzoWbbrK7KpFcRT2+IiIiuUGBAjBnDjz7LGzYoNArkgnq8RUREcmJnE6YONH69bnnrLaaNeHVV+2tSyQXU/AVERHJaf76C8LD4YcfrEUpOnWCatXsrkok19NQBxERkZxkwQJrDO8PP4C/P0ybBlWr2l2VSJ6gHl8REZGc4Nw5eOopmDHD2m7QwBrTq2nKRNxGwVdERMRuly9D06awfTs4HDBiBERGgpeX3ZWJ5Cka6iAiImK3AgXg0UehXDlYtQpeflmhVyQLKPiKiIjY4cABiIr6Z3vgQGsFtubNbStJJK9T8BUREclOxsDHH0Pt2nDvvdbYXrCGOAQF2VubSB6n4CsiIpJdzp6Fnj2hd28r8IaE/BN8RSTLKfiKiIhkh59+snp5582z5uZ96SVYuRJKl7a7MpF8Q7M6iIiIZKXLl2H0aHjlFWuYQ6VK1jRljRvbXZlIvqMeXxERkazk6Qlbt1qh96GHYMsWhV4Rm6jHV0RExN2MgYQE8PGxblqbMQNWr4YuXeyuTCRfU4+viIiIO/39tzVbw6OP/tNWooRCr0gOcF3BNz4+3l11iIiI5H7Ll0PNmvDll/DJJ7Bnj90Vici/ZDj4Op1OXnrpJcqUKUNAQAD79+8H4Pnnn+eDDz5we4EiIiI5Xnw8RETA7bfDsWNQvTr88gtUqWJ3ZSLyLxkOvi+//DIzZ87k1Vdfxdvb29Veo0YN3n//fbcWJyIikuPt2GHdrPbGG9Z2//6wcSPUrWtvXSKSSoaD70cffcR7771Hr1698PT0dLXXrl2bXbt2ubU4ERGRHO3yZbjrLti2DYoXh0WLYMoU8Pe3uzIRSUOGg++RI0eoXLlyqnan00liYqJbihIREckVChSAd96BO+6A336zQrCI5FgZDr433ngjP//8c6r2zz77jLr6WkdERPK6xYvhiy/+2W7f3morWdK+mkQkXTI8j+/o0aMJDw/nyJEjOJ1OvvjiC3bv3s1HH33E4sWLs6JGERER+8XFwZAhVg9vcDA0aADlylnPORz21iYi6ZLhHt9OnTqxaNEivv/+ewoWLMjo0aP5/fffWbRoEbfddltW1CgiImKvzZuhfn0r9AI8/LB6eEVyoUyt3Na8eXOWL1/u7lpERERyFqcTJk6EkSMhMRFCQmDWLFBHj0iulOEe34oVK/L333+naj979iwVK1Z0S1EiIiK2S0y05uUdOtT6fefO1uwNCr0iuVaGg+/BgwdJSkpK1X7p0iWOHDnilqJERERs5+VlrcLm7w/Tp8Pnn0OxYnZXJSLXId1DHRYuXOj6/bJlywgODnZtJyUlsWLFCsLCwtxanIiISLY6d856lC5tbY8fDwMGQBrTeIpI7pPu4HvPPfcA4HA4CA8PT/Gcl5cXYWFhTJw40a3FiYiIZJv16+GBB6BUKVi50pqj19dXoVckD0l38HU6nQBUqFCBX3/9lWL6ukdERPKCy5dh3DgYMwaSkqzxvIcPQ4UKdlcmIm6W4VkdDhw4kBV1iIiIZL8DB6xe3rVrre0ePWDqVChUyNayRCRrZGo6swsXLrBq1SoOHTpEQkJCiueefPJJtxQmIiKSZYyBOXOgf39rTG9goDVHb69edlcmIlkow8F3y5Yt3HHHHcTFxXHhwgWKFCnCqVOn8Pf3p0SJEgq+IiKS812+DK+9ZoXeZs1g9mwNbRDJBzI8ndngwYPp2LEjZ86cwc/Pj/Xr1/Pnn39Sv359XnvttayoUURExL28vGDuXHjpJetGNoVekXzBYYwxGTmgUKFC/PLLL1StWpVChQqxbt06qlevzi+//EJ4eDi7du3KqlrdIjY2luDgYI4ejSEkJMjuckREJDskJsILL4CfH4waZXc1InINyXktJiaGoCD35bUMD3Xw8vLCw8PqKC5RogSHDh2ievXqBAcHc/jwYbcVJiIi4hZ79lhjdzduBE9P6wa2SpXsrkpEbJDh4Fu3bl1+/fVXbrjhBlq2bMno0aM5deoUs2fPpkaNGllRo4iISMYZA++/D08/DXFxULiwtQKbQq9IvpXhMb7jxo0jJCQEgLFjx1K4cGGeeOIJTp48ybvvvuv2AkVERDLs1Cno0gUefdQKvW3awLZtcO+9dlcmIjbK8Bjf3E5jfEVE8rjERKheHfbts25iGz8eBg8Gjwz39YiITbJqjK/b/hXYvHkzd911l7tOJyIikjleXhARYYXfX36BZ55R6BURIIPBd9myZQwZMoQRI0awf/9+AHbt2sU999xDw4YNXcsaZ8SUKVMICwvD19eXxo0bs2HDhqvuf/bsWQYMGEBISAg+Pj5UqVKFb775JsPXFRGRPGT7dvj113+2n3gCNm2CunXtq0lEcpx0B98PPviADh06MHPmTP73v/9x88038/HHH9OkSRNKlSrF9u3bMxxA58+fT0REBJGRkWzevJnatWvTrl07Tpw4keb+CQkJ3HbbbRw8eJDPPvuM3bt3M336dMqUKZOh64qISB5hDEyeDA0aQLduEBtrtTsc1tRlIiL/ku4xvrVq1aJ37948++yzfP7553Tt2pWbb76ZTz/9lLJly2bq4o0bN6Zhw4a8/fbbADidTkJDQxk0aBDDhg1Ltf+0adOYMGECu3btwsvLK1PX1BhfEZE8Ijoa+vaFpUut7Q4d4KOPoFgxe+sSketm+xjfffv20bVrVwC6dOlCgQIFmDBhQqZDb0JCAps2baJt27b/FOPhQdu2bVm3bl2axyxcuJAmTZowYMAASpYsSY0aNRg3bhxJSUlXvM6lS5eIjY1N8RARkVxu8WKoVcsKvb6+Vq/vkiUKvSJyVekOvhcvXsTf3x8Ah8OBj4+Pa1qzzDh16hRJSUmULFkyRXvJkiWJjo5O85j9+/fz2WefkZSUxDfffMPzzz/PxIkTefnll694nfHjxxMcHOx6hIaGZrpmERGxWWIi9O8PHTvCyZNW+N24EQYOtIY3iIhcRYYWsHj//fcJCAgA4PLly8ycOZNi//np+sknn3Rfdf/hdDopUaIE7733Hp6entSvX58jR44wYcIEIiMj0zxm+PDhREREuLZjY2MVfkVEcqsCBeDIEev3zzwDY8eCj4+9NYlIrpHu4FuuXDmmT5/u2i5VqhSzZ89OsY/D4Uh38C1WrBienp4cP348Rfvx48cpVapUmseEhITg5eWFp6enq6169epER0eTkJCAt7d3qmN8fHzw0T+KIiK5l9MJ8fHg72/16r7/vrUYxa232l2ZiOQy6Q6+Bw8edOuFvb29qV+/PitWrOCee+4BrB7dFStWMHDgwDSPadasGXPnzsXpdOLx/3My7tmzh5CQkDRDr4iI5HKHD0N4OJQuDR9/bLUVL67QKyKZYuuM3hEREUyfPp1Zs2bx+++/88QTT3DhwgX69u0LQJ8+fRg+fLhr/yeeeILTp0/z1FNPsWfPHpYsWcK4ceMYMGCAXS9BRESyyoIF1hjeH3+EL7+EAwfsrkhEcrkMjfF1t+7du3Py5ElGjx5NdHQ0derUYenSpa4b3g4dOuTq2QUIDQ1l2bJlDB48mFq1alGmTBmeeuopnnvuObtegoiIuNu5czBoEMyaZW03bAhz5kCFCvbWJSK5Xrrn8c0rNI+viEgOtn499OoF+/dbywwPHw6RkdYyxCKSb2TVPL629viKiIi4JCRYq68dPgzlylljeps3t7sqEclDbB3jKyIi4uLtDR98AD17wtatCr0i4naZCr779u1j1KhR9OjRgxMnTgDw7bffsmPHDrcWJyIieZgxMHs2zJv3T9ttt1njeQsVsq0sEcm7Mhx8V61aRc2aNfnll1/44osvOH/+PABbt2694iISIiIiKZw9a/Xs9ukDjz4Khw7ZXZGI5AMZDr7Dhg3j5ZdfZvny5Snmzm3Tpg3r1693a3EiIpIHrVplTVM2bx54esLQodY8vSIiWSzDwfe3336jc+fOqdpLlCjBqVOn3FKUiIjkQQkJMGIEtG5t3cBWqRKsWQOjRllLEYuIZLEMB99ChQpx7NixVO1btmyhTJkybilKRETymEuX4JZbYPx4a2zvQw9BVBQ0bmx3ZSKSj2Q4+N5///0899xzREdH43A4cDqdrFmzhiFDhtCnT5+sqFFERHI7Hx9o0QIKF4bPPrNmbwgIsLsqEclnMryARUJCAgMGDGDmzJkkJSVRoEABkpKS6NmzJzNnzsTT0zOranULLWAhIpJNTp2CixchNNTavnTJatO3gyJyDVm1gEWmV247dOgQ27dv5/z589StW5cbbrjBbUVlJQVfEZFs8N13EB5uLTP8008awysiGZJjVm5bvXo1t9xyC+XKlaNcuXJuK0RERPKA+HhrmeFJk6ztwoUhOhrKlrW1LBERyMQY3zZt2lChQgVGjBjBzp07s6ImERHJjbZvh0aN/gm9/fvDxo0KvSKSY2Q4+B49epRnnnmGVatWUaNGDerUqcOECRP466+/sqI+ERHJ6YyByZOhQQP47TcoXhwWLYIpU8Df3+7qRERcMhx8ixUrxsCBA1mzZg379u2ja9euzJo1i7CwMNq0aZMVNYqISE6WmAgzZlg3r3XoYIXfu+6yuyoRkVQyfXNbsqSkJL799luef/55tm3bRlJSkrtqyxK6uU1ExE2MAYfD+v2uXfD99zBgwD9tIiKZlFU3t2W4xzfZmjVr6N+/PyEhIfTs2ZMaNWqwZMkStxUmIiI5VFwcPPEEvPDCP23VqsHAgQq9IpKjZXhWh+HDhzNv3jyOHj3KbbfdxptvvkmnTp3w1zguEZG8b/Nm6NXL6uEtUMBaga18eburEhFJlwwH359++olnn32Wbt26UaxYsayoSUREchqnE157DUaNssb0hoTArFkKvSKSq2Q4+K5ZsyYr6hARkZzq8GFrMYoff7S2O3eG6dOhaFF76xIRyaB0Bd+FCxfSoUMHvLy8WLhw4VX3vfvuu91SmIiI5ACXLkHTpvDXX9bUZG+9ZQ1v0FheEcmF0jWrg4eHB9HR0ZQoUQIPjyvfD+dwODSrg4hIXvPee1YP75w5UKWK3dWISD6QVbM6XPd0ZrmNgq+IyDWsX29NVdakibVtDFy+DF5e9tYlIvlGjpnO7KOPPuLSpUup2hMSEvjoo4/cUpSIiNjg8mUYMwZuuQXuvx/OnrXaHQ6FXhHJEzIcfPv27UtMTEyq9nPnztG3b1+3FCUiItnswAFo2RIiIyEpCZo10zheEclzMhx8jTE40vjH8K+//iI4ONgtRYmISDYxBmbPhtq1Ye1aCAqCjz+GuXNB/6aLSB6T7unM6tati8PhwOFwcOutt1KgwD+HJiUlceDAAdq3b58lRYqISBa4dAkefBDmzbO2mzWzQm9YmJ1ViYhkmXQH33vuuQeAqKgo2rVrR0BAgOs5b29vwsLCuPfee91eoIiIZBFvb4iPB09Pa/nhYcOs1dhERPKodP8LFxkZCUBYWBjdu3fH19c3y4oSEZEskpBg9fQGBlpjeKdPh/37oVEjuysTEclyGR7jGx4ertArIpIb7dljDWfo188a2wtQrJhCr4jkG+nq8S1SpAh79uyhWLFiFC5cOM2b25KdPn3abcWJiIgbGAPvvw9PPw1xcbBvn7USW2io3ZWJiGSrdAXfN954g8DAQNfvrxZ8RUQkBzl1yurh/eora7tNG5g1C8qWtbUsERE7aOU2EZG8avlyCA+HY8esBSjGjYOICLjK0vMiIjlBjlm5bfPmzfz222+u7a+//pp77rmHESNGkJCQ4LbCRETkOsTHw0MPWaG3enX45RcYMkShV0TytQz/C/jYY4+xZ88eAPbv30/37t3x9/dnwYIFDB061O0FiohIJvj6WkMa+veHjRuhbl27KxIRsV2Gg++ePXuoU6cOAAsWLKBly5bMnTuXmTNn8vnnn7u7PhERSQ9jYPJkawGKZG3awJQp4O9vX10iIjlIhmcqN8bgdDoB+P7777nrrrsACA0N5dSpU+6tTkREri06Gvr2haVLISAAWrXSzWsiImnIcI9vgwYNePnll5k9ezarVq3izjvvBODAgQOULFnS7QWKiMhVLFoENWtaodfXF8aPhzJl7K5KRCRHynDwnTRpEps3b2bgwIGMHDmSypUrA/DZZ5/RtGlTtxcoIiJpiIuzxu/efbc1ZVmtWtZY3oEDrRXZREQkFbdNZxYfH4+npydeXl7uOF2W0XRmIpLrXbwIDRrAzp3W9jPPwNix4ONjb10iIm6SVdOZZXiMb7JNmzbx+++/A3DjjTdSr149txUlIiJX4ecHd90FZ85YMzfcdpvdFYmI5AoZ7vE9ceIE3bt3Z9WqVRQqVAiAs2fP0rp1a+bNm0fx4sWzok63UY+viORKf/0FiYlQoYK1nZAA585B0aL21iUikgVyzAIWgwYN4vz58+zYsYPTp09z+vRptm/fTmxsLE8++aTbChMRkf+3YIE1hrdHDyv8Anh7K/SKiGRQhoc6LF26lO+//57q1au72m688UamTJnC7bff7tbiRETytXPn4KmnYMYMazspCU6fBs2gIyKSKRnu8XU6nWnewObl5eWa31dERK7T+vXWamszZlizNIwcCWvXKvSKiFyHDAffNm3a8NRTT3H06FFX25EjRxg8eDC33nqrW4sTEcl3Ll+Gl16CW26BffugXDlYuRJefhly+Kw5IiI5XYaD79tvv01sbCxhYWFUqlSJSpUqUaFCBWJjY5k8eXJW1Cgikn84nfD119awhh49YOtWaNHC7qpERPKEDI/xDQ0NZfPmzaxYscI1nVn16tVp27at24sTEckXjLEeHh7WTWtz5sCvv8IDD9hdmYhInpKh4Dt//nwWLlxIQkICt956K4MGDcqqukRE8oezZ+GJJ6BSJWs4A0DVqtZDRETcKt3B95133mHAgAHccMMN+Pn58cUXX7Bv3z4mTJiQlfWJiORdP/0EvXvDoUNWT+8TT0CZMnZXJSKSZ6V7jO/bb79NZGQku3fvJioqilmzZjF16tSsrE1EJG9KSIARI6BVKyv0VqpkhWCFXhGRLJXu4Lt//37Cw8Nd2z179uTy5cscO3YsSwoTEcmT9uyBZs1g/HhrXO9DD8GWLdC4sd2ViYjkeeke6nDp0iUKFizo2vbw8MDb25uLFy9mSWEiInnOxYvQvDmcOAGFC8N778F999ldlYhIvpGhm9uef/55/P39XdsJCQmMHTuW4OBgV9vrr7/uvupERPISPz8YNw7mzoVZs6BsWbsrEhHJVxzGGJOeHVu1aoXD4bj6yRwOfvjhB7cUllViY2MJDg7m6NEYQkKC7C5HRPK65cutwHvLLdb2v6cuExGRNCXntZiYGIKC3JfX0t3ju3LlSrddVEQkz4uPt25ge+MNCA21FqIoXNhafvganQgiIpI1MryAhYiIXMOOHdCzJ2zbZm137Ag+PvbWJCIiGV+yWERErsAYmDwZ6te3Qm/x4rBoEUyZAv+6P0JEROyhHl8REXeIi4N774WlS63tDh1gxgwoWdLeukRExEU9viIi7uDnBwEB1pCGyZNhyRKFXhGRHEbBV0Qks+LiICbG+r3DAe++C5s2wcCBuoFNRCQHylTw/fnnn3nggQdo0qQJR44cAWD27NmsXr3arcWJiORYW7ZYY3n79bPG9gIUKQI33WRvXSIickUZDr6ff/457dq1w8/Pjy1btnDp0iUAYmJiGDdunNsLFBHJUZxOmDDBWmJ41y5YvRqio+2uSkRE0iHDwffll19m2rRpTJ8+HS8vL1d7s2bN2Lx5s1uLExHJUf76C267DYYOhcRE6NzZmr0hJMTuykREJB0yHHx3795NixYtUrUHBwdz9uxZd9QkIpLzfPYZ1KoFP/xgTU02fTp8/jkUK2Z3ZSIikk4ZDr6lSpVi7969qdpXr15NxYoV3VKUiEiOEhcHgwfDmTPQoIE1vveRR3QDm4hILpPh4NuvXz+eeuopfvnlFxwOB0ePHmXOnDkMGTKEJ554IitqFBGxl78/fPSRtQTx2rVQpYrdFYmISCZkeAGLYcOG4XQ6ufXWW4mLi6NFixb4+PgwZMgQBg0alBU1iohkr8uXYfx4CA2FBx+02lq3th4iIpJrOYxJnocnYxISEti7dy/nz5/nxhtvJCAgwN21ZYnY2FiCg4M5ejSGkJAgu8sRkZzmwAHo3RvWrIGCBeGPP3TzmohINkvOazExMQQFuS+vZXrJYm9vb2688Ua3FSIiYitjYM4c6N8fzp2DoCCYOlWhV0QkD8lw8G3dujWOq9zQ8cMPP1xXQSIi2e7sWSvwfvKJtd2sGXz8MYSF2VmViIi4WYaDb506dVJsJyYmEhUVxfbt2wkPD3dXXSIi2SMuDurVs4Y4eHrCCy/AsGFQINNfiImISA6V4X/Z33jjjTTbX3jhBc6fP3/dBYmIZCt/f+jeHRYssIY6NG5sd0UiIpJFMn1z23/t3buXRo0acfr0aXecLsvo5jYRYc8e8PCAypWt7YQEuHQJAgPtrUtERICsu7ktw/P4Xsm6devw9fV11+lERNzPGGvFtbp1oUcPa9lhAG9vhV4RkXwgw0MdunTpkmLbGMOxY8fYuHEjzz//vNsKExFxq1OnoF8/+OorazsoCGJjoWhRW8sSEZHsk+HgGxwcnGLbw8ODqlWrMmbMGG6//Xa3FSYi4jbffWctRHHsGHh5WYtTDB5sDXcQEZF8I0PBNykpib59+1KzZk0KFy6cVTWJiLjHpUswfDgk35RbvTrMnQv/mZ1GRETyhwx1d3h6enL77bdz9uxZtxYxZcoUwsLC8PX1pXHjxmzYsCFdx82bNw+Hw8E999zj1npEJI/w8IDVq63fDxgAGzcq9IqI5GMZ/p6vRo0a7N+/320FzJ8/n4iICCIjI9m8eTO1a9emXbt2nDhx4qrHHTx4kCFDhtC8eXO31SIieYAxcPmy9XsvL2uKskWL4O23ranLREQk38pw8H355ZcZMmQIixcv5tixY8TGxqZ4ZNTrr79Ov3796Nu3LzfeeCPTpk3D39+fDz/88IrHJCUl0atXL1588UUqVqyY4WuKSB4VHQ133AGjRv3TdsMNcNdd9tUkIiI5RrqD75gxY7hw4QJ33HEHW7du5e6776Zs2bIULlyYwoULU6hQoQyP+01ISGDTpk20bdv2n4I8PGjbti3r1q27ai0lSpTg4YcfvuY1Ll26dN3hXERygUWLoGZNWLoUJk+G48ftrkhERHKYdN/c9uKLL/L444/z448/uu3ip06dIikpiZIlS6ZoL1myJLt27UrzmNWrV/PBBx8QFRWVrmuMHz+eF1988XpLFZGcKi4OnnkGpk2ztmvVsm5g+8+/KyIiIukOvskLvLVs2TLLirmWc+fO0bt3b6ZPn06xYsXSdczw4cOJiIhwbcfGxhIaGppVJYpIdtq8GXr2hN27re1nnoGxY8HHx966REQkR8rQdGYOh8OtFy9WrBienp4c/89XksePH6dUqVKp9t+3bx8HDx6kY8eOrjan0wlAgQIF2L17N5UqVUpxjI+PDz76T1Ak7zl/Hm67DU6fhtKlYdYs+NewKRERkf/KUPCtUqXKNcPv6dOn030+b29v6tevz4oVK1xTkjmdTlasWMHAgQNT7V+tWjV+++23FG2jRo3i3LlzvPnmm+rJFclPAgJg4kRYuNBahlgrsImIyDVkKPi++OKLqVZuu14RERGEh4fToEEDGjVqxKRJk7hw4QJ9+/YFoE+fPpQpU4bx48fj6+tLjRo1UhxfqFAhgFTtIpIHLVgAxYtDq1bWdni49XDzt1EiIpI3ZSj43n///ZQoUcKtBXTv3p2TJ08yevRooqOjqVOnDkuXLnXd8Hbo0CE8tKyoSP527hw8+STMnAllysC2bVCkiAKviIhkiMMk37V2DZ6enhw7dsztwTe7xcbGEhwczNGjMYSEBNldjohcy/r10KsX7N9vBd0RIyAy0lqcQkRE8qTkvBYTE0NQkPvyWoZndRARyRaXL8O4cTBmDCQlQbly8PHHoNUaRUQkk9IdfJNnTxARyXLnz0O7drB2rbXdsydMmQL/P6ZfREQkMzI0xldEJFsULAihoRAUBFOnWkMdRERErpOCr4jkDGfPgtP5z01r77xjtVWoYHdlIiKSR2i6BBGx36pV1lLDjzwCyfcTFC6s0CsiIm6l4Csi9klIsGZpaN0aDh+2pik7edLuqkREJI9S8BURe+zeDU2bwvjxVi/vQw/Bli2Qy6dMFBGRnEvBV0SylzHWEsP16sGmTdaQhs8+gw8+gMBAu6sTEZE8TDe3iUj2unABXn4Z4uKgTRuYNQvKlrW7KhERyQcUfEUkewUEWAtR/PILRESAliQXEZFsouArIlkrPt66ga16dejXz2pr3lwrsImISLZT8BWRrLN9u7Xq2m+/WYtS3HMPFC9ud1UiIpJP6TtGEXE/Y2DyZGjQwAq9xYvDvHkKvSIiYiv1+IqIe0VHQ9++sHSptd2hA8yYASVL2luXiIjkewq+IuI+585B3bpW+PX1hQkTYMAAawliERERm2mog4i4T2CgtexwrVqwcSMMHKjQKyIiOYbDGGPsLiI7xcbGEhwczNGjMYSEBNldjkjut2UL+PtD1arWdmIiOJ3g42NvXSIikmsl57WYmBiCgtyX19TjKyKZ43RaQxkaN7ZmbkhIsNq9vBR6RUQkR9IYXxHJuL/+gvBw+OEHa7t8ebh4Eby97a1LRETkKtTjKyIZs2CBNYb3hx+sIQ7Tp8Pnn0NwsN2ViYiIXJV6fEUkfeLirJvVZsywths0gDlzoEoVe+sSERFJJ/X4ikj6eHvD779bszSMHAlr1yr0iohIrqIeXxG5ssuXrZvYvL2hQAH4+GM4cgRatLC7MhERkQxTj6+IpO3AAWjZEkaN+qetUiWFXhERybUUfEUkJWNg9myoXdsazjB9Opw6ZXdVIiIi103BV0T+cfasNSdvnz7W8sPNmlkLVBQrZndlIiIi103BV0Qsq1ZZ05TNmweenvDSS7ByJYSF2V2ZiIiIW+jmNhGBmBjo1Mn6tVIla5qyxo3trkpERMStFHxFxFp84q23rF7fSZMgMNDuikRERNxOQx1E8iNjrJvWvv/+n7Y+feCDDxR6RUQkz1KPr0h+c+oU9OsHX30FISGwYwcULmx3VSIiIllOwVckP/nuO3jwQTh2DLy8ICLCGuYgIiKSDyj4iuQH8fEwfLg1fhegenXrBra6dW0tS0REJDsp+IrkdTEx0Lw5/Pabtd2/P0yYAP7+9tYlIiKSzRR8RfK6oCCoUQOio+HDD+Guu+yuSERExBYKviJ5UXS0NYa3aFFwOGDqVLh0CUqWtLsyERER22g6M5G8ZtEiqFkTHn7YmrYMoFAhhV4REcn3FHxF8oq4OGv87t13W1OWHTgAZ87YXZWIiEiOoeArkhds3gz168M771jbERGwYQMUKWJvXSIiIjmIgq9IbuZ0wquvws03w65d1oIU330HEyeCj4/d1YmIiOQoCr4iudn589aNa4mJ0LmzNWXZbbfZXZWIiEiOpFkdRHIjY6zZGoKCrIUofv/dupnN4bC7MhERkRxLPb4iucm5c9C3L7z33j9tzZrBI48o9IqIiFyDgq9IbrF+PdSpAzNnwpAhcPq03RWJiIjkKgq+Ijnd5cswZgzccgvs3w/lysGSJZqxQUREJIM0xlckJztwAB54ANautbZ79LBuZitUyNayREREciMFX5Gc6uxZa27eM2cgMNCao7dXL7urEhERybUUfEVyqkKF4Mkn4fvvYfZsqFDB7opERERyNY3xFclJfvrJmpos2ahRsHKlQq+IiIgbKPiK5ASJiTByJLRqBT17wqVLVnuBAtZDRERErpv+RxWx25491tjdjRut7bp1rZkctOSwiIiIW6nHV8QuxsD06VbQ3bgRCheGBQvgww+hYEG7qxMREclz1OMrYodz56BPH/jqK2u7TRuYNQvKlrW1LBERkbxMPb4idvDzgxMnwMsLJkyA5csVekVERLKYenxFskvyDWs+PtYNax9/bM3VW7eurWWJiIjkF+rxFckOO3ZAo0YwYsQ/bRUqKPSKiIhkIwVfkaxkDEyeDA0awLZtVi/vmTN2VyUiIpIvKfiKZJXoaLjzTmv1tfh4aN8etm61Zm8QERGRbKfgK5IVFi+GWrXg22+tMb2TJ8M330CpUnZXJiIikm/p5jYRdztzBh54AGJirPA7dy7cdJPdVYmIiOR7Cr4i7la4MEydCps2wbhxWoFNREQkh9BQB5Hr5XRac/EuW/ZPW8+eMHGiQq+IiEgOoh5fkevx118QHg4//GCN3/39dyhUyO6qREREJA3q8RXJrAULrDG8P/wABQvC2LEQHGx3VSIiInIF6vEVyahz56wpymbOtLYbNoQ5c+CGG2wtS0RERK5OwVckI06ftoLu/v3gcFgrsUVGgpeX3ZWJiIjINSj4imREkSLQtClcvgyzZ0OLFnZXJCIiIumk4CtyLQcOWGN4S5SwtqdMsWZy0E1sIiIiuYpubhO5EmOsXt3ateHhh61tgKAghV4REZFcSMFXJC1nz1pz8fbpY93MdvYsxMbaXZWIiIhcBwVfkf/66Serl3fePPD0hJdfhpUrNVWZiIhILqcxviLJEhPhhRdg/HhrWEOlStY0ZY0b212ZiIiIuIF6fEWSXbwIn3xihd6HH4aoKIVeERGRPEQ9vpK/Jd+w5nBYN63NnQtHjsC999pbl4iIiLidenwl/zp1Cjp3hnfe+aft5psVekVERPIoBV/Jn777DmrWhK+/tlZfi4mxuyIRERHJYgq+kr/Ex8PgwdCuHURHQ/XqmrFBREQkn8gRwXfKlCmEhYXh6+tL48aN2bBhwxX3nT59Os2bN6dw4cIULlyYtm3bXnV/EZft26FRI5g0ydru3x82boQ6deysSkRERLKJ7cF3/vz5REREEBkZyebNm6lduzbt2rXjxIkTae6/cuVKevTowY8//si6desIDQ3l9ttv58iRI9lcueQqf/8NTZrAb79B8eKwaJG19LC/v92ViYiISDZxGJN8W7s9GjduTMOGDXn77bcBcDqdhIaGMmjQIIYNG3bN45OSkihcuDBvv/02ffr0ueb+sbGxBAcHc/RoDCEhQdddv+QiL70E69bBjBlQsqTd1YiIiMgVJOe1mJgYgoLcl9dsnc4sISGBTZs2MXz4cFebh4cHbdu2Zd26dek6R1xcHImJiRQpUiTN5y9dusSlS5dc27Fadjb/WLQIKlSAGjWs7REjwMPDmrpMRERE8h1bhzqcOnWKpKQkSv6n961kyZJER0en6xzPPfccpUuXpm3btmk+P378eIKDg12P0NDQ665bcri4OHjiCbj7bujVy7qhDazlhxV6RURE8i3bx/hej1deeYV58+bx5Zdf4uvrm+Y+w4cPJyYmxvU4fPhwNlcp2WrzZqhXD6ZNs7bbtlXYFREREcDmoQ7FihXD09OT48ePp2g/fvw4pUqVuuqxr732Gq+88grff/89tWrVuuJ+Pj4++Pj4uKVeycGcTnjtNRg1ChITISQEPvrICr4iIiIi2Nzj6+3tTf369VmxYoWrzel0smLFCpo0aXLF41599VVeeuklli5dSoMGDbKjVMnJzpyxAu5zz1mht3Nna/YGhV4RERH5F1t7fAEiIiIIDw+nQYMGNGrUiEmTJnHhwgX69u0LQJ8+fShTpgzjx48H4H//+x+jR49m7ty5hIWFucYCBwQEEBAQYNvrEBsFBVmB198f3noLHnpIwxtEREQkFduDb/fu3Tl58iSjR48mOjqaOnXqsHTpUtcNb4cOHcLD45+O6XfeeYeEhATuu+++FOeJjIzkhRdeyM7SxU7nzoGXF/j6WjetzZkDly7BDTfYXZmIiIjkULbP45vdNI9vHrB+vTVbQ8eO/6zCJiIiInlGVs3jm6tndZB85vJlGDMGbrkF9u+Hr74CzcssIiIi6aTgK7nDgQPQsiVERkJSEvTsCVFR1vheERERkXRQ8JWczRiYPRtq14a1a62g+/HH1pjeQoXsrk5ERERyEdtvbhO5qr//hkGDrJvZmjWzQm9YmN1ViYiISC6k4Cs5W7Fi8O678McfMGwYFNAfWREREckcpQjJWRIS4IUXrBvY7rjDauve3daSREREJG9Q8JWcY/dua5qyTZugRAnYuxcCA+2uSkRERPII3dwm9jMGpk+HevWs0Fu4MEydqtArIiIibqUeX7HXqVPQr581Jy9AmzYwaxaULWtrWSIiIpL3KPiKfU6etKYpO3bMWn54/HgYPBg89EWEiIiIuJ+Cr9ineHG4/XbYsMGal7duXbsrEhERkTxMwVey144d1hRlJUta22+/bfXw+vvbW5eIiIjkefpOWbKHMTB5MtSvDw89ZG0DBAQo9IqIiEi2UI+vZL3oaOjbF5Yu/aftwgUr9IqIiIhkE/X4StZatAhq1rRCr6+vNbRh8WKFXhEREcl26vGVrBEXB888A9OmWdu1asHcuXDTTfbWJSIiIvmWenwlayQlwfLl1u+fecaauUGhV0RERGykHl9xH6fT+tXDw1p17ZNPICYG2ra1ty4RERER1OMr7vLXX3DbbdYY3mQNGyr0ioiISI6h4CvXb8ECawzvDz/AmDFw/rzdFYmIiIikouArmXfunDVNWbducOaM1cO7bp1mbBAREZEcScFXMmf9eqhTB2bOBIcDRo6ENWvghhvsrkxEREQkTbq5TTLu+HFo3Rri46FcOfj4Y2je3O6qRERERK5KwVcyrmRJeP552L4dpk6FQoXsrkhERETkmhR85dqMsXp1a9e2bmIDGD7cGuIgIiIikktojK9c3dmz0LMn9Olj/XrxotWu0CsiIiK5jHp85cpWrYLeveHwYfD0hPvvBy8vu6sSERERyRQFX0ktIQFeeAFeecUa5lCpEsyZA40b212ZiIiISKYp+EpKJ0/CHXfAxo3W9kMPwaRJ1hLEIiIiIrmYgq+kVKQIFCwIhQvDe+/BfffZXZGIiIiIWyj4Cpw6ZYVdPz9rLO/HH1vtZcvaW5eIiIiIG2lWh/zuu++sKcqGDv2nrWxZhV4RERHJcxR886v4eIiIgHbt4NgxWLECLlywuyoRERGRLKPgmx/t2GHN0PDGG9Z2//7WzWwFC9pbl4iIiEgWUvDNT4yByZOhfn3Ytg2KF4dFi2DKFPD3t7s6ERERkSylm9vykxMnIDISLl2CDh1gxgwoWdLuqkRERESyhYJvflKyJEyfbo3pHTBAyw6LiIhIvqLgm5fFxcGQIdaCFHfdZbXde6+9NYmIiIjYRME3r9q8GXr1gl274PPPYf9+3bwmIiIi+ZpubstrnE6YMAFuvtkKvSEh1oIUCr0iIiKSz6nHNy/56y8ID4cffrC2O3e2xvQWLWpvXSIiIiI5gIJvXnHsmLUC25kz1tRkb74JDz+sG9hERERE/p+Cb14REmL18G7bBnPmQJUqdlckIiIikqMo+OZmv/wC5cpZoResxSm8vKyHiIiIiKSgm9tyo8uXYcwYaNYM+va1bmgDa4iDQq+IiIhImtTjm9scOAAPPABr11rbRYpYK7H5+dlbl4iIiEgOpx7f3MIYa1qy2rWt0BsUZG3PnavQKyIiIpIO6vHNDWJj4fHH4ZNPrO1mzWD2bKhQwd66RERERHIRBd/cwNMTNm60fo2MhOHDoYA+OhGRrGCM4fLlyyQlJdldikie5uXlhaenZ7ZeU+kpp0pMtIKuh4e16tq8eVZb48Z2VyYikmclJCRw7Ngx4uLi7C5FJM9zOByULVuWgICAbLumgm9OtGcP9OplPZ5+2mqrV8/WkkRE8jqn08mBAwfw9PSkdOnSeHt749AiQCJZwhjDyZMn+euvv7jhhhuyredXwTcnMQbef98Ku3FxcOQIPPqoNU2ZiIhkqYSEBJxOJ6Ghofjr312RLFe8eHEOHjxIYmJitgVfzeqQU5w6BV26WEE3Lg7atIENGxR6RUSymYeH/msUyQ52fKOiv905wXffQa1a8NVX1gIUEybA8uVQtqzdlYmIiIjkGRrqYLejR6FjR0hIgOrVYc4cqFvX7qpERERE8hz1+NqtdGlr+eH+/a0pyxR6RUREss3u3bspVaoU586ds7uUPCUhIYGwsDA2btxodykpKPhmN2Pg7bchKuqftqFDYcoUjecVEZFMefDBB3E4HDgcDry8vKhQoQJDhw4lPj4+1b6LFy+mZcuWBAYG4u/vT8OGDZk5c2aa5/38889p1aoVwcHBBAQEUKtWLcaMGcPp06ez+BVln+HDhzNo0CACAwPtLiVL/PTTT3Ts2JHSpUvjcDj46quv0nXcypUrqVevHj4+PlSuXDnNPyNTpkwhLCwMX19fGjduzIYNG1zPeXt7M2TIEJ577jk3vRL3UPDNTtHRcOedMGgQ9OwJyf8gabocERG5Tu3bt+fYsWPs37+fN954g3fffZfIyMgU+0yePJlOnTrRrFkzfvnlF7Zt28b999/P448/zpAhQ1LsO3LkSLp3707Dhg359ttv2b59OxMnTmTr1q3Mnj07215XQkJClp370KFDLF68mAcffPC6zpOVNV6vCxcuULt2baZMmZLuYw4cOMCdd95J69atiYqK4umnn+aRRx5h2bJlrn3mz59PREQEkZGRbN68mdq1a9OuXTtOnDjh2qdXr16sXr2aHTt2uPU1XReTz8TExBjAHD0ak70XXrTImOLFjQFjfHyMmTzZGKcze2sQEZErunjxotm5c6e5ePGiq83pNOb8eXseGfkvIjw83HTq1ClFW5cuXUzdunVd24cOHTJeXl4mIiIi1fFvvfWWAcz69euNMcb88ssvBjCTJk1K83pnzpy5Yi2HDx82999/vylcuLDx9/c39evXd503rTqfeuop07JlS9d2y5YtzYABA8xTTz1lihYtalq1amV69OhhunXrluK4hIQEU7RoUTNr1ixjjDFJSUlm3LhxJiwszPj6+ppatWqZBQsWXLFOY4yZMGGCadCgQYq2U6dOmfvvv9+ULl3a+Pn5mRo1api5c+em2CetGo0x5rfffjPt27c3BQsWNCVKlDAPPPCAOXnypOu4b7/91jRr1swEBwebIkWKmDvvvNPs3bv3qjW6E2C+/PLLa+43dOhQc9NNN6Vo6969u2nXrp1ru1GjRmbAgAGu7aSkJFO6dGkzfvz4FMe1bt3ajBo1Ks3rpPV3LllyXouJcW9eU49vVouLs8bvduwIJ09aszds2gQDB6qnV0Qkh4uLg4AAex7Xs3jc9u3bWbt2Ld7e3q62zz77jMTExFQ9uwCPPfYYAQEBfPLJJwDMmTOHgIAA+vfvn+b5CxUqlGb7+fPnadmyJUeOHGHhwoVs3bqVoUOH4nQ6M1T/rFmz8Pb2Zs2aNUybNo1evXqxaNEizp8/79pn2bJlxMXF0blzZwDGjx/PRx99xLRp09ixYweDBw/mgQceYNWqVVe8zs8//0yDBg1StMXHx1O/fn2WLFnC9u3befTRR+ndu3eKr/HTqvHs2bO0adOGunXrsnHjRpYuXcrx48fp1q2b65gLFy4QERHBxo0bWbFiBR4eHnTu3Pmq78+4ceMICAi46uPQoUMZen+vZd26dbRt2zZFW7t27Vi3bh1g9XBv2rQpxT4eHh60bdvWtU+yRo0a8fPPP7u1vuuhWR2y0rFj1ny8u3ZZ2xERMG4c+PjYW5eIiOQ5ixcvJiAggMuXL3Pp0iU8PDx4++23Xc/v2bOH4OBgQkJCUh3r7e1NxYoV2bNnDwB//PEHFStWxMvLK0M1zJ07l5MnT/Lrr79SpEgRACpXrpzh13LDDTfw6quvurYrVapEwYIF+fLLL+ndu7frWnfffTeBgYFcunSJcePG8f3339OkSRMAKlasyOrVq3n33Xdp2bJlmtf5888/UwXfMmXKpPjhYNCgQSxbtoxPP/2URo0aXbHGl19+mbp16zJu3DhX24cffkhoaCh79uyhSpUq3HvvvSmu9eGHH1K8eHF27txJjRo10qzx8ccfTxGe01K6dOmrPp9R0dHRlCxZMkVbyZIliY2N5eLFi5w5c4akpKQ099mVnHn+Vduff/7p1vquh4JvVipZEkJCICYGZs2C226zuyIREckAf3/4Vydjtl87I1q3bs0777zDhQsXeOONNyhQoECqoJVexphMHRcVFUXdunVdoTez6tevn2K7QIECdOvWjTlz5tC7d28uXLjA119/zbx58wDYu3cvcXFx3Paf/2cTEhKoe5XZki5evIivr2+KtqSkJMaNG8enn37KkSNHSEhI4NKlS6lW8/tvjVu3buXHH38kICAg1XX27dtHlSpV+OOPPxg9ejS//PILp06dcvX0Hjp06IrBt0iRItf9ftrJz8+PuOv5+sLNFHzd7a+/oEgR618sDw9rXl4vLyhWzO7KREQkgxwOKFjQ7irSp2DBgq7e1Q8//JDatWvzwQcf8PDDDwNQpUoVYmJiOHr0aKoewoSEBPbt20fr1q1d+65evZrExMQM9fr6+fld9XkPD49UoToxMTHN1/JfvXr1omXLlpw4cYLly5fj5+dH+/btAVxDIJYsWUKZMmVSHOdzlW9ZixUrxpkzZ1K0TZgwgTfffJNJkyZRs2ZNChYsyNNPP53qBrb/1nj+/Hk6duzI//73v1TXSe5l79ixI+XLl2f69OmULl0ap9NJjRo1rnpz3Lhx41L0Iqdl586dlCtX7qr7ZESpUqU4fvx4irbjx48TFBSEn58fnp6eeHp6prlPqVKlUrSdPn2a4sWLu62266Uxvu60YIE1hvff46dCQhR6RUQkW3l4eDBixAhGjRrFxYsXAbj33nvx8vJi4sSJqfafNm0aFy5coEePHgD07NmT8+fPM3Xq1DTPf/bs2TTba9WqRVRU1BWnOytevDjHjh1L0Rb17+k9r6Jp06aEhoYyf/585syZQ9euXV2h/MYbb8THx4dDhw5RuXLlFI/Q0NArnrNu3brs3LkzRduaNWvo1KkTDzzwALVr104xBORq6tWrx44dOwgLC0tVQ8GCBfn777/ZvXs3o0aN4tZbb6V69eqpQndaHn/8caKioq76cPdQhyZNmrBixYoUbcuXL3cNI/H29qZ+/fop9nE6naxYscK1T7Lt27dftdc9uyn4usO5c/DQQ9CtG5w5Y9289v//0IiIiNiha9eueHp6uqaxKleuHK+++iqTJk1i5MiR7Nq1i3379vH6668zdOhQnnnmGRo3bgxA48aNXW1Dhw5l3bp1/Pnnn6xYsYKuXbsya9asNK/Zo0cPSpUqxT333MOaNWvYv38/n3/+ueuGpzZt2rBx40Y++ugj/vjjDyIjI9m+fXu6X1PPnj2ZNm0ay5cvp1evXq72wMBAhgwZwuDBg5k1axb79u1j8+bNTJ48+Yq1wj83bCUlJbnabrjhBpYvX87atWv5/fffeeyxx1L1bKZlwIABnD59mh49evDrr7+yb98+li1bRt++fUlKSqJw4cIULVqU9957j7179/LDDz8QERFxzfMWKVIkVZD+76NAgSt/gX/+/HlXQAZrqrKoqKgUN8QNHz6cPn36uLYff/xx9u/fz9ChQ9m1axdTp07l008/ZfDgwa59IiIimD59OrNmzeL333/niSee4MKFC/Tt2zfF9X/++Wduv/32a77ObOPWOSJyAbdPZ7ZunTGVKlnTlDkcxowcaUxCgnvOLSIi2eZqUyvldGlNE2aMMePHjzfFixc358+fd7V9/fXXpnnz5qZgwYLG19fX1K9f33z44Ydpnnf+/PmmRYsWJjAw0BQsWNDUqlXLjBkz5qrTmR08eNDce++9JigoyPj7+5sGDRqYX375xfX86NGjTcmSJU1wcLAZPHiwGThwYKrpzJ566qk0z71z504DmPLlyxvnf+Z7czqdZtKkSaZq1arGy8vLFC9e3LRr186sWrXqirUmJiaa0qVLm6VLl7ra/v77b9OpUycTEBBgSpQoYUaNGmX69OmT4v29Uo179uwxnTt3NoUKFTJ+fn6mWrVq5umnn3bVunz5clO9enXj4+NjatWqZVauXJnuKcYy68cffzRAqkd4eLhrn/Dw8BSfQfJxderUMd7e3qZixYpmxowZqc49efJkU65cOePt7W0aNWrkmrYu2dq1a02hQoVMXFxcmrXZMZ2Zw5hMjmDPpWJjYwkODubo0RhCQoIyf6LLl60ZGsaMgaQkKFcOZs+GFi3cV6yIiGSb+Ph4Dhw4QIUKFVLd8CR515QpU1i4cGGKxRnEPbp3707t2rUZMWJEms9f7e9ccl6LiYkhKOg68tp/6Oa2zDp5Et580wq9PXrA1KlwhXkNRUREJGd67LHHOHv2LOfOncuzyxbbISEhgZo1a6YYHpETKPhmVkgIfPihNb73gQfsrkZEREQyoUCBAowcOdLuMvIcb29vRo0aZXcZqejmtvQ6e9bq2f3663/aOnVS6BURERHJJRR802PVKmuasnnz4PHHIT7e7opEREREJIMUfK8mIQGGD4fWreHwYahUCb76CnTTg4hInpXP7vkWsY0df9c0xvdKdu+GXr2sOXnBmqf3zTchjaUIRUQk90teDCEuLu6aK5CJyPVLXrHO09Mz266p4JuWw4ehXj2Ii4PChWH6dMjkeuciIpI7eHp6UqhQIU6cOAGAv78/DofD5qpE8ian08nJkyfx9/e/6gIc7qbgm5bQUOumtb17YdYsKFvW7opERCQblCpVCsAVfkUk63h4eFCuXLls/QFTwTfZ8uVw002QvN71W2+Blxd4aBi0iEh+4XA4CAkJoUSJEiQmJtpdjkie5u3tjUc25ywF3/h46wa2SZOgbVtYtswKuz4+dlcmIiI28fT0zNZxhyKSPXJEd+aUKVMICwvD19eXxo0bs2HDhqvuv2DBAqpVq4avry81a9bkm2++ydyFt2+HRo2s0AtQpQroJ3wRERGRPMn24Dt//nwiIiKIjIxk8+bN1K5dm3bt2l1xfNXatWvp0aMHDz/8MFu2bOGee+7hnnvuYfv27Rm6boEPpkGDBvDbb1C8OCxaBFOmqKdXREREJI9yGJsnLGzcuDENGzbk7bffBqy7/EJDQxk0aBDDhg1LtX/37t25cOECixcvdrXdfPPN1KlTh2nTpl3zerGxsQQHBxMDBAF06AAzZkDJkm56RSIiIiJyPVx5LSaGoKAgt53X1jG+CQkJbNq0ieHDh7vaPDw8aNu2LevWrUvzmHXr1hEREZGirV27dnz11Vdp7n/p0iUuXbrk2o6JibF+9fKCsWPh0UfB4YDY2Ot8NSIiIiLiDrH/n8vc3T9ra/A9deoUSUlJlPxPb2vJkiXZtWtXmsdER0enuX90dHSa+48fP54XX3wxVXu5xEQYOtR6iIiIiEiO8/fffxMcHOy28+X5WR2GDx+eoof47NmzlC9fnkOHDrn1jZScKTY2ltDQUA4fPuzWr0okZ9Lnnb/o885f9HnnLzExMZQrV44iRYq49by2Bt9ixYrh6enJ8ePHU7QfP37cNYn4f5UqVSpD+/v4+OCTxg1rwcHB+ouTjwQFBenzzkf0eecv+rzzF33e+Yu75/m1dVYHb29v6tevz4oVK1xtTqeTFStW0KRJkzSPadKkSYr9AZYvX37F/UVEREREIAcMdYiIiCA8PJwGDRrQqFEjJk2axIULF+jbty8Affr0oUyZMowfPx6Ap556ipYtWzJx4kTuvPNO5s2bx8aNG3nvvffsfBkiIiIiksPZHny7d+/OyZMnGT16NNHR0dSpU4elS5e6bmA7dOhQim7upk2bMnfuXEaNGsWIESO44YYb+Oqrr6hRo0a6rufj40NkZGSawx8k79Hnnb/o885f9HnnL/q885es+rxtn8dXRERERCQ72L5ym4iIiIhIdlDwFREREZF8QcFXRERERPIFBV8RERERyRfyZPCdMmUKYWFh+Pr60rhxYzZs2HDV/RcsWEC1atXw9fWlZs2afPPNN9lUqbhDRj7v6dOn07x5cwoXLkzhwoVp27btNf98SM6S0b/fyebNm4fD4eCee+7J2gLFrTL6eZ89e5YBAwYQEhKCj48PVapU0b/puUhGP+9JkyZRtWpV/Pz8CA0NZfDgwcTHx2dTtXI9fvrpJzp27Ejp0qVxOBx89dVX1zxm5cqV1KtXDx8fHypXrszMmTMzfmGTx8ybN894e3ubDz/80OzYscP069fPFCpUyBw/fjzN/desWWM8PT3Nq6++anbu3GlGjRplvLy8zG+//ZbNlUtmZPTz7tmzp5kyZYrZsmWL+f33382DDz5ogoODzV9//ZXNlUtmZPTzTnbgwAFTpkwZ07x5c9OpU6fsKVauW0Y/70uXLpkGDRqYO+64w6xevdocOHDArFy50kRFRWVz5ZIZGf2858yZY3x8fMycOXPMgQMHzLJly0xISIgZPHhwNlcumfHNN9+YkSNHmi+++MIA5ssvv7zq/vv37zf+/v4mIiLC7Ny500yePNl4enqapUuXZui6eS74NmrUyAwYMMC1nZSUZEqXLm3Gjx+f5v7dunUzd955Z4q2xo0bm8ceeyxL6xT3yOjn/V+XL182gYGBZtasWVlVorhRZj7vy5cvm6ZNm5r333/fhIeHK/jmIhn9vN955x1TsWJFk5CQkF0lihtl9PMeMGCAadOmTYq2iIgI06xZsyytU9wvPcF36NCh5qabbkrR1r17d9OuXbsMXStPDXVISEhg06ZNtG3b1tXm4eFB27ZtWbduXZrHrFu3LsX+AO3atbvi/pJzZObz/q+4uDgSExMpUqRIVpUpbpLZz3vMmDGUKFGChx9+ODvKFDfJzOe9cOFCmjRpwoABAyhZsiQ1atRg3LhxJCUlZVfZkkmZ+bybNm3Kpk2bXMMh9u/fzzfffMMdd9yRLTVL9nJXXrN95TZ3OnXqFElJSa5V35KVLFmSXbt2pXlMdHR0mvtHR0dnWZ3iHpn5vP/rueeeo3Tp0qn+MknOk5nPe/Xq1XzwwQdERUVlQ4XiTpn5vPfv388PP/xAr169+Oabb9i7dy/9+/cnMTGRyMjI7ChbMikzn3fPnj05deoUt9xyC8YYLl++zOOPP86IESOyo2TJZlfKa7GxsVy8eBE/P790nSdP9fiKZMQrr7zCvHnz+PLLL/H19bW7HHGzc+fO0bt3b6ZPn06xYsXsLkeygdPppESJErz33nvUr1+f7t27M3LkSKZNm2Z3aZIFVq5cybhx45g6dSqbN2/miy++YMmSJbz00kt2lyY5WJ7q8S1WrBienp4cP348Rfvx48cpVapUmseUKlUqQ/tLzpGZzzvZa6+9xiuvvML3339PrVq1srJMcZOMft779u3j4MGDdOzY0dXmdDoBKFCgALt376ZSpUpZW7RkWmb+foeEhODl5YWnp6errXr16kRHR5OQkIC3t3eW1iyZl5nP+/nnn6d379488sgjANSsWZMLFy7w6KOPMnLkSDw81LeXl1wprwUFBaW7txfyWI+vt7c39evXZ8WKFa42p9PJihUraNKkSZrHNGnSJMX+AMuXL7/i/pJzZObzBnj11Vd56aWXWLp0KQ0aNMiOUsUNMvp5V6tWjd9++42oqCjX4+6776Z169ZERUURGhqaneVLBmXm73ezZs3Yu3ev6wccgD179hASEqLQm8Nl5vOOi4tLFW6Tf+ix7peSvMRteS1j993lfPPmzTM+Pj5m5syZZufOnebRRx81hQoVMtHR0cYYY3r37m2GDRvm2n/NmjWmQIEC5rXXXjO///67iYyM1HRmuUhGP+9XXnnFeHt7m88++8wcO3bM9Th37pxdL0EyIKOf939pVofcJaOf96FDh0xgYKAZOHCg2b17t1m8eLEpUaKEefnll+16CZIBGf28IyMjTWBgoPnkk0/M/v37zXfffWcqVapkunXrZtdLkAw4d+6c2bJli9myZYsBzOuvv262bNli/vzzT2OMMcOGDTO9e/d27Z88ndmzzz5rfv/9dzNlyhRNZ5Zs8uTJply5csbb29s0atTIrF+/3vVcy5YtTXh4eIr9P/30U1OlShXj7e1tbrrpJrNkyZJsrliuR0Y+7/Llyxsg1SMyMjL7C5dMyejf739T8M19Mvp5r1271jRu3Nj4+PiYihUrmrFjx5rLly9nc9WSWRn5vBMTE80LL7xgKlWqZHx9fU1oaKjp37+/OXPmTPYXLhn2448/pvn/cfJnHB4eblq2bJnqmDp16hhvb29TsWJFM2PGjAxf12GMvg8QERERkbwvT43xFRERERG5EgVfEREREckXFHxFREREJF9Q8BURERGRfEHBV0RERETyBQVfEREREckXFHxFREREJF9Q8BURERGRfEHBV0QEmDlzJoUKFbK7jExzOBx89dVXV93nwQcf5J577smWekREciIFXxHJMx588EEcDkeqx969e+0ujZkzZ7rq8fDwoGzZsvTt25cTJ0645fzHjh2jQ4cOABw8eBCHw0FUVFSKfd58801mzpzplutdyQsvvOB6nZ6enoSGhvLoo49y+vTpDJ1HIV1EskIBuwsQEXGn9u3bM2PGjBRtxYsXt6malIKCgti9ezdOp5OtW7fSt29fjh49yrJly6773KVKlbrmPsHBwdd9nfS46aab+P7770lKSuL333/noYceIiYmhvnz52fL9UVErkQ9viKSp/j4+FCqVKkUD09PT15//XVq1qxJwYIFCQ0NpX///pw/f/6K59m6dSutW7cmMDCQoKAg6tevz8aNG13Pr169mubNm+Pn50doaChPPvkkFy5cuGptDoeDUqVKUbp0aTp06MCTTz7J999/z8WLF3E6nYwZM4ayZcvi4+NDnTp1WLp0qevYhIQEBg4cSEhICL6+vpQvX57x48enOHfyUIcKFSoAULduXRwOB61atQJS9qK+9957lC5dGqfTmaLGTp068dBDD7m2v/76a+rVq4evry8VK1bkxRdf5PLly1d9nQUKFKBUqVKUKVOGtm3b0rVrV5YvX+56PikpiYcffpgKFSrg5+dH1apVefPNN13Pv/DCC8yaNYuvv/7a1Xu8cuVKAA4fPky3bt0oVKgQRYoUoVOnThw8ePCq9YiIJFPwFZF8wcPDg7feeosdO3Ywa9YsfvjhB4YOHXrF/Xv16kXZsmX59ddf2bRpE8OGDcPLywuAffv20b59e+699162bdvG/PnzWb16NQMHDsxQTX5+fjidTi5fvsybb77JxIkTee2119i2bRvt2rXj7rvv5o8//gDgrbfeYuHChXz66afs3r2bOXPmEBYWluZ5N2zYAMD333/PsWPH+OKLL1Lt07VrV/7++29+/PFHV9vp06dZunQpvXr1AuDnn3+mT58+PPXUU+zcuZN3332XmTNnMnbs2HS/xoMHD7Js2TK8vb1dbU6nk7Jly7JgwQJ27tzJ6NGjGTFiBJ9++ikAQ4YMoVu3brRv355jx45x7NgxmjZtSmJiIu3atSMwMJCff/6ZNWvWEBAQQPv27UlISEh3TSKSjxkRkTwiPDzceHp6moIFC7oe9913X5r7LliwwBQtWtS1PWPGDBMcHOzaDgwMNDNnzkzz2Icfftg8+uijKdp+/vln4+HhYS5evJjmMf89/549e0yVKlVMgwYNjDHGlC5d2owdOzbFMQ0bNjT9+/c3xhgzaNAg06ZNG+N0OtM8P2C+/PJLY4wxBw4cMIDZsmVLin3Cw8NNp06dXNudOnUyDz30kGv73XffNaVLlzZJSUnGGGNuvfVWM27cuBTnmD17tgkJCUmzBmOMiYyMNB4eHqZgwYLG19fXAAYwr7/++hWPMcaYAQMGmHvvvfeKtSZfu2rVqineg0uXLhk/Pz+zbNmyq55fRMQYYzTGV0TylNatW/POO++4tgsWLAhYvZ/jx49n165dxMbGcvnyZeLj44mLi8Pf3z/VeSIiInjkkUeYPXu26+v6SpUqAdYwiG3btjFnzhzX/sYYnE4nBw4coHr16mnWFhMTQ0BAAE6nk/j4eG655Rbef/99YmNjOXr0KM2aNUuxf7Nmzdi6dStgDVO47bbbqFq1Ku3bt+euu+7i9ttvv673qlevXvTr14+pU6fi4+PDnDlzuP/++/Hw8HC9zjVr1qTo4U1KSrrq+wZQtWpVFi5cSHx8PB9//DFRUVEMGjQoxT5Tpkzhww8/5NChQ1y8eJGEhATq1Klz1Xq3bt3K3r17CQwMTNEeHx/Pvn37MvEOiEh+o+ArInlKwYIFqVy5coq2gwcPctddd/HEE08wduxYihQpwurVq3n44YdJSEhIM8C98MIL9OzZkyVLlvDtt98SGRnJvHnz6Ny5M+fPn+exxx7jySefTHVcuXLlrlhbYGAgmzdvxsPDg5CQEPz8/ACIjY295uuqV68eBw4c4Ntvv+X777+nW7dutG3bls8+++yax15Jx44dMcawZMkSGjZsyM8//8wbb7zhev78+fO8+OKLdOnSJdWxvr6+Vzyvt7e36zN45ZVXuPPOO3nxxRd56aWXAJg3bx5Dhgxh4sSJNGnShMDAQCZMmMAvv/xy1XrPnz9P/fr1U/zAkSyn3MAoIjmbgq+I5HmbNm3C6XQyceJEV29m8njSq6lSpQpVqlRh8ODB9OjRgxkzZtC5c2fq1avHzp07UwXsa/Hw8EjzmKCgIEqXLs2aNWto2bKlq33NmjU0atQoxX7du3ene/fu3HfffbRv357Tp09TpEiRFOdLHk+blJR01Xp8fX3p0qULc+bMYe/evVStWpV69eq5nq9Xrx67d+/O8Ov8r1GjRtGmTRueeOIJ1+ts2rQp/fv3d+3z3x5bb2/vVPXXq1eP+fPnU6JECYKCgq6rJhHJn3Rzm4jkeZUrVyYxMZHJkyezf/9+Zs+ezbRp0664/8WLFxk4cCArV67kzz//ZM2aNfz666+uIQzPPfcca9euZeDAgURFRfHHH3/w9ddfZ/jmtn979tln+d///sf8+fPZvXs3w4YNIyoqiqeeegqA119/nU8++YRdu3axZ88eFixYQKlSpdJcdKNEiRL4+fmxdOlSjh8/TkxMzBWv26tXL5YsWcKHH37ouqkt2ejRo/noo4948cUX2bFjB7///jvz5s1j1KhRGXptTZo0oVatWowbNw6AG264gY0bN7Js2TL27NnD888/z6+//primLCwMLZt28bu3bs5deoUiYmJ9OrVi2LFitGpUyd+/vlnDhw4wMqVK3nyySf566+/MlSTiORPCr4ikufVrl2b119/nf/973/UqFGDOXPmpJgK7L88PT35+++/6dOnD1WqVKFbt2506NCBF198EYBatWqxatUq9uzZQ/Pmzalbty6jR4+mdOnSma7xySefJCIigmeeeYaaNWuydOlSFi5cyA033ABYwyReffVVGjRoQMOGDTl48CDffPONqwf73woUKMBbb73Fu+++S+nSpenUqdMVr9umTRuKFCnC7t276dmzZ4rn2rVrx+LFi/nuu+9o2LAhN998M2+88Qbly5fP8OsbPHgw77//PocPH+axxx6jS5cudO/encaNG/P333+n6P0F6NevH1WrVqVBgwYUL16cNWvW4O/vz08//US5cuXo0qUL1atX5+GHHyY+Pl49wCKSLg5jjLG7CBERERGRrKYeXxERERHJFxR8RURERCRfUPAVERERkXxBwVdERERE8gUFXxERERHJFxR8RURERCRfUPAVERERkXxBwVdERERE8gUFXxERERHJFxR8RURERCRfUPAVERERkXzh/wCg9AmS/3YVHwAAAABJRU5ErkJggg==", + "text/plain": [ + "<Figure size 800x600 with 1 Axes>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Predict probabilities for the training data\n", + "y_train_proba = model_xgb.predict_proba(X_train)[:, 1]\n", + "\n", + "# Calculate the false positive rate (FPR), true positive rate (TPR), and thresholds\n", + "fpr_train, tpr_train, thresholds_train = roc_curve(y_train, y_train_proba)\n", + "\n", + "# Calculate the area under the ROC curve (AUC) for training data\n", + "roc_auc_train = auc(fpr_train, tpr_train)\n", + "\n", + "# Plot the ROC curve for training data\n", + "plt.figure(figsize=(8, 6))\n", + "plt.plot(fpr_train, tpr_train, color='blue', label='ROC curve (area = %0.2f)' % roc_auc_train)\n", + "plt.plot([0, 1], [0, 1], color='red', linestyle='--')\n", + "plt.xlim([0.0, 1.0])\n", + "plt.ylim([0.0, 1.05])\n", + "plt.xlabel('False Positive Rate')\n", + "plt.ylabel('True Positive Rate')\n", + "plt.title('SVM - ROC Curve for Training Data')\n", + "plt.legend(loc='lower right')\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "id": "becb1b58", + "metadata": {}, + "source": [ + "# Miscellaneous:" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "id": "b76a44fc", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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MAzDaNOmjfHkk0+6v6+trTXatWvnvpdhGMa1115rTJo0yTAMwygoKDAkGevXrz9rnO+//74hyfjuu+/c+6qqqoxmzZoZW7du9Th27NixxqhRowzDMIzp06cbPXv29Ph+6tSpZ1zrxyQZb7311jm/f+qpp4y0tDT351mzZhnh4eHG4cOH3fv+9re/GWFhYcaRI0cMwzCMSy65xFi5cqXHdR599FEjPT3dMAzDKCwsNCQZn3766TnvC6DhGCNHyFq7dq1iYmJUW1srl8ulX/3qV5o9e7b7+969e3uMi3/22Wfat2+fYmNjPa5TVVWl/fv3q6ysTEeOHPFYgz0iIkKXX375Ge3103bt2qXw8HBde+219Y573759+v7773X99dd77K+pqdGll14qSdq9e/cZa8Gnp6fX+x6nvfLKK1q0aJH279+viooKnTp1SnFxcR7HpKamqm3bth73cblcKigoUGxsrPbv36+xY8dq3Lhx7mNOnTql+Ph4r+MB4D0SOULWoEGDtGTJEkVGRio5OVkREZ6/7s2bN/f4XFFRobS0NL388stnXOviiy9uUAxNmzb1+pyKigpJ0l//+lePBCrVjfv7yrZt2zR69GjNmTNHQ4YMUXx8vFatWqWnn37a61ife+65M/6wCA8P91msAM6NRI6Q1bx5c3Xu3Lnex1922WV65ZVX1Lp16zOq0tPatGmjjz76SNdcc42kusozPz9fl1122VmP7927t1wulzZu3KiMjIwzvj/dEXA6ne59PXv2VFRUlA4dOnTOSr5Hjx7uiXunbd++/cI/5H/YunWr2rdvr4cffti978svvzzjuEOHDqm4uFjJycnu+4SFhalbt25KTExUcnKyDhw4oNGjR3t1fwC+wWQ34AejR4/WRRddpOHDh2vz5s0qLCzUBx98oPvuu0+HDx+WJE2aNElPPPGEVq9erT179ujee+897zPgHTp0UFZWln7zm99o9erV7mu++uqrkqT27dvL4XBo7dq1+vrrr1VRUaHY2FhNmTJFkydP1osvvqj9+/dr586d+sMf/uCeQPa73/1Oe/fu1YMPPqiCggKtXLlSeXl5Xv28Xbp00aFDh7Rq1Srt379fixYtOuvEvejoaGVlZemzzz7T5s2bdd999+nWW29VUlKSJGnOnDnKycnRokWL9K9//Uuff/65li9frvnz53sVD4CGIZEDP2jWrJk2bdqk1NRUjRw5Uj169NDYsWNVVVXlrtAfeOAB/frXv1ZWVpbS09MVGxurW2655bzXXbJkiX7xi1/o3nvvVffu3TVu3DhVVlZKktq2bas5c+Zo2rRpSkxM1IQJEyRJjz76qGbMmKGcnBz16NFDN954o/7617+qY8eOkurGrd944w2tXr1affv21dKlS/X444979fPefPPNmjx5siZMmKB+/fpp69atmjFjxhnHde7cWSNHjtRNN92kG264QX369PF4vOyuu+7S888/r+XLl6t379669tprlZeX544VgH85jHPN0gEAAEGPihwAAAsjkQMAYGEkcgAALIxEDgCAhZHIAQCwMBI5AAAWRiIHAMDCSOQAAFgYiRwAAAsjkQMAYGEkcgAALOz/A2yWZt/CJum8AAAAAElFTkSuQmCC", + "text/plain": [ + "<Figure size 640x480 with 2 Axes>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "#######CONFUSION MATRIX ###########\n", + "from sklearn import metrics\n", + "y_test_pred_xgb = model_xgb.predict(X_test)\n", + "confusion_matrix_test = metrics.confusion_matrix(y_test, y_test_pred_xgb)\n", + "cm_display = metrics.ConfusionMatrixDisplay(confusion_matrix = confusion_matrix_test)\n", + "cm_display.plot()\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "id": "416c4ba4", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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SosXL9azzz6r6Oho1/gll1yiV155xafBAQDgOzYfbMHH60S+ZMkSvfzyyxo5cqQiIyNd43369NG+fft8GhwAAD5Da73eN998o86dOzcYdzqdqq2t9UlQAADAM14n8p49e2rTpk0Nxt9++23169fPJ0EBAOBzYVqRe/1kt6lTpyonJ0fffPONnE6n3n33XRUUFGjJkiVavXq1P2IEAMC8MH37mdcV+dChQ7Vq1Sr97//+r1q0aKGpU6dq7969WrVqla6//np/xAgAAM6jUc9av/LKK7V27VpfxwIAgN+E62tMG/3SlB07dmjv3r2S6ufNMzIyfBYUAAA+x9vP6n399de67bbb9PHHH6tly5aSpNLSUv3yl7/UsmXL1KFDB1/HCAAAzsPrOfK77rpLtbW12rt3r06ePKmTJ09q7969cjqduuuuu/wRIwAA5p1d7GZmC0JeV+QbNmzQJ598om7durnGunXrpt///ve68sorfRocAAC+YjPqNzPHByOvE3lqauo5H/xSV1enlJQUnwQFAIDPhekcudet9eeee07jx4/Xjh07XGM7duzQAw88oP/6r//yaXAAAOCneVSRt2rVSjbbP+YGKisrNWDAAEVF1R9+5swZRUVF6Xe/+52GDRvml0ABADAlTB8I41Einz17tp/DAADAz8K0te5RIs/JyfF3HAAAoBEa/UAYSaqqqlJNTY3bmN1uNxUQAAB+EaYVudeL3SorKzVu3Di1a9dOLVq0UKtWrdw2AACCUpi+/czrRP7www/rww8/1Lx58xQTE6NXXnlF06dPV0pKipYsWeKPGAEAwHl43VpftWqVlixZomuuuUajRo3SlVdeqc6dO6tjx456/fXXNXLkSH/ECQCAOWG6at3rivzkyZO68MILJdXPh588eVKSNHDgQG3cuNG30QEA4CNnn+xmZgtGXifyCy+8UIWFhZKk7t27680335RUX6mffYkKAABoGl4n8lGjRumzzz6TJD366KPKz89XbGysJk6cqIceesjnAQIA4BNhutjN6znyiRMnuv6clZWlffv2aefOnercubN69+7t0+AAAMBPM3UfuSR17NhRHTt29EUsAAD4jU0m337ms0h8y6NEPmfOHI9PeP/99zc6GAAAwsW8efM0b948HT58WJJ08cUXa+rUqRo8eLCk+oeqPfjgg1q2bJmqq6uVnZ2tuXPn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fPPNatmypRITEzV06FAdPnzYdc66ujrl5uaqZcuWat26tR5++GH9+HUFP26tV1dX65FHHlFqaqpiYmLUuXNnLVy4UIcPH3a9qKNVq1ay2Wy68847JdW/JjYvL0/p6emKi4tTnz599Pbbb7td5/3331fXrl0VFxenQYMGucXpqUceeURdu3ZV8+bNdeGFF2rKlCmqra1tsN9LL72k1NRUNW/eXDfffLPKysrcvn/llVfUo0cPxcbGqnv37po7d67XsQBoHBI5LCMuLk41NTWuz+vWrVNBQYHWrl2r1atXq7a2VtnZ2UpISNCmTZv08ccfKz4+XjfeeKPruOeff16LFy/Wq6++qs2bN+vkyZNavnz5T173jjvu0P/8z/9ozpw52rt3r1566SXFx8crNTVV77zzjiSpoKBAx44d04svvihJysvL05IlSzR//nz99a9/1cSJE3X77bdrw4YNkur/wTF8+HANGTJEe/bs0V133aVHH33U6/9NEhIStHjxYn355Zd68cUXtWDBAs2aNcttnwMHDujNN9/UqlWrtGbNGu3evVv33Xef6/vXX39dU6dO1VNPPaW9e/fq6aef1pQpU/Taa695HQ+ARjCAMJSTk2MMHTrUMAzDcDqdxtq1a42YmBhj0qRJru+TkpKM6upq1zF//OMfjW7duhlOp9M1Vl1dbcTFxRkffPCBYRiG0b59e+PZZ591fV9bW2t06NDBdS3DMIyrr77aeOCBBwzDMIyCggJDkrF27dpzxvnRRx8ZkoxTp065xqqqqozmzZsbn3zyidu+o0ePNm677TbDMAxj8uTJRs+ePd2+f+SRRxqc68ckGcuXLz/v988995yRkZHh+jxt2jQjMjLS+Prrr11jf/7zn42IiAjj2LFjhmEYxkUXXWQsXbrU7TxPPvmkkZmZaRiGYRQWFhqSjN27d5/3ugAajzlyhK3Vq1crPj5etbW1cjqd+rd/+zc98cQTru979erlNi/+2Wef6cCBA0pISHA7T1VVlQ4ePKiysjIdO3bM7R3sUVFR6t+/f4P2+ll79uxRZGSkrr76ao/jPnDggL7//ntdf/31buM1NTXq16+fJGnv3r0N3gWfmZnp8TXOeuONNzRnzhwdPHhQFRUVOnPmjOx2u9s+aWlpuuCCC9yu43Q6VVBQoISEBB08eFCjR4/WmDFjXPucOXNGDofD63gAeI9EjrA1aNAgzZs3T9HR0UpJSVFUlPuve4sWLdw+V1RUKCMjQ6+//nqDc7Vt27ZRMcTFxXl9TEVFhSTpvffec0ugUv28v69s2bJFI0eO1PTp05WdnS2Hw6Fly5bp+eef9zrWBQsWNPiHRWRkpM9iBXB+JHKErRYtWqhz584e73/ppZfqjTfeULt27RpUpWe1b99e27Zt01VXXSWpvvLcuXOnLr300nPu36tXLzmdTm3YsEFZWVkNvj/bEairq3ON9ezZUzExMTpy5Mh5K/kePXq4Fu6dtXXr1p//If/JJ598oo4dO+qxxx5zjf3tb39rsN+RI0d09OhRpaSkuK4TERGhbt26KSkpSSkpKTp06JBGjhzp1fUB+AaL3YC/GzlypNq0aaOhQ4dq06ZNKiws1Pr163X//ffr66+/liQ98MADeuaZZ7RixQrt27dP991330/eA96pUyfl5OTod7/7nVasWOE655tvvilJ6tixo2w2m1avXq0TJ06ooqJCCQkJmjRpkiZOnKjXXntNBw8e1K5du/T73//etYDsnnvu0f79+/XQQw+poKBAS5cu1eLFi736ebt06aIjR45o2bJlOnjwoObMmXPOhXuxsbHKycnRZ599pk2bNun+++/XzTffrOTkZEnS9OnTlZeXpzlz5uirr77S559/rkWLFumFF17wKh4AjUMiB/6uefPm2rhxo9LS0jR8+HD16NFDo0ePVlVVlatCf/DBB/Xv//7vysnJUWZmphISEvSb3/zmJ887b948/fa3v9V9992n7t27a8yYMaqsrJQkXXDBBZo+fboeffRRJSUlady4cZKkJ598UlOmTFFeXp569OihG2+8Ue+9957S09Ml1c9bv/POO1qxYoX69Omj+fPn6+mnn/bq573ppps0ceJEjRs3Tn379tUnn3yiKVOmNNivc+fOGj58uH71q1/phhtuUO/evd1uL7vrrrv0yiuvaNGiRerVq5euvvpqLV682BUrAP+yGedbpQMAAIIeFTkAACGMRA4AQAgjkQMAEMJI5AAAhDASOQAAIYxEDgBACCORAwAQwkjkAACEMBI5AAAhjEQOAEAII5EDABDC/j8sNaowBkcxmQAAAABJRU5ErkJggg==", + "text/plain": [ + "<Figure size 640x480 with 2 Axes>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "#######CONFUSION MATRIX ###########\n", + "y_train_pred_xgb = model_xgb.predict(X_train)\n", + "confusion_matrix_train = metrics.confusion_matrix(y_train, y_train_pred_xgb)\n", + "cm_display = metrics.ConfusionMatrixDisplay(confusion_matrix = confusion_matrix_train)\n", + "cm_display.plot()\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "id": "8cacb3f2", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Accuracy : 0.9831932773109243\n", + "Sensitivity : 1.0\n", + "Specificity : 0.9672131147540983\n" + ] + } + ], + "source": [ + "total1=sum(sum(confusion_matrix_test))\n", + "#####from confusion matrix calculate accuracy\n", + "accuracy1=(confusion_matrix_test[0,0]+confusion_matrix_test[1,1])/total1\n", + "print ('Accuracy : ', accuracy1)\n", + "\n", + "sensitivity1 = confusion_matrix_test[0,0]/(confusion_matrix_test[0,0]+confusion_matrix_test[0,1])\n", + "print('Sensitivity : ', sensitivity1 )\n", + "\n", + "specificity1 = confusion_matrix_test[1,1]/(confusion_matrix_test[1,0]+confusion_matrix_test[1,1])\n", + "print('Specificity : ', specificity1)" + ] + }, + { + "cell_type": "markdown", + "id": "bee03388", + "metadata": {}, + "source": [ + "# Feature importance" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "id": "6688e037", + "metadata": {}, + "outputs": [], + "source": [ + "# for important features:\n", + "important_feat = model_xgb.coef_[0]\n", + "#get indices of those important features\n", + "idx = important_feat.argsort(kind= \"quicksort\")\n", + "idx= idx[::-1][:50]" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "id": "4e6a7ea1", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([140, 32, 84, 17, 169, 208, 29, 89, 83, 215, 113, 212, 170,\n", + " 85, 94, 103, 10, 75, 52, 49, 126, 228, 65, 62, 123, 66,\n", + " 74, 53, 87, 158, 200, 160, 57, 44, 86, 27, 61, 63, 150,\n", + " 56, 5, 33, 202, 88, 229, 6, 9, 97, 196, 90])" + ] + }, + "execution_count": 34, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "idx" + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "id": "f2101fe1", + "metadata": {}, + "outputs": [], + "source": [ + "df1 = X.T" + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "id": "2cbf1166", + "metadata": {}, + "outputs": [], + "source": [ + "top_met = df1.iloc[idx]" + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "id": "2370b2df", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Index(['hsa-miR-424-5p', 'hsa-miR-130b-3p', 'hsa-miR-21-5p', 'hsa-miR-1246',\n", + " 'hsa-miR-455-3p', 'hsa-miR-7-5p', 'hsa-miR-1290', 'hsa-miR-224-5p',\n", + " 'hsa-miR-21-3p', 'hsa-miR-96-5p', 'hsa-miR-3198', 'hsa-miR-93-5p',\n", + " 'hsa-miR-455-5p', 'hsa-miR-214-3p', 'hsa-miR-25-3p', 'hsa-miR-301a-3p',\n", + " 'hsa-miR-106b-5p', 'hsa-miR-199a-5p', 'hsa-miR-152', 'hsa-miR-151a-3p',\n", + " 'hsa-miR-3651', 'miRNABrightCorner30', 'hsa-miR-18a-5p',\n", + " 'hsa-miR-181b-5p', 'hsa-miR-34b-5p', 'hsa-miR-18b-5p',\n", + " 'hsa-miR-199a-3p', 'hsa-miR-155-5p', 'hsa-miR-22-5p', 'hsa-miR-4449',\n", + " 'hsa-miR-630', 'hsa-miR-4465', 'hsa-miR-16-2-3p', 'hsa-miR-146b-5p',\n", + " 'hsa-miR-22-3p', 'hsa-miR-128', 'hsa-miR-181a-5p', 'hsa-miR-185-5p',\n", + " 'hsa-miR-4306', 'hsa-miR-15b-5p', 'hsa-let-7d-5p', 'hsa-miR-132-3p',\n", + " 'hsa-miR-642a-3p', 'hsa-miR-223-3p', 'mr_1', 'hsa-let-7i-5p',\n", + " 'hsa-miR-103a-3p', 'hsa-miR-27a-3p', 'hsa-miR-574-5p',\n", + " 'hsa-miR-23a-3p'],\n", + " dtype='object')" + ] + }, + "execution_count": 37, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "top_met.index" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "68160fc3", + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "cbad7af5", + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d23c932b", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "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.9.16" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/03_Machine_Learning/miRNA_limma_dataset_xgb_described.ipynb b/03_Machine_Learning/miRNA_limma_dataset_xgb_described.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..f1824a818c2ba40d0a4cd57e81734b5d4e13cf7a --- /dev/null +++ b/03_Machine_Learning/miRNA_limma_dataset_xgb_described.ipynb @@ -0,0 +1,1219 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 26, + "id": "f097ad55", + "metadata": {}, + "outputs": [], + "source": [ + "import warnings\n", + "warnings.filterwarnings('ignore')\n", + "import pandas as pd\n", + "from sklearn.model_selection import train_test_split\n", + "from sklearn.metrics import RocCurveDisplay\n", + "import matplotlib.pyplot as plt\n", + "import numpy as np\n", + "from imblearn.over_sampling import SMOTE\n", + "from sklearn.linear_model import Lasso\n", + "import xgboost as xgb\n", + "from sklearn.model_selection import GridSearchCV\n", + "import pandas as pd\n", + "import numpy as np\n", + "\n", + "#np.random.seed(7)" + ] + }, + { + "cell_type": "markdown", + "id": "73b6611a", + "metadata": {}, + "source": [ + "# Data Preprocessing" + ] + }, + { + "cell_type": "code", + "execution_count": 88, + "id": "0eeb7a35", + "metadata": {}, + "outputs": [], + "source": [ + "df = pd.read_csv(\"DS/miRNA_DS_preprocessed_data.csv\") # read the data" + ] + }, + { + "cell_type": "code", + "execution_count": 89, + "id": "6e7836e1", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(230, 239)" + ] + }, + "execution_count": 89, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.shape" + ] + }, + { + "cell_type": "code", + "execution_count": 90, + "id": "683b63ce", + "metadata": {}, + "outputs": [], + "source": [ + "df = df.T # transpose the data" + ] + }, + { + "cell_type": "code", + "execution_count": 91, + "id": "2e78017d", + "metadata": {}, + "outputs": [], + "source": [ + "#Transform the input data\n", + "df.rename(columns=df.iloc[0], inplace = True)\n", + "df.drop(df.index[0], inplace = True)\n", + "df=df.reset_index()" + ] + }, + { + "cell_type": "code", + "execution_count": 92, + "id": "4c50c510", + "metadata": {}, + "outputs": [], + "source": [ + "metadata = pd.read_csv(\"DS/miRNA_DS_metadata_col_info.csv\") # read the class information" + ] + }, + { + "cell_type": "code", + "execution_count": 93, + "id": "6730cf89", + "metadata": {}, + "outputs": [], + "source": [ + "df= df.merge(metadata, left_on=\"index\", right_on= \"Unnamed: 0\") # merge the expresison data with class info" + ] + }, + { + "cell_type": "code", + "execution_count": 94, + "id": "7a8ad8ad", + "metadata": {}, + "outputs": [], + "source": [ + "df['title0'] = df['title0'].replace('(?i)mucosa|normal|healthy', 0, regex=True) # replace the class name \n" + ] + }, + { + "cell_type": "code", + "execution_count": 95, + "id": "a8cf8643", + "metadata": {}, + "outputs": [], + "source": [ + "df['title0'] = df['title0'].replace('(?i)Tumor|Cancer|carcinoma', 1, regex=True)" + ] + }, + { + "cell_type": "code", + "execution_count": 96, + "id": "f5d203aa", + "metadata": {}, + "outputs": [], + "source": [ + "df = df[pd.to_numeric(df['title0'], errors='coerce').notnull()]#remove all non-numeric data from the column." + ] + }, + { + "cell_type": "code", + "execution_count": 97, + "id": "523bdaa6", + "metadata": {}, + "outputs": [], + "source": [ + "df= df.drop(['index', 'Unnamed: 0'], axis=1)" + ] + }, + { + "cell_type": "code", + "execution_count": 98, + "id": "46a6fb36", + "metadata": {}, + "outputs": [], + "source": [ + "df= df.rename(columns={\"title0\": \"index\"})" + ] + }, + { + "cell_type": "code", + "execution_count": 99, + "id": "e26f88c5", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "index\n", + "1 119\n", + "0 119\n", + "Name: count, dtype: int64" + ] + }, + "execution_count": 99, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df['index'].value_counts()" + ] + }, + { + "cell_type": "code", + "execution_count": 100, + "id": "fbaf2507", + "metadata": {}, + "outputs": [], + "source": [ + "df= df.apply(pd.to_numeric)" + ] + }, + { + "cell_type": "code", + "execution_count": 101, + "id": "f3f7adb5", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "index\n", + "1 119\n", + "0 119\n", + "Name: count, dtype: int64" + ] + }, + "execution_count": 101, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df['index'].value_counts()" + ] + }, + { + "cell_type": "markdown", + "id": "203eb696", + "metadata": {}, + "source": [ + "# t-SNE" + ] + }, + { + "cell_type": "code", + "execution_count": 102, + "id": "e1027be2", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAksAAAHHCAYAAACvJxw8AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAAB1tklEQVR4nO3deXgUVdYG8LcTQlgTDNlJSFhkXxQRBIZNUUDUKIoIKuDCDIoLgqiMSgCVqIAwIuI2gltQFBTHTxlZggsgKoKCAhIMi0ACCiQikJjkfn/UdJNOeqmqrr3f3/P0A+l0d92udFeduvfcc11CCAEiIiIi8inC7AYQERERWRmDJSIiIqIAGCwRERERBcBgiYiIiCgABktEREREATBYIiIiIgqAwRIRERFRAAyWiIiIiAJgsEREREQUAIMlIiKDrVu3Di6XC+vWrTO7KUQkA4MlIjLVhg0bMG3aNJw4cUL2c06ePIns7Gx06NAB9evXR+PGjXHeeefh3nvvxaFDhzyPmzZtGlwuF5KSknDq1Kkar5OZmYkrrrjC6z6Xy+X3Nm7cuIDtWrx4sdfj69Spg1atWuGuu+5CUVGR7PcXyMcff4xp06Zp8lpEJE8tsxtAROFtw4YNmD59OsaMGYNGjRoFffxff/2FPn36YOfOnRg9ejTuvvtunDx5Ej/++CNyc3NxzTXXIDU11es5R44cwcKFCzFp0iRZbbr00ksxatSoGve3atVK1vNnzJiBZs2a4cyZM/jyyy+xcOFCfPzxx9i+fTvq1asn6zX8+fjjj7FgwQIGTEQGYrBERLbywQcfYMuWLXjrrbcwcuRIr9+dOXMGZWVlNZ5z3nnnYdasWbjzzjtRt27doNto1aoVbrrpJtVtHDx4MLp27QoAuP3229G4cWM888wzWLFiBUaMGKH6dYnIHByGIyLTTJs2DZMnTwYANGvWzDN8tXfvXr/P2bNnDwCgV69eNX5Xp04dxMTE1Lh/6tSpKCoqwsKFC7VpuEIXX3wxAKCgoCDg4959911ccMEFqFu3LuLj43HTTTfh4MGDnt+PGTMGCxYsAOA9XEhE+mLPEhGZZujQofj555+xZMkSzJ07F/Hx8QCAhIQEv8/JyMgAALz++ut45JFHZAULvXv3xsUXX4ynn34ad9xxR9DepTNnzuC3336rcX9MTAxq164ddHvVuQO8xo0b+33M4sWLccstt+DCCy9ETk4OioqK8K9//Qvr16/Hli1b0KhRI/zjH//AoUOHsGrVKrzxxhuK20FEKgkiIhPNmjVLABAFBQWyHn/q1CnRunVrAUBkZGSIMWPGiH//+9+iqKioxmOzs7MFAHH06FHx2WefCQDimWee8fw+IyNDDBkyxOs5APzelixZErBtixYtEgDE6tWrxdGjR8WBAwfE22+/LRo3bizq1q0rfv31VyGEEHl5eQKAyMvLE0IIUVZWJhITE0WHDh3E6dOnPa/30UcfCQBi6tSpnvvGjx8veOgmMhaH4YjIVurWrYtNmzZ5hu8WL16M2267DSkpKbj77rtRWlrq83l9+vRB//798fTTT+P06dMBt5GVlYVVq1bVuPXv319WGwcMGICEhASkp6fjhhtuQIMGDfD++++jSZMmPh//7bff4siRI7jzzjtRp04dz/1DhgxBmzZt8H//93+ytktE+uAwHBFZ0rFjx7yStevWrYvY2FgAQGxsLJ5++mk8/fTT2LdvH9asWYPZs2fjueeeQ2xsLB5//HGfrzlt2jT07dsXL7zwAu677z6/205LS8OAAQNUt33BggVo1aoVatWqhaSkJLRu3RoREf6vTfft2wcAaN26dY3ftWnTBl9++aXqthBR6NizRESWNHToUKSkpHhu9957r8/HZWRk4NZbb8X69evRqFEjvPXWW35fs0+fPujXr5+s3qVQdOvWDQMGDEC/fv3Qtm3bgIESEVkfe5aIyFT+ErTnzJmD48ePe36uXjupunPOOQctWrTA9u3bAz5u2rRp6NevH1588UXljdWJO2l9165dnplzbrt27fL8HvC/v4hIPwyWiMhU9evXB4AaFbwvuOACn4///vvv0aRJE8/MObd9+/bhp59+8jmUVVXfvn3Rr18/PPXUUxBCqG+4hrp27YrExES88MILuPXWWxEdHQ0A+OSTT7Bjxw5MnTrV89iq+0tOEU8iCh2DJSIylTsoevjhh3HDDTcgKioKV155pScoqG7VqlXIzs7GVVddhYsuuggNGjTAL7/8gldffRWlpaWyKltnZ2cHTNb++eef8eabb9a4PykpCZdeeqm8N6ZAVFQUnnrqKdxyyy3o27cvRowY4SkdkJmZ6ZVf5d5f99xzDwYOHIjIyEjccMMNmreJiKowezoeEdFjjz0mmjRpIiIiIoKWEfjll1/E1KlTxUUXXSQSExNFrVq1REJCghgyZIhYu3at12Orlg6orm/fvgKAotIBffv2Dfg+3KUDvvnmm4CPq146wO2dd94R559/voiOjhZxcXHixhtv9JQbcCsvLxd33323SEhIEC6Xi2UEiAzgEsIi/dBEREREFsQpGkREREQBMFgiIiIiCoDBEhEREVEADJaIiIiIAmCwRERERBQAgyUiIiKiAFiUUgOVlZU4dOgQGjZsyKUIiIiIbEIIgT/++AOpqakB13BksKSBQ4cOIT093exmEBERkQoHDhxAWlqa398zWNJAw4YNAUg7OyYmxuTWEBERkRwlJSVIT0/3nMf9YbCkAffQW0xMDIMlIiIimwmWQsMEbyIiIqIAGCwRERERBcBgiYiIiCgA5iwZpLKyEmVlZWY3g0wSFRWFyMhIs5tBREQqMFgyQFlZGQoKClBZWWl2U8hEjRo1QnJyMmtxERHZjK2Cpc8//xyzZs3C5s2bcfjwYbz//vu4+uqrPb8XQiA7Oxsvv/wyTpw4gV69emHhwoU499xzA77uggULMGvWLBQWFqJz586YP38+unXrpkmbhRA4fPgwIiMjkZ6eHrDoFTmTEAKnTp3CkSNHAAApKSkmt4iIiJSwVbD0559/onPnzrj11lsxdOjQGr9/+umn8eyzz+K1115Ds2bN8Oijj2LgwIH46aefUKdOHZ+v+c4772DixIl44YUX0L17d8ybNw8DBw7Erl27kJiYGHKby8vLcerUKaSmpqJevXohvx7ZU926dQEAR44cQWJiIofkiIhsxCWEEGY3Qg2Xy+XVsySEQGpqKiZNmoT7778fAFBcXIykpCQsXrwYN9xwg8/X6d69Oy688EI899xzAKTcovT0dNx999146KGHZLWlpKQEsbGxKC4urlFn6cyZMygoKEBmZqbnhEnh6fTp09i7dy+aNWvmN3gnIiLjBDp/V+WYMaGCggIUFhZiwIABnvtiY2PRvXt3bNy40edzysrKsHnzZq/nREREYMCAAX6fAwClpaUoKSnxugXDPBXiZ4CIyJ4cEywVFhYCAJKSkrzuT0pK8vyuut9++w0VFRWKngMAOTk5iI2N9dy4LhwREYWqogJYtw5YskT6t6LC7BaRm2OCJSNNmTIFxcXFntuBAwfMbhIREdnY8uVAZibQvz8wcqT0b2amdD+ZzzHBUnJyMgCgqKjI6/6ioiLP76qLj49HZGSkoucAQHR0tGcdOKeuBzdmzBi4XC48+eSTXvd/8MEHhg0nLVu2DP369UNsbCwaNGiATp06YcaMGTh27Jgh2yciMsLy5cB11wG//up9/8GD0v0MmMznmGCpWbNmSE5Oxpo1azz3lZSUYNOmTejRo4fP59SuXRsXXHCB13MqKyuxZs0av88xjQn9s3Xq1MFTTz2F48eP676t6h5++GEMHz4cF154IT755BNs374dc+bMwffff4833njD8PYo8ddff5ndBCKyiYoK4N57AV9Trdz3TZjAITmz2SpYOnnyJLZu3YqtW7cCkJK6t27div3798PlcmHChAl4/PHH8eGHH2Lbtm0YNWoUUlNTvWoxXXLJJZ6ZbwAwceJEvPzyy3jttdewY8cO3HHHHfjzzz9xyy23GPzuAjCpf3bAgAFITk5GTk6O38csW7YM7du3R3R0NDIzMzFnzhyv32dmZmLmzJm49dZb0bBhQzRt2hQvvfRSwO1+/fXXmDlzJubMmYNZs2ahZ8+eyMzMxKWXXoply5Zh9OjRAIA9e/YgKysLSUlJaNCgAS688EKsXr1a8fZ//fVXjBgxAnFxcahfvz66du2KTZs2eX6/YsUKdOnSBXXq1EHz5s0xffp0lJeXe37vcrmwcOFCXHXVVahfvz6eeOKJwDuWiExjtbygL76o2aNUlRDAgQPS48hEwkby8vIEgBq30aNHCyGEqKysFI8++qhISkoS0dHR4pJLLhG7du3yeo2MjAyRnZ3tdd/8+fNF06ZNRe3atUW3bt3EV199pahdxcXFAoAoLi6u8bvTp0+Ln376SZw+fVrRa3osWyaEyyWE9J05e3O5pNuyZepeN4jRo0eLrKwssXz5clGnTh1x4MABIYQQ77//vnB/bL799lsREREhZsyYIXbt2iUWLVok6tatKxYtWuR5nYyMDBEXFycWLFggdu/eLXJyckRERITYuXOn323fc889okGDBqKsrCxgG7du3SpeeOEFsW3bNvHzzz+LRx55RNSpU0fs27dP9vb/+OMP0bx5c9G7d2/xxRdfiN27d4t33nlHbNiwQQghxOeffy5iYmLE4sWLxZ49e8Snn34qMjMzxbRp0zzbACASExPFq6++Kvbs2eO1/apC/iwQUUiWLRMiLc37UJqWptthVJbc3JqHd1+33Fzz2uhkgc7f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IiIiIgqAwRIRERFRAAyWiMjyXC4XPvjgA7ObEdC6devgcrlw4sQJs5tCRBpjsEREphgzZgxcLhdcLheioqKQlJSESy+9FK+++ioqKyu9Hnv48GEMHjzYpJbK07NnTxw+fBixsbG6bufzzz/HlVdeidTUVFsEkUROwGCJiEwzaNAgHD58GHv37sUnn3yC/v37495778UVV1yB8vJyz+OSk5MtvyZe7dq1kZycDJfLpet2/vzzT3Tu3BkLFizQdTtEdBaDJSIyTXR0NJKTk9GkSRN06dIF//znP7FixQp88sknWLx4sedxVXtQ9u7dC5fLhaVLl6J3796oW7cuLrzwQvz888/45ptv0LVrVzRo0ACDBw/2WrgaAF555RW0bdsWderUQZs2bfD88897fud+3eXLl6N///6oV68eOnfujI0bN3oes2/fPlx55ZU455xzUL9+fbRv3x4ff/wxAN/DcMuWLUP79u0RHR2NzMxMzJkzx6s9mZmZmDlzJm699VY0bNgQTZs2xUsvvRRwnw0ePBiPP/44rrnmGiW7mohCwGCJiCzl4osvRufOnbF8+fKAj8vOzsYjjzyC7777DrVq1cLIkSPxwAMP4F//+he++OIL5OfnY+rUqZ7Hv/XWW5g6dSqeeOIJ7NixAzNnzsSjjz6K1157zet1H374Ydx///3YunUrWrVqhREjRnh6ucaPH4/S0lJ8/vnn2LZtG5566ik0aNDAZ/s2b96M66+/HjfccAO2bduGadOm4dFHH/UKAgFgzpw56Nq1K7Zs2YI777wTd9xxB3bt2qVizxGRbgxZrpeIqJrRo0eLrKwsn78bPny4aNu2rednAOL9998XQghRUFAgAIhXXnnF8/slS5YIAGLNmjWe+3JyckTr1q09P7do0ULk5uZ6beexxx4TPXr08Pu6P/74owAgduzYIYQQomPHjmLatGk+2+xeMf348eNCCCFGjhwpLr30Uq/HTJ48WbRr187zc0ZGhrjppps8P1dWVorExESxcOFCn9uorup+ISL9sGeJiCxHCBE096dTp06e/yclJQEAOnbs6HXfkSNHAEh5Pnv27MFtt92GBg0aeG6PP/449uzZ4/d1U1JSAMDzOvfccw8ef/xx9OrVC9nZ2fjhhx/8tm/Hjh3o1auX1329evXC7t27UVFR4XN7LpcLycnJnu0RkTUwWCIiy9mxYweaNWsW8DFRUVGe/7sDq+r3uWfVnTx5EgDw8ssvY+vWrZ7b9u3b8dVXXwV9Xffr3H777fjll19w8803Y9u2bejatSvmz5+v9m3W2F71dhORNTBYIiJLWbt2LbZt24Zrr71Ws9dMSkpCamoqfvnlF7Rs2dLrFiwoqy49PR3jxo3D8uXLMWnSJLz88ss+H9e2bVusX7/e677169ejVatWiIyMVP1eiMh4tcxuABGFr9LSUhQWFqKiogJFRUVYuXIlcnJycMUVV2DUqFGabmv69Om45557EBsbi0GDBqG0tBTffvstjh8/jokTJ8p6jQkTJmDw4MFo1aoVjh8/jry8PLRt29bnYydNmoQLL7wQjz32GIYPH46NGzfiueee85qBp8bJkyeRn5/v+bmgoABbt25FXFwcmjZtGtJrE5FvDJaIyDQrV65ESkoKatWqhXPOOQedO3fGs88+i9GjRyMiQtuO79tvvx316tXDrFmzMHnyZNSvXx8dO3bEhAkTZL9GRUUFxo8fj19//RUxMTEYNGgQ5s6d6/OxXbp0wdKlSzF16lQ89thjSElJwYwZMzBmzJiQ3se3336L/v37e352B3qjR4+uMdOOiLThEkIIsxtBREREZFXMWSIiIiIKgMESERERUQAMloiIiIgCYLBEREREFACDJSIiIqIAGCwRERERBcBgiYiIiCgABktEREREATBYIiIiIgqAwRIRERFRAAyWiIiIiAJgsEREREQUwP8DRCqI3p7YSUsAAAAASUVORK5CYII=", + "text/plain": [ + "<Figure size 640x480 with 1 Axes>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from sklearn.manifold import TSNE\n", + "#t-SNE\n", + "tsne = TSNE(n_components=2,perplexity=30)\n", + "embedded_data = tsne.fit_transform(df)\n", + "\n", + "# Step 2: Separate data points by class\n", + "class_1_indices = np.where(df['index'] == 0)[0]\n", + "class_2_indices = np.where(df['index'] == 1)[0]\n", + "\n", + "class_1_data = embedded_data[class_1_indices]\n", + "class_2_data = embedded_data[class_2_indices]\n", + "\n", + "# Step 3: Plot the t-SNE plot with different colors for each class\n", + "plt.scatter(class_1_data[:, 0], class_1_data[:, 1], color='red', label='Non-Cancer')\n", + "plt.scatter(class_2_data[:, 0], class_2_data[:, 1], color='blue', label='Cancer')\n", + "\n", + "plt.title('t-SNE Plot')\n", + "plt.xlabel('Dimension 1')\n", + "plt.ylabel('Dimension 2')\n", + "plt.legend()\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "id": "580d9e86", + "metadata": {}, + "source": [ + "#### t-distributed stochastic neighbor embedding (t-SNE) is a statistical method for visualizing high-dimensional data by giving each datapoint a location in a two dimensional map. In the plot above we used perplexity of 30 for visualizing the t-SNE, but we didnt do any dimensionality reduction with it. Blue points are Cancer and the red are non-cancer." + ] + }, + { + "cell_type": "code", + "execution_count": 103, + "id": "6a50f416", + "metadata": {}, + "outputs": [], + "source": [ + "X=df.drop(\"index\",axis=1)\n", + "y=df['index']" + ] + }, + { + "cell_type": "code", + "execution_count": 104, + "id": "e644ab0e", + "metadata": {}, + "outputs": [], + "source": [ + "y=y.astype('int')" + ] + }, + { + "cell_type": "markdown", + "id": "6cee6462", + "metadata": {}, + "source": [ + "# Test train split" + ] + }, + { + "cell_type": "code", + "execution_count": 105, + "id": "1da48142", + "metadata": {}, + "outputs": [], + "source": [ + "# split data into training and testing data-sets\n", + "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state=7)" + ] + }, + { + "cell_type": "code", + "execution_count": 106, + "id": "129430e6", + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/plain": [ + "(index\n", + " 0 30\n", + " 1 30\n", + " Name: count, dtype: int64,\n", + " index\n", + " 0 89\n", + " 1 89\n", + " Name: count, dtype: int64)" + ] + }, + "execution_count": 106, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "y_test.value_counts(),y_train.value_counts()" + ] + }, + { + "cell_type": "markdown", + "id": "1cfe2a06", + "metadata": {}, + "source": [ + "# Cross validation" + ] + }, + { + "cell_type": "code", + "execution_count": 107, + "id": "d3550b5e", + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Fitting 5 folds for each of 36 candidates, totalling 180 fits\n", + "[CV 1/5] END gamma=0.1, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=1.0;, score=1.000 total time= 0.6s\n", + "[CV 2/5] END gamma=0.1, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=1.0;, score=1.000 total time= 0.1s\n", + "[CV 3/5] END gamma=0.1, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=1.0;, score=0.972 total time= 0.2s\n", + "[CV 4/5] END gamma=0.1, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=1.0;, score=0.971 total time= 0.1s\n", + "[CV 5/5] END gamma=0.1, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=1.0;, score=0.971 total time= 0.2s\n", + "[CV 1/5] END gamma=0.1, learning_rate=0.1, max_depth=3, n_estimators=200, subsample=1.0;, score=1.000 total time= 0.6s\n", + "[CV 2/5] END gamma=0.1, learning_rate=0.1, max_depth=3, n_estimators=200, subsample=1.0;, score=1.000 total time= 0.3s\n", + "[CV 3/5] END gamma=0.1, learning_rate=0.1, max_depth=3, n_estimators=200, subsample=1.0;, score=0.972 total time= 0.2s\n", + "[CV 4/5] END gamma=0.1, learning_rate=0.1, max_depth=3, n_estimators=200, subsample=1.0;, score=0.971 total time= 0.7s\n", + "[CV 5/5] END gamma=0.1, learning_rate=0.1, max_depth=3, n_estimators=200, subsample=1.0;, score=0.971 total time= 0.2s\n", + "[CV 1/5] END gamma=0.1, learning_rate=0.1, max_depth=5, n_estimators=100, subsample=1.0;, score=1.000 total time= 0.1s\n", + "[CV 2/5] END gamma=0.1, learning_rate=0.1, max_depth=5, n_estimators=100, subsample=1.0;, score=1.000 total time= 0.4s\n", + "[CV 3/5] END gamma=0.1, learning_rate=0.1, max_depth=5, n_estimators=100, subsample=1.0;, score=0.972 total time= 0.1s\n", + "[CV 4/5] END gamma=0.1, learning_rate=0.1, max_depth=5, n_estimators=100, subsample=1.0;, score=0.971 total time= 0.1s\n", + "[CV 5/5] END gamma=0.1, learning_rate=0.1, max_depth=5, n_estimators=100, subsample=1.0;, score=0.971 total time= 0.2s\n", + "[CV 1/5] END gamma=0.1, learning_rate=0.1, max_depth=5, n_estimators=200, subsample=1.0;, score=1.000 total time= 0.2s\n", + "[CV 2/5] END gamma=0.1, learning_rate=0.1, max_depth=5, n_estimators=200, subsample=1.0;, score=1.000 total time= 0.2s\n", + "[CV 3/5] END gamma=0.1, learning_rate=0.1, max_depth=5, n_estimators=200, subsample=1.0;, score=0.972 total time= 0.2s\n", + "[CV 4/5] END gamma=0.1, learning_rate=0.1, max_depth=5, n_estimators=200, subsample=1.0;, score=0.971 total time= 0.2s\n", + "[CV 5/5] END gamma=0.1, learning_rate=0.1, max_depth=5, n_estimators=200, subsample=1.0;, score=0.971 total time= 0.2s\n", + "[CV 1/5] END gamma=0.1, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=1.0;, score=0.944 total time= 0.3s\n", + "[CV 2/5] END gamma=0.1, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=1.0;, score=0.889 total time= 0.2s\n", + "[CV 3/5] END gamma=0.1, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=1.0;, score=0.972 total time= 0.2s\n", + "[CV 4/5] END gamma=0.1, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=1.0;, score=0.971 total time= 0.2s\n", + "[CV 5/5] END gamma=0.1, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=1.0;, score=0.943 total time= 0.2s\n", + "[CV 1/5] END gamma=0.1, learning_rate=0.01, max_depth=3, n_estimators=200, subsample=1.0;, score=1.000 total time= 0.4s\n", + "[CV 2/5] END gamma=0.1, learning_rate=0.01, max_depth=3, n_estimators=200, subsample=1.0;, score=0.917 total time= 0.4s\n", + "[CV 3/5] END gamma=0.1, learning_rate=0.01, max_depth=3, n_estimators=200, subsample=1.0;, score=0.972 total time= 0.3s\n", + "[CV 4/5] END gamma=0.1, learning_rate=0.01, max_depth=3, n_estimators=200, subsample=1.0;, score=0.971 total time= 0.3s\n", + "[CV 5/5] END gamma=0.1, learning_rate=0.01, max_depth=3, n_estimators=200, subsample=1.0;, score=0.943 total time= 0.4s\n", + "[CV 1/5] END gamma=0.1, learning_rate=0.01, max_depth=5, n_estimators=100, subsample=1.0;, score=0.944 total time= 0.2s\n", + "[CV 2/5] END gamma=0.1, learning_rate=0.01, max_depth=5, n_estimators=100, subsample=1.0;, score=0.889 total time= 0.2s\n", + "[CV 3/5] END gamma=0.1, learning_rate=0.01, max_depth=5, n_estimators=100, subsample=1.0;, score=0.972 total time= 0.2s\n", + "[CV 4/5] END gamma=0.1, learning_rate=0.01, max_depth=5, n_estimators=100, subsample=1.0;, score=0.971 total time= 0.2s\n", + "[CV 5/5] END gamma=0.1, learning_rate=0.01, max_depth=5, n_estimators=100, subsample=1.0;, score=0.943 total time= 0.2s\n", + "[CV 1/5] END gamma=0.1, learning_rate=0.01, max_depth=5, n_estimators=200, subsample=1.0;, score=1.000 total time= 0.4s\n", + "[CV 2/5] END gamma=0.1, learning_rate=0.01, max_depth=5, n_estimators=200, subsample=1.0;, score=0.917 total time= 0.5s\n", + "[CV 3/5] END gamma=0.1, learning_rate=0.01, max_depth=5, n_estimators=200, subsample=1.0;, score=0.972 total time= 0.4s\n", + "[CV 4/5] END gamma=0.1, learning_rate=0.01, max_depth=5, n_estimators=200, subsample=1.0;, score=0.971 total time= 0.3s\n", + "[CV 5/5] END gamma=0.1, learning_rate=0.01, max_depth=5, n_estimators=200, subsample=1.0;, score=0.943 total time= 0.4s\n", + "[CV 1/5] END gamma=0.1, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=1.0;, score=0.944 total time= 0.2s\n", + "[CV 2/5] END gamma=0.1, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=1.0;, score=0.889 total time= 0.2s\n", + "[CV 3/5] END gamma=0.1, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=1.0;, score=0.972 total time= 0.2s\n", + "[CV 4/5] END gamma=0.1, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=1.0;, score=0.971 total time= 0.2s\n", + "[CV 5/5] END gamma=0.1, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=1.0;, score=0.943 total time= 0.2s\n", + "[CV 1/5] END gamma=0.1, learning_rate=0.001, max_depth=3, n_estimators=200, subsample=1.0;, score=0.944 total time= 0.4s\n", + "[CV 2/5] END gamma=0.1, learning_rate=0.001, max_depth=3, n_estimators=200, subsample=1.0;, score=0.889 total time= 0.3s\n", + "[CV 3/5] END gamma=0.1, learning_rate=0.001, max_depth=3, n_estimators=200, subsample=1.0;, score=0.972 total time= 1.0s\n", + "[CV 4/5] END gamma=0.1, learning_rate=0.001, max_depth=3, n_estimators=200, subsample=1.0;, score=0.971 total time= 0.4s\n", + "[CV 5/5] END gamma=0.1, learning_rate=0.001, max_depth=3, n_estimators=200, subsample=1.0;, score=0.943 total time= 0.4s\n", + "[CV 1/5] END gamma=0.1, learning_rate=0.001, max_depth=5, n_estimators=100, subsample=1.0;, score=0.944 total time= 0.2s\n", + "[CV 2/5] END gamma=0.1, learning_rate=0.001, max_depth=5, n_estimators=100, subsample=1.0;, score=0.889 total time= 0.2s\n", + "[CV 3/5] END gamma=0.1, learning_rate=0.001, max_depth=5, n_estimators=100, subsample=1.0;, score=0.972 total time= 0.2s\n", + "[CV 4/5] END gamma=0.1, learning_rate=0.001, max_depth=5, n_estimators=100, subsample=1.0;, score=0.971 total time= 0.2s\n", + "[CV 5/5] END gamma=0.1, learning_rate=0.001, max_depth=5, n_estimators=100, subsample=1.0;, score=0.943 total time= 0.2s\n", + "[CV 1/5] END gamma=0.1, learning_rate=0.001, max_depth=5, n_estimators=200, subsample=1.0;, score=0.944 total time= 0.4s\n", + "[CV 2/5] END gamma=0.1, learning_rate=0.001, max_depth=5, n_estimators=200, subsample=1.0;, score=0.889 total time= 0.3s\n", + "[CV 3/5] END gamma=0.1, learning_rate=0.001, max_depth=5, n_estimators=200, subsample=1.0;, score=0.972 total time= 0.4s\n", + "[CV 4/5] END gamma=0.1, learning_rate=0.001, max_depth=5, n_estimators=200, subsample=1.0;, score=0.971 total time= 0.4s\n", + "[CV 5/5] END gamma=0.1, learning_rate=0.001, max_depth=5, n_estimators=200, subsample=1.0;, score=0.943 total time= 0.5s\n", + "[CV 1/5] END gamma=0.01, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=1.0;, score=1.000 total time= 0.2s\n", + "[CV 2/5] END gamma=0.01, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=1.0;, score=1.000 total time= 0.2s\n", + "[CV 3/5] END gamma=0.01, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=1.0;, score=0.972 total time= 0.1s\n", + "[CV 4/5] END gamma=0.01, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=1.0;, score=0.971 total time= 0.1s\n", + "[CV 5/5] END gamma=0.01, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=1.0;, score=0.971 total time= 0.1s\n", + "[CV 1/5] END gamma=0.01, learning_rate=0.1, max_depth=3, n_estimators=200, subsample=1.0;, score=1.000 total time= 0.2s\n", + "[CV 2/5] END gamma=0.01, learning_rate=0.1, max_depth=3, n_estimators=200, subsample=1.0;, score=1.000 total time= 0.3s\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[CV 3/5] END gamma=0.01, learning_rate=0.1, max_depth=3, n_estimators=200, subsample=1.0;, score=0.972 total time= 0.3s\n", + "[CV 4/5] END gamma=0.01, learning_rate=0.1, max_depth=3, n_estimators=200, subsample=1.0;, score=0.971 total time= 0.3s\n", + "[CV 5/5] END gamma=0.01, learning_rate=0.1, max_depth=3, n_estimators=200, subsample=1.0;, score=0.971 total time= 0.3s\n", + "[CV 1/5] END gamma=0.01, learning_rate=0.1, max_depth=5, n_estimators=100, subsample=1.0;, score=1.000 total time= 0.2s\n", + "[CV 2/5] END gamma=0.01, learning_rate=0.1, max_depth=5, n_estimators=100, subsample=1.0;, score=1.000 total time= 0.1s\n", + "[CV 3/5] END gamma=0.01, learning_rate=0.1, max_depth=5, n_estimators=100, subsample=1.0;, score=0.972 total time= 0.2s\n", + "[CV 4/5] END gamma=0.01, learning_rate=0.1, max_depth=5, n_estimators=100, subsample=1.0;, score=0.971 total time= 0.2s\n", + "[CV 5/5] END gamma=0.01, learning_rate=0.1, max_depth=5, n_estimators=100, subsample=1.0;, score=0.971 total time= 0.2s\n", + "[CV 1/5] END gamma=0.01, learning_rate=0.1, max_depth=5, n_estimators=200, subsample=1.0;, score=1.000 total time= 0.2s\n", + "[CV 2/5] END gamma=0.01, learning_rate=0.1, max_depth=5, n_estimators=200, subsample=1.0;, score=1.000 total time= 0.3s\n", + "[CV 3/5] END gamma=0.01, learning_rate=0.1, max_depth=5, n_estimators=200, subsample=1.0;, score=0.972 total time= 0.2s\n", + "[CV 4/5] END gamma=0.01, learning_rate=0.1, max_depth=5, n_estimators=200, subsample=1.0;, score=0.971 total time= 0.2s\n", + "[CV 5/5] END gamma=0.01, learning_rate=0.1, max_depth=5, n_estimators=200, subsample=1.0;, score=0.971 total time= 0.2s\n", + "[CV 1/5] END gamma=0.01, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=1.0;, score=0.944 total time= 0.2s\n", + "[CV 2/5] END gamma=0.01, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=1.0;, score=0.917 total time= 0.2s\n", + "[CV 3/5] END gamma=0.01, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=1.0;, score=0.972 total time= 0.2s\n", + "[CV 4/5] END gamma=0.01, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=1.0;, score=0.971 total time= 0.2s\n", + "[CV 5/5] END gamma=0.01, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=1.0;, score=0.943 total time= 0.2s\n", + "[CV 1/5] END gamma=0.01, learning_rate=0.01, max_depth=3, n_estimators=200, subsample=1.0;, score=1.000 total time= 0.4s\n", + "[CV 2/5] END gamma=0.01, learning_rate=0.01, max_depth=3, n_estimators=200, subsample=1.0;, score=0.917 total time= 0.4s\n", + "[CV 3/5] END gamma=0.01, learning_rate=0.01, max_depth=3, n_estimators=200, subsample=1.0;, score=0.972 total time= 0.4s\n", + "[CV 4/5] END gamma=0.01, learning_rate=0.01, max_depth=3, n_estimators=200, subsample=1.0;, score=0.971 total time= 0.5s\n", + "[CV 5/5] END gamma=0.01, learning_rate=0.01, max_depth=3, n_estimators=200, subsample=1.0;, score=0.943 total time= 0.5s\n", + "[CV 1/5] END gamma=0.01, learning_rate=0.01, max_depth=5, n_estimators=100, subsample=1.0;, score=0.944 total time= 0.3s\n", + "[CV 2/5] END gamma=0.01, learning_rate=0.01, max_depth=5, n_estimators=100, subsample=1.0;, score=0.917 total time= 0.2s\n", + "[CV 3/5] END gamma=0.01, learning_rate=0.01, max_depth=5, n_estimators=100, subsample=1.0;, score=0.972 total time= 0.2s\n", + "[CV 4/5] END gamma=0.01, learning_rate=0.01, max_depth=5, n_estimators=100, subsample=1.0;, score=0.971 total time= 0.2s\n", + "[CV 5/5] END gamma=0.01, learning_rate=0.01, max_depth=5, n_estimators=100, subsample=1.0;, score=0.943 total time= 0.3s\n", + "[CV 1/5] END gamma=0.01, learning_rate=0.01, max_depth=5, n_estimators=200, subsample=1.0;, score=1.000 total time= 0.4s\n", + "[CV 2/5] END gamma=0.01, learning_rate=0.01, max_depth=5, n_estimators=200, subsample=1.0;, score=0.917 total time= 0.4s\n", + "[CV 3/5] END gamma=0.01, learning_rate=0.01, max_depth=5, n_estimators=200, subsample=1.0;, score=0.972 total time= 0.4s\n", + "[CV 4/5] END gamma=0.01, learning_rate=0.01, max_depth=5, n_estimators=200, subsample=1.0;, score=0.971 total time= 0.3s\n", + "[CV 5/5] END gamma=0.01, learning_rate=0.01, max_depth=5, n_estimators=200, subsample=1.0;, score=0.943 total time= 0.3s\n", + "[CV 1/5] END gamma=0.01, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=1.0;, score=0.944 total time= 0.2s\n", + "[CV 2/5] END gamma=0.01, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=1.0;, score=0.889 total time= 0.2s\n", + "[CV 3/5] END gamma=0.01, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=1.0;, score=0.972 total time= 0.2s\n", + "[CV 4/5] END gamma=0.01, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=1.0;, score=0.971 total time= 0.2s\n", + "[CV 5/5] END gamma=0.01, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=1.0;, score=0.943 total time= 0.2s\n", + "[CV 1/5] END gamma=0.01, learning_rate=0.001, max_depth=3, n_estimators=200, subsample=1.0;, score=0.944 total time= 0.4s\n", + "[CV 2/5] END gamma=0.01, learning_rate=0.001, max_depth=3, n_estimators=200, subsample=1.0;, score=0.889 total time= 0.4s\n", + "[CV 3/5] END gamma=0.01, learning_rate=0.001, max_depth=3, n_estimators=200, subsample=1.0;, score=0.972 total time= 0.5s\n", + "[CV 4/5] END gamma=0.01, learning_rate=0.001, max_depth=3, n_estimators=200, subsample=1.0;, score=0.971 total time= 0.4s\n", + "[CV 5/5] END gamma=0.01, learning_rate=0.001, max_depth=3, n_estimators=200, subsample=1.0;, score=0.943 total time= 0.3s\n", + "[CV 1/5] END gamma=0.01, learning_rate=0.001, max_depth=5, n_estimators=100, subsample=1.0;, score=0.944 total time= 0.2s\n", + "[CV 2/5] END gamma=0.01, learning_rate=0.001, max_depth=5, n_estimators=100, subsample=1.0;, score=0.889 total time= 0.2s\n", + "[CV 3/5] END gamma=0.01, learning_rate=0.001, max_depth=5, n_estimators=100, subsample=1.0;, score=0.972 total time= 0.2s\n", + "[CV 4/5] END gamma=0.01, learning_rate=0.001, max_depth=5, n_estimators=100, subsample=1.0;, score=0.971 total time= 0.2s\n", + "[CV 5/5] END gamma=0.01, learning_rate=0.001, max_depth=5, n_estimators=100, subsample=1.0;, score=0.943 total time= 0.3s\n", + "[CV 1/5] END gamma=0.01, learning_rate=0.001, max_depth=5, n_estimators=200, subsample=1.0;, score=0.944 total time= 0.5s\n", + "[CV 2/5] END gamma=0.01, learning_rate=0.001, max_depth=5, n_estimators=200, subsample=1.0;, score=0.889 total time= 0.3s\n", + "[CV 3/5] END gamma=0.01, learning_rate=0.001, max_depth=5, n_estimators=200, subsample=1.0;, score=0.972 total time= 0.4s\n", + "[CV 4/5] END gamma=0.01, learning_rate=0.001, max_depth=5, n_estimators=200, subsample=1.0;, score=0.971 total time= 0.4s\n", + "[CV 5/5] END gamma=0.01, learning_rate=0.001, max_depth=5, n_estimators=200, subsample=1.0;, score=0.943 total time= 0.4s\n", + "[CV 1/5] END gamma=0.001, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=1.0;, score=1.000 total time= 0.2s\n", + "[CV 2/5] END gamma=0.001, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=1.0;, score=1.000 total time= 0.2s\n", + "[CV 3/5] END gamma=0.001, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=1.0;, score=0.972 total time= 0.1s\n", + "[CV 4/5] END gamma=0.001, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=1.0;, score=0.971 total time= 0.2s\n", + "[CV 5/5] END gamma=0.001, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=1.0;, score=0.971 total time= 0.2s\n", + "[CV 1/5] END gamma=0.001, learning_rate=0.1, max_depth=3, n_estimators=200, subsample=1.0;, score=1.000 total time= 0.2s\n", + "[CV 2/5] END gamma=0.001, learning_rate=0.1, max_depth=3, n_estimators=200, subsample=1.0;, score=1.000 total time= 0.2s\n", + "[CV 3/5] END gamma=0.001, learning_rate=0.1, max_depth=3, n_estimators=200, subsample=1.0;, score=0.972 total time= 0.2s\n", + "[CV 4/5] END gamma=0.001, learning_rate=0.1, max_depth=3, n_estimators=200, subsample=1.0;, score=0.971 total time= 0.2s\n", + "[CV 5/5] END gamma=0.001, learning_rate=0.1, max_depth=3, n_estimators=200, subsample=1.0;, score=0.971 total time= 0.2s\n", + "[CV 1/5] END gamma=0.001, learning_rate=0.1, max_depth=5, n_estimators=100, subsample=1.0;, score=1.000 total time= 0.1s\n", + "[CV 2/5] END gamma=0.001, learning_rate=0.1, max_depth=5, n_estimators=100, subsample=1.0;, score=1.000 total time= 0.1s\n", + "[CV 3/5] END gamma=0.001, learning_rate=0.1, max_depth=5, n_estimators=100, subsample=1.0;, score=0.972 total time= 0.1s\n", + "[CV 4/5] END gamma=0.001, learning_rate=0.1, max_depth=5, n_estimators=100, subsample=1.0;, score=0.971 total time= 0.2s\n", + "[CV 5/5] END gamma=0.001, learning_rate=0.1, max_depth=5, n_estimators=100, subsample=1.0;, score=0.971 total time= 0.1s\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[CV 1/5] END gamma=0.001, learning_rate=0.1, max_depth=5, n_estimators=200, subsample=1.0;, score=1.000 total time= 0.2s\n", + "[CV 2/5] END gamma=0.001, learning_rate=0.1, max_depth=5, n_estimators=200, subsample=1.0;, score=1.000 total time= 0.2s\n", + "[CV 3/5] END gamma=0.001, learning_rate=0.1, max_depth=5, n_estimators=200, subsample=1.0;, score=0.972 total time= 0.2s\n", + "[CV 4/5] END gamma=0.001, learning_rate=0.1, max_depth=5, n_estimators=200, subsample=1.0;, score=0.971 total time= 0.2s\n", + "[CV 5/5] END gamma=0.001, learning_rate=0.1, max_depth=5, n_estimators=200, subsample=1.0;, score=0.971 total time= 0.2s\n", + "[CV 1/5] END gamma=0.001, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=1.0;, score=0.944 total time= 0.2s\n", + "[CV 2/5] END gamma=0.001, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=1.0;, score=0.889 total time= 0.2s\n", + "[CV 3/5] END gamma=0.001, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=1.0;, score=0.972 total time= 0.2s\n", + "[CV 4/5] END gamma=0.001, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=1.0;, score=0.971 total time= 0.2s\n", + "[CV 5/5] END gamma=0.001, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=1.0;, score=0.943 total time= 0.2s\n", + "[CV 1/5] END gamma=0.001, learning_rate=0.01, max_depth=3, n_estimators=200, subsample=1.0;, score=1.000 total time= 0.5s\n", + "[CV 2/5] END gamma=0.001, learning_rate=0.01, max_depth=3, n_estimators=200, subsample=1.0;, score=0.917 total time= 0.3s\n", + "[CV 3/5] END gamma=0.001, learning_rate=0.01, max_depth=3, n_estimators=200, subsample=1.0;, score=0.972 total time= 0.4s\n", + "[CV 4/5] END gamma=0.001, learning_rate=0.01, max_depth=3, n_estimators=200, subsample=1.0;, score=0.971 total time= 0.3s\n", + "[CV 5/5] END gamma=0.001, learning_rate=0.01, max_depth=3, n_estimators=200, subsample=1.0;, score=0.943 total time= 0.3s\n", + "[CV 1/5] END gamma=0.001, learning_rate=0.01, max_depth=5, n_estimators=100, subsample=1.0;, score=0.944 total time= 0.2s\n", + "[CV 2/5] END gamma=0.001, learning_rate=0.01, max_depth=5, n_estimators=100, subsample=1.0;, score=0.889 total time= 0.2s\n", + "[CV 3/5] END gamma=0.001, learning_rate=0.01, max_depth=5, n_estimators=100, subsample=1.0;, score=0.972 total time= 0.2s\n", + "[CV 4/5] END gamma=0.001, learning_rate=0.01, max_depth=5, n_estimators=100, subsample=1.0;, score=0.971 total time= 0.2s\n", + "[CV 5/5] END gamma=0.001, learning_rate=0.01, max_depth=5, n_estimators=100, subsample=1.0;, score=0.943 total time= 0.2s\n", + "[CV 1/5] END gamma=0.001, learning_rate=0.01, max_depth=5, n_estimators=200, subsample=1.0;, score=1.000 total time= 0.5s\n", + "[CV 2/5] END gamma=0.001, learning_rate=0.01, max_depth=5, n_estimators=200, subsample=1.0;, score=0.917 total time= 0.6s\n", + "[CV 3/5] END gamma=0.001, learning_rate=0.01, max_depth=5, n_estimators=200, subsample=1.0;, score=0.972 total time= 0.4s\n", + "[CV 4/5] END gamma=0.001, learning_rate=0.01, max_depth=5, n_estimators=200, subsample=1.0;, score=0.971 total time= 0.3s\n", + "[CV 5/5] END gamma=0.001, learning_rate=0.01, max_depth=5, n_estimators=200, subsample=1.0;, score=0.943 total time= 0.4s\n", + "[CV 1/5] END gamma=0.001, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=1.0;, score=0.944 total time= 0.2s\n", + "[CV 2/5] END gamma=0.001, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=1.0;, score=0.889 total time= 0.2s\n", + "[CV 3/5] END gamma=0.001, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=1.0;, score=0.972 total time= 0.2s\n", + "[CV 4/5] END gamma=0.001, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=1.0;, score=0.971 total time= 0.2s\n", + "[CV 5/5] END gamma=0.001, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=1.0;, score=0.943 total time= 0.2s\n", + "[CV 1/5] END gamma=0.001, learning_rate=0.001, max_depth=3, n_estimators=200, subsample=1.0;, score=0.944 total time= 0.4s\n", + "[CV 2/5] END gamma=0.001, learning_rate=0.001, max_depth=3, n_estimators=200, subsample=1.0;, score=0.889 total time= 0.3s\n", + "[CV 3/5] END gamma=0.001, learning_rate=0.001, max_depth=3, n_estimators=200, subsample=1.0;, score=0.972 total time= 0.4s\n", + "[CV 4/5] END gamma=0.001, learning_rate=0.001, max_depth=3, n_estimators=200, subsample=1.0;, score=0.971 total time= 0.4s\n", + "[CV 5/5] END gamma=0.001, learning_rate=0.001, max_depth=3, n_estimators=200, subsample=1.0;, score=0.943 total time= 0.4s\n", + "[CV 1/5] END gamma=0.001, learning_rate=0.001, max_depth=5, n_estimators=100, subsample=1.0;, score=0.944 total time= 0.2s\n", + "[CV 2/5] END gamma=0.001, learning_rate=0.001, max_depth=5, n_estimators=100, subsample=1.0;, score=0.889 total time= 0.2s\n", + "[CV 3/5] END gamma=0.001, learning_rate=0.001, max_depth=5, n_estimators=100, subsample=1.0;, score=0.972 total time= 0.2s\n", + "[CV 4/5] END gamma=0.001, learning_rate=0.001, max_depth=5, n_estimators=100, subsample=1.0;, score=0.971 total time= 0.2s\n", + "[CV 5/5] END gamma=0.001, learning_rate=0.001, max_depth=5, n_estimators=100, subsample=1.0;, score=0.943 total time= 0.2s\n", + "[CV 1/5] END gamma=0.001, learning_rate=0.001, max_depth=5, n_estimators=200, subsample=1.0;, score=0.944 total time= 0.4s\n", + "[CV 2/5] END gamma=0.001, learning_rate=0.001, max_depth=5, n_estimators=200, subsample=1.0;, score=0.889 total time= 0.3s\n", + "[CV 3/5] END gamma=0.001, learning_rate=0.001, max_depth=5, n_estimators=200, subsample=1.0;, score=0.972 total time= 0.5s\n", + "[CV 4/5] END gamma=0.001, learning_rate=0.001, max_depth=5, n_estimators=200, subsample=1.0;, score=0.971 total time= 0.5s\n", + "[CV 5/5] END gamma=0.001, learning_rate=0.001, max_depth=5, n_estimators=200, subsample=1.0;, score=0.943 total time= 0.3s\n" + ] + }, + { + "data": { + "text/html": [ + "<style>#sk-container-id-3 {color: black;background-color: white;}#sk-container-id-3 pre{padding: 0;}#sk-container-id-3 div.sk-toggleable {background-color: white;}#sk-container-id-3 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-3 label.sk-toggleable__label-arrow:before {content: \"▸\";float: left;margin-right: 0.25em;color: #696969;}#sk-container-id-3 label.sk-toggleable__label-arrow:hover:before {color: black;}#sk-container-id-3 div.sk-estimator:hover label.sk-toggleable__label-arrow:before {color: black;}#sk-container-id-3 div.sk-toggleable__content {max-height: 0;max-width: 0;overflow: hidden;text-align: left;background-color: #f0f8ff;}#sk-container-id-3 div.sk-toggleable__content pre {margin: 0.2em;color: black;border-radius: 0.25em;background-color: #f0f8ff;}#sk-container-id-3 input.sk-toggleable__control:checked~div.sk-toggleable__content {max-height: 200px;max-width: 100%;overflow: auto;}#sk-container-id-3 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {content: \"▾\";}#sk-container-id-3 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-3 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-3 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-3 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-3 div.sk-estimator:hover {background-color: #d4ebff;}#sk-container-id-3 div.sk-parallel-item::after {content: \"\";width: 100%;border-bottom: 1px solid gray;flex-grow: 1;}#sk-container-id-3 div.sk-label:hover label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-3 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-3 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-3 div.sk-item {position: relative;z-index: 1;}#sk-container-id-3 div.sk-parallel {display: flex;align-items: stretch;justify-content: center;background-color: white;position: relative;}#sk-container-id-3 div.sk-item::before, #sk-container-id-3 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-3 div.sk-parallel-item {display: flex;flex-direction: column;z-index: 1;position: relative;background-color: white;}#sk-container-id-3 div.sk-parallel-item:first-child::after {align-self: flex-end;width: 50%;}#sk-container-id-3 div.sk-parallel-item:last-child::after {align-self: flex-start;width: 50%;}#sk-container-id-3 div.sk-parallel-item:only-child::after {width: 0;}#sk-container-id-3 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-3 div.sk-label label {font-family: monospace;font-weight: bold;display: inline-block;line-height: 1.2em;}#sk-container-id-3 div.sk-label-container {text-align: center;}#sk-container-id-3 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-3 div.sk-text-repr-fallback {display: none;}</style><div id=\"sk-container-id-3\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>GridSearchCV(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, eval_metric=None,\n", + " feature_types=None, gamma=None,\n", + " gpu_id=None, grow_policy=None,\n", + " importance_type=None,\n", + " interaction_constraints=None,\n", + " learning_rate=None, max_b...\n", + " max_cat_to_onehot=None,\n", + " max_delta_step=None, max_depth=None,\n", + " max_leaves=None, min_child_weight=None,\n", + " missing=nan, monotone_constraints=None,\n", + " n_estimators=100, n_jobs=None,\n", + " num_parallel_tree=None, predictor=None,\n", + " random_state=42, ...),\n", + " param_grid={'gamma': [0.1, 0.01, 0.001],\n", + " 'learning_rate': [0.1, 0.01, 0.001],\n", + " 'max_depth': [3, 5], 'n_estimators': [100, 200],\n", + " 'subsample': [1.0]},\n", + " verbose=3)</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-5\" type=\"checkbox\" ><label for=\"sk-estimator-id-5\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">GridSearchCV</label><div class=\"sk-toggleable__content\"><pre>GridSearchCV(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, eval_metric=None,\n", + " feature_types=None, gamma=None,\n", + " gpu_id=None, grow_policy=None,\n", + " importance_type=None,\n", + " interaction_constraints=None,\n", + " learning_rate=None, max_b...\n", + " max_cat_to_onehot=None,\n", + " max_delta_step=None, max_depth=None,\n", + " max_leaves=None, min_child_weight=None,\n", + " missing=nan, monotone_constraints=None,\n", + " n_estimators=100, n_jobs=None,\n", + " num_parallel_tree=None, predictor=None,\n", + " random_state=42, ...),\n", + " param_grid={'gamma': [0.1, 0.01, 0.001],\n", + " 'learning_rate': [0.1, 0.01, 0.001],\n", + " 'max_depth': [3, 5], 'n_estimators': [100, 200],\n", + " 'subsample': [1.0]},\n", + " verbose=3)</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-6\" type=\"checkbox\" ><label for=\"sk-estimator-id-6\" 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=None, feature_types=None,\n", + " gamma=None, gpu_id=None, grow_policy=None, importance_type=None,\n", + " interaction_constraints=None, learning_rate=None, max_bin=None,\n", + " max_cat_threshold=None, max_cat_to_onehot=None,\n", + " max_delta_step=None, max_depth=None, max_leaves=None,\n", + " min_child_weight=None, missing=nan, monotone_constraints=None,\n", + " n_estimators=100, n_jobs=None, num_parallel_tree=None,\n", + " predictor=None, random_state=42, ...)</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-7\" type=\"checkbox\" ><label for=\"sk-estimator-id-7\" 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=None, feature_types=None,\n", + " gamma=None, gpu_id=None, grow_policy=None, importance_type=None,\n", + " interaction_constraints=None, learning_rate=None, max_bin=None,\n", + " max_cat_threshold=None, max_cat_to_onehot=None,\n", + " max_delta_step=None, max_depth=None, max_leaves=None,\n", + " min_child_weight=None, missing=nan, monotone_constraints=None,\n", + " n_estimators=100, n_jobs=None, num_parallel_tree=None,\n", + " predictor=None, random_state=42, ...)</pre></div></div></div></div></div></div></div></div></div></div>" + ], + "text/plain": [ + "GridSearchCV(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, eval_metric=None,\n", + " feature_types=None, gamma=None,\n", + " gpu_id=None, grow_policy=None,\n", + " importance_type=None,\n", + " interaction_constraints=None,\n", + " learning_rate=None, max_b...\n", + " max_cat_to_onehot=None,\n", + " max_delta_step=None, max_depth=None,\n", + " max_leaves=None, min_child_weight=None,\n", + " missing=nan, monotone_constraints=None,\n", + " n_estimators=100, n_jobs=None,\n", + " num_parallel_tree=None, predictor=None,\n", + " random_state=42, ...),\n", + " param_grid={'gamma': [0.1, 0.01, 0.001],\n", + " 'learning_rate': [0.1, 0.01, 0.001],\n", + " 'max_depth': [3, 5], 'n_estimators': [100, 200],\n", + " 'subsample': [1.0]},\n", + " verbose=3)" + ] + }, + "execution_count": 107, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "model = xgb.XGBClassifier(random_state=42)\n", + "\n", + "# Defining parameter range\n", + "param_grid = {\n", + " 'max_depth': [3,5],\n", + " 'learning_rate': [0.1 ,0.01, 0.001],\n", + " 'n_estimators': [100,200],\n", + " 'gamma': [ 0.1,0.01,0.001],\n", + " 'subsample': [1.0]\n", + "}\n", + "\n", + "\n", + "grid = GridSearchCV(model, param_grid, refit=True, verbose=3)\n", + "\n", + "# Fitting the model for grid search\n", + "grid.fit(X_train, y_train)\n" + ] + }, + { + "cell_type": "markdown", + "id": "0f4c5633", + "metadata": {}, + "source": [ + "# Best hyperparameter :" + ] + }, + { + "cell_type": "code", + "execution_count": 108, + "id": "556e249c", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'gamma': 0.1, 'learning_rate': 0.1, 'max_depth': 3, 'n_estimators': 100, 'subsample': 1.0}\n", + "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=None, feature_types=None,\n", + " gamma=0.1, gpu_id=None, grow_policy=None, importance_type=None,\n", + " interaction_constraints=None, learning_rate=0.1, max_bin=None,\n", + " max_cat_threshold=None, max_cat_to_onehot=None,\n", + " max_delta_step=None, max_depth=3, max_leaves=None,\n", + " min_child_weight=None, missing=nan, monotone_constraints=None,\n", + " n_estimators=100, n_jobs=None, num_parallel_tree=None,\n", + " predictor=None, random_state=42, ...)\n" + ] + } + ], + "source": [ + "# print best parameter after tuning\n", + "print(grid.best_params_)\n", + " \n", + "# print how our model looks after hyper-parameter tuning\n", + "print(grid.best_estimator_)" + ] + }, + { + "cell_type": "code", + "execution_count": 109, + "id": "0686e808", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<style>#sk-container-id-4 {color: black;background-color: white;}#sk-container-id-4 pre{padding: 0;}#sk-container-id-4 div.sk-toggleable {background-color: white;}#sk-container-id-4 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-4 label.sk-toggleable__label-arrow:before {content: \"▸\";float: left;margin-right: 0.25em;color: #696969;}#sk-container-id-4 label.sk-toggleable__label-arrow:hover:before {color: black;}#sk-container-id-4 div.sk-estimator:hover label.sk-toggleable__label-arrow:before {color: black;}#sk-container-id-4 div.sk-toggleable__content {max-height: 0;max-width: 0;overflow: hidden;text-align: left;background-color: #f0f8ff;}#sk-container-id-4 div.sk-toggleable__content pre {margin: 0.2em;color: black;border-radius: 0.25em;background-color: #f0f8ff;}#sk-container-id-4 input.sk-toggleable__control:checked~div.sk-toggleable__content {max-height: 200px;max-width: 100%;overflow: auto;}#sk-container-id-4 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {content: \"▾\";}#sk-container-id-4 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-4 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-4 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-4 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-4 div.sk-estimator:hover {background-color: #d4ebff;}#sk-container-id-4 div.sk-parallel-item::after {content: \"\";width: 100%;border-bottom: 1px solid gray;flex-grow: 1;}#sk-container-id-4 div.sk-label:hover label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-4 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-4 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-4 div.sk-item {position: relative;z-index: 1;}#sk-container-id-4 div.sk-parallel {display: flex;align-items: stretch;justify-content: center;background-color: white;position: relative;}#sk-container-id-4 div.sk-item::before, #sk-container-id-4 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-4 div.sk-parallel-item {display: flex;flex-direction: column;z-index: 1;position: relative;background-color: white;}#sk-container-id-4 div.sk-parallel-item:first-child::after {align-self: flex-end;width: 50%;}#sk-container-id-4 div.sk-parallel-item:last-child::after {align-self: flex-start;width: 50%;}#sk-container-id-4 div.sk-parallel-item:only-child::after {width: 0;}#sk-container-id-4 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-4 div.sk-label label {font-family: monospace;font-weight: bold;display: inline-block;line-height: 1.2em;}#sk-container-id-4 div.sk-label-container {text-align: center;}#sk-container-id-4 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-4 div.sk-text-repr-fallback {display: none;}</style><div id=\"sk-container-id-4\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><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=None, feature_types=None,\n", + " gamma=0.1, gpu_id=None, grow_policy=None, importance_type=None,\n", + " interaction_constraints=None, learning_rate=0.1, max_bin=None,\n", + " max_cat_threshold=None, max_cat_to_onehot=None,\n", + " max_delta_step=None, max_depth=3, max_leaves=None,\n", + " min_child_weight=None, missing=nan, monotone_constraints=None,\n", + " n_estimators=100, n_jobs=None, num_parallel_tree=None,\n", + " predictor=None, random_state=42, ...)</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\"><div class=\"sk-estimator sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-8\" type=\"checkbox\" checked><label for=\"sk-estimator-id-8\" 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=None, feature_types=None,\n", + " gamma=0.1, gpu_id=None, grow_policy=None, importance_type=None,\n", + " interaction_constraints=None, learning_rate=0.1, max_bin=None,\n", + " max_cat_threshold=None, max_cat_to_onehot=None,\n", + " max_delta_step=None, max_depth=3, max_leaves=None,\n", + " min_child_weight=None, missing=nan, monotone_constraints=None,\n", + " n_estimators=100, n_jobs=None, num_parallel_tree=None,\n", + " predictor=None, random_state=42, ...)</pre></div></div></div></div></div>" + ], + "text/plain": [ + "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=None, feature_types=None,\n", + " gamma=0.1, gpu_id=None, grow_policy=None, importance_type=None,\n", + " interaction_constraints=None, learning_rate=0.1, max_bin=None,\n", + " max_cat_threshold=None, max_cat_to_onehot=None,\n", + " max_delta_step=None, max_depth=3, max_leaves=None,\n", + " min_child_weight=None, missing=nan, monotone_constraints=None,\n", + " n_estimators=100, n_jobs=None, num_parallel_tree=None,\n", + " predictor=None, random_state=42, ...)" + ] + }, + "execution_count": 109, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "model_xgb = grid.best_estimator_\n", + "model_xgb.fit(X_train,y_train)" + ] + }, + { + "cell_type": "code", + "execution_count": 110, + "id": "ac776bef", + "metadata": {}, + "outputs": [], + "source": [ + "y_proba = model_xgb.fit(X_train, y_train).predict_proba(X_test)[:,1]" + ] + }, + { + "cell_type": "markdown", + "id": "3ea57532", + "metadata": {}, + "source": [ + "# classification report" + ] + }, + { + "cell_type": "code", + "execution_count": 111, + "id": "18becbe2", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " precision recall f1-score support\n", + "\n", + " 0 0.97 0.97 0.97 30\n", + " 1 0.97 0.97 0.97 30\n", + "\n", + " accuracy 0.97 60\n", + " macro avg 0.97 0.97 0.97 60\n", + "weighted avg 0.97 0.97 0.97 60\n", + "\n" + ] + } + ], + "source": [ + "from sklearn.metrics import classification_report, confusion_matrix\n", + "grid_predictions = grid.predict(X_test)\n", + "print(classification_report(y_test, grid_predictions))" + ] + }, + { + "cell_type": "markdown", + "id": "5906ed11", + "metadata": {}, + "source": [ + "#### The model demonstrated outstanding performance on the test dataset, with high precision, recall, and F1-score of 0.97 for both classes and an overall accuracy of 0.97." + ] + }, + { + "cell_type": "code", + "execution_count": 112, + "id": "c0193b78", + "metadata": {}, + "outputs": [], + "source": [ + "classes = model_xgb.classes_" + ] + }, + { + "cell_type": "code", + "execution_count": 113, + "id": "d723c69f", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([0, 1])" + ] + }, + "execution_count": 113, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "classes" + ] + }, + { + "cell_type": "code", + "execution_count": 114, + "id": "4643393d", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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O1dZWVlatmxZOGIEAACXEHRrfc2aNVq2bJkGDBigsWPH6oYbblCnTp3Url07LV++XKNHjw5HnAAA2BOjq9aDrshPnjypDh06SKqbDz958qQk6frrr9fmzZtDGx0AACFy/sludrZoFHQi79Chgw4cOCBJ6tq1q9566y1JdZX6+ZeoAACAhhF0Ih87dqw+//xzSdK0adO0aNEiJSYmavLkyXr44YdDHiAAACHRwIvdNm/erGHDhikrK0uGYWj16tV+348ZM0aGYfhtQ4YMCfrHCnqOfPLkyb7/zsvL01dffaXdu3erU6dO6tWrV9ABAAAQiyorK5Wbm6u77rpLI0eOvOgxQ4YM0dKlS32fPR5P0NexdR+5JLVr107t2rWzexoAAMLKkM23nwV5/NChQzV06NCfPMbj8SgzM7P+QSnARL5w4cKAT3j//ffXOxgAAKJdeXm532ePx1OvSlqSNm7cqJYtW6pZs2b61a9+pSeffFLNmzcP6hwBJfLnn38+oJMZhhGRRH5r555qZFzR4NcFGsL7R4siHQIQNuVnTDXr3EAXC9HtZ9nZ2X67Z8+erTlz5gR9uiFDhmjkyJHKyclRaWmpZsyYoaFDh2r79u2Kj48P+DwBJfLzq9QBAHCsED2itayszO9x5PWtxu+44w7ff/fs2VO9evVSx44dtXHjRt10000BnyfoVesAALhZamqq31bfRP73OnTooBYtWqikpCSocbYXuwEA4AhR/tKUw4cP6/vvv1erVq2CGkciBwC4gt2nswU7tqKiwq+6PnDggIqKipSenq709HTNnTtXt912mzIzM1VaWqpHHnlEnTp10uDBg4O6DokcAIAw2LVrlwYOHOj7PGXKFElSfn6+Fi9erD179uiNN97QqVOnlJWVpUGDBumJJ54IulVPIgcAuEMDt9YHDBggy7r0oPfff99GMD+q12K3LVu26M4771S/fv105MgRSdIf/vAHbd26NSRBAQAQcryPvM7bb7+twYMHKykpSZ999pmqq6slSadPn9bTTz8d8gABAMClBZ3In3zySS1ZskSvvPKKrrjix4ewXHfddfr0009DGhwAAKESq68xDXqOvLi4WP37979gf1pamk6dOhWKmAAACL0QPdkt2gRdkWdmZl70ZvWtW7eqQ4cOIQkKAICQY468zvjx4/XAAw9o586dMgxDR48e1fLlyzV16lT97ne/C0eMAADgEoJurU+bNk2maeqmm27S2bNn1b9/f3k8Hk2dOlWTJk0KR4wAANjW0A+EaShBJ3LDMPTYY4/p4YcfVklJiSoqKtS9e3clJyeHIz4AAEIjyh/RWl/1fiBMQkKCunfvHspYAABAkIJO5AMHDpRhXHrl3ocffmgrIAAAwsLuLWSxUpH37t3b73Ntba2Kior0xRdfKD8/P1RxAQAQWrTW6zz//PMX3T9nzhxVVFTYDggAAASuXs9av5g777xTr7/+eqhOBwBAaMXofeQhe/vZ9u3blZiYGKrTAQAQUtx+9oORI0f6fbYsS8eOHdOuXbs0c+bMkAUGAAAuL+hEnpaW5vc5Li5OXbp00bx58zRo0KCQBQYAAC4vqETu9Xo1duxY9ezZU82aNQtXTAAAhF6MrloParFbfHy8Bg0axFvOAACOE6uvMQ161XqPHj20f//+cMQCAACCFHQif/LJJzV16lStXbtWx44dU3l5ud8GAEDUirFbz6Qg5sjnzZunhx56SDfffLMk6ZZbbvF7VKtlWTIMQ16vN/RRAgBgV4zOkQecyOfOnat7771XH330UTjjAQAAQQg4kVtW3Z8iN954Y9iCAQAgXHggjPSTbz0DACCqub21LkmdO3e+bDI/efKkrYAAAEDggkrkc+fOveDJbgAAOAGtdUl33HGHWrZsGa5YAAAInxhtrQd8Hznz4wAARJ+gV60DAOBIMVqRB5zITdMMZxwAAIQVc+QAADhZjFbkQT9rHQAARA8qcgCAO8RoRU4iBwC4QqzOkdNaBwDAwajIAQDuQGsdAADnorUOAACiDhU5AMAdaK0DAOBgMZrIaa0DAOBgVOQAAFcwftjsjI9GJHIAgDvEaGudRA4AcAVuPwMAAFGHihwA4A601gEAcLgoTcZ20FoHAMDBqMgBAK4Qq4vdSOQAAHeI0TlyWusAADgYFTkAwBVorQMA4GS01gEAQLShIgcAuEKsttapyAEA7mCFYAvC5s2bNWzYMGVlZckwDK1evdo/HMvSrFmz1KpVKyUlJSkvL0/79u0L+scikQMA3KGBE3llZaVyc3O1aNGii34/f/58LVy4UEuWLNHOnTvVpEkTDR48WFVVVUFdh9Y6AABhMHToUA0dOvSi31mWpQULFujxxx/X8OHDJUnLli1TRkaGVq9erTvuuCPg61CRAwBc4fwcuZ1NksrLy/226urqoGM5cOCAjh8/rry8PN++tLQ09e3bV9u3bw/qXCRyAIA7hKi1np2drbS0NN9WUFAQdCjHjx+XJGVkZPjtz8jI8H0XKFrrAAAEoaysTKmpqb7PHo8ngtFQkQMAXMKwLNubJKWmpvpt9UnkmZmZkqQTJ0747T9x4oTvu0CRyAEA7tDAq9Z/Sk5OjjIzM7VhwwbfvvLycu3cuVP9+vUL6ly01gEACIOKigqVlJT4Ph84cEBFRUVKT09X27Zt9eCDD+rJJ5/UVVddpZycHM2cOVNZWVkaMWJEUNchkQMAXKGhn+y2a9cuDRw40Pd5ypQpkqT8/HwVFhbqkUceUWVlpe655x6dOnVK119/vdatW6fExMSgrkMiBwC4QwO/NGXAgAGyrEsPMgxD8+bN07x582wExRw5AACORkUOAHCFWH1pCokcAOAOMfo+chI5AMAVYrUiZ44cAAAHoyIHALgDrXUAAJwtWtvjdtBaBwDAwajIAQDuYFl1m53xUYhEDgBwBVatAwCAqENFDgBwB1atAwDgXIZZt9kZH41orQMA4GBU5AhIj74V+qf7vtVVPc+qeeY5zbmrvbavS4t0WEC9rHyxpT5+r6nKSjxKSDTV/ZqzGvfYUWV3qvYdc/Rggl6Zl6UvP0lWbY2hPgPLNeHJI2p25bkIRg5bYrS1TkWOgCQ2NrX/y0S9NKNNpEMBbNuzPVnDxnynBWv3qWBlqbznpBmjOqrqbN2vxKqzcZoxqqMMQ/q3P5bouXf36VxNnGbl58iM0vYqLu/8qnU7WzSKaCLfvHmzhg0bpqysLBmGodWrV0cyHPyEXR+l6o35rbSNKhwx4OkV+zXoNyfVvkuVOl5dpYcWHNI3RxK0b0+SJOnLT5roRFmCHlpwSDndqpTTrUoPv/C19n3eWEVbkyMcPert/H3kdrYoFNFEXllZqdzcXC1atCiSYQBwucryeElSSlOvJKm2xpAM6YqEH39xX+GxZMRJX35CIkd0iegc+dChQzV06NCAj6+urlZ19Y9zWOXl5eEIC4CLmKa0ZHZrXX1thdp3rZIkde1TqcTGpl57Kktjpx2VZOi1p1rJ9Bo6+Q1Li5yKB8JEgYKCAqWlpfm27OzsSIcEwOFemtFGX3+VpOmLv/bta9rcq8dfPqid61M14qpeurVLT1WWx6tTz7MyHPVbE36sEGxRyFF/Wk6fPl1TpkzxfS4vLyeZA6i3l2a01s71qXp2VYmuzKr1+67PgDMq3L5Xp7+PV3wjKTnNqztyr1arttWXOBsQGY5K5B6PRx6PJ9JhAHA4y5IWPdZa29al6Zk/lSizbc0lj01rXjdvXrQ1Wae+a6RfDmJKz6litbXuqESOyEls7FVWzo+/7DKza9Th6r/qzKl4fXskIYKRAcF7aUYbfbSqmeYs3a+kZNM3790kxStPUt1v6/dXpqvtVVVKa35Oe3c30eJZrXXrPd/63WsOh+HtZ3Czzrl/1TNvl/o+3zv3qCTp/73ZTM9ObhupsIB6WftGC0nSw7dd5bf/oecPadBvTkqSDpd6tLSglc6cildGdo1G3X9CI+/5tsFjBS4noom8oqJCJSUlvs8HDhxQUVGR0tPT1bYtySGa7NmerMFZuZEOAwiJ948WXfaYcY8d07jHjoU/GDQYWuthsGvXLg0cOND3+fxCtvz8fBUWFkYoKgBATIrRR7RGNJEPGDBAVpTOOQAA4ATMkQMAXIHWOgAATmZadZud8VGIRA4AcIcYnSPnYYMAADgYFTkAwBUM2ZwjD1kkoUUiBwC4Q4w+2Y3WOgAADkZFDgBwBW4/AwDAyVi1DgAAog0VOQDAFQzLkmFjwZqdseFEIgcAuIP5w2ZnfBSitQ4AgINRkQMAXIHWOgAAThajq9ZJ5AAAd+DJbgAAINpQkQMAXIEnuwEA4GS01gEAQLShIgcAuIJh1m12xkcjEjkAwB1orQMAgGhDRQ4AcAceCAMAgHPF6iNaaa0DAOBgVOQAAHeI0cVuJHIAgDtYsvdO8ejM47TWAQDucH6O3M4WjDlz5sgwDL+ta9euIf+5qMgBAAiTq6++Wh988IHvc6NGoU+7JHIAgDtYsjlHHvyQRo0aKTMzs/7XDACtdQCAO5xf7GZnk1ReXu63VVdXX/KS+/btU1ZWljp06KDRo0fr0KFDIf+xSOQAAAQhOztbaWlpvq2goOCix/Xt21eFhYVat26dFi9erAMHDuiGG27QmTNnQhoPrXUAgDuYkgyb4yWVlZUpNTXVt9vj8Vz08KFDh/r+u1evXurbt6/atWunt956S+PGjbMRiD8SOQDAFUL1ZLfU1FS/RB6opk2bqnPnziopKal3DBdDax0AgAZQUVGh0tJStWrVKqTnJZEDANwhRIvdAjV16lRt2rRJBw8e1LZt23TrrbcqPj5eo0aNCumPRWsdAOAODfyI1sOHD2vUqFH6/vvvdeWVV+r666/Xjh07dOWVV9Y/hosgkQMAEAYrV65skOuQyAEA7sBLUwAAcLAQ3X4WbUjkAABXCNXtZ9GGVesAADgYFTkAwB2YIwcAwMFMSzJsJGMzOhM5rXUAAByMihwA4A601gEAcDKbiVzRmchprQMA4GBU5AAAd6C1DgCAg5mWbLXHWbUOAABCjYocAOAOllm32RkfhUjkAAB3YI4cAAAHY44cAABEGypyAIA70FoHAMDBLNlM5CGLJKRorQMA4GBU5AAAd6C1DgCAg5mmJBv3gpvReR85rXUAAByMihwA4A601gEAcLAYTeS01gEAcDAqcgCAO8ToI1pJ5AAAV7AsU5aNN5jZGRtOJHIAgDtYlr2qmjlyAAAQalTkAAB3sGzOkUdpRU4iBwC4g2lKho157iidI6e1DgCAg1GRAwDcgdY6AADOZZmmLBut9Wi9/YzWOgAADkZFDgBwB1rrAAA4mGlJRuwlclrrAAA4GBU5AMAdLEuSnfvIo7MiJ5EDAFzBMi1ZNlrrFokcAIAIskzZq8i5/QwAAIQYFTkAwBVorQMA4GQx2lp3dCI//9fROdXauscfiGblZ6LzlwcQCuUVdf++G6LatZsrzqk2dMGEkKMT+ZkzZyRJW/VehCMBwqdZ50hHAITfmTNnlJaWFpZzJyQkKDMzU1uP288VmZmZSkhICEFUoWNY0dr0D4Bpmjp69KhSUlJkGEakw3GF8vJyZWdnq6ysTKmpqZEOBwgp/n03PMuydObMGWVlZSkuLnzrr6uqqlRTU2P7PAkJCUpMTAxBRKHj6Io8Li5Obdq0iXQYrpSamsovOsQs/n03rHBV4n8rMTEx6hJwqHD7GQAADkYiBwDAwUjkCIrH49Hs2bPl8XgiHQoQcvz7hhM5erEbAABuR0UOAICDkcgBAHAwEjkAAA5GIgcAwMFI5AjYokWL1L59eyUmJqpv37765JNPIh0SEBKbN2/WsGHDlJWVJcMwtHr16kiHBASMRI6AvPnmm5oyZYpmz56tTz/9VLm5uRo8eLC++eabSIcG2FZZWanc3FwtWrQo0qEAQeP2MwSkb9++uvbaa/XSSy9JqnvOfXZ2tiZNmqRp06ZFODogdAzD0KpVqzRixIhIhwIEhIocl1VTU6Pdu3crLy/Pty8uLk55eXnavn17BCMDAJDIcVnfffedvF6vMjIy/PZnZGTo+PHjEYoKACCRyAEAcDQSOS6rRYsWio+P14kTJ/z2nzhxQpmZmRGKCgAgkcgRgISEBPXp00cbNmzw7TNNUxs2bFC/fv0iGBkAoFGkA4AzTJkyRfn5+brmmmv0i1/8QgsWLFBlZaXGjh0b6dAA2yoqKlRSUuL7fODAARUVFSk9PV1t27aNYGTA5XH7GQL20ksv6ZlnntHx48fVu3dvLVy4UH379o10WIBtGzdu1MCBAy/Yn5+fr8LCwoYPCAgCiRwAAAdjjhwAAAcjkQMA4GAkcgAAHIxEDgCAg5HIAQBwMBI5AAAORiIHAMDBSOQAADgYiRywacyYMRoxYoTv84ABA/Tggw82eBwbN26UYRg6derUJY8xDEOrV68O+Jxz5sxR7969bcV18OBBGYahoqIiW+cBcHEkcsSkMWPGyDAMGYahhIQEderUSfPmzdO5c+fCfu133nlHTzzxREDHBpJ8AeCn8NIUxKwhQ4Zo6dKlqq6u1nvvvacJEyboiiuu0PTp0y84tqamRgkJCSG5bnp6ekjOAwCBoCJHzPJ4PMrMzFS7du30u9/9Tnl5efrzn/8s6cd2+FNPPaWsrCx16dJFklRWVqbbb79dTZs2VXp6uoYPH66DBw/6zun1ejVlyhQ1bdpUzZs31yOPPKK/f13B37fWq6ur9eijjyo7O1sej0edOnXSa6+9poMHD/pe1NGsWTMZhqExY8ZIqntNbEFBgXJycpSUlKTc3Fz96U9/8rvOe++9p86dOyspKUkDBw70izNQjz76qDp37qzGjRurQ4cOmjlzpmpray847uWXX1Z2drYaN26s22+/XadPn/b7/tVXX1W3bt2UmJiorl276ve//33QsQCoHxI5XCMpKUk1NTW+zxs2bFBxcbHWr1+vtWvXqra2VoMHD1ZKSoq2bNmijz/+WMnJyRoyZIhv3LPPPqvCwkK9/vrr2rp1q06ePKlVq1b95HX/5V/+Rf/5n/+phQsXau/evXr55ZeVnJys7Oxsvf3225Kk4uJiHTt2TC+88IIkqaCgQMuWLdOSJUv05ZdfavLkybrzzju1adMmSXV/cIwcOVLDhg1TUVGR7r77bk2bNi3o/01SUlJUWFio//mf/9ELL7ygV155Rc8//7zfMSUlJXrrrbe0Zs0arVu3Tp999pnuu+8+3/fLly/XrFmz9NRTT2nv3r16+umnNXPmTL3xxhtBxwOgHiwgBuXn51vDhw+3LMuyTNO01q9fb3k8Hmvq1Km+7zMyMqzq6mrfmD/84Q9Wly5dLNM0ffuqq6utpKQk6/3337csy7JatWplzZ8/3/d9bW2t1aZNG9+1LMuybrzxRuuBBx6wLMuyiouLLUnW+vXrLxrnRx99ZEmy/u///s+3r6qqymrcuLG1bds2v2PHjRtnjRo1yrIsy5o+fbrVvXt3v+8fffTRC8719yRZq1atuuT3zzzzjNWnTx/f59mzZ1vx8fHW4cOHffv+67/+y4qLi7OOHTtmWZZldezY0VqxYoXfeZ544gmrX79+lmVZ1oEDByxJ1meffXbJ6wKoP+bIEbPWrl2r5ORk1dbWyjRN/fa3v9WcOXN83/fs2dNvXvzzzz9XSUmJUlJS/M5TVVWl0tJSnT59WseOHfN7B3ujRo10zTXXXNBeP6+oqEjx8fG68cYbA467pKREZ8+e1a9//Wu//TU1NfrZz34mSdq7d+8F74Lv169fwNc4780339TChQtVWlqqiooKnTt3TqmpqX7HtG3bVq1bt/a7jmmaKi4uVkpKikpLSzVu3DiNHz/ed8y5c+eUlpYWdDwAgkciR8waOHCgFi9erISEBGVlZalRI/9/7k2aNPH7XFFRoT59+mj58uUXnOvKK6+sVwxJSUlBj6moqJAk/eUvf/FLoFLdvH+obN++XaNHj9bcuXM1ePBgpaWlaeXKlXr22WeDjvWVV1654A+L+Pj4kMUK4NJI5IhZTZo0UadOnQI+/uc//7nefPNNtWzZ8oKq9LxWrVpp586d6t+/v6S6ynP37t36+c9/ftHje/bsKdM0tWnTJuXl5V3w/fmOgNfr9e3r3r27PB6PDh06dMlKvlu3br6Fe+ft2LHj8j/k39i2bZvatWunxx57zLfv66+/vuC4Q4cO6ejRo8rKyvJdJy4uTl26dFFGRoaysrK0f/9+jR49OqjrAwgNFrsBPxg9erRatGih4cOHa8uWLTpw4IA2btyo+++/X4cPH5YkPfDAA/rXf/1XrV69Wl999ZXuu+++n7wHvH379srPz9ddd92l1atX+8751ltvSZLatWsnwzC0du1affvtt6qoqFBKSoqmTp2qyZMn64033lBpaak+/fRTvfjii74FZPfee6/27dunhx9+WMXFxVqxYoUKCwuD+nmvuuoqHTp0SCtXrlRpaakWLlx40YV7iYmJys/P1+eff64tW7bo/vvv1+23367MzExJ0ty5c1VQUKCFCxfqf//3f/Xf//3fWrp0qZ577rmg4gFQPyRy4AeNGzfW5s2b1bZtW40cOVLdunXTuHHjVFVV5avQH3roIf3zP/+z8vPz1a9fP6WkpOjWW2/9yfMuXrxY//iP/6j77rtPXbt21fjx41VZWSlJat26tebOnatp06YpIyNDEydOlCQ98cQTmjlzpgoKCtStWzcNGTJEf/nLX5STkyOpbt767bff1urVq5Wbm6slS5bo6aefDurnveWWWzR58mRNnDhRvXv31rZt2zRz5swLjuvUqZNGjhypm2++WYMGDVKvXr38bi+7++679eqrr2rp0qXq2bOnbrzxRhUWFvpiBRBehnWpVToAACDqUZEDAOBgJHIAAByMRA4AgIORyAEAcDASOQAADkYiBwDAwUjkAAA4GIkcAAAHI5EDAOBgJHIAAByMRA4AgIP9f45NnocraQ11AAAAAElFTkSuQmCC", + "text/plain": [ + "<Figure size 640x480 with 2 Axes>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "#######CONFUSION MATRIX ###########\n", + "from sklearn import metrics\n", + "y_test_pred_xgb = model_xgb.predict(X_test)\n", + "confusion_matrix_test = metrics.confusion_matrix(y_test, y_test_pred_xgb)\n", + "cm_display = metrics.ConfusionMatrixDisplay(confusion_matrix = confusion_matrix_test)\n", + "cm_display.plot()\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 115, + "id": "5ad4efb1", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Accuracy : 0.9666666666666667\n", + "Sensitivity : 0.9666666666666667\n", + "Specificity : 0.9666666666666667\n" + ] + } + ], + "source": [ + "total1=sum(sum(confusion_matrix_test))\n", + "#####from confusion matrix calculate accuracy\n", + "accuracy1=(confusion_matrix_test[0,0]+confusion_matrix_test[1,1])/total1\n", + "print ('Accuracy : ', accuracy1)\n", + "\n", + "sensitivity1 = confusion_matrix_test[0,0]/(confusion_matrix_test[0,0]+confusion_matrix_test[0,1])\n", + "print('Sensitivity : ', sensitivity1 )\n", + "\n", + "specificity1 = confusion_matrix_test[1,1]/(confusion_matrix_test[1,0]+confusion_matrix_test[1,1])\n", + "print('Specificity : ', specificity1)" + ] + }, + { + "cell_type": "markdown", + "id": "d9587421", + "metadata": {}, + "source": [ + "#### The model achieved impressive consistency across accuracy, sensitivity, and specificity, with all metrics scoring 0.96, indicating its strong performance in correctly classifying both positive and negative samples." + ] + }, + { + "cell_type": "markdown", + "id": "6603d82c", + "metadata": {}, + "source": [ + "# ROC curve" + ] + }, + { + "cell_type": "code", + "execution_count": 116, + "id": "0e2a2694", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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mMC6deuoX7++oz8jI4MGDRoQFxfHnj17CAgI4NSpU7Ro0YLNmzfTsmVLx/SGv+/c1rJlSxYtWgRkvXNbYmIiy5Yt45tvvqFRo0b89ttvjofZLi9n1qxZMx599FH27t3LpEmTqFOnTpbLmUVERNChQwfHcmalSpVyLGe2ZcsWHnjgAdq1a8cdd9xBoUKF+O6771iyZAlff/01jz/+OAB9+vTho48+YsSIEdx2222UKlWKpk2b5uZXICJy46xdVEJEJP/asGGD4enpafTt2zfL93///XfDw8PD6N+/v6Pv0qVLxrhx44yGDRsagYGBRqFChYzSpUsbjzzyiDFr1iwjPT3dcWxWy5kVKlTIqFChgvHyyy8biYmJV91zwoQJRpUqVQwvLy8jODjY6NWrV6Yl0i6bO3euUbt2bcPHx8coXry40alTJ+Po0aOO98+cOWP06dPHqFKlilG4cGEjKCjIiIiIML766qtM14mLizMefvhhIyAgwAC0tJmI5Gka8RURERERt6A5viIiIiLiFhR8RURERMQtKPiKiIiIiFtQ8BURERERt6DgKyIiIiJuQcFXRERERNxCIasLyG12u53jx48TEBCgrTZFRERE8iDDMEhMTCQ0NNSxSY8ruF3wPX78OGFhYVaXISIiIiL/4siRI5QtW9Zl13O74BsQEACYv5GBgYEWVyMiIiIi/5SQkEBYWJgjt7mK2wXfy9MbAgMDFXxFRERE8jBXT0vVw20iIiIi4hYUfEVERETELSj4ioiIiIhbUPAVEREREbeg4CsiIiIibkHBV0RERETcgoKviIiIiLgFBV8RERERcQsKviIiIiLiFhR8RURERMQtKPiKiIiIiFtQ8BURERERt6DgKyIiIiJuQcFXRERERNyCgq+IiIiIuAVLg++vv/5Kq1atCA0NxWaz8f333//rOStWrKBOnTr4+Phw2223MX369ByvU0RERETyP0uD78WLF6lZsyYTJ068oeNjY2N5+OGHuf/++9myZQsvvvgizz77LIsXL87hSkVEREQkvytk5c1btmxJy5Ytb/j4yZMnU758ecaOHQtA1apVWbVqFe+//z7NmzfPqTL/lWFAUpJltxcREREpUC5ezJnrWhp8nbV27VoiIyMz9TVv3pwXX3zxmuekpKSQkpLiaCckJLi0JsOAu++GNWtcelkRERERt1SINNJz6Nr5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X+6SwnJKQkICQUFBHD8eT0hIoNXliEhBt2SJGXjvvtts/33pMhERydLlvBYfH09goOvy2g2P+K5YscJlNxURKfCSk80H2N5/H8LCzI0oihUztx/+l0EEERHJGU5vYCEiIv9i507o2BG2bTPbrVqBj4+1NYmIiPNbFouIyDUYBowfD3XrmqG3ZEmYPx8mToS/PR8hIiLW0IiviIgrJCXB449DTIzZbtkSpk2D4GBr6xIREQeN+IqIuIKfHxQpYk5pGD8eFi5U6BURyWMUfEVEsispCeLjzV/bbPDxx7BxI/TtqwfYRETyoGwF399++43OnTvTsGFDjh07BsDMmTNZtWqVS4sTEcmzNm825/L26GHO7QUoXhzuvNPaukRE5JqcDr7ffPMNzZs3x8/Pj82bN5OSkgJAfHw8o0aNcnmBIiJ5it0OY8aYWwzv2QOrVkFcnNVViYjIDXA6+L755ptMnjyZKVOm4OXl5ehv3LgxmzZtcmlxIiJ5ytGj8OCD8MorkJYGbdqYqzeEhFhdmYiI3ACng+/evXu59957r+oPCgri/PnzrqhJRCTv+fprqFEDli83lyabMgW++QZKlLC6MhERuUFOB9/SpUuzf//+q/pXrVpFhQoVXFKUiEiekpQEAwbAuXNQr545v/fZZ/UAm4hIPuN08O3RowcvvPAC69evx2azcfz4cWbNmsXAgQPp1atXTtQoImItf3/4/HNzC+I1a6BSJasrEhGRbHB6A4tBgwZht9t54IEHSEpK4t5778XHx4eBAwfSr1+/nKhRRCR3pafD6NEQFgZPPWX23X+/+RIRkXzLZhiX1+FxTmpqKvv37+fChQvccccdFClSxNW15YiEhASCgoI4fjyekJBAq8sRkbwmNha6dIHVq6FwYfjzTz28JiKSyy7ntfj4eAIDXZfXsr1lsbe3N3fccYfLChERsZRhwKxZ0Ls3JCZCYCBMmqTQKyJSgDgdfO+//35s13mgY/ny5TdVkIhIrjt/3gy8X35pths3hi++gPBwK6sSEREXczr41qpVK1M7LS2NLVu2sGPHDrp16+aqukREckdSEtSpY05x8PSE11+HQYOgULZ/ICYiInmU03+zv//++1n2v/7661y4cOGmCxIRyVX+/tC+PcybZ051iIiwuiIREckh2X647Z/2799PgwYNOHv2rCsul2P0cJuIsG8feHjA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elXozsrzzz/Pli1brvu61lQHb29v6taty7Jlyxx9drudZcuWOaaEXI+vry9lypQhPT2db775htatW191TOHChQkJCeHcuXMsXrz4qmN27Nhx3VH33Kbg6wqJifD009CuHZw7Zz689v9/0YiIiFjhiSeewNPTk4kTJwJQrlw53nnnHcaNG8fQoUPZs2cPBw4c4L333uOVV17hpZdeIiIiAoCIiAhH3yuvvMLatWv53//+x7Jly3jiiSeYMWNGlvfs0KEDpUuX5rHHHmP16tUcPHiQb775xvEgVdOmTdmwYQOff/45f/75J9HR0ezYseOGP1PHjh2ZPHkyS5YsoVOnTo7+gIAABg4cyIABA5gxYwYHDhxg06ZNjB8//pq1gjmXde3atY65q2DO3V2yZAlr1qxh9+7dPPfcc1eNmGalT58+nD17lg4dOvDHH39w4MABFi9eTPfu3cnIyKBYsWLccsstfPLJJ+zfv5/ly5cTFRX1r9ctXrz4VUH6n69Cha79A/yoqCimTJnCjBkz2L17N7169eLixYt0797dcUzXrl0ZPHiwo71+/Xq+/fZbDh48yG+//UaLFi2w2+288sorjmMWL15MTEwMsbGxLFmyhPvvv58qVapkui6YDxA2a9bsXz9nrnHpGhH5gMuXM1u71jAqVjSXKbPZDGPoUMNITXXNtUVEJNdcb2mlvC6rZcIMwzBGjx5tlCxZ0rhw4YKj74cffjDuueceo3Dhwoavr69Rt25dY+rUqVled+7cuca9995rBAQEGIULFzZq1KhhjBgx4rrLmR06dMh4/PHHjcDAQMPf39+oV6+esX79esf7w4cPN4KDg42goCBjwIABRt++fa9azuyFF17I8tq7du0yAOPWW2817P9Y881utxvjxo0zKleubHh5eRklS5Y0mjdvbqxcufKataalpRmhoaFGTEyMo++vv/4yWrdubRQpUsQoVaqUMWzYMKNr166Zfn+vVeO+ffuMNm3aGEWLFjX8/PyMKlWqGC+++KKj1iVLlhhVq1Y1fHx8jBo1ahgrVqwwAOO77767Zo2uMH78eKNcuXKGt7e30aBBA8fycn//PN26dXO0V6xY4ajzlltuMbp06WIcO3Ys0zlz5841KlSoYHh7exulS5c2+vTpY5w/fz7TMUePHjW8vLyMI0eOZFmXFcuZ2QwjmzPY86mEhASCgoI4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", + "text/plain": [ + "<Figure size 800x600 with 1 Axes>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from sklearn.metrics import roc_curve, auc\n", + "# Calculate the false positive rate (FPR), true positive rate (TPR), and thresholds\n", + "fpr, tpr, thresholds = roc_curve(y_test, y_proba)\n", + "\n", + "# Calculate the area under the ROC curve (AUC)\n", + "roc_auc = auc(fpr, tpr)\n", + "\n", + "# Plot the ROC curve\n", + "plt.figure(figsize=(8, 6))\n", + "plt.plot(fpr, tpr, color='blue', label='ROC curve (area = %0.2f)' % roc_auc)\n", + "plt.plot([0, 1], [0, 1], color='red', linestyle='--')\n", + "plt.xlim([0.0, 1.0])\n", + "plt.ylim([0.0, 1.05])\n", + "plt.xlabel('False Positive Rate')\n", + "plt.ylabel('True Positive Rate')\n", + "plt.title('XGBoost')\n", + "plt.legend(loc='lower right')\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "id": "371daa84", + "metadata": {}, + "source": [ + "### The ROC curve above shows that the XGBoost model has an AUC of 0.99 which indicates that the model preformed good in classification of non cancer and cancer." + ] + }, + { + "cell_type": "code", + "execution_count": 117, + "id": "338beef4", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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19eEhISY119/PdVrOnz4sGnTpo3x8/MzgYGB5plnnjHLly9PV8C/VvA1xpgxY8YYwEybNs3Zlp73JK3P+d/vz4wZM8zdd99tAgMDjZeXl6lcubKZMmXKNWsVyYkKZHWPskh+4ubmxvvvv0+tWrXo3bs3P/30E3Xr1qVv374p9luyZAlgjQvOqNjYWM6cOQNATEwM33zzDcuXL2fw4MEp9nv55Zd55ZVXCA8Pp3fv3uzdu5f33nuPjRs3sm7dOjw9PYF/vjqtV68eY8eO5eTJk7zzzjusW7eOrVu3UqRIEQAeeOABdu3aRf/+/QkLC+PUqVOsXLmSI0eOEBYWxoQJE+jfvz+FChVi6NChAAQFBWX49WVEYmIix44do2jRoinalyxZgo+PDx07dkzzuLJly9KkSRNWr17N5cuX8fX1ZfHixfj6+vK///0vU7XExsayatUq7rzzTsqUKZOpc1xLYmIiERERNGnShDfffBM/Pz/CwsKYPHkyS5cu5cEHH0xRy5IlS3jkkUfw8PAAYM6cOfTo0YOIiAhef/11YmNjee+992jSpAlbt2696lfbHTp0oEiRIgwcONA5zKZQoUIA7Nq1izvuuAN/f3+ef/55PD09ef/997nrrrv44YcfaNCgQYpz9enTh8DAQIYPH86lS5du+D158MEHqVChAmPGjMH8/6i9lStXcvDgQXr27EnJkiXZtWsX06ZNY9euXfz888/XHdawf/9+/ve///HYY4/Ro0cPZsyYwSOPPEKdOnWoUqXKNY89d+4cLVq0oEOHDnTs2JHPPvuMF154gWrVqtGyZUsALl26RLNmzThx4gQDBgygZMmSzJs3j++///6G3w+Abt26MWTIEFasWOEc/pOe96RDhw7s27ePTz75hLfffpvixYsDEBgYCMB7771HlSpVuP/++ylQoABLliyhT58+OByOVH+/ieRodidvkbxo8ODBBjAeHh5m8+bNqZ5v3769Acz58+dTtF++fNmcPn3a+fh372xyT2Baj969exuHw+Hc99SpU8bLy8s0b97cJCUlOdsnTZpkADNjxgxjjDHx8fGmRIkSpmrVquby5cvO/b7++msDmOHDhxtjrGEApOOr7qwe6tC8eXPne7Njxw7TrVs3A5i+ffum2LdIkSKmRo0a1zzf008/bQDz22+/GWOMKVq06HWPuZbt27cbwAwYMCBd+2e0xxcwL774Yop9HQ6HKVWqlHnggQdStH/66acGMD/++KMxxpgLFy6YIkWKmF69eqXYLyoqygQEBKRq/6+rfdvQrl074+XlZQ4cOOBsO378uClcuLC58847nW3JvZRNmjRJ0QOdHtfq8e3cuXOq/dP6ij/5m5fk9+PfNf23x/e/+506dcp4e3ubZ5991tl2tR5f/vMtQ1xcnClZsmSKz2f8+PEGMIsWLXK2Xb582VSqVMklPb7GGBMQEGBq1arl3E7ve3KtoQ5pnSMiIsKUK1fumvWK5DSa1UEkCyT3loSEhFC1atVUz8fExAA4e86STZ06lcDAQOejSZMmqY594oknWLlyJStXruTzzz+nb9++vP/++0RGRjr3+e6774iPj+eZZ55JcfNNr1698Pf3Z+nSpYB109apU6fo06cPPj4+zv1at25NpUqVnPv5+vri5eXFmjVrOHfuXGbflhu2YsUK53tTrVo15syZQ8+ePVPd1HfhwgUKFy58zXMlP5/8WcTExFz3mGtJPs+NnON6evfunWLbzc2NBx98kGXLlnHx4kVn+4IFCyhVqpTz52flypWcP3+ezp07c+bMGefDw8ODBg0aZKq3MSkpiRUrVtCuXTvKlSvnbA8ODqZLly6sXbvW+Z4k69Wrl7MH2hWeeuqpVG2+vr7O31+5coUzZ85w++23A7Bly5brnvO2227jjjvucG4HBgZy6623cvDgweseW6hQoRTf4nh5eVG/fv0Uxy5fvpxSpUpx//33O9t8fHxS3Zx5IwoVKpRidocbfU/+e47o6GjOnDlD06ZNOXjwINHR0S6qXCTrKfiKuNjRo0cZMWIEVatW5ejRo7zxxhup9kkOR/8OK2ANJ0gOtVe7K7tChQqEh4cTHh5Ohw4dmDRpEn369GHChAns2LEDgD///BOAW2+9NcWxXl5elCtXzvn81fYDqFSpkvN5b29vXn/9db755huCgoK48847eeONN4iKikr3+/Jfp0+fJioqyvn473uRlgYNGrBy5UqWL1/Om2++SZEiRTh37hxeXl4p9itcuPB1p3VKfj75s/D397+hqaD8/f1TnNfVChQoQOnSpVO1d+rUicuXL7N48WLA+platmwZDz74oPNr/T/++AOAZs2apfiPVWBgICtWrODUqVMZruf06dPExsam+bNTuXJlHA4HR48eTdFetmzZDF/n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REREJJu4GZN8W7s9GjRoQL169Zg0aRIADoeD0NBQ+vfvz4svvnjd45OSkihatCiTJk2ie/fu190/JiaGgIAAjh+PJjjY/4brl1xk1CjYsAFmzoSgILurERERkatIzmvR0dH4+7sur9k6nVl8fDybN29m8ODBzjZ3d3fCw8PZsGFDus4RGxtLQkICxYoVS/P5uLg44uLinNsxWnY2/1iyBMqWhapVre0hQ8Dd3Zq6TERERPIdW4c6nDlzhqSkJIL+0/sWFBREVFRUus7xwgsvEBISQnh4eJrPjx07loCAAOcjNDT0huuWHC42Fnr3hvvvh65drRvawFp+WKFXREQk37J9jO+NeO2115g/fz5ffvklPj4+ae4zePBgoqOjnY+jR49mc5WSrbZsgdq1YepUazs8XGFXREREAJuHOhQvXhwPDw9OnjyZov3kyZOULFnymse++eabvPbaa3z33XdUr179qvt5e3vj7e3tknolB3M44M03YdgwSEiA4GD46CMr+IqIiIhgc4+vl5cXderUYdWqVc42h8PBqlWraNiw4VWPe+ONNxg1ahTLly+nbt262VGq5GTnzlkB94UXrNDbvr01e4NCr4iIiPyLrT2+AJGRkfTo0YO6detSv359JkyYwKVLl+jZsycA3bt3p1SpUowdOxaA119/neHDhzNv3jzCwsKcY4ELFSpEoUKFbHsdYiN/fyvw+vnBu+/Co49qeIOIiIikYnvw7dSpE6dPn2b48OFERUVRs2ZNli9f7rzh7ciRI7i7/9Mx/d577xEfH8///ve/FOcZMWIEL7/8cnaWLna6cAE8PcHHx7ppbe5ciIuDChXsrkxERERyKNvn8c1umsc3D/j5Z2u2hjZt/lmFTURERPKMrJrHN1fP6iD5TGIijBwJTZrAwYOwaBFoXmYRERFJJwVfyR0OHYKmTWHECEhKgi5dYNs2a3yviIiISDoo+ErOZgzMmQM1asD69VbQ/fhja0xvkSJ2VyciIiK5iO03t4lc099/Q//+1s1sjRtboTcszO6qREREJBdS8JWcrXhxeP99+OMPePFFKKAfWREREckcpQjJWeLj4eWXrRvYWrWy2jp1srUkERERyRsUfCXn2LvXmqZs82YoUQL274fChe2uSkRERPII3dwm9jMGpk+H2rWt0Fu0KEyZotArIiIiLqUeX7HXmTPQq5c1Jy9A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mxIlSpjRo0fb9RIkAzL6eY8YMcIULlzYfPLJJ+bgwYNmxYoVpnz58qZjx452vQTJgAsXLpitW7earVu3GsC89dZbZuvWrebPP/80xhjz4osvmm7dujn3T57O7LnnnjO7d+82kydP1nRmySZOnGjKlCljvLy8TP369c3PP//sfK5p06amR48eKfb/9NNPTcWKFY2Xl5epUqWKWbp0aTZXLDciI5/3zTffbIBUjxEjRmR/4ZIpGf3z/W8KvrlPRj/v9evXmwYNGhhvb29Trlw58+qrr5rExMRsrloyKyOfd0JCgnn55ZdN+fLljY+PjwkNDTV9+vQx586dy/7CJcO+//77NP89Tv6Me/ToYZo2bZrqmJo1axovLy9Trlw5M3PmzAxf180YfR8gIiIiInlfnhrjKyIiIiJyNQq+IiIiIpIvKPiKiIiISL6g4CsiIiIi+YKCr4iIiIjkCwq+IiIiIpIvKPiKiIiISL6g4CsiIiIi+YKCr4gIMGvWLIoUKWJ3GZnm5ubGokWLrrnPI488Qrt27bKlHhGRnEjBV0TyjEceeQQ3N7dUj/3799tdGrNmzXLW4+7uTunSpenZsyenTp1yyflPnDhBy5YtATh8+DBubm5s27YtxT7vvPMOs2bNcsn1rubll192vk4PDw9CQ0N54oknOHv2bIbOo5AuIlmhgN0FiIi4UosWLZg5c2aKtsDAQJuqScnf35+9e/ficDjYvn07PXv25Pjx43z77bc3fO6SJUted5+AgIAbvk56VKlShe+++46kpCR2797No48+SnR0NAsWLMiW64uIXI16fEUkT/H29qZkyZIpHh4eHrz11ltUq1aNggULEhoaSp8+fbh48eJVz7N9+3buvvtuChcujL+/P3Xq1GHTpk3O59euXcsdd9yBr68voaGhPP3001y6dOmatbm5uVGyZElCQkJo2bIlTz/9NN999x2XL1/G4XAwcuRISpcujbe3NzVr1mT58uXOY+Pj4+nXrx/BwcH4+Phw8803M3bs2BTnTh7qULZsWQBq1aqFm5sbd911F5CyF3XatGmEhITgcDhS1Ni2bVseffRR5/ZXX31F7dq18fHxoVy5crzyyiskJiZe83UWKFCAkiVLUqpUKcLDw3nwwQdZuXKl8/mkpCQee+wxypYti6+vL7feeivvvPOO8/mXX36Z2bNn89VXXzl7j9esWQPA0aNH6dixI0WKFKFYsWK0bduWw4cPX7MeEZFkCr4iki+4u7vz7rvvsmvXLmbPns3q1at5/vnnr7p/165dKV26NBs3bmTz5s28+OKLeHp6AnDgwAFatGjBAw88wG+//caCBQtYu3Yt/fr1y1BNvr6+OBwOEhMTeeeddxg/fjxvvvkmv/32GxEREdx///388ccfALz77rssXryYTz/9lL179zJ37lzCwsLSPO+vv/4KwHfffceJEyf44osvUu3z4IMP8vfff/P99987286ePcvy5cvp2rUrAD/99BPdu3dnwIAB/P7777z//vvMmjWLV199Nd2v8fDhw3z77bd4eXk52xwOB6VLl2bhwoX8/vvvDB8+nCFDhvDpp58CMGjQIDp27EiLFi04ceIEJ06coFGjRiQkJBAREUHhwoX56aefWLduHYUKFaJFixbEx8enuyYRyceMiEge0aNHD+Ph4WEKFizofPzvf/9Lc9+FCxeam266ybk9c+ZMExAQ4NwuXLiwmTVrVprHPvbYY+aJJ55I0fbTTz8Zd3d3c/ny5TSP+e/59+3bZypWrGjq1q1rjDEmJCTEvPrqqymOqVevnunTp48xxpj+/fubZs2aGYfDkeb5AfPll18aY4w5dOiQAczWrVtT7NOjRw/Ttm1b53bbtm3No48+6tx+//33TUhIiElKSjLGGHPPPfeYMWPGpDjHnDlzTHBwcJo1GGPMiBEjjLu7uylYsKDx8fExgAHMW2+9ddVjjDGmb9++5oEHHrhqrcnXvvXWW1O8B3FxccbX19d8++231zy/iIgxxmiMr4jkKXfffTfvvfeec7tgwYKA1fs5duxY9uzZQ0xMDImJiVy5coXY2Fj8/PxSnScyMpLHH3+cOXPmOL+uL1++PGANg/jtt9+YO3euc39jDA6Hg0OHDlG5cuU0a4uOjqZQoUI4HA6uXLlCkyZN+OCDD4iJieH48eM0btw4xf6NGzdm+/btgDVM4d577+XWW2+lRYsW3HfffTRv3vyG3quuXbvSq1cvpkyZgre3N3PnzuWhhx7C3d3d+TrXrVuXooc3KSnpmu8bwK233srixYu5cuUKH3/8Mdu2baN///4p9pk8eTIzZszgyJEjXL58mfj4eGrWrHnNerdv387+/fspXLhwivYrV65w4MCBTLwDIpLfKPiKSJ5SsGBBbrnllhRthw8f5r777qN37968+uqrFCtWjLVr1/LYY48RHx+fZoB7+eWX6dKlC0uXLuWbb75hxIgRzJ8/n/bt23Px4kWefPJJnn766VTHlSlT5qq1FS5cmC1btuDu7k5wcDC+vr4AxMTEXPd11a5dm0OHDvHNN9/w3Xff0bFjR8LDw/nss8+ue+zVtGnTBmMMS5cupV69evz000+8/fbbzucvXrzIK6+8QocOHVId6+Pjc9Xzenl5OT+D1157jdatW/PKK68watQoAObPn8+gQYMYP348DRs2pHDhwowbN45ffvnlmvVevHiROnXqpPgPR7KccgOjiORsCr4ikudt3rwZh8PB+PHjnb2ZyeNJr6VixYpUrFiRgQMH0rlzZ2bOnEn79u2pXbs2v//+e6qAfT3u7u5pHuPv709ISAjr1q2jadOmzvZ169ZRv379FPt16tSJTp068b///Y8WLVpw9uxZihUrluJ8yeNpk5KSrlmPj48PHTp0YO7cuezfv59bb72V2rVrO5+vXbs2e/fuzfDr/K9hw4bRrFkzevfu7XydjRo1ok+fPs59/ttj6+Xllar+2rVrs2DBAkqUKIG/v/8N1SQi+ZNubhORPO+WW24hISGBiRMncvDgQebMmcPUqVOvuv/ly5fp168fa9as4c8//2TdunVs3LjROYThhRdeYP369fTr149t27bxxx9/8NVXX2X45rZ/e+6553j99ddZsGABe/fu5cUXX2Tbtm0MGDAAgLfeeotPPvmEPXv2sG/fPhYuXEjJkiXTXHSjRIkS+Pr6snz5ck6ePEl0dPRVr9u1a1eWLl3KjBkznDe1JRs+fDgfffQRr7zyCrt27WL37t3Mnz+fYcOGZei1NWzYkOrVqzNmzBgAKlSowKZNm/j222/Zt28fL730Ehs3bkxxTFhYGL/99ht79+7lzJkzJCQk0LVrV4oXL07btm356aefOHToEGvWrOHpp5/m2LFjGapJRPInBV8RyfNq1KjBW2+9xeuvv07VqlWZO3duiqnA/svDw4O///6b7t27U7FiRTp27EjLli155ZVXAKhevTo//PAD+/bt44477qBWrVoMHz6ckJCQTNf49NNPExkZybPPPku1atVYvnw5ixcvpkKFCoA1TOKNN96gbt261KtXj8OHD7Ns2TJnD/a/FShQgHfffZf333+fkJAQ2rZte9XrNmvWjGLFirF37166dOmS4rmIiAi+/vprVqxYQb169bj99tt5++23ufnmmzP8+gYOHMgHH3zA0aNHefLJJ+nQoQOdOnWiQYMG/P333yl6fwF69erFrbfeSt26dQkMDGTdunX4+fnx448/UqZMGTp06EDlypV57LHHuHLlinqARSRd3Iwxxu4iRERERESymnp8RURERCRfUPAVERERkXxBwVdERERE8gUFXxERERHJFxR8RURERCRfUPAVERERkXxBwVdERERE8gUFXxERERHJFxR8RURERCRfUPAVERERkXxBwVdERERE8oX/A8lTrErJuNg/AAAAAElFTkSuQmCC", + "text/plain": [ + "<Figure size 800x600 with 1 Axes>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Predict probabilities for the training data\n", + "y_train_proba = model_xgb.predict_proba(X_train)[:, 1]\n", + "\n", + "# Calculate the false positive rate (FPR), true positive rate (TPR), and thresholds\n", + "fpr_train, tpr_train, thresholds_train = roc_curve(y_train, y_train_proba)\n", + "\n", + "# Calculate the area under the ROC curve (AUC) for training data\n", + "roc_auc_train = auc(fpr_train, tpr_train)\n", + "\n", + "# Plot the ROC curve for training data\n", + "plt.figure(figsize=(8, 6))\n", + "plt.plot(fpr_train, tpr_train, color='blue', label='ROC curve (area = %0.2f)' % roc_auc_train)\n", + "plt.plot([0, 1], [0, 1], color='red', linestyle='--')\n", + "plt.xlim([0.0, 1.0])\n", + "plt.ylim([0.0, 1.05])\n", + "plt.xlabel('False Positive Rate')\n", + "plt.ylabel('True Positive Rate')\n", + "plt.title('XGBoost - ROC Curve for Training Data')\n", + "plt.legend(loc='lower right')\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "id": "9c0fc6a6", + "metadata": {}, + "source": [ + "#### In the ROC curve above we can see that the AUC value of 1 for the train set which indicates the model's flawless ability to distinguish between positive and negative classes during training, showcasing excellent performance on the training data." + ] + }, + { + "cell_type": "markdown", + "id": "bee03388", + "metadata": {}, + "source": [ + "# Feature importance" + ] + }, + { + "cell_type": "code", + "execution_count": 118, + "id": "6688e037", + "metadata": {}, + "outputs": [], + "source": [ + "# for important features:\n", + "important_feat = model_xgb.feature_importances_\n", + "#get indices of those important features\n", + "idx = important_feat.argsort(kind= \"quicksort\")\n", + "idx= idx[::-1][:50]" + ] + }, + { + "cell_type": "code", + "execution_count": 119, + "id": "4e6a7ea1", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([ 32, 212, 169, 137, 170, 83, 84, 101, 7, 140, 104, 17, 14,\n", + " 120, 135, 116, 103, 198, 136, 229, 22, 189, 217, 71, 77, 75,\n", + " 78, 79, 76, 74, 73, 72, 70, 80, 68, 67, 66, 65, 64,\n", + " 63, 62, 61, 69, 108, 106, 105, 102, 100, 99, 98])" + ] + }, + "execution_count": 119, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "idx" + ] + }, + { + "cell_type": "code", + "execution_count": 120, + "id": "f2101fe1", + "metadata": {}, + "outputs": [], + "source": [ + "df1 = X.T" + ] + }, + { + "cell_type": "code", + "execution_count": 121, + "id": "2cbf1166", + "metadata": {}, + "outputs": [], + "source": [ + "top_met = df1.iloc[idx]" + ] + }, + { + "cell_type": "code", + "execution_count": 122, + "id": "2370b2df", + "metadata": { + "scrolled": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "Index(['hsa-miR-130b-3p', 'hsa-miR-93-5p', 'hsa-miR-455-3p', 'hsa-miR-378i',\n", + " 'hsa-miR-455-5p', 'hsa-miR-21-3p', 'hsa-miR-21-5p', 'hsa-miR-29c-3p',\n", + " 'hsa-miR-100-5p', 'hsa-miR-424-5p', 'hsa-miR-30a-5p', 'hsa-miR-1246',\n", + " 'hsa-miR-1224-5p', 'hsa-miR-338-3p', 'hsa-miR-378a-3p',\n", + " 'hsa-miR-324-3p', 'hsa-miR-301a-3p', 'hsa-miR-582-5p', 'hsa-miR-378d',\n", + " 'mr_1', 'hsa-miR-126-3p', 'hsa-miR-497-5p', 'hsa-miR-99a-5p',\n", + " 'hsa-miR-197-3p', 'hsa-miR-19b-3p', 'hsa-miR-199a-5p',\n", + " 'hsa-miR-200b-3p', 'hsa-miR-200c-3p', 'hsa-miR-19a-3p',\n", + " 'hsa-miR-199a-3p', 'hsa-miR-1973', 'hsa-miR-197-5p', 'hsa-miR-195-5p',\n", + " 'hsa-miR-205-5p', 'hsa-miR-193a-5p', 'hsa-miR-1915-3p',\n", + " 'hsa-miR-18b-5p', 'hsa-miR-18a-5p', 'hsa-miR-188-5p', 'hsa-miR-185-5p',\n", + " 'hsa-miR-181b-5p', 'hsa-miR-181a-5p', 'hsa-miR-193b-3p', 'hsa-miR-3125',\n", + " 'hsa-miR-30c-5p', 'hsa-miR-30b-5p', 'hsa-miR-29c-5p', 'hsa-miR-29a-3p',\n", + " 'hsa-miR-296-5p', 'hsa-miR-27b-3p'],\n", + " dtype='object')" + ] + }, + "execution_count": 122, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "top_met.index" + ] + }, + { + "cell_type": "code", + "execution_count": 123, + "id": "479adbc2", + "metadata": {}, + "outputs": [], + "source": [ + "from xgboost import plot_importance" + ] + }, + { + "cell_type": "code", + "execution_count": 124, + "id": "24f6ba66", + "metadata": {}, + "outputs": [], + "source": [ + "from matplotlib import pyplot as plt" + ] + }, + { + "cell_type": "code", + "execution_count": 125, + "id": "9e9641d0", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Text(0.5, 0, 'Xgboost Feature Importance')" + ] + }, + "execution_count": 125, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "<Figure size 640x480 with 1 Axes>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "sorted_idx = model_xgb.feature_importances_.argsort()\n", + "plt.barh(top_met.index, model_xgb.feature_importances_[idx])[::-1]\n", + "plt.xlabel(\"Xgboost Feature Importance\")" + ] + }, + { + "cell_type": "markdown", + "id": "280fc535", + "metadata": {}, + "source": [ + "#### The plot above shows the feature importance from low to high for top 50 genes" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "5cf81884", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "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.9.16" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +}