diff --git a/Machine Learning/DS_mRNA_TCGA_limma_dataset_xgb_final-F.ipynb b/Machine Learning/DS_mRNA_TCGA_limma_dataset_xgb_final-F.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..cf4aa0d2de3fd80008ada1622d84886489c32c28 --- /dev/null +++ b/Machine Learning/DS_mRNA_TCGA_limma_dataset_xgb_final-F.ipynb @@ -0,0 +1,6446 @@ +{ + "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": "iVBORw0KGgoAAAANSUhEUgAAAgwAAAGwCAYAAADFZj2cAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAy1ElEQVR4nO3deXhU5fn/8c8kkEnIBoFACAQIhrCURQS/lCqbIgS/RRDUivgTFGxVEAmyatmVtFo3KIJfFwIWBKqCCooFlSWCVtCAIEQSUEACLhRCglmYc35/IFOHbTI5J8lkeL+u61zNOXOWe1pKbu77eZ7jME3TFAAAwCUEVXYAAADA/5EwAAAAr0gYAACAVyQMAADAKxIGAADgFQkDAADwioQBAAB4Va2yA6gKDMPQ4cOHFRkZKYfDUdnhAAB8ZJqmTp48qfj4eAUFld+/lQsLC1VcXGz5PiEhIQoNDbUhIvuQMJTC4cOHlZCQUNlhAAAsOnjwoBo2bFgu9y4sLFRi4wgd+d5l+V5xcXHav3+/XyUNJAylEBkZKUlq8vAUBTn95388wE5N5uyq7BCAcnPaLNHG/OXuv8/LQ3FxsY5879K325ooKrLsVYy8k4Yad/hGxcXFJAxVzdk2RJAzVMF+9D8eYKdqjpDKDgEodxXRVo6IdCgisuzPMeSfrW8SBgAAbOQyDbksvKXJZRr2BWMjEgYAAGxkyJShsmcMVq4tT0yrBAAAXlFhAADARoYMWWkqWLu6/JAwAABgI5dpymWWva1g5dryREsCAAB4RYUBAAAbBeqgRxIGAABsZMiUKwATBloSAADAKyoMAADYiJYEAADwilkSAADgskWFAQAAGxm/bFau90ckDAAA2MhlcZaElWvLEwkDAAA2cpmy+LZK+2KxE2MYAACAV1QYAACwEWMYAACAV4Yccslh6Xp/REsCAAB4RYUBAAAbGeaZzcr1/oiEAQAAG7kstiSsXFueaEkAAFCFpaWl6eqrr1ZkZKTq1q2r/v37Kysry+Oc7t27y+FweGz33XefT88hYQAAwEZnKwxWNl9s2LBBI0aM0CeffKK1a9eqpKREvXr1UkFBgcd59957r3Jzc93bE0884dNzaEkAAGAjw3TIMC3MkvDx2jVr1njsp6enq27dutq2bZu6du3qPl6jRg3FxcWVOS4qDAAA+KG8vDyPraioqFTXnThxQpIUExPjcXzx4sWqU6eOWrdurUmTJunUqVM+xUOFAQAAG9k16DEhIcHj+NSpUzVt2rRLXmsYhkaPHq1rrrlGrVu3dh+/44471LhxY8XHx2vHjh2aMGGCsrKy9Oabb5Y6LhIGAABs5FKQXBYK+K5f/vPgwYOKiopyH3c6nV6vHTFihHbu3KmMjAyP43/84x/dP7dp00b169fX9ddfr5ycHF1xxRWliouEAQAAG5kWxzCYv1wbFRXlkTB4M3LkSK1atUobN25Uw4YNL3lup06dJEnZ2dkkDAAAXA5M09SDDz6oFStWaP369UpMTPR6TWZmpiSpfv36pX4OCQMAADaq6IWbRowYoSVLluitt95SZGSkjhw5IkmKjo5WWFiYcnJytGTJEt14442qXbu2duzYodTUVHXt2lVt27Yt9XNIGAAAsJHLDJLLtDCGwceloefNmyfpzOJMv7ZgwQINHTpUISEhWrdunZ599lkVFBQoISFBAwcO1J///GefnkPCAABAFWaal84wEhIStGHDBsvPIWEAAMBGhhwyLMySMOSfb58iYQAAwEa8fAoAAFy2qDAAAGAj64MeaUkAABDwzoxhsPDyKVoSAACgqqLCAACAjQyL75JglgQAAJcBxjAAAACvDAUF5DoMjGEAAABeUWEAAMBGLtMhl4XXW1u5tjyRMAAAYCOXxUGPLloSAACgqqLCAACAjQwzSIaFWRIGsyQAAAh8tCQAAMBliwoDAAA2MmRtpoNhXyi2ImEAAMBG1hdu8s/iv39GBQAA/AoVBgAAbGT9XRL++W95EgYAAGxkyCFDVsYwsNIjAAABL1ArDP4ZFQAA8CtUGAAAsJH1hZv889/yJAwAANjIMB0yrKzD4Kdvq/TPNAYAAPgVKgwAANjIsNiS8NeFm0gYAACwkfW3VfpnwuCfUQEAAL9ChQEAABu55JDLwuJLVq4tTyQMAADYiJYEAAC4bFFhAADARi5Zayu47AvFViQMAADYKFBbEiQMAADYiJdPAQCAyxYVBgAAbGTKIcPCGAaTaZUAAAQ+WhIAAOCyRYUBAAAbBerrrUkYAACwkcvi2yqtXFue/DMqAADgV6gwAABgI1oSAADAK0NBMiwU8K1cW578MyoAAOBXqDAAAGAjl+mQy0Jbwcq15YmEAQAAGzGGAQAAeGVafFulyUqPAACgqqLCAACAjVxyyGXhBVJWri1PJAwAANjIMK2NQzBMG4OxES0JAADgFRUGVJqOcYc1rG2mflPnB9UNP6UR/0rRB98mSpKqOVx66Op/q1vCATWMzFN+cYg2H26op//9W31/KrySIwfKpnXHE7pl2CEltS5Q7brFmvFAS235oHZlhwWbGRYHPVq5tjz5Z1RepKenq2bNmpUdBiwKq1aiPcdqa8bmLud9FlrttFrV/lHPf9FBA1fcogfX9VZi9HE93+u9SogUsEdoDZf2ZUXo+elNKzsUlCNDDsubP6rUCsPQoUO1cOHC847v3btXSUlJlRARKtKmQ4216VDjC36WX+LUsPf6ehyb+XEXvX7zG6offlK5BZEVESJgq60bY7R1Y0xlhwGUSaW3JFJSUrRgwQKPY7GxsZUUDfxZZEixDFPKK3ZWdigAcFGButJjpbcknE6n4uLiPLbnnntObdq0UXh4uBISEvTAAw8oPz//ovfYvn27evToocjISEVFRalDhw7aunWr+/OMjAx16dJFYWFhSkhI0KhRo1RQUFARXw82CQk+rbH/s0Wrc5qpoCSkssMBgIs6O4bByuaP/DKqoKAgzZ49W7t27dLChQv14Ycfavz48Rc9f/DgwWrYsKE+++wzbdu2TRMnTlT16tUlSTk5OUpJSdHAgQO1Y8cOLVu2TBkZGRo5cuRF71dUVKS8vDyPDZWnmsOlZ6//l+SQpmV0rexwAMCvpKWl6eqrr1ZkZKTq1q2r/v37Kysry+OcwsJCjRgxQrVr11ZERIQGDhyoo0eP+vScSk8YVq1apYiICPd26623avTo0erRo4eaNGmi6667To899piWL19+0XscOHBAPXv2VIsWLdSsWTPdeuutateunaQz/0UOHjxYo0ePVrNmzfS73/1Os2fP1qJFi1RYWHjB+6WlpSk6Otq9JSQklMt3h3fVHC4903Ot4iPyNezdvlQXAPg9Qw73+yTKtPk46HHDhg0aMWKEPvnkE61du1YlJSXq1auXRyU9NTVV77zzjv75z39qw4YNOnz4sAYMGODTcyp9DEOPHj00b9489354eLjWrVuntLQ07dmzR3l5eTp9+rQKCwt16tQp1ahR47x7jBkzRsOHD9err76qnj176tZbb9UVV1wh6Uy7YseOHVq8eLH7fNM0ZRiG9u/fr5YtW553v0mTJmnMmDHu/by8PJKGSnA2WWgcdVxDVvfT8aLQyg4JALwyLc50MH28ds2aNR776enpqlu3rrZt26auXbvqxIkTevnll7VkyRJdd911kqQFCxaoZcuW+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+OCDWrFihdavX69mzZp5fH7ixAnFxsbqtddec1ffs7Ky1KJFC23ZsqXUgx79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GjJkiDp27Kj/+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 +}