Newer
Older
{
"cell_type": "code",
"execution_count": null,
"id": "a4206d15",
"metadata": {},
"outputs": [],
"source": [
"## TRAINING SET : MERGED mRNA DATA , TESTING DATA: (GSE38129) : 60 samples (30 control , 30 ESCC), MODEL: linear SVM"
]
},
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
{
"cell_type": "code",
"execution_count": 1,
"id": "f097ad55",
"metadata": {},
"outputs": [],
"source": [
"import warnings\n",
"warnings.filterwarnings('ignore')\n",
"import pandas as pd\n",
"from sklearn.model_selection import train_test_split\n",
"#from sklearn.model_selection import cross_val_score\n",
"#from sklearn.metrics import accuracy_score\n",
"#import sklearn.metrics as metrics\n",
"#from sklearn.metrics import auc\n",
"from sklearn.metrics import RocCurveDisplay\n",
"#from sklearn.model_selection import KFold\n",
"import matplotlib.pyplot as plt\n",
"import numpy as np\n",
"from imblearn.over_sampling import SMOTE\n",
"from sklearn.linear_model import Lasso\n",
"import xgboost as xgb\n",
"from sklearn.model_selection import GridSearchCV\n",
"import pandas as pd\n",
"import numpy as np\n",
"\n",
"np.random.seed(7)"
]
},
{
"cell_type": "markdown",
"id": "73b6611a",
"metadata": {},
"source": [
"# Data Preprocessing"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "0eeb7a35",
"metadata": {},
"outputs": [],
"source": [
"df_train = pd.read_csv(\"DS/mRNA_DS_preprocessed_training_data.csv\")"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "a6ab23aa",
"metadata": {},
"outputs": [],
"source": [
"df_test = pd.read_csv(\"DS/mRNA_DS_test_data.csv\")"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "683b63ce",
"metadata": {},
"outputs": [],
"source": [
"df_train = df_train.T\n",
"df_test = df_test.T"
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "a701e30d",
"metadata": {},
"outputs": [],
"source": [
"#df_test = df_test[:-1]"
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "77d974be",
"metadata": {},
"outputs": [],
"source": [
"#Transform the input data\n",
"df_train.rename(columns=df_train.iloc[0], inplace = True)\n",
"df_train.drop(df_train.index[0], inplace = True)\n",
"df_train=df_train.reset_index()"
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "2e78017d",
"metadata": {},
"outputs": [],
"source": [
"#Transform the input data\n",
"df_test.rename(columns=df_test.iloc[-1], inplace = True)\n",
"df_test.drop(df_test.index[-1], inplace = True)\n",
"df_test=df_test.reset_index()"
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "ea60801d",
"metadata": {},
"outputs": [],
"source": [
"metadata_test = pd.read_csv(\"DS/mRNA_DS_metadata_col_test_info.csv\")"
]
},
{
"cell_type": "code",
"execution_count": 10,
"id": "58d531b9",
"metadata": {},
"outputs": [],
"source": [
"df_test= df_test.merge(metadata_test, left_on=\"index\", right_on= \"Unnamed: 0\")"
]
},
{
"cell_type": "code",
"execution_count": 11,
"id": "7910f2fa",
"metadata": {},
"outputs": [],
"source": [
"df_test['title0'] = df_test['title0'].replace('(?i)mucosa|normal|healthy', 0, regex=True)\n"
]
},
{
"cell_type": "code",
"execution_count": 12,
"id": "c102e10e",
"metadata": {},
"outputs": [],
"source": [
"df_test['title0'] = df_test['title0'].replace('(?i)Tumor|Cancer|carcinoma', 1, regex=True)"
]
},
{
"cell_type": "code",
"execution_count": 13,
"id": "6c255d2e",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"title0\n",
"0 30\n",
"1 30\n",
"Name: count, dtype: int64"
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_test['title0'].value_counts()"
]
},
{
"cell_type": "code",
"execution_count": 14,
"id": "636b44ab",
"metadata": {},
"outputs": [],
"source": [
"df_test = df_test[pd.to_numeric(df_test['title0'], errors='coerce').notnull()]#remove all non-numeric data from the column."
]
},
{
"cell_type": "code",
"execution_count": 15,
"id": "34896f9a",
"metadata": {},
"outputs": [],
"source": [
"df_test= df_test.drop(['index', 'Unnamed: 0'], axis=1)"
]
},
{
"cell_type": "code",
"execution_count": 16,
"id": "359b5bab",
"metadata": {},
"outputs": [],
"source": [
"df_test= df_test.rename(columns={\"title0\": \"index\"})"
]
},
{
"cell_type": "code",
"execution_count": 17,
"id": "dc14bb1c",
"metadata": {},
"outputs": [],
"source": [
"X_test=df_test.drop(\"index\",axis=1)\n",
"y_test=df_test['index']"
]
},
{
"cell_type": "code",
"execution_count": 18,
"id": "4c50c510",
"metadata": {},
"outputs": [],
"source": [
"metadata_train = pd.read_csv(\"DS/mRNA_DS_metadata_col_info.csv\")"
]
},
{
"cell_type": "code",
"execution_count": 19,
"id": "6730cf89",
"metadata": {},
"outputs": [],
"source": [
"df_train= df_train.merge(metadata_train, left_on=\"index\", right_on= \"Unnamed: 0\")"
]
},
{
"cell_type": "code",
"execution_count": 20,
"id": "7a8ad8ad",
"metadata": {},
"outputs": [],
"source": [
"df_train['title0'] = df_train['title0'].replace('(?i)mucosa|normal|healthy', 0, regex=True)\n"
]
},
{
"cell_type": "code",
"execution_count": 21,
"id": "a8cf8643",
"metadata": {},
"outputs": [],
"source": [
"df_train['title0'] = df_train['title0'].replace('(?i)Tumor|Cancer|carcinoma', 1, regex=True)"
]
},
{
"cell_type": "code",
"execution_count": 23,
"id": "f5d203aa",
"metadata": {},
"outputs": [],
"source": [
"df_train = df_train[pd.to_numeric(df_train['title0'], errors='coerce').notnull()]#remove all non-numeric data from the column."
]
},
{
"cell_type": "code",
"execution_count": 24,
"id": "523bdaa6",
"metadata": {},
"outputs": [],
"source": [
"df_train= df_train.drop(['index', 'Unnamed: 0'], axis=1)"
]
},
{
"cell_type": "code",
"execution_count": 25,
"id": "46a6fb36",
"metadata": {},
"outputs": [],
"source": [
"df_train= df_train.rename(columns={\"title0\": \"index\"})"
]
},
{
"cell_type": "code",
"execution_count": 26,
"id": "e26f88c5",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"index\n",
"0 111\n",
"1 108\n",
"Name: count, dtype: int64"
]
},
"execution_count": 26,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_train['index'].value_counts()"
]
},
{
"cell_type": "code",
"execution_count": 27,
"id": "fbaf2507",
"metadata": {},
"outputs": [],
"source": [
"df_train= df_train.apply(pd.to_numeric)"
]
},
{
"cell_type": "code",
"execution_count": 29,
"id": "776cfbee",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"index\n",
"0 111\n",
"1 108\n",
"Name: count, dtype: int64"
]
},
"execution_count": 29,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_train['index'].value_counts()"
]
},
{
"cell_type": "code",
"execution_count": 30,
"id": "8c0011ea",
"metadata": {},
"outputs": [],
"source": [
"X=df_train.drop(\"index\",axis=1)\n",
"y=df_train['index']"
]
},
{
"cell_type": "code",
"execution_count": 31,
"id": "fc606979",
"metadata": {},
"outputs": [],
"source": [
"X=X.astype('int')"
]
},
{
"cell_type": "code",
"execution_count": 32,
"id": "93e28118",
"metadata": {},
"outputs": [],
"source": [
"y=y.astype('int')"
]
},
{
"cell_type": "markdown",
"id": "e9830b6c",
"metadata": {},
"source": [
"# Feature Selection"
]
},
{
"cell_type": "code",
"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",
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
"id": "8afa29ae",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"98"
]
},
"execution_count": 35,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"len(selected_features)"
]
},
{
"cell_type": "markdown",
"id": "6cee6462",
"metadata": {},
"source": [
"# Test train split"
]
},
{
"cell_type": "code",
"id": "3af09ef8",
"metadata": {},
"outputs": [],
"source": [
"X_train = X_selected\n",
"y_train = y"
]
},
{
"cell_type": "code",
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
"id": "129430e6",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(index\n",
" 0 30\n",
" 1 30\n",
" Name: count, dtype: int64,\n",
" index\n",
" 0 111\n",
" 1 108\n",
" Name: count, dtype: int64)"
]
},
"execution_count": 37,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"y_test.value_counts(),y_train.value_counts()"
]
},
{
"cell_type": "markdown",
"id": "1cfe2a06",
"metadata": {},
"source": [
"# Cross validation"
]
},
{
"cell_type": "code",
"id": "1fbca4b8",
"metadata": {},
"outputs": [],
"source": [
"from sklearn.svm import SVC\n",
"# we can add class_weight='balanced' to add panalize mistake\n",
"svm_model = SVC(kernel = \"linear\", probability=True,random_state=47)"
]
},
{
"cell_type": "code",
"id": "0502e118",
"metadata": {},
"outputs": [],
"source": [
"\n",
"# Defining parameter range\n",
"param_grid = {\n",
" 'C': [0.0005,0.0001,0.001,0.1]\n",
"}"
]
},
{
"cell_type": "code",
"id": "7f2d18b0",
"metadata": {},
"outputs": [],
"source": [
"\n",
"grid = GridSearchCV(svm_model, param_grid, refit=True, verbose=3)"
]
},
{
"cell_type": "code",
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
"id": "79790f1d",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Fitting 5 folds for each of 4 candidates, totalling 20 fits\n",
"[CV 1/5] END ..........................C=0.0005;, score=0.955 total time= 0.0s\n",
"[CV 2/5] END ..........................C=0.0005;, score=0.886 total time= 0.0s\n",
"[CV 3/5] END ..........................C=0.0005;, score=0.955 total time= 0.0s\n",
"[CV 4/5] END ..........................C=0.0005;, score=0.909 total time= 0.0s\n",
"[CV 5/5] END ..........................C=0.0005;, score=0.884 total time= 0.0s\n",
"[CV 1/5] END ..........................C=0.0001;, score=0.909 total time= 0.0s\n",
"[CV 2/5] END ..........................C=0.0001;, score=0.773 total time= 0.0s\n",
"[CV 3/5] END ..........................C=0.0001;, score=0.955 total time= 0.0s\n",
"[CV 4/5] END ..........................C=0.0001;, score=0.909 total time= 0.0s\n",
"[CV 5/5] END ..........................C=0.0001;, score=0.860 total time= 0.0s\n",
"[CV 1/5] END ...........................C=0.001;, score=0.955 total time= 0.0s\n",
"[CV 2/5] END ...........................C=0.001;, score=0.977 total time= 0.0s\n",
"[CV 3/5] END ...........................C=0.001;, score=0.955 total time= 0.0s\n",
"[CV 4/5] END ...........................C=0.001;, score=0.909 total time= 0.0s\n",
"[CV 5/5] END ...........................C=0.001;, score=0.884 total time= 0.0s\n",
"[CV 1/5] END .............................C=0.1;, score=0.864 total time= 0.0s\n",
"[CV 2/5] END .............................C=0.1;, score=0.955 total time= 0.0s\n",
"[CV 3/5] END .............................C=0.1;, score=0.977 total time= 0.0s\n",
"[CV 4/5] END .............................C=0.1;, score=0.977 total time= 0.0s\n",
"[CV 5/5] END .............................C=0.1;, score=0.953 total time= 0.0s\n"
]
},
{
"data": {
"text/html": [
"<style>#sk-container-id-1 {color: black;background-color: white;}#sk-container-id-1 pre{padding: 0;}#sk-container-id-1 div.sk-toggleable {background-color: white;}#sk-container-id-1 label.sk-toggleable__label {cursor: pointer;display: block;width: 100%;margin-bottom: 0;padding: 0.3em;box-sizing: border-box;text-align: center;}#sk-container-id-1 label.sk-toggleable__label-arrow:before {content: \"▸\";float: left;margin-right: 0.25em;color: #696969;}#sk-container-id-1 label.sk-toggleable__label-arrow:hover:before {color: black;}#sk-container-id-1 div.sk-estimator:hover label.sk-toggleable__label-arrow:before {color: black;}#sk-container-id-1 div.sk-toggleable__content {max-height: 0;max-width: 0;overflow: hidden;text-align: left;background-color: #f0f8ff;}#sk-container-id-1 div.sk-toggleable__content pre {margin: 0.2em;color: black;border-radius: 0.25em;background-color: #f0f8ff;}#sk-container-id-1 input.sk-toggleable__control:checked~div.sk-toggleable__content {max-height: 200px;max-width: 100%;overflow: auto;}#sk-container-id-1 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {content: \"▾\";}#sk-container-id-1 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-1 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-1 input.sk-hidden--visually {border: 0;clip: rect(1px 1px 1px 1px);clip: rect(1px, 1px, 1px, 1px);height: 1px;margin: -1px;overflow: hidden;padding: 0;position: absolute;width: 1px;}#sk-container-id-1 div.sk-estimator {font-family: monospace;background-color: #f0f8ff;border: 1px dotted black;border-radius: 0.25em;box-sizing: border-box;margin-bottom: 0.5em;}#sk-container-id-1 div.sk-estimator:hover {background-color: #d4ebff;}#sk-container-id-1 div.sk-parallel-item::after {content: \"\";width: 100%;border-bottom: 1px solid gray;flex-grow: 1;}#sk-container-id-1 div.sk-label:hover label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-1 div.sk-serial::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: 0;}#sk-container-id-1 div.sk-serial {display: flex;flex-direction: column;align-items: center;background-color: white;padding-right: 0.2em;padding-left: 0.2em;position: relative;}#sk-container-id-1 div.sk-item {position: relative;z-index: 1;}#sk-container-id-1 div.sk-parallel {display: flex;align-items: stretch;justify-content: center;background-color: white;position: relative;}#sk-container-id-1 div.sk-item::before, #sk-container-id-1 div.sk-parallel-item::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: -1;}#sk-container-id-1 div.sk-parallel-item {display: flex;flex-direction: column;z-index: 1;position: relative;background-color: white;}#sk-container-id-1 div.sk-parallel-item:first-child::after {align-self: flex-end;width: 50%;}#sk-container-id-1 div.sk-parallel-item:last-child::after {align-self: flex-start;width: 50%;}#sk-container-id-1 div.sk-parallel-item:only-child::after {width: 0;}#sk-container-id-1 div.sk-dashed-wrapped {border: 1px dashed gray;margin: 0 0.4em 0.5em 0.4em;box-sizing: border-box;padding-bottom: 0.4em;background-color: white;}#sk-container-id-1 div.sk-label label {font-family: monospace;font-weight: bold;display: inline-block;line-height: 1.2em;}#sk-container-id-1 div.sk-label-container {text-align: center;}#sk-container-id-1 div.sk-container {/* jupyter's `normalize.less` sets `[hidden] { display: none; }` but bootstrap.min.css set `[hidden] { display: none !important; }` so we also need the `!important` here to be able to override the default hidden behavior on the sphinx rendered scikit-learn.org. See: https://github.com/scikit-learn/scikit-learn/issues/21755 */display: inline-block !important;position: relative;}#sk-container-id-1 div.sk-text-repr-fallback {display: none;}</style><div id=\"sk-container-id-1\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>GridSearchCV(estimator=SVC(kernel='linear', probability=True, random_state=47),\n",
" param_grid={'C': [0.0005, 0.0001, 0.001, 0.1]}, verbose=3)</pre><b>In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook. <br />On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.</b></div><div class=\"sk-container\" hidden><div class=\"sk-item sk-dashed-wrapped\"><div class=\"sk-label-container\"><div class=\"sk-label sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-1\" type=\"checkbox\" ><label for=\"sk-estimator-id-1\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">GridSearchCV</label><div class=\"sk-toggleable__content\"><pre>GridSearchCV(estimator=SVC(kernel='linear', probability=True, random_state=47),\n",
" param_grid={'C': [0.0005, 0.0001, 0.001, 0.1]}, verbose=3)</pre></div></div></div><div class=\"sk-parallel\"><div class=\"sk-parallel-item\"><div class=\"sk-item\"><div class=\"sk-label-container\"><div class=\"sk-label sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-2\" type=\"checkbox\" ><label for=\"sk-estimator-id-2\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">estimator: SVC</label><div class=\"sk-toggleable__content\"><pre>SVC(kernel='linear', probability=True, random_state=47)</pre></div></div></div><div class=\"sk-serial\"><div class=\"sk-item\"><div class=\"sk-estimator sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-3\" type=\"checkbox\" ><label for=\"sk-estimator-id-3\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">SVC</label><div class=\"sk-toggleable__content\"><pre>SVC(kernel='linear', probability=True, random_state=47)</pre></div></div></div></div></div></div></div></div></div></div>"
],
"text/plain": [
"GridSearchCV(estimator=SVC(kernel='linear', probability=True, random_state=47),\n",
" param_grid={'C': [0.0005, 0.0001, 0.001, 0.1]}, verbose=3)"
]
},
"execution_count": 41,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Fitting the model for grid search\n",
"grid.fit(X_train, y_train)"
]
},
{
"cell_type": "markdown",
"id": "25b99a25",
"metadata": {},
"source": [
"# Best hyperparameter"
]
},
{
"cell_type": "code",
"id": "5d327876",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"{'C': 0.1}\n",
"SVC(C=0.1, kernel='linear', probability=True, random_state=47)\n"
]
}
],
"source": [
"# print best parameter after tuning\n",
"print(grid.best_params_)\n",
" \n",
"# print how our model looks after hyper-parameter tuning\n",
"print(grid.best_estimator_)"
]
},
{
"cell_type": "code",
"id": "f8d67e2f",
"metadata": {},
"outputs": [],
"source": [
"# Select columns in df1 based on columns in df2\n",
"X_test = X_test.loc[:, X_train.columns]"
]
},
{
"cell_type": "code",
"id": "3b2776c0",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<style>#sk-container-id-2 {color: black;background-color: white;}#sk-container-id-2 pre{padding: 0;}#sk-container-id-2 div.sk-toggleable {background-color: white;}#sk-container-id-2 label.sk-toggleable__label {cursor: pointer;display: block;width: 100%;margin-bottom: 0;padding: 0.3em;box-sizing: border-box;text-align: center;}#sk-container-id-2 label.sk-toggleable__label-arrow:before {content: \"▸\";float: left;margin-right: 0.25em;color: #696969;}#sk-container-id-2 label.sk-toggleable__label-arrow:hover:before {color: black;}#sk-container-id-2 div.sk-estimator:hover label.sk-toggleable__label-arrow:before {color: black;}#sk-container-id-2 div.sk-toggleable__content {max-height: 0;max-width: 0;overflow: hidden;text-align: left;background-color: #f0f8ff;}#sk-container-id-2 div.sk-toggleable__content pre {margin: 0.2em;color: black;border-radius: 0.25em;background-color: #f0f8ff;}#sk-container-id-2 input.sk-toggleable__control:checked~div.sk-toggleable__content {max-height: 200px;max-width: 100%;overflow: auto;}#sk-container-id-2 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {content: \"▾\";}#sk-container-id-2 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-2 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-2 input.sk-hidden--visually {border: 0;clip: rect(1px 1px 1px 1px);clip: rect(1px, 1px, 1px, 1px);height: 1px;margin: -1px;overflow: hidden;padding: 0;position: absolute;width: 1px;}#sk-container-id-2 div.sk-estimator {font-family: monospace;background-color: #f0f8ff;border: 1px dotted black;border-radius: 0.25em;box-sizing: border-box;margin-bottom: 0.5em;}#sk-container-id-2 div.sk-estimator:hover {background-color: #d4ebff;}#sk-container-id-2 div.sk-parallel-item::after {content: \"\";width: 100%;border-bottom: 1px solid gray;flex-grow: 1;}#sk-container-id-2 div.sk-label:hover label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-2 div.sk-serial::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: 0;}#sk-container-id-2 div.sk-serial {display: flex;flex-direction: column;align-items: center;background-color: white;padding-right: 0.2em;padding-left: 0.2em;position: relative;}#sk-container-id-2 div.sk-item {position: relative;z-index: 1;}#sk-container-id-2 div.sk-parallel {display: flex;align-items: stretch;justify-content: center;background-color: white;position: relative;}#sk-container-id-2 div.sk-item::before, #sk-container-id-2 div.sk-parallel-item::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: -1;}#sk-container-id-2 div.sk-parallel-item {display: flex;flex-direction: column;z-index: 1;position: relative;background-color: white;}#sk-container-id-2 div.sk-parallel-item:first-child::after {align-self: flex-end;width: 50%;}#sk-container-id-2 div.sk-parallel-item:last-child::after {align-self: flex-start;width: 50%;}#sk-container-id-2 div.sk-parallel-item:only-child::after {width: 0;}#sk-container-id-2 div.sk-dashed-wrapped {border: 1px dashed gray;margin: 0 0.4em 0.5em 0.4em;box-sizing: border-box;padding-bottom: 0.4em;background-color: white;}#sk-container-id-2 div.sk-label label {font-family: monospace;font-weight: bold;display: inline-block;line-height: 1.2em;}#sk-container-id-2 div.sk-label-container {text-align: center;}#sk-container-id-2 div.sk-container {/* jupyter's `normalize.less` sets `[hidden] { display: none; }` but bootstrap.min.css set `[hidden] { display: none !important; }` so we also need the `!important` here to be able to override the default hidden behavior on the sphinx rendered scikit-learn.org. See: https://github.com/scikit-learn/scikit-learn/issues/21755 */display: inline-block !important;position: relative;}#sk-container-id-2 div.sk-text-repr-fallback {display: none;}</style><div id=\"sk-container-id-2\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>SVC(C=0.1, kernel='linear', probability=True, random_state=47)</pre><b>In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook. <br />On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.</b></div><div class=\"sk-container\" hidden><div class=\"sk-item\"><div class=\"sk-estimator sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-4\" type=\"checkbox\" checked><label for=\"sk-estimator-id-4\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">SVC</label><div class=\"sk-toggleable__content\"><pre>SVC(C=0.1, kernel='linear', probability=True, random_state=47)</pre></div></div></div></div></div>"
],
"text/plain": [
"SVC(C=0.1, kernel='linear', probability=True, random_state=47)"
]
},
"execution_count": 44,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"model_svm = grid.best_estimator_\n",
"model_svm.fit(X_train,y_train)"
]
},
{
"cell_type": "code",
"id": "94871ada",
"metadata": {},
"outputs": [],
"source": [
"y_proba = model_svm.fit(X_train, y_train).predict_proba(X_test)[:,1]"
]
},
{
"cell_type": "code",
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
"id": "f8d4142d",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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Zs2aREREsHfvXrcXKNlT8BURyYFt20zv7ooV4O9vJrBVqWJ3VSJiA5eDb926dfnrr7+46qqraNGiBUOHDuXo0aNMmTKFWrVqeaJGyYa2KhYRuQjLgo8+gmeegYQEKFbM7MCm0Cvis1xudRgxYgSRkZEAvPrqqxQrVownn3ySI0eO8MEHH7i9QMnamTOwZYu5reArInKeo0ehfXt47DETelu2hHXr4N577a5MRGzksCzLsruIvBQfH09ERARxcXGEh4fbXU6urVgBDRuabeMPHwaHw+6KRETyiZQUqFkTduwwk9hGjoR+/cDP5bEeEbGJp/Ka234LrFq1irvuustdDyeXcG5/r0KviMg5AgIgJsaE3z//hGefVegVEcDF4Dtv3jz69+/PoEGD2LlzJwBbtmzhnnvuoWHDhhnbGrti3LhxVKxYkeDgYBo3bszy5csvev2JEyfo3bs3kZGRBAUFUa1aNX744QeXn7eg08Q2EZFzbNgAf/119vjJJ2HlSu3uIyKZ5Dj4fvzxx9x+++1MmjSJ//u//+O6667js88+o0mTJpQpU4YNGza4HEBnzJhBTEwMw4YNY9WqVURHR9O6dWsOHz6c5fXJycnccsst7N69my+//JKtW7cyYcIEypUr59LzegPt2CYigpnANnYsNGgAHTpAfLw573BASIi9tYlIvpPjHt86derQtWtX/ve//zFr1izuv/9+rrvuOr744gvKly+fqydv3LgxDRs25N133wXA6XQSFRVF3759GTBgwAXXjx8/nlGjRrFlyxYCAgJy9Zze0OPrdEJEBJw6BRs3mqUoRUR8Tmws9OgBc+ea49tvh08/NZMfRKRAs73Hd8eOHdx///0AtG/fnkKFCjFq1Khch97k5GRWrlxJq1atzhbj50erVq1YtmxZlvf57rvvaNKkCb1796Z06dLUqlWLESNGkJaWlu3zJCUlER8fn+mjoNu504Te4GCoVs3uakREbPD992av9rlzzS/DsWNhzhyFXhG5qBwH3zNnzhAaGgqAw+EgKCgoY1mz3Dh69ChpaWmULl060/nSpUsTGxub5X127tzJl19+SVpaGj/88AMvvPACo0eP5pVzd+I5z8iRI4mIiMj4iIqKynXN+UV6m0Pt2tpwSER8TEoK9OoFbdrAkSMm/K5YAX36aKaviFySS7Hpo48+okiRIgCkpqYyadIk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YdiwYaxatYro6Ghat27N4cOHs73PkCFD+OCDDxg7diybNm3iiSeeoF27dqxO7w0Fypcvz2uvvcbKlStZsWIFLVu2pG3btmzcuDHjmi5durB48eJM52xn+Zi4uDgLsOLi4izLsqxHHrEssKwhQzz8xLNnW1bJkubJgoIsa+xYy3I6PfykIiKSU2fOnLE2bdpknTlzJuOc02lZp07Z8+HKPxHdu3e32rZtm+lc+/btrbp162Yc79mzxwoICLBiYmIuuP8777xjAdYff/xhWZZl/fnnnxZgjRkzJsvnO378eLa17N2713rggQesYsWKWaGhoVb9+vUzHjerOp9++mmrRYsWGcctWrSwevfubT399NPWFVdcYd14441Wp06drA4dOmS6X3JysnXFFVdYkydPtizLstLS0qwRI0ZYFStWtIKDg606depYM2fOzLZOy7KsUaNGWQ0aNMh07ujRo9YDDzxglS1b1goJCbFq1aplTZs2LdM1WdVoWZa1fv1667bbbrMKFy5slSpVynrwwQetI0eOZNzvxx9/tJo1a2ZFRERYxYsXt+68805r+/btF63xcjVq1Mjq3bt3xnFaWppVtmxZa+TIkdneJzIy0nr33XcznWvfvr3VpUuXiz5XsWLFrI8++ijTuZtuuskakk3IyupnLt35ec1dNOK7xnz22IhvQoLp323TBo4cMas3rFwJffpopFdEJJ9LSIAiRez5uJzN4zZs2MDSpUsJDAzMOPfll1+SkpJywcguwOOPP06RIkX4/PPPAZg6dSpFihShV69eWT5+0aJFszx/6tQpWrRowf79+/nuu+9Yu3Ytzz33HE6n06X6J0+eTGBgIEuWLGH8+PF06dKF2bNnc+rUqYxr5s2bR0JCAu3atQNg5MiRfPrpp4wfP56NGzfSr18/HnzwQRYtWpTt8/z+++80aNAg07nExETq16/PnDlz2LBhA4899hhdu3a9oD3g/BpPnDhBy5YtqVu3LitWrGDu3LkcOnSIDh06ZNzn9OnTxMTEsGLFChYsWICfnx/t2rW76J/PiBEjKFKkyEU/9uzZk+V9k5OTWblyJa1atco45+fnR6tWrVi2bFm2z5mUlETweRsbhISEsHjx4iyvT0tLY/r06Zw+fZomTZpk+lqjRo34/fffs32uvObTqzqkpMCGDea2R4LvwYNmPd4tW8xxTAyMGAFBQR54MhER8WXff/89RYoUITU1laSkJPz8/Hj33Xczvr5t2zYiIiKIjIy84L6BgYFUrlyZbdu2AfD3339TuXJlAgICXKph2rRpHDlyhL/++ovixYsDULVqVZe/l6uuuorXX38947hKlSoULlyYr7/+mq5du2Y81913301YWBhJSUmMGDGCn3/+OSN4Va5cmcWLF/PBBx/QokWLLJ/nn3/+uSD4litXLtN/Dvr27cu8efP44osvaNSoUbY1vvLKK9StW5cRI0ZknPvkk0+Iiopi27ZtVKtWjXvvvTfTc33yySeULFmSTZs2USubrWOfeOKJTOE5K2XLls3y/NGjR0lLS6N06dKZzpcuXZot6dkkC61bt+bNN9/khhtuoEqVKixYsICvvvqKtLS0TNetX7+eJk2akJiYSJEiRfj666+5+uqrL6jtn3/+uWj9ecmng+/WrZCUBOHhUKmSB56gdGmIjIS4OJg8GW65xQNPIiIinhIaCucMMub5c7vipptu4v333+f06dO89dZbFCpU6IKglVOWZeXqfmvWrKFu3boZoTe36tevn+m4UKFCdOjQgalTp9K1a1dOnz7Nt99+y/Tp0wHYvn07CQkJ3HLev7PJycnUvchqSWfOnLlgZDMtLY0RI0bwxRdfsH//fpKTk0lKSrpgN7/za1y7di2//vorRYoUueB5duzYQbVq1fj7778ZOnQof/75J0ePHs0Y6d2zZ0+2wbd48eKX/efpqrfffpuePXtSo0YNHA4HVapUoUePHnzyySeZrqtevTpr1qwhLi6OL7/8ku7du7No0aJM4TckJISEy3n7ws18OvimtzlER4PbNurZtw+KFze/sfz8zLq8AQF5tGSEiIi4k8MBhQvbXUXOFC5cOGN09ZNPPiE6OpqPP/6YRx55BIBq1aoRFxfHgQMHLhghTE5OZseOHdx0000Z1y5evJiUlBSXRn1DQkIu+nU/P78LQnVKSkqW38v5unTpQosWLTh8+DDz588nJCSE2267DSCjBWLOnDmUK1cu0/2CLvIua4kSJTh+/Himc6NGjeLtt99mzJgx1K5dm8KFC/PMM89cMIHt/BpPnTpFmzZt+L//+78Lnid9lL1NmzZceeWVTJgwgbJly+J0OqlVq9ZFJ8eNGDEi0yhyVjZt2kSFChWy/P78/f05dOhQpvOHDh2iTJky2T5eyZIl+eabb0hMTOTff/+lbNmyDBgwgMqVK2e6LjAwMOPvXP369fnrr794++23+eCDDzKuOXbsGCVLlrxo/XnJp3t83d7fO3Om6eE9t38qMlKhV0RE8pSfnx+DBg1iyJAhnDlzBoB7772XgIAARo8efcH148eP5/Tp03Tq1AmAzp07c+rUKd57770sH//EiRNZnq9Tpw5r1qzJdrmzkiVLcvDgwUzn1py7vOdFNG3alKioKGbMmMHUqVO5//77M0L51VdfTVBQEHv27KFq1aqZPqKiorJ9zLp167Jp06ZM55YsWULbtm158MEHiY6OztQCcjH16tVj48aNVKxY8YIaChcuzL///svWrVsZMmQIN998MzVr1rwgdGfliSeeYM2aNRf9yK7VITAwkPr167NgwYKMc06nkwULFlzQi5uV4OBgypUrR2pqKrNmzaJt27YXvd7pdJKUlJTp3IYNGy466p7XfDr4um3HtpMn4eGHoUMHOH7cTF777xeNiIiIHe6//378/f0ZN24cABUqVOD1119nzJgxDB48mC1btrBjxw7efPNNnnvuOZ599lkaN24MQOPGjTPOPffccyxbtox//vmHBQsWcP/99zN58uQsn7NTp06UKVOGe+65hyVLlrBz505mzZqVMZGqZcuWrFixgk8//ZS///6bYcOGsSF9sk0OdO7cmfHjxzN//ny6dOmScT4sLIz+/fvTr18/Jk+ezI4dO1i1ahVjx47NtlYwvazLli3L1Lt61VVXMX/+fJYuXcrmzZt5/PHHLxgxzUrv3r05duwYnTp14q+//mLHjh3MmzePHj16kJaWRrFixbjiiiv48MMP2b59O7/88gsxMTGXfNzixYtfEKTP/yhUKPs38GNiYpgwYQKTJ09m8+bNPPnkk5w+fZoePXpkXNOtWzcGDhyYcfznn3/y1VdfsXPnTn7//Xduu+02nE4nzz33XMY1AwcO5LfffmP37t2sX7+egQMHsnDhwkyvC5gJhLfeeuslv88849Y1IgqA9OUxTpyIs4oXN6uLrVx5GQ+4bJllValiHsjhsKzBgy0rOdlt9YqISN642NJK+V1Wy4RZlmWNHDnSKlmypHXq1KmMc99++63VvHlzq3DhwlZwcLBVv35965NPPsnycWfMmGHdcMMNVlhYmFW4cGGrTp061vDhwy+6nNnu3bute++91woPD7dCQ0OtBg0a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v78/UVFRPPbYYxw7dsylx1FIFxFPKGR3ASIi7nTbbbcxceLETOdKlixpUzWZhYeHs3XrVpxOJ2vXrqVHjx4cOHCAefPmXfZjlylT5pLXREREXPbz5MQ111zDzz//TFpaGps3b+bhhx8mLi6OGTNm5Mnzi4hkRyO+IuJVgoKCKFOmTKYPf39/3nzzTWrXrk3hwoWJioqiV69enDp1KtvHWbt2LTfddBNhYWGEh4dTv359VqxYkfH1xYsX07x5c0JCQoiKiuKpp57i9OnTF63N4XBQpkwZypYty+23385TTz3Fzz//zJkzZ3A6nQwfPpzy5csTFBTEtddey9y5czPum5ycTJ8+fYiMjCQ4OJgrr7ySkSNHZnrs9FaHSpUqAVC3bl0cDgc33ngjkHkU9cMPP6Rs2bI4nc5MNbZt25aHH3444/jbb7+lXr16BAcHU7lyZV566SVSU1Mv+n0WKlSIMmXKUK5cOVq1asX999/P/PnzM76elpbGI488QqVKlQgJCaF69eq8/fbbGV9/8cUXmTx5Mt9++23G6PHChQsB2Lt3Lx06dKBo0aIUL16ctm3bsnv37ovWIyKSTsFXRHyCn58f77zzDhs3bmTy5Mn88ssvPPfcc9le36VLF8qXL89ff/3FypUrGTBgAAEBAQDs2LGD2267jXvvvZd169YxY8YMFi9eTJ8+fVyqKSQkBKfTSWpqKm+//TajR4/mjTfeYN26dbRu3Zq7776bv//+G4B33nmH7777ji+++IKtW7cydepUKlasmOXjLl++HICff/6ZgwcP8tVXX11wzf3338+///7Lr7/+mnHu2LFjzJ07ly5dugDw+++/061bN55++mk2bdrEBx98wKRJk3j11Vdz/D3u3r2befPmERgYmHHO6XRSvnx5Zs6cyaZNmxg6dCiDBg3iiy++AKB///506NCB2267jYMHD3Lw4EGaNm1KSkoKrVu3JiwsjN9//50lS5ZQpEgRbrvtNpKTk3Nck4j4MEtExEt0797d8vf3twoXLpzxcd9992V57cyZM60rrrgi43jixIlWRERExnFYWJg1adKkLO/7yCOPWI899limc7///rvl5+dnnTlzJsv7nP/427Zts6pVq2Y1aNDAsizLKlu2rPXqq69muk/Dhg2tXr16WZZlWX379rVatmxpOZ3OLB8fsL7++mvLsixr165dFmCtXr060zXdu3e32rZtm3Hctm1b6+GHH844/uCDD6yyZctaaWlplmVZ1s0332yNGDEi02NMmTLFioyMzLIGy7KsYcOGWX5+flbhwoWt4OBgC7AA680338z2PpZlWb1797buvffebGtNf+7q1atn+jNISkqyQkJCrHnz5l308UVELMuy1OMrIl7lpptu4v333884Lly4MGBGP0eOHMmWLVuIj48nNTWVxMREEhISCA0NveBxYmJiePTRR5kyZUrG2/VVqlQBTBvEunXrmDp1asb1lmXhdDrZtWsXNWvWzLK2uLg4ihQpgtPpJDExkeuvv56PPvqI+Ph4Dhw4QLNmzTJd36xZM9auXQuYNoVbbrmF6tWrc9ttt3HXXXdx6623XtafVZcuXejZsyfvvfceQUFBTJ06lQceeAA/P7+M73PJkiWZRnjT0tIu+ucGUL16db777jsSExP57LPPWLNmDX379s10zbhx4/jkk0/Ys2cPZ86cITk5mWuvvfai9a5du5bt27cTFhaW6XxiYiI7duzIxZ+AiPgaBV8R8SqFCxematWqmc7t3r2bu+66iyeffJJXX32V4sWLs3jxYh555BGSk5OzDHAvvvginTt3Zs6cOfz4448MGzaM6dOn065dO06dOsXjjz/OU089dcH9KlSokG1tYWFhrFq1Cj8/PyIjIwkJCQEgPj7+kt9XvXr12LVrFz/++CM///wzHTp0oFWrVnz55ZeXvG922rRpg2VZzJkzh4YNG/L777/z1ltvZXz91KlTvPTSS7Rv3/6C+wYHB2f7uIGBgRmvwWuvvcadd97JSy+9xMsvvwzA9OnT6d+/P6NHj6ZJkyaEhYUxatQo/vzzz4vWe+rUKerXr5/pPxzp8ssERhHJ3xR8RcTrrVy5EqfTyejRozNGM9P7SS+mWrVqVKtWjX79+tGpUycmTpxIu3btqFevHps2bbogYF+Kn59flvcJDw+nbNmyLFmyhBYtWmScX7JkCY0aNcp0XceOHenYsSP33Xcft912G8eOHaN48eKZHi+9nzYtLe2i9QQHB9O+fXumTp3K9u3bqV69OvXq1cv4er169di6davL3+f5hgwZQsuWLXnyySczvs+mTZvSq1evjGvOH7ENDAy8oP569eoxY8YMSpUqRXh4+GXVJCK+SZPbRMTrVa1alZSUFMaOHcvOnTuZMmUK48ePz/b6M2fO0KdPHxYuXMg///zDkiVL+OuvvzJaGJ5//nmWLl1Knz59WLNmDX///Tfffvuty5PbzvW///2P//u//2PGjBls3bqVAQMGsGbNGp5++mkA3nzzTT7//HO2bNnCtm3bmDlzJmXKlMly041SpUoREhLC3LlzOXToEHFxcdk+b5cuXZgzZw6ffPJJxqS2dEOHDuXTTz/lpZdeYuPGjWzevJnp06czZMgQl763Jk2aUKdOHUaMGAHAVVddxYoVK5g3bx7btm3jhRde4K+//sp0n4oVK7Ju3Tq2bt3K0aNHSUlJoUuXLpQoUYK2bdvy+++/s2vXLhYuXMhTTz3Fvn37XKpJRHyTgq+IeL3o6GjefPNN/u///o9atWoxderUTEuBnc/f359///2Xbt26Ua1aNTp06MDtt9/OSy+9BECdOnVYtGgR27Zto3nz5tStW5ehQ4dStmzZXNf41FNPERMTw7PPPkvt2rWZO3cu3333HVdddRVg2iRef/11GjRoQMOGDdm9ezc//PBDxgj2uQoVKsQ777zDBx98QNmyZWnbtm22z9uyZUuKFy/O1q1b6dy5c6avtW7dmu+//56ffvqJhg0bct111/HWW29x5ZVXuvz99evXj48++oi9e/fy+OOP0759ezp27Ejjxo35999/M43+AvTs2ZPq1avToEEDSpYsyZIlSwgNDeW3336jQoUKtG/fnpo1a/LII4+QmJioEWARyRGHZVmW3UWIiIiIiHiaRnxFRERExCco+IqIiIiIT1DwFRERERGfoOArIiIiIj5BwVdEREREfIKCr4iIiIj4BAVfEREREfEJCr4iIiIi4hMUfEVERETEJyj4ioiIiIhPUPAVEREREZ/w/7/yuqFO2vEIAAAAAElFTkSuQmCC",
"text/plain": [
"<Figure size 800x600 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"from sklearn.metrics import roc_curve, auc\n",
"# Calculate the false positive rate (FPR), true positive rate (TPR), and thresholds\n",
"fpr, tpr, thresholds = roc_curve(y_test, y_proba)\n",
"\n",
"# Calculate the area under the ROC curve (AUC)\n",
"roc_auc = auc(fpr, tpr)\n",
"\n",
"# Plot the ROC curve\n",
"plt.figure(figsize=(8, 6))\n",
"plt.plot(fpr, tpr, color='blue', label='ROC curve (area = %0.2f)' % roc_auc)\n",
"plt.plot([0, 1], [0, 1], color='red', linestyle='--')\n",
"plt.xlim([0.0, 1.0])\n",
"plt.ylim([0.0, 1.05])\n",
"plt.xlabel('False Positive Rate')\n",
"plt.ylabel('True Positive Rate')\n",
"plt.title('SVM-Lin')\n",
"plt.legend(loc='lower right')\n",
"plt.show()"
]
},
{
"cell_type": "code",
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
"id": "6b5692ba",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAr4AAAIjCAYAAADlfxjoAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAACKnUlEQVR4nOzde3zO9f/H8cc2O2JDmNM0lCjnY6KUZCihfhFCKpVTIpVT5qySUg4p5ZBI6UiKRCqHDo4hh5xCmUPYMDbb9f798f66tDZsXNtn2/W8327Xbdfns8/ncz13XTu89r7eBx9jjEFEREREJJfzdTqAiIiIiEhWUOErIiIiIl5Bha+IiIiIeAUVviIiIiLiFVT4ioiIiIhXUOErIiIiIl5Bha+IiIiIeAUVviIiIiLiFVT4ioiIiIhXUOErIiKX9ccff9CkSRPCwsLw8fHh888/dzrSVZkxYwY+Pj7s3bs3w+cuX74cHx8fli9f7vFcIpK5VPiKeMhDDz1EUFAQO3bsSPW5F198ER8fH7788ssU+xMSEpgwYQINGjSgYMGCBAQEUKJECe69914++OADkpOT3cfu3bsXHx+fFLfQ0FCqVavGxIkTUxzrlMmTJzNjxoxMuXZkZGSKrz1v3rzUqVOH995776Ln7Nu3jyeffJLIyEgCAwMpWrQorVq1YuXKlRc959ChQ/Tr148KFSoQEhJC3rx5qVmzJiNHjuTEiRPpyrphwwYeeughIiIiCAwMpFChQjRu3Jjp06dni9fpSnTu3JlNmzYxatQoZs2aRa1atTLlcW6//fZU3+dp3YYOHZopj5/dnS/Yz9+CgoIoUaIEUVFRvPHGG5w8efKKr71q1SqGDh2a7u9zkZzIxxhjnA4hkhscPnyYChUqUK1aNZYtW+bev2fPHm666SaaN2/Oxx9/7N5/5MgRmjVrxtq1a4mKiuKuu+6iUKFCxMTE8O2337Js2TKGDx/OCy+8ANjCt0yZMrRr147mzZsDEBsby1dffcVXX31Fv379GDt2bNZ+0f9RqVIlChcunCktYZGRkRQsWJBnnnkGgIMHD/LOO++wY8cO3n77bbp27Zri+JUrV7qfp8cee4wbb7yRmJgYZsyYwa5du3j99dfp1atXinN+/fVXmjdvzqlTp3jooYeoWbMmAGvWrGHu3LnccsstfPPNN5fM+c477/Dkk08SHh5Ox44duf766zl58iRLly5l4cKFjBw5koEDB3rqackSZ86cISQkhEGDBjFy5MhMfawlS5Zw6NAh9/avv/7KG2+8wcCBA6lYsaJ7f5UqVahSpcoVP05ycjLnzp0jMDAQHx+fDJ3rcrlITEwkICAAX9+sbT+aMWMGXbp0Yfjw4ZQpU4Zz584RExPD8uXLWbJkCaVLl2b+/PlX9Ny88sorPPvss+zZs4fIyEjPhxfJDoyIeMzbb79tADNjxgz3vqZNm5rQ0FBz4MCBFMdGRUUZX19f88knn6R5rV9//dW8//777u09e/YYwIwdOzbFcS6Xy9SuXduUKFHCg1/JlbnppptMw4YNM+Xa1157rbn77rtT7Dt8+LDJly+fqVixYor9x44dM8WKFTPh4eFm586dKT4XHx9vbr31VuPr62tWrlzp3n/8+HFTsmRJEx4ebrZu3Zrq8WNiYsyIESMumXH16tXGz8/PNGjQwMTFxaX6/K+//mqmT59+uS81XU6dOuWR66THn3/+meb33tVIb/558+YZwHz33XceuV5ON336dAOYX3/9NdXnli5daoKDg821115r4uPjM3ztsWPHGsDs2bPHA0lFsicVviIe5HK5TP369U3hwoXN0aNHzQcffGAA88Ybb6Q4btWqVQYwTz75ZLqvfbHC1xhj7rnnHlO6dOlU+ydNmmRuvPFGExAQYIoXL266d+9ujh8/nuq4jz76yNSoUcMEBQWZa665xnTo0CFVoX7w4EHz8MMPm5IlS5qAgABTrFgxc++997r/SF577bUGSHHzZBGcVuFrjDG1atUyAQEBKfaNGTPGAOa9995L81q7d+82fn5+Jioqyr3vxRdfNICZPXv2FWds2rSpyZMnj/nzzz8ve+x3332XZkF3/nX+d4HcuXNnkzdvXrNz507TrFkzky9fPtOyZUvTo0cPkzdvXnP69OlU13/wwQdNeHi4SUpKcu/76quvTIMGDUxISIjJly+fad68udm8efMlc0ZHR6d6Xa+99lr359etW2eaNm1q8ufPb/LmzWsaNWpkVq9eneIa54u15cuXm27dupkiRYqYAgUKXPY5Mibtwvd8pi1btph27dqZAgUKmGrVqhljjNm4caPp3LmzKVOmjAkMDDTh4eGmS5cu5ujRo2lm+neRd/577McffzS1a9c2gYGBpkyZMmbmzJkpzk3rtWvYsKG5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Gymu8+677xIbG8vdd98NQK1atShatChTpkwhISHBfdzXX3/N1q1b3cfFx8dz9uzZFI9Zrlw58ufPn+K8vHnzpnvVp/r166covq60OHn++ef5559/mDp1qnvfE088QdGiRXn22WdT9c08e/YsXbp0wRjDkCFD3PuffPJJihcvzjPPPJPm6nuHDx++7OIN0dHRGGPo2LFjml031q5dy8yZMwFbAPn5+fHDDz+kOGby5MmX/6L/o23btiQkJDBz5kwWLVqUajaLqKgoQkNDGT16NOfOnUt1/pEjRzL8mH5+fjRp0oQvvvgixbK/hw4dYs6cOTRo0MDd/SOrnG9x/e/Pzvjx47M0x6VERUXx119/ubumgP2e/Pf375VatmwZI0aMoEyZMnTo0AHI2HOSN29eIPU/Y2ldIzY2lunTp191ZpGspq4OIh4yePBg/v77bz799NMUb3n26NGDmTNn8vTTT9O0aVN337v333+fpk2b0qpVK5o1a0bjxo0pWLCge+W2H374wT0F0r+tW7eO999/H8C9Itgnn3zCLbfcQpMmTQDbGjdgwACGDRtG06ZNuffee9m+fTuTJ0+mdu3a7gE4/v7+vPTSS3Tp0oWGDRvSrl0793RmkZGR9OnTB4AdO3Zw55130qZNG2688Uby5MnDZ599xqFDh3jwwQfd2WrWrMmbb77JyJEjue666yhatCiNGjXKnCf8f5o1a0alSpV49dVX6dGjB/7+/lxzzTV8/PHH3H333dSoUSPVym07d+7k9ddf55ZbbnFfp2DBgnz22Wc0b96catWqpVi5bd26dXzwwQfUq1fvklluueUWJk2aRPfu3alQoUKKlduWL1/O/Pnz3cVzWFgYDzzwABMmTMDHx4dy5crx5ZdfXlF/2xo1anDdddcxaNAgEhISUnRzANv/+M0336Rjx47UqFGDBx98kCJFirBv3z4WLlxI/fr1mThxYoYfd+TIkSxZsoQGDRrQvXt38uTJw1tvvUVCQkKafdszW2hoqLv/+blz5yhZsiTffPMNe/bsyfIsF/PEE08wceJE2rVrR+/evSlevDizZ892Dy5N77smX3/9Ndu2bSMpKYlDhw6xbNkylixZwrXXXsv8+fPd18vIc3L++33QoEE8+OCD+Pv706JFC5o0aUJAQAAtWrTgiSee4NSpU0ydOpWiRYty8OBBDz0zIlnEqekkRHKTNWvWGD8/P9OzZ880P//LL78YX19f89RTT6XYf+bMGTN+/HhTr149ExoaavLkyWOKFStm7rnnHjN79uwUUz+lNZ1Znjx5TNmyZc2zzz5rTp48mepxJ06caCpUqGD8/f1NeHi46datW5oLWHz44YemevXqJjAw0BQqVCjVAhZHjx41PXr0MBUqVDB58+Y1YWFhpm7duuajjz5KcZ2YmBhz9913m/z582fZAhbGGDNjxoxUU4AZY5+zrl27mtKlSxt/f39TuHBhc++995off/zxoo/z999/mz59+pjy5cuboKAgExISYmrWrGlGjRplYmNj05V17dq1pn379qZEiRLG39/fFCxY0Nx5551m5syZKaaXO3LkiLn//vtNSEiIKViwoHniiSfM5s2bL7qAxaUMGjTIAOa666676DHfffediYqKMmFhYSYoKMiUK1fOPPzww2bNmjWXvPalFk9Zt26diYqKMvny5TMhISHmjjvuMKtWrUpxTHqm4LqYS01nduTIkVTHHzhwwLRu3doUKFDAhIWFmQceeMD8/fffBjDR0dGpMqW1gMV/NWzYMMX38qUWsPivzp07p1jwwxi7gMrdd99tgoODTZEiRcwzzzxjPvnkEwOYn3766ZLPx/nc52/nF5O56667zOuvv57mioHpfU6MMWbEiBGmZMmSxtfXN8XzM3/+fFOlShUTFBRkIiMjzUsvvWSmTZumld4kx/ExJgt73YuIiEgq48ePp0+fPhw4cICSJUs6HUck11LhKyIikoXOrxZ43tmzZ6levTrJyclp9i8XEc9RH18REZEsdN9991G6dGmqVatGbGws77//Ptu2bfPYLC8icnEqfEVERLJQVFQU77zzDrNnzyY5OZkbb7yRuXPnphqUKCKep64OIiIiIuIVNI+viIiIiHgFFb4iIiIi4hW8ro+vy+Xi77//Jn/+/BlaXlVEREREsoYxhpMnT1KiRAl8fT3XTut1he/ff/+d5evHi4iIiEjG7d+/n1KlSnnsel5X+J5fLnb//v1Zvo68iIiIiFxeXFwcERER7rrNU7yu8D3fvSE0NFSFr4iIiEg25uluqRrcJiIiIiJeQYWviIiIiHgFFb4iIiIi4hVU+IqIiIiIV1DhKyIiIiJeQYWviIiIiHgFFb4iIiIi4hVU+IqIiIiIV1DhKyIiIiJeQYWviIiIiHgFFb4i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eL34eDs/N8DgwXZlRhERkRztxAnbstuypZ2gHiBfPq8uekEtviK8+aadxSUyEh55xOk0IiIiV+mHH6BjR9i3D/z84NdfoW5dp1NlC2rxFa928iS8+KK9P2QIBAQ4m0dEROSKJSbagSq3326L3nLl7IwNKnrd1OIrXm3CBDh6FK6/3v5zLCIikiNt3w4dOsDatXb7kUdg/HjIn9/RWNmNCl/xWidOwNix9v7QoZBHPw0iIpITGWP7865bZ5ccnTrVLj0sqairg3itV1+1xe9NN0Hbtk6nERERuUI+PvD229C0Kfz2m4reS1DhK17p6FH7DhDYubz9/ByNIyIikjHffGNbds+rWRO+/hpKlXIuUw6gwle80tixdmBb9erQurXTaURERNLp7Fno08fOx9uzp23hlXRTr0bxOjExdlAb2NXafHyczSMiIpIumzfbvrybNtntxx6D665zNlMOoxZf8TovvghnzsDNN0Pz5k6nERERuQxjbItNrVq26C1SBBYsgEmTICTE6XQ5ilp8xascOGAXrAC19oqISA5gjO2T98UXdrtZM5g+HcLDnc2VQ6nFV7zKqFF2fu+GDeHOO51OIyIichk+PlC/PgQF2VbfhQtV9F4FH2OMcTpEVoqLiyMsLIzY2FhCQ0OdjiNZaM8eKF8ekpLsao633up0IhERkTTEx9sBKWXL2m2XC3bv9qr+vJlVr6nFV7zG8OG26G3SREWviIhkU+vW2anJ7r7bFsAAvr5eVfRmJhW+4hV27ID33rP3R4xwNouIiEgqLhe8/LIdeb1tG8TG2lZe8SgNbhOvMHSo/Z3SogXUqeN0GhERkX85cAA6dYLvvrPbrVvbxSmuucbZXLmQWnwl19u8GebOtfeHD3c2i4iISArz5kGVKrboDQmxBe8nn6jozSRq8ZVcLzrazgbzf/8H1ao5nUZEROR/jIG334bjx+0cvbNn21HYkmnU4iu52rp18OmndjaYYcOcTiMiIoIteMH+cZoxw/6BWrVKRW8WUOErudqQIfZjhw5w443OZhERES+XlGT73PXqdWFfyZL2j5W/v3O5vIi6OkiutXq1nefbz892dxAREXHMnj3w0EO2ZRegc2eoXdvZTF5ILb6Sa73wgv348MOa/lBERBxiDLz/PlStaove0FC7raLXEWrxlVxp+XJYutS+c3S+ABYREclSJ05At24X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xRKR3CvDhe/3339P5cqV+fnnn/n00085deoUABs3brzoIhKS+XbvhmnT7H219opItnfihG3Z7dQJHn/cvmUlIpLJMlz49u/fn5EjR7JkyZIUc+c2atSIn376yaPhJP2GD4ekJIiKggYNnE4jInIJ339vpymbOxf8/OC55+w8vSIimSzDhe+mTZto3bp1qv1Fixbl6NGjHgklGbNtm323EGxrr4hItpSYCAMHwh132AFs5crBypUweLCWlxSRLJHhwrdAgQIcPHgw1f7169dTsmRJj4SSjBk61K7o2bKlne5SRCTbSUiwb0eNGWP79j7yCGzYAHXrOp1MRLxIhgvfBx98kOeff56YmBh8fHxwuVysXLmSfv360alTp8zIKJfw22/w4Yf2/vDhzmYREbmowEC47TYoWBA+/tjO3pAvn9OpRMTLZHgBi8TERHr06MGMGTNITk4mT548JCcn0759e2bMmIGfn19mZfWI3LaARevW8PnndurL8wWwiEi2cPSonVg8IsJuJyTYfXp3UEQuI7PqtSteuW3fvn1s3ryZU6dOUb16da6//nqPhcpMuanwXbPGdm3w9YXNm6FiRacTiYj8zzffQOfOdpnhH35QH14RyZBss3LbihUraNCgAaVLl6Z06dIeCyIZN2SI/dihg4peEckmzp61ywyPH2+3CxaEmBgoVcrRWCIicAV9fBs1akSZMmUYOHAgv//+e2ZkknRYtQq+/trOBKTpk0UkW9i8GerUuVD0du9u35pS0Ssi2USGC9+///6bZ555hu+//55KlSpRrVo1xo4dy4EDBzIjn1zECy/Yj1262BmBREQcYwxMmAC1asGmTVCkCCxYAJMmQUiI0+lERNyuuI8vwJ49e5gzZw4ffPAB27Zt47bbbmPZsmWezOdxuaGP77JlcOeddln7P/4A9TgREUclJsLNN8P69dCsGUyfDuHhTqcSkRws2w1uOy85OZmvv/6aF154gd9++43k5GRPZcsUOb3wNcZOhblqFfToARMnOp1IRLyWMRfWR9+2Db791v5i0prpInKVMqtey3BXh/NWrlxJ9+7dKV68OO3bt6dSpUosXLjQY8EkbYsX26I3KMgugCQikuXi46FbN7t6znkVKkDPnip6RSRby/CsDgMGDGDu3Ln8/fff3HXXXbz++uu0bNmSEPXjynTG2JU9wTaqaGl7Ecly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b97MuHHj2LhxI7NmzcqyrysxMTHTrr1v3z6+/PJLHn744au6TmZmvFoffvghffv2JTo6mnXr1lG1alWioqI4fPjwRc8ZPHgwb731FhMmTOD333/nySefpHXr1qxfv959zPfff0+PHj346aefWLJkCefOnaNJkyacPn3afUyHDh1YsWIFW7ZsydSvMUOMl4mNjTWAmTUrNmsfeMECY4oUMQaMCQw0ZsIEY1yurM0gIiIXdebMGfP777+bM2fOuPe5XMacOuXMLSN/Ijp37mxatmyZYt99991nqlev7t7et2+f8ff3N3379k11/htvvGEA89NPPxljjPn5558NYMaPH5/m4x0/fvyiWfbv328efPBBU7BgQRMSEmJq1qzpvm5aOXv37m0aNmzo3m7YsKHp0aOH6d27t7nmmmvM7bffbtq1a2fatGmT4rzExERzzTXXmJkzZxpjjElOTjajR482kZGRJigoyFSpUsXMmzfvojmNMWbs2LGmVq1aKfYdPXrUPPjgg6ZEiRImODjYVKpUycyZMyfFMWllNMaYTZs2maZNm5q8efOaokWLmoceesgcOXLEfd7XX39t6tevb8LCwkyhQoXM3XffbXbu3HnJjFerTp06pkePHu7t5ORkU6JECTNmzJiLnlO8eHEzceLEFPvuu+8+06FDh4uec/jwYQOY77//PsX+O+64wwwePDjNc9L6mTvvfL0WG+vZek0tvpktPt72323RAo4csbM3rF0LPXuqpVdEJJuLj4d8+Zy5Xc3icZs3b2bVqlUEBAS493388cecO3cuVcsuwBNPPEG+fPn44IMPAJg9ezb58uWje/fuaV6/QIECae4/deoUDRs25K+//mL+/Pls3LiR5557DpfLlaH8M2fOJCAggJUrVzJlyhQ6dOjAggULOHXqlPuYxYsXEx8fT+vWrQH71vt7773HlClT2LJlC3369OGhhx7i+++/v+jj/Pjjj9SqVSvFvrNnz1KzZk0WLlzI5s2befzxx+nYsWOq7gH/zXjixAkaNWpE9erVWbNmDYsWLeLQoUO0adPGfc7p06fp27cva9asYenSpfj6+tK6detLPj+jR48mX758l7zt27cvzXMTExNZu3YtjRs3du/z9fWlcePGrF69+qKPmZCQQFBQUIp9wcHBrFix4qLnxMbGAlCoUKEU++vUqcOPP/540fOymmZ1yEwHD9r5eLdts9t9+8Lo0RAY6GwuERHJdb788kvy5ctHUlISCQkJ+Pr6MnHiRPfnd+zYQVhYGMWLF091bkBAAGXLlmXHjh0A/PHHH5QtWxZ/f/8MZZgzZw5Hjhzh119/dRdA1113XYa/luuvv56XX37ZvV2uXDny5s3LZ599RseOHd2Pde+995I/f34SEhIYPXo03377LfXq1QOgbNmyrFixgrfeeouGDRum+Th//vlnqsK3ZMmSKf456NWrF4sXL+ajjz6iTp06F804cuRIqlevzujRo937pk2bRkREBDt27KB8+fLcf//9KR5r2rRpFClShN9//51KlSqlmfHJJ59MUTynpUSJEmnuP3r0KMnJyYSHh6fYHx4ezrbztUkaoqKiePXVV7ntttsoV64cS5cu5dNPPyU5OTnN410uF08//TT169dP9XWUKFGCP//885L5s5IK38wUHg7Fi0NsLMycCXfd5XQiERHJgJAQ+FcjY5Y/dkbccccdvPnmm5w+fZrXXnuNPHnypCq00ssYc0XnbdiwgerVq6dq9cuomjVrptjOkycPbdq0Yfbs2XTs2JHTp0/zxRdfMHfuXAB27txJfHw8d/3n72xiYiLVLzFb0pkzZ1K1bCYnJzN69Gg++ugj/vrrLxITE0lISEi1mt9/M27cuJHvvvuOfPnypXqcXbt2Ub58ef744w+GDBnCzz//zNGjR90tvfv27bto4VuoUKGrfj4z6vXXX6dr165UqFABHx8fypUrR5cuXZg2bVqax/fo0YPNmzen2SIcHBxM/NW8feFhKnw97cABKFTI/sby9bXz8vr7Q+HCTicTEZEM8vGBvHmdTpE+efPmdbeuTps2japVq/Luu+/y6KOPAlC+fHliY2P5+++/U7UQJiYmsmvXLu644w73sStWrODcuXMZavUNDg6+5Od9fX1TFdXnzp1L82v5rw4dOtCwYUMOHz7MkiVLCA4OpmnTpgDuLhALFy6kZMmSKc4LvMS7rIULF+b48eMp9o0dO5bXX3+d8ePHU7lyZfLmzcvTTz+dagDbfzOeOnWKFi1a8NJLL6V6nPOt7C1atODaa69l6tSplChRApfLRaVKlS45OG706NEpWpHT8vvvv1O6dOk0vz4/Pz8OHTqUYv+hQ4coVqzYRa9XpEgRPv/8c86ePcs///xDiRIl6N+/P2XLlk11bM+ePfnyyy/54YcfKJXGwlvHjh2jSJEil8yfldTH15PmzbN9eP/df6p4cRW9IiKSpXx9fRk4cCCDBw/mzJkzANx///34+/szbty4VMdPmTKF06dP065dOwDat2/PqVOnmDx5cprXP3HiRJr7q1SpwoYNGy463VmRIkU4ePBgin0b/j295yXccsstRERE8OGHHzJ79mweeOABd1F+4403EhgYyL59+7juuutS3CIiIi56zerVq/P777+n2Ldy5UpatmzJQw89RNWqVVN0AbmUGjVqsGXLFiIjI1NlyJs3L//88w/bt29n8ODB3HnnnVSsWDFV0Z2WJ598kg0bNlzydrGuDgEBAdSsWZOlS5e697lcLpYuXeruEnIpQUFBlCxZkqSkJD755BNatmzp/pwxhp49e/LZZ5+xbNkyypQpk+Y1Nm/efMlW96ymwtcTTp6ERx6BNm3g+HE7eO1/v2hERESc8MADD+Dn58ekSZMAKF26NC+//DLjx49n0KBBbNu2jV27dvHqq6/y3HPP8cwzz1C3bl0A6tat69733HPPsXr1av7880+WLl3KAw88wMyZM9N8zHbt2lGsWDFatWrFypUr2b17N5988ol7IFWjRo1Ys2YN7733Hn/88QfR0dFs3rw53V9T+/btmTJlCkuWLKFDhw7u/fnz56dfv3706dOHmTNnsmvXLtatW8eECRMumhVsX9bVq1en6Lt6/fXXs2TJElatWsXWrVt54oknUrWYpqVHjx4cO3aMdu3a8euvv7Jr1y4WL15Mly5dSE5OpmDBglxzzTW8/fbb7Ny5k2XLltG3b9/LXrdQoUKpCun/3vLkufgb+H379mXq1KnMnDmTrVu30q1bN06fPk2XLl3cx3Tq1IkBAwa4t3/++Wc+/fRTdu/ezY8//kjTpk1xuVw899xzKb7e999/nzlz5pA/f35iYmKIiYlx/6N13o8//kiTJk0u+3VmGY/OEZEDeHw6s9WrjSlXzk5T5uNjzKBBxiQmeubaIiKSZS41tVJ2l9Y0YcYYM2bMGFOkSBFz6tQp974vvvjC3HrrrSZv3rwmKCjI1KxZ00ybNi3N63744YfmtttuM/nz5zd58+Y1VapUMcOHD7/kdGZ79+41999/vwkNDTUhISGmVq1a5ueff3Z/fsiQISY8PNyEhYWZPn36mJ49e6aazqx3795pXvv33383gLn22muN6z/zvblcLjN+/Hhzww03GH9/f1OkSBETFRWVanqtfzt37pwpUaKEWbRokXvfP//8Y1q2bGny5ctnihYtagYPHmw6deqU4vm9WMYdO3aY1q1bmwIFCpjg4GBToUIF8/TTT7uzLlmyxFSsWNEEBgaaKlWqmOXLlxvAfPbZZxfN6AkTJkwwpUuXNgEBAaZOnTru6eX+/fV07tzZvb18+XJ3zmuuucZ07NjR/PXXXynOAdK8TZ8+3X3MqlWrTIECBUx8fHyauZyYzsznf+G9RlxcHGFhYcyaFctDD4Ve+YWSkuwMDcOHQ3IylC4Ns2bBbbd5LqyIiGSZs2fPsmfPHsqUKZNqwJPkXpMmTWL+/PksXrzY6Si5Ttu2balatSoDBw5M8/OX+pk7X6/FxsYSGnoV9dp/aHDblTpyBF5/3Ra97drB5MlwkXkNRUREJHt64oknOHHiBCdPnszVyxZntcTERCpXrkyfPn2cjpKCCt8rVbw4TJtm+/c+9JDTaUREROQK5MmTh0GDBjkdI9cJCAhg8ODBTsdIRYPb0uvECduy+8UXF/a1bKmiV0RERCSHUOGbHt9/b6cpmzsXnnwSzp51OpGIiIiIZJAK30tJTIQBA+COO2D/fihXDj7/HDToQUQk1/KyMd8ijnHiZ019fC9m+3bo0MHOyQt2nt7XX4c0liIUEZGc7/xiCPHx8ZddgUxErt75Fev8/Pyy7DFV+KZl/36oUQPi46FgQZg6Fa5wvXMREckZ/Pz8KFCgAIcPHwYgJCQEHx8fh1OJ5E4ul4sjR44QEhJyyQU4PE2Fb1oiIuygtZ07YeZMSGPtaRERyX2KFSsG4C5+RSTz+Pr6Urp06Sz9B1OF73lLlsBNN8H59a7feAP8/cFX3aBFRLyFj48PxYsXp2jRopw7d87pOCK5WkBAAL5ZXGep8D171g5gGz8eGjeGxYttsRsY6HQyERFxiJ+fX5b2OxSRrJEtmjMnTZpEZGQkQUFB1K1bl19++eWSx8+bN48KFSoQFBRE5cqV+eqrr67sgTdvhjp1bNELUL486D98ERERkVzJ8cL3ww8/pG/fvkRHR7Nu3TqqVq1KVFTURftXrVq1inbt2vHoo4+yfv16WrVqRatWrdi8eXOGHjfymylQqxZs2gRFisCCBTBpklp6RURERHIpH+PwhIV169aldu3aTJw4EbCj/CIiIujVqxf9+/dPdXzbtm05ffo0X375pXvfzTffTLVq1ZgyZcplHy8uLo6wsDBigVCAZs1g+nQID/fQVyQiIiIiV8Ndr8XGEhoa6rHrOtrHNzExkbVr1zJgwAD3Pl9fXxo3bszq1avTPGf16tX07ds3xb6oqCg+//zzNI9PSEggISHBvR0bGwvAcT9/GDMKHn8cfHwgLu4qvxoRERER8YS4/9Vlnm6fdbTwPXr0KMnJyYT/p7U1PDycbdu2pXlOTExMmsfHxMSkefyYMWMYNmxYqv2RyefguefsTURERESynX/++YewsDCPXS/Xz+owYMCAFC3EJ06c4Nprr2Xfvn0efSIle4qLiyMiIoL9+/d79K0SyZ70ensXvd7eRa+3d4mNjaV06dIUKlTIo9d1tPAtXLgwfn5+HDp0KMX+Q4cOuScR/69ixYpl6PjAwEAC0xiwFhYWph8cLxIaGqrX24vo9fYuer29i15v7+LpeX4dndUhICCAmjVrsnTpUvc+l8vF0qVLqVevXprn1KtXL8XxAEuWLLno8SIiIiIikA26OvTt25fOnTtTq1Yt6tSpw/jx4zl9+jRdunQBoFOnTpQsWZIxY8YA0Lt3bxo2bMi4ceO4++67mTt3LmvWrOHtt9928ssQERERkWzO8cK3bdu2HDlyhCFDhhATE0O1atVYtGiRewDbvn37UjRz33LLLcyZM4fBgwczcOBArr/+ej7//HMqVaqUrscLDAwkOjo6ze4Pkvvo9fYuer29i15v76LX27tk1uvt+Dy+IiIiIiJZwfGV20REREREsoIKXxERERHxCip8RURERMQrqPAVEREREa+QKwvfSZMmERkZSVBQEHXr1uWXX3655PHz5s2jQoUKBAUFUblyZb766qssSiqekJHXe+rUqdx6660ULFiQggUL0rhx48t+f0j2ktGf7/Pmzp2Lj48PrVq1ytyA4lEZfb1PnDhBjx49KF68OIGBgZQvX16/03OQjL7e48eP54YbbiA4OJiIiAj69OnD2bNnsyitXI0ffviBFi1aUKJECXx8fPj8888ve87y5cupUaMGgYGBXHfddcyYMSPjD2xymblz55qAgAAzbdo0s2XLFtO1a1dToEABc+jQoTSPX7lypfHz8zMvv/yy+f33383gwYONv7+/2bRpUxYnlyuR0de7ffv2ZtKkSWb9+vVm69at5uGH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8/Pz49VXX6Vy5crkzZuXiIgIunfvzqlTpy56nY0bN3LHHXeQP39+QkNDqVmzJmvWrHF/fsWKFdx6660EBwcTERHBU089xenTpy+ZzcfHh2LFilGiRAmaNWvGU089xbfffsuZM2dwuVwMHz6cUqVKERgYSLVq1Vi0aJH73MTERHr27Enx4sUJCgri2muvZcyYMSmufb6rQ5kyZQCoXr06Pj4+3H777UDKVtS3336bEiVK4HK5UmRs2bIljzzyiHv7iy++oEaNGgQFBVG2bFmGDRtGUlLSJb/OPHnyUKxYMUqWLEnjxo154IEHWLJkifvzycnJPProo5QpU4bg4GBuuOEGXn/9dffnhw4dysyZM/niiy/crcfLly8HYP/+/bRp04YCBQpQqFAhWrZsyd69ey+ZR0TkPBW+IuIVfH19eeONN9iyZQszZ85k2bJlPPfccxc9vkOHDpQqVYpff/2VtWvX0r9/f/z9/QHYtWsXTZs25f777+e3337jww8/ZMWKFfTs2TNDmYKDg3G5XCQlJfH6668zbtw4XnnlFX777TeioqK49957+eOPPwB44403mD9/Ph999BHbt29n9uzZREZGpnndX375BYBvv/2WgwcP8umnn6Y65oEHHuCff/7hu+++c+87duwYixYtokOHDgD8+OOPdOrUid69e/P777/z1ltvMWPGDEaNGpXur3Hv3r0sXryYgIAA9z6Xy0WpUqWYN28ev//+O0OGDGHgwIF89NFHAPTr1482bdrQtGlTDh48yMGDB7nllls4d+4cUVFR5M+fnx9//JGVK1eSL18+mjZtSmJiYroziYgXMyIiuUTnzp2Nn5+fyZs3r/v2f//3f2keO2/ePHPNNde4t6dPn27CwsLc2/nz5zczZsxI89xHH33UPP744yn2/fjjj8bX19ecOXMmzXP+e/0dO3aY8uXLm1q1ahljjClRooQZNWpUinNq165tunfvbowxplevXqZRo0bG5XKleX3AfPbZZ8YYY/bs2WMAs379+hTHdO7c2bRs2dK93bJlS/PII4+4t9966y1TokQJk5ycbIwx5s477zSjR49OcY1Zs2aZ4sWLp5nBGGOio6ONr6+vyZs3rwkKCjKAAcyrr7560XOMMaZHjx7m/vvvv2jW8499ww03pHgOEhISTHBwsFm8ePElry8iYowx6uMrIrnKHXfcwZtvvunezps3L2BbP8eMGcO2bduIi4sjKSmJs2fPEh8fT0hISKrr9O3bl8cee4xZs2a5364vV64cYLtB/Pbbb8yePdt9vDEGl8vFnj17qFixYprZYmNjyZcvHy6Xi7Nnz9KgQQPeeecd4uLi+Pvvv6lfv36K4+vXr8/GjRsB203hrrvu4oYbbqBp06bcc889NGnS5Kqeqw4dOtC1a1cmT55MYGAgs2fP5sEHH8TX19f9da5cuTJFC29ycvIlnzeAG264gfnz53P27Fnef/99NmzYQK9evVIcM2nSJKZNm8a+ffs4c+YMiYmJVKtW7ZJ5N27cyM6dO8mfP3+K/WfPnmXXrl1X8AyIiLdR4SsiuUrevHm57rrrUuzbu3cv99xzD926dWPUqFEUKlSIFStW8Oijj5KYmJhmATd06FDat2/PwoUL+frrr4mOjmbu3Lm0bt2aU6dO8cQTT/DUU0+lOq906dIXzZY/f37WrVuHr68vxYsXJzg4GIC4uLjLfl01atRgz549fP3113z77be0adOGxo0b8/HHH1/23Itp0aIFxhgWLlxI7dq1+fHHH3nttdfcnz916hTDhg3jvvvuS3VuUFDQRa8bEBDgfg1efPFF7r77boYNG8aIESMAmDt3Lv369WPcuHHUq1eP/PnzM3bsWH7++edL5j116hQ1a9ZM8Q/HedllAKOIZG8qfEUk11u7di0ul4tx48a5WzPP9ye9lPLly1O+fHn69OlDu3btmD59Oq1bt6ZGjRr8/vvvqQrsy/H19U3znNDQUEr8f3v3D9I4GIYB/DkUUQeHokUyqIO1CFoxtP4DEbqoUyGIAQsuIqKUioroUAtdhDpU0EVBHJSixUlRqU5ViUsdiiCaKP5BF8EKTgpFesNhsd55XO84Di7Pb8z3JXm/7eHl+xJBgKIoaGlpSV1XFAV1dXVp82RZhizL6OjoQFtbGx4fH2EwGNKe97af9vX19af15ObmQpIkBINBXFxcwGw2QxTF1LgoilBVNeN1fuTxeGC329Hf359aZ1NTEwYGBlJzPnZsc3JyvqtfFEWEQiEYjUYUFBT8UU1EpE883EZE/73y8nIkEgnMzs7i8vISy8vLmJub+3T+8/MzXC4XIpEIbm5uoCgKotFoagvD2NgYDg8P4XK5EIvFcH5+jvX19YwPt703OjoKv9+PUCgEVVUxPj6OWCyGwcFBAEAgEMDKygrOzs6gaRrW1tZQXFz8w59uGI1G5OXlIRwO4/7+Hk9PT5++1+l0YmtrC4uLi6lDbW+8Xi+Wlpbg8/lwcnKC09NTrK6uwuPxZLS2xsZGWCwWTE5OAgBMJhOOjo6ws7MDTdMwMTGBaDSadk9ZWRmOj4+hqioeHh6QSCTgdDpRWFgIh8OBg4MDXF1dIRKJwO124+7uLqOaiEifGHyJ6L9XU1ODQCAAv9+PqqoqBIPBtE+BfZSVlYV4PI7u7m5UVFSgs7MT7e3t8Pl8AACLxYK9vT1omobm5mbU1tbC6/VCEITfrtHtdmN4eBgjIyOorq5GOBzGxsYGTCYTgG/bJKampmC1WmGz2XB9fY3t7e1UB/u97OxszMzMYH5+HoIgwOFwfPpeu90Og8EAVVXR1dWVNtba2orNzU3s7u7CZrOhoaEB09PTKC0tzXh9Q0NDWFhYwO3tLfr6+iBJEmRZRn19PeLxeFr3FwB6e3thNpthtVpRVFQERVGQn5+P/f19lJSUQJIkVFZWoqenBy8vL+wAE9Ev+ZJMJpP/uggiIiIior+NHV8iIiIi0gUGXyIiIiLSBQZfIiIiItIFBl8iIiIi0gUGXyIiIiLSBQZfIiIiItIFBl8iIiIi0gUGXyIiIiLSBQZfIiIiItIFBl8iIiIi0gUGXyIiIiLSha9i3d4MZ7+F5QAAAABJRU5ErkJggg==",
"text/plain": [
"<Figure size 800x600 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Predict probabilities for the training data\n",
"y_train_proba = model_svm.predict_proba(X_train)[:, 1]\n",
"\n",
"# Calculate the false positive rate (FPR), true positive rate (TPR), and thresholds\n",
"fpr_train, tpr_train, thresholds_train = roc_curve(y_train, y_train_proba)\n",
"\n",
"# Calculate the area under the ROC curve (AUC) for training data\n",
"roc_auc_train = auc(fpr_train, tpr_train)\n",
"\n",
"# Plot the ROC curve for training data\n",
"plt.figure(figsize=(8, 6))\n",
"plt.plot(fpr_train, tpr_train, color='blue', label='ROC curve (area = %0.2f)' % roc_auc_train)\n",
"plt.plot([0, 1], [0, 1], color='red', linestyle='--')\n",
"plt.xlim([0.0, 1.0])\n",
"plt.ylim([0.0, 1.05])\n",
"plt.xlabel('False Positive Rate')\n",
"plt.ylabel('True Positive Rate')\n",
"plt.title('XGBoost - ROC Curve for Training Data')\n",
"plt.legend(loc='lower right')\n",
"plt.show()"
]
},
{
"cell_type": "code",
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
"id": "a85470f6",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" precision recall f1-score support\n",
"\n",
" 0 0.97 0.93 0.95 30\n",
" 1 0.94 0.97 0.95 30\n",
"\n",
" accuracy 0.95 60\n",
" macro avg 0.95 0.95 0.95 60\n",
"weighted avg 0.95 0.95 0.95 60\n",
"\n"
]
}
],
"source": [
"from sklearn.metrics import classification_report, confusion_matrix\n",
"grid_predictions = grid.predict(X_test)\n",
"print(classification_report(y_test, grid_predictions))"
]
},
{
"cell_type": "code",
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
"id": "f7247260",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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VJpt27bJMAy98MILCgkpWz6zfPlyr/OSk5OVnJys1NRUDRkyRAsWLNCdd96pa6+9Vt99951HUgJUB/Xq1dPOnTs9tmVlZbnX57Rt21ZOp1MHDx6k/YCAwaJHVJqkpCSVlJRo7ty52rdvn95++23Nnz//svufO3dOo0eP1oYNG/TDDz/o888/11dffeVuNUyaNEmbN2/W6NGjlZWVpb179+qDDz5g0SMC3s0336ytW7dq0aJF2rt3r6ZNm+aRQERHR2v8+PFKTU3VwoULlZubq6+//lpz587VwoULqzByXMlIGFBpOnbsqBdffFF/+tOf1K5dOy1evFgul+uy+4eGhurEiRO69957lZycrMGDB6tfv36aMWOGJKlDhw7KyMjQ999/r27duqlTp06aOnWq4uPjK+sjARXSt29fTZkyRRMnTtT111+vM2fO6N577/XYZ9asWZoyZYpcLpfatGmjlJQUrV69WomJiVUUNa50PN4aAAB4RYUBAAB4RcIAAAC8ImEAAABekTAAAACvSBgAAIBXJAwAAMArEgYAAOAVCQMAAPCKhAGoJoYPH64BAwa4X/fs2dP9aO/KtGHDBjkcDp06deqy+zgcDq1cubLcx5w+fbquueYaS3EdOHBADodDWVlZlo4D4NJIGAALhg8fLofDIYfDobCwMCUlJWnmzJk6f/6838/9/vvva9asWeXatzxf8gDwa3haJWBRSkqKFixYoKKiIn300UcaNWqUatasqSeeeOKifYuLixUWFmbLeevWrWvLcQCgPKgwABY5nU7FxcWpadOmevjhh9W7d2/97W9/k/RzG+Hpp59WfHy8WrVqJUk6dOiQBg8erNq1a6tu3brq37+/Dhw44D5maWmpxo0bp9q1a+uqq67SxIkT9cvHvvyyJVFUVKRJkyYpISFBTqdTSUlJeuutt3TgwAH16tVLklSnTh05HA4NHz5ckmQYhlwulxITExUREaGOHTvq3Xff9TjPRx99pOTkZEVERKhXr14ecZbXpEmTlJycrFq1aql58+aaMmWKSkpKLtrv9ddfV0JCgmrVqqXBgwfr9OnTHu+/+eabatOmjcLDw9W6dWu99tprPscCoGJIGACbRUREqLi42P36008/VXZ2ttauXatVq1appKREffv2VXR0tDZt2qTPP/9cUVFRSklJcc974YUXlJ6err/85S/KzMzUyZMntWLFil8977333qv//u//1pw5c7R79269/vrrioqKUkJCgt577z1JUnZ2to4ePapXXnlFkuRyubRo0SLNnz9fu3btUmpqqu655x5lZGRIKktsBg4cqNtvv11ZWVkaOXKkJk+e7PN/k+joaKWnp+u7777TK6+8ojfeeEMvvfSSxz45OTlavny5PvzwQ61Zs0bffPONHnnkEff7ixcv1tSpU/X0009r9+7deuaZZzRlyhQe9wxUFhNAhQ0bNszs37+/aZqmaRiGuXbtWtPpdJrjx493v9+gQQOzqKjIPeftt982W7VqZRqG4d5WVFRkRkREmJ988olpmqbZsGFD87nnnnO/X1JSYjZu3Nh9LtM0zR49epiPPfaYaZqmmZ2dbUoy165de8k4P/vsM1OS+Y9//MO9rbCw0KxVq5a5efNmj31HjBhhDhkyxDRN03ziiSfMtm3berw/adKki471S5LMFStWXPb9559/3uzcubP79bRp08zQ0FDz8OHD7m0ff/yxGRISYh49etQ0TdNs0aKFuWTJEo/jzJo1y+zatatpmqa5f/9+U5L5zTffXPa8ACqONQyARatWrVJUVJRKSkpkGIbuvvtuTZ8+3f1++/btPdYtbN++XTk5OYqOjvY4TmFhoXJzc3X69GkdPXpUXbp0cb9Xo0YNXXfddRe1JS7IyspSaGioevToUe64c3JydPbsWd16660e24uLi9WpUydJ0u7duz3ikKSuXbuW+xwXLFu2THPmzFFubq7y8/N1/vx5xcTEeOzTpEkTNWrUyOM8hmEoOztb0dHRys3N1YgRI/TAAw+49zl//rxiY2N9jgeA70gYAIt69eqltLQ0hYWFKT4+XjVqeP5vFRkZ6fE6Pz9fnTt31uLFiy86Vr169SoUQ0REhM9z8vPzJUmrV6/2+KKWytZl2GXLli0aOnSoZsyYob59+yo2NlZLly7VCy+84HOsb7zxxkUJTGhoqG2xArg8EgbAosjISCUlJZV7/2uvvVbLli1T/fr1L/or+4KGDRvqyy+/VPfu3SWV/SW9bds2XXvttZfcv3379jIMQxkZGerdu/dF71+ocJSWlrq3tW3bVk6nUwcPHrxsZaJNmzbuBZwXfPHFF94/5L/YvHmzmjZtqqeeesq97Ycffrhov4MHD+rIkSOKj493nyckJEStWrVSgwYNFB8fr3379mno0KE+nR+APVj0CFSyoUOH6uqrr1b//v21adMm7d+/Xxs2bNCYMWN0+PBhSdJjjz2mZ599VitXrtSePXv0yCOP/Oo9FJo1a6Zhw4bp/vvv18qVK93HXL58uSSpadOmcjgcWrVqlf7+978rPz9f0dHRGj9+vFJTU7Vw4ULl5ubq66+/1ty5c90LCR966CHt3btXEyZMUHZ2tpYsWaL09HSfPm/Lli118OBBLV26VLm5uZozZ84lF3CGh4dr2LBh2r59uzZt2qQxY8Zo8ODBiouLkyTNmDFDLpdLc+bM0ffff69vv/1WCxYs0IsvvuhTPAAqhoQBqGS1atXSxo0b1aRJEw0cOFBt2rTRiBEjVFhY6K44PP744/rP//xPDRs2TF27dlV0dLTuvPPOXz1uWlqafve73+mRRx5R69at9cADD6igoECS1KhRI82YMUOTJ09WgwYNNHr0aEnSrFmzNGXKFLlcLrVp00YpKSlavXq1EhMTJZWtK3jvvfe0cuVKdezYUfPnz9czzzzj0+e94447lJqaqtGjR+uaa67R5s2bNWXKlIv2S0pK0sCBA3XbbbepT58+6tChg8dlkyNHjtSbb76pBQsWqH379urRo4fS09PdsQLwL4d5uVVUAAAA/0SFAQAAeEXCAAAAvCJhAAAAXpEwAAAAr0gYAACAVyQMAADAKxIGAADgFQkDAADwioQBAAB4RcIAAAC8ImEAAABe/X/s2q/eAJZgMQAAAABJRU5ErkJggg==",
"text/plain": [
"<Figure size 640x480 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"#######CONFUSION MATRIX ###########\n",
"from sklearn import metrics\n",
"y_test_pred_svm = model_svm.predict(X_test)\n",
"confusion_matrix_test = metrics.confusion_matrix(y_test, y_test_pred_svm)\n",
"cm_display = metrics.ConfusionMatrixDisplay(confusion_matrix = confusion_matrix_test, display_labels = [False, True])\n",
"cm_display.plot()\n",
"plt.show()"
]
},
{
"cell_type": "code",
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
"id": "475b75bd",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Accuracy : 0.95\n",
"Sensitivity : 0.9333333333333333\n",
"Specificity : 0.9666666666666667\n"
]
}
],
"source": [
"total1=sum(sum(confusion_matrix_test))\n",
"#####from confusion matrix calculate accuracy\n",
"accuracy1=(confusion_matrix_test[0,0]+confusion_matrix_test[1,1])/total1\n",
"print ('Accuracy : ', accuracy1)\n",
"\n",
"sensitivity1 = confusion_matrix_test[0,0]/(confusion_matrix_test[0,0]+confusion_matrix_test[0,1])\n",
"print('Sensitivity : ', sensitivity1 )\n",
"\n",
"specificity1 = confusion_matrix_test[1,1]/(confusion_matrix_test[1,0]+confusion_matrix_test[1,1])\n",
"print('Specificity : ', specificity1)"
]
},
{
"cell_type": "code",
"id": "c1095af0",
"metadata": {},
"outputs": [],
"source": [
"# for important features:\n",
"important_feat = model_svm.coef_[0]\n",
"#get indices of those important features\n",
"idx = important_feat.argsort(kind= \"quicksort\")\n",
"idx= idx[::-1][:50]"
]
},
{
"cell_type": "code",
"id": "ae7e0162",
"metadata": {},
"outputs": [],
"source": [
"df1 = X_selected.T"
]
},
{
"cell_type": "code",
"id": "1d97f818",
"metadata": {},
"outputs": [],
"source": [
"top_met = df1.iloc[idx]"
]
},
{
"cell_type": "code",
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
"id": "4cd4227b",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Index(['ECT2', 'COL1A1', 'RPN1', 'LEPROTL1', 'MMP10', 'ERCC3', 'NT5C2',\n",
" 'GABRP', 'SCNN1A', 'DHRS2', 'HSPBAP1', 'TSPAN6', 'IGF2BP2', 'SPINK5',\n",
" 'RHCG', 'SLC2A1', 'IGFBP3', 'ECM1', 'CYP4B1', 'TMPRSS11E', 'TAPBP',\n",
" 'COL5A2', 'AIM2', 'IL1RN', 'LCN2', 'EFNA1', 'MAL', 'RUVBL1', 'TFAP2B',\n",
" 'MCM2', 'MYH10', 'ENTPD6', 'TRIP13', 'LYPD3', 'CES2', 'RANBP9', 'PSMB9',\n",
" 'PCSK5', 'KLK13', 'AQP3', 'FSCN1', 'CRNN', 'PHLDA1', 'IFI35', 'HSPB8',\n",
" 'CRISP3', 'PPP1R3C', 'GALNT1', 'STK24', 'SPRR3'],\n",
" dtype='object')"
]
},
"execution_count": 53,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"top_met.index"
]
},
{
"cell_type": "code",
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
"id": "8f6d88bb",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Index(['ACLY', 'ACPP', 'AIM2', 'ALDH9A1', 'ALOX12', 'ANO1', 'AQP3', 'ATP6V1D',\n",
" 'CCNG2', 'CES2', 'CFD', 'CH25H', 'CLIC3', 'COL1A1', 'COL5A2', 'CRABP2',\n",
" 'CRISP3', 'CRNN', 'CYP4B1', 'DHRS1', 'DHRS2', 'DUOX1', 'DUSP5', 'ECM1',\n",
" 'ECT2', 'EFNA1', 'EMP1', 'ENTPD6', 'ERCC3', 'FLG', 'FSCN1', 'GABRP',\n",
" 'GALE', 'GALNT1', 'GPX3', 'HOPX', 'HSPB8', 'HSPBAP1', 'HSPD1', 'ID4',\n",
" 'IFI35', 'IGF2BP2', 'IGFBP3', 'IL1RN', 'INPP1', 'KANK1', 'KLK13',\n",
" 'KRT4', 'LAMC2', 'LCN2', 'LEPROTL1', 'LYPD3', 'MAL', 'MCM2', 'MMP10',\n",
" 'MUC1', 'MYH10', 'NDRG2', 'NT5C2', 'PCSK5', 'PHLDA1', 'PITX1',\n",
" 'PPP1R3C', 'PSMB9', 'PTN', 'RAB11FIP1', 'RANBP9', 'RHCG', 'RND3',\n",
" 'RPN1', 'RUVBL1', 'SCNN1A', 'SERPINB13', 'SERPINB2', 'SIM2', 'SLC2A1',\n",
" 'SLK', 'SLURP1', 'SPINK5', 'SPRR3', 'SSRP1', 'STK24', 'SYNPO2L',\n",
" 'TAPBP', 'TFAP2B', 'TGIF1', 'TIAM1', 'TJP1', 'TMF1', 'TMPRSS11D',\n",
" 'TMPRSS11E', 'TRIP13', 'TSPAN6', 'TST', 'TYMP', 'UCHL1', 'ZBTB16',\n",
" 'ZNF185'],\n",
" dtype='object')"
]
},
"execution_count": 54,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"X_selected.columns"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "0ea4996c",
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.9.16"
}
},
"nbformat": 4,
"nbformat_minor": 5
}