Switch to unified view

a b/rsf/rsf_feature_selection.ipynb
1
{
2
 "cells": [
3
  {
4
   "cell_type": "markdown",
5
   "metadata": {
6
    "id": "VW1lne1tWskl",
7
    "colab_type": "text"
8
   },
9
   "source": [
10
    "# Random Survival Forest model\n",
11
    "\n",
12
    "Feature selection with RSF in Owkin dataset."
13
   ]
14
  },
15
  {
16
   "cell_type": "markdown",
17
   "metadata": {
18
    "id": "BBI8oFpGcMUg",
19
    "colab_type": "text"
20
   },
21
   "source": [
22
    "External packages."
23
   ]
24
  },
25
  {
26
   "cell_type": "code",
27
   "execution_count": 0,
28
   "metadata": {
29
    "id": "pn1cU1CocQ_G",
30
    "colab_type": "code",
31
    "outputId": "a5e9d172-c200-4daf-8a68-a611a41c5766",
32
    "colab": {
33
     "base_uri": "https://localhost:8080/",
34
     "height": 595.0
35
    }
36
   },
37
   "outputs": [
38
    {
39
     "name": "stdout",
40
     "output_type": "stream",
41
     "text": [
42
      "Requirement already satisfied: scikit-survival in /usr/local/lib/python3.6/dist-packages (0.11)\n",
43
      "Requirement already satisfied: scipy!=1.3.0,>=1.0 in /usr/local/lib/python3.6/dist-packages (from scikit-survival) (1.4.1)\n",
44
      "Requirement already satisfied: cvxpy>=1.0 in /usr/local/lib/python3.6/dist-packages (from scikit-survival) (1.0.25)\n",
45
      "Requirement already satisfied: cython>=0.29 in /usr/local/lib/python3.6/dist-packages (from scikit-survival) (0.29.15)\n",
46
      "Requirement already satisfied: scikit-learn<0.22,>=0.21.0 in /usr/local/lib/python3.6/dist-packages (from scikit-survival) (0.21.3)\n",
47
      "Requirement already satisfied: numexpr in /usr/local/lib/python3.6/dist-packages (from scikit-survival) (2.7.1)\n",
48
      "Requirement already satisfied: osqp!=0.6.0,!=0.6.1 in /usr/local/lib/python3.6/dist-packages (from scikit-survival) (0.5.0)\n",
49
      "Requirement already satisfied: numpy in /usr/local/lib/python3.6/dist-packages (from scikit-survival) (1.17.5)\n",
50
      "Requirement already satisfied: cvxopt in /usr/local/lib/python3.6/dist-packages (from scikit-survival) (1.2.4)\n",
51
      "Requirement already satisfied: pandas<0.26,>=0.21 in /usr/local/lib/python3.6/dist-packages (from scikit-survival) (0.25.3)\n",
52
      "Requirement already satisfied: six in /usr/local/lib/python3.6/dist-packages (from cvxpy>=1.0->scikit-survival) (1.12.0)\n",
53
      "Requirement already satisfied: multiprocess in /usr/local/lib/python3.6/dist-packages (from cvxpy>=1.0->scikit-survival) (0.70.9)\n",
54
      "Requirement already satisfied: ecos>=2 in /usr/local/lib/python3.6/dist-packages (from cvxpy>=1.0->scikit-survival) (2.0.7.post1)\n",
55
      "Requirement already satisfied: scs>=1.1.3 in /usr/local/lib/python3.6/dist-packages (from cvxpy>=1.0->scikit-survival) (2.1.1.post2)\n",
56
      "Requirement already satisfied: joblib>=0.11 in /usr/local/lib/python3.6/dist-packages (from scikit-learn<0.22,>=0.21.0->scikit-survival) (0.14.1)\n",
57
      "Requirement already satisfied: future in /usr/local/lib/python3.6/dist-packages (from osqp!=0.6.0,!=0.6.1->scikit-survival) (0.16.0)\n",
58
      "Requirement already satisfied: pytz>=2017.2 in /usr/local/lib/python3.6/dist-packages (from pandas<0.26,>=0.21->scikit-survival) (2018.9)\n",
59
      "Requirement already satisfied: python-dateutil>=2.6.1 in /usr/local/lib/python3.6/dist-packages (from pandas<0.26,>=0.21->scikit-survival) (2.6.1)\n",
60
      "Requirement already satisfied: dill>=0.3.1 in /usr/local/lib/python3.6/dist-packages (from multiprocess->cvxpy>=1.0->scikit-survival) (0.3.1.1)\n",
61
      "Collecting eli5\n",
62
      "\u001b[?25l  Downloading https://files.pythonhosted.org/packages/97/2f/c85c7d8f8548e460829971785347e14e45fa5c6617da374711dec8cb38cc/eli5-0.10.1-py2.py3-none-any.whl (105kB)\n",
63
      "\u001b[K     |████████████████████████████████| 112kB 2.8MB/s \n",
64
      "\u001b[?25hRequirement already satisfied: attrs>16.0.0 in /usr/local/lib/python3.6/dist-packages (from eli5) (19.3.0)\n",
65
      "Requirement already satisfied: scikit-learn>=0.18 in /usr/local/lib/python3.6/dist-packages (from eli5) (0.21.3)\n",
66
      "Requirement already satisfied: tabulate>=0.7.7 in /usr/local/lib/python3.6/dist-packages (from eli5) (0.8.6)\n",
67
      "Requirement already satisfied: scipy in /usr/local/lib/python3.6/dist-packages (from eli5) (1.4.1)\n",
68
      "Requirement already satisfied: graphviz in /usr/local/lib/python3.6/dist-packages (from eli5) (0.10.1)\n",
69
      "Requirement already satisfied: jinja2 in /usr/local/lib/python3.6/dist-packages (from eli5) (2.11.1)\n",
70
      "Requirement already satisfied: six in /usr/local/lib/python3.6/dist-packages (from eli5) (1.12.0)\n",
71
      "Requirement already satisfied: numpy>=1.9.0 in /usr/local/lib/python3.6/dist-packages (from eli5) (1.17.5)\n",
72
      "Requirement already satisfied: joblib>=0.11 in /usr/local/lib/python3.6/dist-packages (from scikit-learn>=0.18->eli5) (0.14.1)\n",
73
      "Requirement already satisfied: MarkupSafe>=0.23 in /usr/local/lib/python3.6/dist-packages (from jinja2->eli5) (1.1.1)\n",
74
      "Installing collected packages: eli5\n",
75
      "Successfully installed eli5-0.10.1\n"
76
     ]
77
    }
78
   ],
79
   "source": [
80
    "!pip install scikit-survival\n",
81
    "!pip install eli5"
82
   ]
83
  },
84
  {
85
   "cell_type": "code",
86
   "execution_count": 0,
87
   "metadata": {
88
    "id": "wvGuplLr3lW1",
89
    "colab_type": "code",
90
    "colab": {}
91
   },
92
   "outputs": [],
93
   "source": [
94
    "import pandas as pd\n",
95
    "import matplotlib.pyplot as plt\n",
96
    "import numpy as np\n",
97
    "import read_data"
98
   ]
99
  },
100
  {
101
   "cell_type": "markdown",
102
   "metadata": {
103
    "id": "s0zye152Zilo",
104
    "colab_type": "text"
105
   },
106
   "source": [
107
    "## Load data"
108
   ]
109
  },
110
  {
111
   "cell_type": "code",
112
   "execution_count": 0,
113
   "metadata": {
114
    "id": "RSMkfEPyE9s6",
115
    "colab_type": "code",
116
    "colab": {}
117
   },
118
   "outputs": [],
119
   "source": [
120
    "features = ['original_shape_Compactness2',\n",
121
    " 'original_shape_SphericalDisproportion',\n",
122
    " 'original_shape_SurfaceVolumeRatio',\n",
123
    " 'original_firstorder_Kurtosis',\n",
124
    " 'original_firstorder_MeanAbsoluteDeviation',\n",
125
    " 'original_firstorder_Minimum',\n",
126
    " 'original_glcm_ClusterProminence',\n",
127
    " 'original_glcm_Contrast',\n",
128
    " 'original_glcm_DifferenceEntropy',\n",
129
    " 'original_glcm_DifferenceAverage',\n",
130
    " 'original_glcm_JointEnergy',\n",
131
    " 'original_glcm_Id',\n",
132
    " 'original_glcm_Idm',\n",
133
    " 'original_glcm_Imc1',\n",
134
    " 'original_glcm_Imc2',\n",
135
    " 'original_glcm_Idmn',\n",
136
    " 'original_glcm_Idn',\n",
137
    " 'original_glrlm_ShortRunEmphasis',\n",
138
    " 'original_glrlm_LongRunEmphasis',\n",
139
    " 'original_glrlm_GrayLevelNonUniformity',\n",
140
    " 'original_glrlm_RunPercentage',\n",
141
    " 'original_glrlm_ShortRunLowGrayLevelEmphasis',\n",
142
    " 'original_glrlm_LongRunLowGrayLevelEmphasis',\n",
143
    " 'original_glrlm_LongRunHighGrayLevelEmphasis',\n",
144
    " 'Nstage',\n",
145
    " 'age',\n",
146
    " 'SourceDataset_l1',\n",
147
    " 'SourceDataset_l2']"
148
   ]
149
  },
150
  {
151
   "cell_type": "code",
152
   "execution_count": 0,
153
   "metadata": {
154
    "id": "EB3sdksn3lW8",
155
    "colab_type": "code",
156
    "outputId": "c0b0a729-baeb-4284-a640-589169d38762",
157
    "colab": {
158
     "base_uri": "https://localhost:8080/",
159
     "height": 470.0
160
    }
161
   },
162
   "outputs": [
163
    {
164
     "data": {
165
      "text/html": [
166
       "<div>\n",
167
       "<style scoped>\n",
168
       "    .dataframe tbody tr th:only-of-type {\n",
169
       "        vertical-align: middle;\n",
170
       "    }\n",
171
       "\n",
172
       "    .dataframe tbody tr th {\n",
173
       "        vertical-align: top;\n",
174
       "    }\n",
175
       "\n",
176
       "    .dataframe thead th {\n",
177
       "        text-align: right;\n",
178
       "    }\n",
179
       "</style>\n",
180
       "<table border=\"1\" class=\"dataframe\">\n",
181
       "  <thead>\n",
182
       "    <tr style=\"text-align: right;\">\n",
183
       "      <th></th>\n",
184
       "      <th>original_shape_Compactness2</th>\n",
185
       "      <th>original_shape_SphericalDisproportion</th>\n",
186
       "      <th>original_shape_SurfaceVolumeRatio</th>\n",
187
       "      <th>original_firstorder_Kurtosis</th>\n",
188
       "      <th>original_firstorder_MeanAbsoluteDeviation</th>\n",
189
       "      <th>original_firstorder_Minimum</th>\n",
190
       "      <th>original_glcm_ClusterProminence</th>\n",
191
       "      <th>original_glcm_Contrast</th>\n",
192
       "      <th>original_glcm_DifferenceEntropy</th>\n",
193
       "      <th>original_glcm_DifferenceAverage</th>\n",
194
       "      <th>original_glcm_JointEnergy</th>\n",
195
       "      <th>original_glcm_Id</th>\n",
196
       "      <th>original_glcm_Idm</th>\n",
197
       "      <th>original_glcm_Imc1</th>\n",
198
       "      <th>original_glcm_Imc2</th>\n",
199
       "      <th>original_glcm_Idmn</th>\n",
200
       "      <th>original_glcm_Idn</th>\n",
201
       "      <th>original_glrlm_ShortRunEmphasis</th>\n",
202
       "      <th>original_glrlm_LongRunEmphasis</th>\n",
203
       "      <th>original_glrlm_GrayLevelNonUniformity</th>\n",
204
       "      <th>original_glrlm_RunPercentage</th>\n",
205
       "      <th>original_glrlm_ShortRunLowGrayLevelEmphasis</th>\n",
206
       "      <th>original_glrlm_LongRunLowGrayLevelEmphasis</th>\n",
207
       "      <th>original_glrlm_LongRunHighGrayLevelEmphasis</th>\n",
208
       "      <th>Nstage</th>\n",
209
       "      <th>age</th>\n",
210
       "      <th>SourceDataset_l1</th>\n",
211
       "      <th>SourceDataset_l2</th>\n",
212
       "    </tr>\n",
213
       "    <tr>\n",
214
       "      <th>PatientID</th>\n",
215
       "      <th></th>\n",
216
       "      <th></th>\n",
217
       "      <th></th>\n",
218
       "      <th></th>\n",
219
       "      <th></th>\n",
220
       "      <th></th>\n",
221
       "      <th></th>\n",
222
       "      <th></th>\n",
223
       "      <th></th>\n",
224
       "      <th></th>\n",
225
       "      <th></th>\n",
226
       "      <th></th>\n",
227
       "      <th></th>\n",
228
       "      <th></th>\n",
229
       "      <th></th>\n",
230
       "      <th></th>\n",
231
       "      <th></th>\n",
232
       "      <th></th>\n",
233
       "      <th></th>\n",
234
       "      <th></th>\n",
235
       "      <th></th>\n",
236
       "      <th></th>\n",
237
       "      <th></th>\n",
238
       "      <th></th>\n",
239
       "      <th></th>\n",
240
       "      <th></th>\n",
241
       "      <th></th>\n",
242
       "      <th></th>\n",
243
       "    </tr>\n",
244
       "  </thead>\n",
245
       "  <tbody>\n",
246
       "    <tr>\n",
247
       "      <th>202</th>\n",
248
       "      <td>0.274892</td>\n",
249
       "      <td>1.537964</td>\n",
250
       "      <td>0.275228</td>\n",
251
       "      <td>1.592466</td>\n",
252
       "      <td>288.311105</td>\n",
253
       "      <td>-1006.0</td>\n",
254
       "      <td>546253.499762</td>\n",
255
       "      <td>54.336816</td>\n",
256
       "      <td>3.845383</td>\n",
257
       "      <td>5.036775</td>\n",
258
       "      <td>0.005920</td>\n",
259
       "      <td>0.338672</td>\n",
260
       "      <td>0.262780</td>\n",
261
       "      <td>-0.175185</td>\n",
262
       "      <td>0.901525</td>\n",
263
       "      <td>0.981053</td>\n",
264
       "      <td>0.917509</td>\n",
265
       "      <td>0.926391</td>\n",
266
       "      <td>1.457980</td>\n",
267
       "      <td>555.378594</td>\n",
268
       "      <td>0.891330</td>\n",
269
       "      <td>0.003384</td>\n",
270
       "      <td>0.004444</td>\n",
271
       "      <td>1651.710761</td>\n",
272
       "      <td>0</td>\n",
273
       "      <td>66.0000</td>\n",
274
       "      <td>0</td>\n",
275
       "      <td>1</td>\n",
276
       "    </tr>\n",
277
       "    <tr>\n",
278
       "      <th>371</th>\n",
279
       "      <td>0.188210</td>\n",
280
       "      <td>1.744961</td>\n",
281
       "      <td>0.240727</td>\n",
282
       "      <td>3.371013</td>\n",
283
       "      <td>191.395154</td>\n",
284
       "      <td>-945.0</td>\n",
285
       "      <td>331155.230396</td>\n",
286
       "      <td>16.868781</td>\n",
287
       "      <td>2.984034</td>\n",
288
       "      <td>2.570017</td>\n",
289
       "      <td>0.025532</td>\n",
290
       "      <td>0.495719</td>\n",
291
       "      <td>0.439879</td>\n",
292
       "      <td>-0.250370</td>\n",
293
       "      <td>0.932847</td>\n",
294
       "      <td>0.993282</td>\n",
295
       "      <td>0.953464</td>\n",
296
       "      <td>0.855154</td>\n",
297
       "      <td>2.512125</td>\n",
298
       "      <td>1766.619373</td>\n",
299
       "      <td>0.766032</td>\n",
300
       "      <td>0.002069</td>\n",
301
       "      <td>0.003633</td>\n",
302
       "      <td>3386.995589</td>\n",
303
       "      <td>2</td>\n",
304
       "      <td>64.5722</td>\n",
305
       "      <td>1</td>\n",
306
       "      <td>0</td>\n",
307
       "    </tr>\n",
308
       "    <tr>\n",
309
       "      <th>246</th>\n",
310
       "      <td>0.265740</td>\n",
311
       "      <td>1.555420</td>\n",
312
       "      <td>0.200766</td>\n",
313
       "      <td>7.585494</td>\n",
314
       "      <td>94.132136</td>\n",
315
       "      <td>-785.0</td>\n",
316
       "      <td>54523.086867</td>\n",
317
       "      <td>7.040623</td>\n",
318
       "      <td>2.333939</td>\n",
319
       "      <td>1.496020</td>\n",
320
       "      <td>0.066569</td>\n",
321
       "      <td>0.616607</td>\n",
322
       "      <td>0.581458</td>\n",
323
       "      <td>-0.249969</td>\n",
324
       "      <td>0.884911</td>\n",
325
       "      <td>0.995095</td>\n",
326
       "      <td>0.963887</td>\n",
327
       "      <td>0.769265</td>\n",
328
       "      <td>4.096838</td>\n",
329
       "      <td>3462.816344</td>\n",
330
       "      <td>0.644554</td>\n",
331
       "      <td>0.001635</td>\n",
332
       "      <td>0.004869</td>\n",
333
       "      <td>4232.418080</td>\n",
334
       "      <td>3</td>\n",
335
       "      <td>66.0452</td>\n",
336
       "      <td>1</td>\n",
337
       "      <td>0</td>\n",
338
       "    </tr>\n",
339
       "    <tr>\n",
340
       "      <th>240</th>\n",
341
       "      <td>0.255406</td>\n",
342
       "      <td>1.576120</td>\n",
343
       "      <td>0.323878</td>\n",
344
       "      <td>4.281865</td>\n",
345
       "      <td>149.072998</td>\n",
346
       "      <td>-850.0</td>\n",
347
       "      <td>166735.779994</td>\n",
348
       "      <td>13.656782</td>\n",
349
       "      <td>2.926791</td>\n",
350
       "      <td>2.492079</td>\n",
351
       "      <td>0.015048</td>\n",
352
       "      <td>0.457545</td>\n",
353
       "      <td>0.391681</td>\n",
354
       "      <td>-0.214233</td>\n",
355
       "      <td>0.902811</td>\n",
356
       "      <td>0.993509</td>\n",
357
       "      <td>0.950374</td>\n",
358
       "      <td>0.880123</td>\n",
359
       "      <td>1.824328</td>\n",
360
       "      <td>683.869792</td>\n",
361
       "      <td>0.828138</td>\n",
362
       "      <td>0.002680</td>\n",
363
       "      <td>0.003901</td>\n",
364
       "      <td>1844.746046</td>\n",
365
       "      <td>2</td>\n",
366
       "      <td>59.3566</td>\n",
367
       "      <td>1</td>\n",
368
       "      <td>0</td>\n",
369
       "    </tr>\n",
370
       "    <tr>\n",
371
       "      <th>284</th>\n",
372
       "      <td>0.199424</td>\n",
373
       "      <td>1.711620</td>\n",
374
       "      <td>0.327241</td>\n",
375
       "      <td>8.999616</td>\n",
376
       "      <td>143.210231</td>\n",
377
       "      <td>-1023.0</td>\n",
378
       "      <td>658805.553990</td>\n",
379
       "      <td>20.121147</td>\n",
380
       "      <td>2.787526</td>\n",
381
       "      <td>2.372269</td>\n",
382
       "      <td>0.029317</td>\n",
383
       "      <td>0.544607</td>\n",
384
       "      <td>0.501892</td>\n",
385
       "      <td>-0.238174</td>\n",
386
       "      <td>0.911356</td>\n",
387
       "      <td>0.992658</td>\n",
388
       "      <td>0.958908</td>\n",
389
       "      <td>0.819049</td>\n",
390
       "      <td>2.652580</td>\n",
391
       "      <td>962.094760</td>\n",
392
       "      <td>0.734898</td>\n",
393
       "      <td>0.004704</td>\n",
394
       "      <td>0.023273</td>\n",
395
       "      <td>4444.272812</td>\n",
396
       "      <td>3</td>\n",
397
       "      <td>71.0554</td>\n",
398
       "      <td>1</td>\n",
399
       "      <td>0</td>\n",
400
       "    </tr>\n",
401
       "    <tr>\n",
402
       "      <th>...</th>\n",
403
       "      <td>...</td>\n",
404
       "      <td>...</td>\n",
405
       "      <td>...</td>\n",
406
       "      <td>...</td>\n",
407
       "      <td>...</td>\n",
408
       "      <td>...</td>\n",
409
       "      <td>...</td>\n",
410
       "      <td>...</td>\n",
411
       "      <td>...</td>\n",
412
       "      <td>...</td>\n",
413
       "      <td>...</td>\n",
414
       "      <td>...</td>\n",
415
       "      <td>...</td>\n",
416
       "      <td>...</td>\n",
417
       "      <td>...</td>\n",
418
       "      <td>...</td>\n",
419
       "      <td>...</td>\n",
420
       "      <td>...</td>\n",
421
       "      <td>...</td>\n",
422
       "      <td>...</td>\n",
423
       "      <td>...</td>\n",
424
       "      <td>...</td>\n",
425
       "      <td>...</td>\n",
426
       "      <td>...</td>\n",
427
       "      <td>...</td>\n",
428
       "      <td>...</td>\n",
429
       "      <td>...</td>\n",
430
       "      <td>...</td>\n",
431
       "    </tr>\n",
432
       "    <tr>\n",
433
       "      <th>89</th>\n",
434
       "      <td>0.250187</td>\n",
435
       "      <td>1.587005</td>\n",
436
       "      <td>0.286576</td>\n",
437
       "      <td>1.927350</td>\n",
438
       "      <td>233.308909</td>\n",
439
       "      <td>-1015.0</td>\n",
440
       "      <td>367468.618766</td>\n",
441
       "      <td>28.824354</td>\n",
442
       "      <td>3.484871</td>\n",
443
       "      <td>3.972802</td>\n",
444
       "      <td>0.001746</td>\n",
445
       "      <td>0.336821</td>\n",
446
       "      <td>0.249734</td>\n",
447
       "      <td>-0.214544</td>\n",
448
       "      <td>0.939555</td>\n",
449
       "      <td>0.988997</td>\n",
450
       "      <td>0.930211</td>\n",
451
       "      <td>0.934151</td>\n",
452
       "      <td>1.351356</td>\n",
453
       "      <td>454.228333</td>\n",
454
       "      <td>0.907916</td>\n",
455
       "      <td>0.003590</td>\n",
456
       "      <td>0.005985</td>\n",
457
       "      <td>1145.996232</td>\n",
458
       "      <td>2</td>\n",
459
       "      <td>69.1828</td>\n",
460
       "      <td>1</td>\n",
461
       "      <td>0</td>\n",
462
       "    </tr>\n",
463
       "    <tr>\n",
464
       "      <th>261</th>\n",
465
       "      <td>0.454151</td>\n",
466
       "      <td>1.300968</td>\n",
467
       "      <td>0.281441</td>\n",
468
       "      <td>1.925799</td>\n",
469
       "      <td>214.212310</td>\n",
470
       "      <td>-901.0</td>\n",
471
       "      <td>227251.294990</td>\n",
472
       "      <td>17.384511</td>\n",
473
       "      <td>3.111318</td>\n",
474
       "      <td>2.831998</td>\n",
475
       "      <td>0.016200</td>\n",
476
       "      <td>0.451176</td>\n",
477
       "      <td>0.383987</td>\n",
478
       "      <td>-0.271559</td>\n",
479
       "      <td>0.953994</td>\n",
480
       "      <td>0.990157</td>\n",
481
       "      <td>0.939545</td>\n",
482
       "      <td>0.885250</td>\n",
483
       "      <td>2.126745</td>\n",
484
       "      <td>336.573622</td>\n",
485
       "      <td>0.807157</td>\n",
486
       "      <td>0.002829</td>\n",
487
       "      <td>0.004400</td>\n",
488
       "      <td>2243.689318</td>\n",
489
       "      <td>0</td>\n",
490
       "      <td>87.1266</td>\n",
491
       "      <td>1</td>\n",
492
       "      <td>0</td>\n",
493
       "    </tr>\n",
494
       "    <tr>\n",
495
       "      <th>129</th>\n",
496
       "      <td>0.234096</td>\n",
497
       "      <td>1.622565</td>\n",
498
       "      <td>0.224665</td>\n",
499
       "      <td>51.791276</td>\n",
500
       "      <td>27.675471</td>\n",
501
       "      <td>-751.0</td>\n",
502
       "      <td>6889.281619</td>\n",
503
       "      <td>1.439822</td>\n",
504
       "      <td>1.440679</td>\n",
505
       "      <td>0.633557</td>\n",
506
       "      <td>0.130721</td>\n",
507
       "      <td>0.746369</td>\n",
508
       "      <td>0.735862</td>\n",
509
       "      <td>-0.264988</td>\n",
510
       "      <td>0.824795</td>\n",
511
       "      <td>0.999412</td>\n",
512
       "      <td>0.987616</td>\n",
513
       "      <td>0.631183</td>\n",
514
       "      <td>7.254939</td>\n",
515
       "      <td>4513.100699</td>\n",
516
       "      <td>0.511173</td>\n",
517
       "      <td>0.000784</td>\n",
518
       "      <td>0.006983</td>\n",
519
       "      <td>7752.599509</td>\n",
520
       "      <td>1</td>\n",
521
       "      <td>59.8439</td>\n",
522
       "      <td>1</td>\n",
523
       "      <td>0</td>\n",
524
       "    </tr>\n",
525
       "    <tr>\n",
526
       "      <th>273</th>\n",
527
       "      <td>0.375695</td>\n",
528
       "      <td>1.385866</td>\n",
529
       "      <td>0.605798</td>\n",
530
       "      <td>1.585915</td>\n",
531
       "      <td>273.935074</td>\n",
532
       "      <td>-948.0</td>\n",
533
       "      <td>407492.165534</td>\n",
534
       "      <td>78.081431</td>\n",
535
       "      <td>4.126944</td>\n",
536
       "      <td>6.580868</td>\n",
537
       "      <td>0.002750</td>\n",
538
       "      <td>0.272701</td>\n",
539
       "      <td>0.192854</td>\n",
540
       "      <td>-0.212124</td>\n",
541
       "      <td>0.939127</td>\n",
542
       "      <td>0.959449</td>\n",
543
       "      <td>0.873813</td>\n",
544
       "      <td>0.952612</td>\n",
545
       "      <td>1.231149</td>\n",
546
       "      <td>40.140124</td>\n",
547
       "      <td>0.934473</td>\n",
548
       "      <td>0.012984</td>\n",
549
       "      <td>0.016086</td>\n",
550
       "      <td>726.945564</td>\n",
551
       "      <td>0</td>\n",
552
       "      <td>70.0000</td>\n",
553
       "      <td>0</td>\n",
554
       "      <td>1</td>\n",
555
       "    </tr>\n",
556
       "    <tr>\n",
557
       "      <th>366</th>\n",
558
       "      <td>0.347965</td>\n",
559
       "      <td>1.421744</td>\n",
560
       "      <td>0.183806</td>\n",
561
       "      <td>3.987643</td>\n",
562
       "      <td>163.293001</td>\n",
563
       "      <td>-951.0</td>\n",
564
       "      <td>231987.589044</td>\n",
565
       "      <td>12.072458</td>\n",
566
       "      <td>2.801756</td>\n",
567
       "      <td>2.259543</td>\n",
568
       "      <td>0.022109</td>\n",
569
       "      <td>0.484819</td>\n",
570
       "      <td>0.425104</td>\n",
571
       "      <td>-0.234808</td>\n",
572
       "      <td>0.914060</td>\n",
573
       "      <td>0.994511</td>\n",
574
       "      <td>0.955753</td>\n",
575
       "      <td>0.858965</td>\n",
576
       "      <td>2.085791</td>\n",
577
       "      <td>2982.109496</td>\n",
578
       "      <td>0.797732</td>\n",
579
       "      <td>0.001148</td>\n",
580
       "      <td>0.002128</td>\n",
581
       "      <td>2947.807968</td>\n",
582
       "      <td>3</td>\n",
583
       "      <td>54.6940</td>\n",
584
       "      <td>1</td>\n",
585
       "      <td>0</td>\n",
586
       "    </tr>\n",
587
       "  </tbody>\n",
588
       "</table>\n",
589
       "<p>284 rows × 28 columns</p>\n",
590
       "</div>"
591
      ],
592
      "text/plain": [
593
       "           original_shape_Compactness2  ...  SourceDataset_l2\n",
594
       "PatientID                               ...                  \n",
595
       "202                           0.274892  ...                 1\n",
596
       "371                           0.188210  ...                 0\n",
597
       "246                           0.265740  ...                 0\n",
598
       "240                           0.255406  ...                 0\n",
599
       "284                           0.199424  ...                 0\n",
600
       "...                                ...  ...               ...\n",
601
       "89                            0.250187  ...                 0\n",
602
       "261                           0.454151  ...                 0\n",
603
       "129                           0.234096  ...                 0\n",
604
       "273                           0.375695  ...                 1\n",
605
       "366                           0.347965  ...                 0\n",
606
       "\n",
607
       "[284 rows x 28 columns]"
608
      ]
609
     },
610
     "execution_count": 77,
611
     "metadata": {
612
      "tags": []
613
     },
614
     "output_type": "execute_result"
615
    }
616
   ],
617
   "source": [
618
    "radiomics_path = 'radiomics.csv'\n",
619
    "clinical_path = 'clinical_data_cleaned.csv'\n",
620
    "label_path = 'y_train.csv'\n",
621
    "\n",
622
    "def load_data(features=None):\n",
623
    "    X_df, y_df = read_data.load_owkin_data(radiomics_path, clinical_path, label_path)\n",
624
    "    if features != None:\n",
625
    "        X_df = X_df[features]\n",
626
    "    X = X_df.to_numpy()\n",
627
    "    y = read_data.y_dataframe_to_rsf_input(y_df)\n",
628
    "    return X_df, y_df, X, y\n",
629
    "\n",
630
    "X_df, y_df, X, y = load_data(features)\n",
631
    "feature_name = list(X_df.columns.values)\n",
632
    "X_df"
633
   ]
634
  },
635
  {
636
   "cell_type": "markdown",
637
   "metadata": {
638
    "id": "iCQyaFW1Zn-B",
639
    "colab_type": "text"
640
   },
641
   "source": [
642
    "## Selection via permutation importance\n",
643
    "See https://eli5.readthedocs.io/en/latest/blackbox/permutation_importance.html"
644
   ]
645
  },
646
  {
647
   "cell_type": "code",
648
   "execution_count": 0,
649
   "metadata": {
650
    "id": "E7sOnhFNirxk",
651
    "colab_type": "code",
652
    "colab": {}
653
   },
654
   "outputs": [],
655
   "source": [
656
    "import eli5\n",
657
    "from eli5.sklearn import PermutationImportance\n",
658
    "from sklearn.feature_selection import SelectFromModel\n",
659
    "from sksurv.ensemble import RandomSurvivalForest\n",
660
    "from sklearn.model_selection import RandomizedSearchCV"
661
   ]
662
  },
663
  {
664
   "cell_type": "markdown",
665
   "metadata": {
666
    "id": "27we-i40p8ag",
667
    "colab_type": "text"
668
   },
669
   "source": [
670
    "Random search for parameters of the random forest, with all features."
671
   ]
672
  },
673
  {
674
   "cell_type": "code",
675
   "execution_count": 0,
676
   "metadata": {
677
    "id": "zMZKrq3T3lYP",
678
    "colab_type": "code",
679
    "colab": {}
680
   },
681
   "outputs": [],
682
   "source": [
683
    "tuned_params = {\"n_estimators\": [10, 50, 100, 200, 500],\n",
684
    "                \"min_samples_split\": [2, 5, 10, 20, 40],\n",
685
    "                \"min_samples_leaf\": [1, 2, 4, 8, 16]\n",
686
    "                }"
687
   ]
688
  },
689
  {
690
   "cell_type": "code",
691
   "execution_count": 0,
692
   "metadata": {
693
    "id": "VgdhrodkqAyf",
694
    "colab_type": "code",
695
    "outputId": "d582b5a0-18a1-4001-fcd6-96ef790d3fc3",
696
    "colab": {
697
     "base_uri": "https://localhost:8080/",
698
     "height": 513.0
699
    }
700
   },
701
   "outputs": [
702
    {
703
     "name": "stdout",
704
     "output_type": "stream",
705
     "text": [
706
      "Fitting 5 folds for each of 50 candidates, totalling 250 fits\n"
707
     ]
708
    },
709
    {
710
     "name": "stderr",
711
     "output_type": "stream",
712
     "text": [
713
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
714
      "[Parallel(n_jobs=-1)]: Done  37 tasks      | elapsed:  1.5min\n",
715
      "/usr/local/lib/python3.6/dist-packages/joblib/externals/loky/process_executor.py:706: UserWarning: A worker stopped while some jobs were given to the executor. This can be caused by a too short worker timeout or by a memory leak.\n",
716
      "  \"timeout or by a memory leak.\", UserWarning\n",
717
      "[Parallel(n_jobs=-1)]: Done 158 tasks      | elapsed:  5.0min\n",
718
      "[Parallel(n_jobs=-1)]: Done 250 out of 250 | elapsed:  7.8min finished\n",
719
      "/usr/local/lib/python3.6/dist-packages/sklearn/model_selection/_search.py:814: DeprecationWarning: The default of the `iid` parameter will change from True to False in version 0.22 and will be removed in 0.24. This will change numeric results when test-set sizes are unequal.\n",
720
      "  DeprecationWarning)\n"
721
     ]
722
    },
723
    {
724
     "data": {
725
      "text/plain": [
726
       "RandomizedSearchCV(cv=5, error_score='raise-deprecating',\n",
727
       "                   estimator=RandomSurvivalForest(bootstrap=True,\n",
728
       "                                                  max_depth=None,\n",
729
       "                                                  max_features='auto',\n",
730
       "                                                  max_leaf_nodes=None,\n",
731
       "                                                  min_samples_leaf=3,\n",
732
       "                                                  min_samples_split=6,\n",
733
       "                                                  min_weight_fraction_leaf=0.0,\n",
734
       "                                                  n_estimators=100, n_jobs=None,\n",
735
       "                                                  oob_score=False,\n",
736
       "                                                  random_state=None, verbose=0,\n",
737
       "                                                  warm_start=False),\n",
738
       "                   iid='warn', n_iter=50, n_jobs=-1,\n",
739
       "                   param_distributions={'min_samples_leaf': [1, 2, 4, 8, 16],\n",
740
       "                                        'min_samples_split': [2, 5, 10, 20, 40],\n",
741
       "                                        'n_estimators': [10, 50, 100, 200,\n",
742
       "                                                         500]},\n",
743
       "                   pre_dispatch='2*n_jobs', random_state=None, refit=True,\n",
744
       "                   return_train_score=False, scoring=None, verbose=2)"
745
      ]
746
     },
747
     "execution_count": 80,
748
     "metadata": {
749
      "tags": []
750
     },
751
     "output_type": "execute_result"
752
    }
753
   ],
754
   "source": [
755
    "search = RandomizedSearchCV(RandomSurvivalForest(), tuned_params, cv=5, verbose=2, n_jobs=-1, n_iter=50)\n",
756
    "search.fit(X, y)"
757
   ]
758
  },
759
  {
760
   "cell_type": "code",
761
   "execution_count": 0,
762
   "metadata": {
763
    "id": "XauGW-tBuEEV",
764
    "colab_type": "code",
765
    "outputId": "35bb5481-1447-4e37-8257-eedccd02d36c",
766
    "colab": {
767
     "base_uri": "https://localhost:8080/",
768
     "height": 34.0
769
    }
770
   },
771
   "outputs": [
772
    {
773
     "data": {
774
      "text/plain": [
775
       "{'min_samples_leaf': 1, 'min_samples_split': 10, 'n_estimators': 10}"
776
      ]
777
     },
778
     "execution_count": 81,
779
     "metadata": {
780
      "tags": []
781
     },
782
     "output_type": "execute_result"
783
    }
784
   ],
785
   "source": [
786
    "import json\n",
787
    "with open('best_params.json', 'w') as fp:\n",
788
    "    json.dump(search.best_params_, fp)\n",
789
    "\n",
790
    "search.best_params_"
791
   ]
792
  },
793
  {
794
   "cell_type": "code",
795
   "execution_count": 0,
796
   "metadata": {
797
    "id": "YuROoGezuHiu",
798
    "colab_type": "code",
799
    "outputId": "ea3237a5-8dd7-4580-cece-78fea3c0ddc9",
800
    "colab": {
801
     "base_uri": "https://localhost:8080/",
802
     "height": 34.0
803
    }
804
   },
805
   "outputs": [
806
    {
807
     "data": {
808
      "text/plain": [
809
       "0.681492222449054"
810
      ]
811
     },
812
     "execution_count": 82,
813
     "metadata": {
814
      "tags": []
815
     },
816
     "output_type": "execute_result"
817
    }
818
   ],
819
   "source": [
820
    "search.best_score_"
821
   ]
822
  },
823
  {
824
   "cell_type": "markdown",
825
   "metadata": {
826
    "id": "hZMB39pax0Ch",
827
    "colab_type": "text"
828
   },
829
   "source": [
830
    "Creating best model from tuning."
831
   ]
832
  },
833
  {
834
   "cell_type": "code",
835
   "execution_count": 0,
836
   "metadata": {
837
    "id": "FPSs3b6GxzmD",
838
    "colab_type": "code",
839
    "outputId": "e6916639-6c74-46b7-89b9-88b5ed3a2c74",
840
    "colab": {
841
     "base_uri": "https://localhost:8080/",
842
     "height": 68.0
843
    }
844
   },
845
   "outputs": [
846
    {
847
     "data": {
848
      "text/plain": [
849
       "{'fit_time': array([0.22310948, 0.20801306, 0.21998215, 0.22359776, 0.21602607]),\n",
850
       " 'score_time': array([0.10423088, 0.10348821, 0.10338593, 0.10330081, 0.11683774]),\n",
851
       " 'test_score': array([0.71041667, 0.65082109, 0.58180367, 0.6196319 , 0.67475728])}"
852
      ]
853
     },
854
     "execution_count": 83,
855
     "metadata": {
856
      "tags": []
857
     },
858
     "output_type": "execute_result"
859
    }
860
   ],
861
   "source": [
862
    "params = search.best_params_\n",
863
    "rsf = RandomSurvivalForest(n_estimators = params['n_estimators'],\n",
864
    "                           min_samples_split = params['min_samples_split'],\n",
865
    "                           min_samples_leaf = params['min_samples_leaf'],\n",
866
    "                           max_features=\"sqrt\",\n",
867
    "                           n_jobs=-1\n",
868
    "                           )\n",
869
    "cross_validate(rsf, X, y, cv=5)"
870
   ]
871
  },
872
  {
873
   "cell_type": "markdown",
874
   "metadata": {
875
    "id": "omkSLicTjVLX",
876
    "colab_type": "text"
877
   },
878
   "source": [
879
    "Feature importances are computed for a sequence of estimators trained and evaluated on train/test splits according to ``cv``, and then averaged."
880
   ]
881
  },
882
  {
883
   "cell_type": "code",
884
   "execution_count": 0,
885
   "metadata": {
886
    "id": "uMMDbQVzioLu",
887
    "colab_type": "code",
888
    "colab": {}
889
   },
890
   "outputs": [],
891
   "source": [
892
    "perm = PermutationImportance(rsf, cv=5)\n",
893
    "perm.fit(X, y)\n",
894
    "sel = SelectFromModel(perm, prefit=True)"
895
   ]
896
  },
897
  {
898
   "cell_type": "code",
899
   "execution_count": 0,
900
   "metadata": {
901
    "id": "rzgEjt0ql5sU",
902
    "colab_type": "code",
903
    "outputId": "483500b0-7623-4f34-a237-35a6b2f5b39c",
904
    "colab": {
905
     "base_uri": "https://localhost:8080/",
906
     "height": 238.0
907
    }
908
   },
909
   "outputs": [
910
    {
911
     "data": {
912
      "text/plain": [
913
       "['original_shape_SurfaceVolumeRatio',\n",
914
       " 'original_firstorder_Minimum',\n",
915
       " 'original_glcm_ClusterProminence',\n",
916
       " 'original_glcm_JointEnergy',\n",
917
       " 'original_glcm_Idm',\n",
918
       " 'original_glcm_Imc1',\n",
919
       " 'original_glrlm_ShortRunEmphasis',\n",
920
       " 'original_glrlm_LongRunEmphasis',\n",
921
       " 'original_glrlm_GrayLevelNonUniformity',\n",
922
       " 'original_glrlm_ShortRunLowGrayLevelEmphasis',\n",
923
       " 'original_glrlm_LongRunHighGrayLevelEmphasis',\n",
924
       " 'Nstage',\n",
925
       " 'SourceDataset_l2']"
926
      ]
927
     },
928
     "execution_count": 85,
929
     "metadata": {
930
      "tags": []
931
     },
932
     "output_type": "execute_result"
933
    }
934
   ],
935
   "source": [
936
    "X_best = sel.transform(X)\n",
937
    "id_features = sel.get_support(indices=True)\n",
938
    "best_features = [feature_name[id] for id in id_features]\n",
939
    "best_features"
940
   ]
941
  },
942
  {
943
   "cell_type": "markdown",
944
   "metadata": {
945
    "id": "CFmH3cz8SUXT",
946
    "colab_type": "text"
947
   },
948
   "source": [
949
    "Problem of the feature selection by permutation importance: the errors (std) on the feature importance weights are too high, and the computed feature importance weights don't make sense."
950
   ]
951
  },
952
  {
953
   "cell_type": "code",
954
   "execution_count": 0,
955
   "metadata": {
956
    "id": "M0y9U5vWJgoE",
957
    "colab_type": "code",
958
    "outputId": "27dffd13-5dfd-495c-fa9e-0d2905c74947",
959
    "colab": {
960
     "base_uri": "https://localhost:8080/",
961
     "height": 238.0
962
    }
963
   },
964
   "outputs": [
965
    {
966
     "name": "stdout",
967
     "output_type": "stream",
968
     "text": [
969
      "original_shape_SurfaceVolumeRatio: 0.020968142322508116 +/- 0.01987413782583521\n",
970
      "original_firstorder_Minimum: 0.004782756396357914 +/- 0.012517019893694161\n",
971
      "original_glcm_ClusterProminence: 0.0028753696565334552 +/- 0.014174580908375901\n",
972
      "original_glcm_JointEnergy: 0.00710193285525678 +/- 0.009908880621070757\n",
973
      "original_glcm_Idm: 0.005363079617221596 +/- 0.01372982140990025\n",
974
      "original_glcm_Imc1: 0.009299617695135192 +/- 0.024793343027533932\n",
975
      "original_glrlm_ShortRunEmphasis: 0.013550379256367803 +/- 0.02382858097433002\n",
976
      "original_glrlm_LongRunEmphasis: 0.020862170600605516 +/- 0.012444436857730468\n",
977
      "original_glrlm_GrayLevelNonUniformity: 0.016629158199686443 +/- 0.020176409780966232\n",
978
      "original_glrlm_ShortRunLowGrayLevelEmphasis: 0.0037956133982889415 +/- 0.01722860897105692\n",
979
      "original_glrlm_LongRunHighGrayLevelEmphasis: 0.00821198522155985 +/- 0.01777512119568821\n",
980
      "Nstage: 0.003868734861434109 +/- 0.011216352542439795\n",
981
      "SourceDataset_l2: 0.00734324786519267 +/- 0.010657670355138135\n"
982
     ]
983
    }
984
   ],
985
   "source": [
986
    "for id in id_features:\n",
987
    "    print(f'{feature_name[id]}: {perm.feature_importances_[id]} +/- {perm.feature_importances_std_[id]}')"
988
   ]
989
  },
990
  {
991
   "cell_type": "code",
992
   "execution_count": 0,
993
   "metadata": {
994
    "id": "DG1PCy-I0p5a",
995
    "colab_type": "code",
996
    "outputId": "cbf3893b-4b6b-4776-c070-1e4aed03a297",
997
    "colab": {
998
     "base_uri": "https://localhost:8080/",
999
     "height": 238.0
1000
    }
1001
   },
1002
   "outputs": [
1003
    {
1004
     "data": {
1005
      "text/plain": [
1006
       "['original_shape_Compactness2',\n",
1007
       " 'original_glcm_DifferenceAverage',\n",
1008
       " 'original_glcm_Idm',\n",
1009
       " 'original_glcm_Contrast',\n",
1010
       " 'original_glcm_DifferenceEntropy',\n",
1011
       " 'original_firstorder_MeanAbsoluteDeviation',\n",
1012
       " 'original_firstorder_Kurtosis',\n",
1013
       " 'original_shape_SphericalDisproportion',\n",
1014
       " 'original_shape_SurfaceVolumeRatio',\n",
1015
       " 'original_glcm_Id',\n",
1016
       " 'original_firstorder_Minimum',\n",
1017
       " 'original_glcm_JointEnergy',\n",
1018
       " 'original_glcm_ClusterProminence']"
1019
      ]
1020
     },
1021
     "execution_count": 86,
1022
     "metadata": {
1023
      "tags": []
1024
     },
1025
     "output_type": "execute_result"
1026
    }
1027
   ],
1028
   "source": [
1029
    "best_indices = np.flip(np.argsort(perm.feature_importances_))[:len(best_features)]\n",
1030
    "[feature_name[i] for i in np.argsort(best_indices)] "
1031
   ]
1032
  },
1033
  {
1034
   "cell_type": "markdown",
1035
   "metadata": {
1036
    "id": "j3CPwSYgnVFL",
1037
    "colab_type": "text"
1038
   },
1039
   "source": [
1040
    "Cross validation."
1041
   ]
1042
  },
1043
  {
1044
   "cell_type": "code",
1045
   "execution_count": 0,
1046
   "metadata": {
1047
    "id": "ZZy_tXRinL4t",
1048
    "colab_type": "code",
1049
    "outputId": "0e9b7a17-c8ad-4812-ba70-4294fa869d5c",
1050
    "colab": {
1051
     "base_uri": "https://localhost:8080/",
1052
     "height": 68.0
1053
    }
1054
   },
1055
   "outputs": [
1056
    {
1057
     "data": {
1058
      "text/plain": [
1059
       "{'fit_time': array([0.12452412, 0.13066578, 0.12156296, 0.12446737, 0.1260767 ]),\n",
1060
       " 'score_time': array([0.10334563, 0.10343194, 0.10331035, 0.10328126, 0.1031146 ]),\n",
1061
       " 'test_score': array([0.69333333, 0.66378565, 0.57222666, 0.67382413, 0.65695793])}"
1062
      ]
1063
     },
1064
     "execution_count": 87,
1065
     "metadata": {
1066
      "tags": []
1067
     },
1068
     "output_type": "execute_result"
1069
    }
1070
   ],
1071
   "source": [
1072
    "from sklearn.model_selection import cross_validate\n",
1073
    "X_best = sel.transform(X)\n",
1074
    "cross_validate(rsf, X_best, y, cv=5)"
1075
   ]
1076
  },
1077
  {
1078
   "cell_type": "markdown",
1079
   "metadata": {
1080
    "id": "aExvM8zMKD4W",
1081
    "colab_type": "text"
1082
   },
1083
   "source": [
1084
    "## Growing strategy for feature selection"
1085
   ]
1086
  },
1087
  {
1088
   "cell_type": "markdown",
1089
   "metadata": {
1090
    "id": "S-n_aC2jKpor",
1091
    "colab_type": "text"
1092
   },
1093
   "source": [
1094
    "Choose a set of features, fine tune, cross validate."
1095
   ]
1096
  },
1097
  {
1098
   "cell_type": "code",
1099
   "execution_count": 0,
1100
   "metadata": {
1101
    "id": "IPKZA7f7LDt5",
1102
    "colab_type": "code",
1103
    "colab": {}
1104
   },
1105
   "outputs": [],
1106
   "source": [
1107
    "class RSFModel():\n",
1108
    "\n",
1109
    "    def __init__(self, features):\n",
1110
    "        self.X_df, self.y_df, self.X, self.y = load_data(features)\n",
1111
    "\n",
1112
    "    def fine_tune(self, hyperparams):\n",
1113
    "        search = RandomizedSearchCV(RandomSurvivalForest(), tuned_params, cv=5, verbose=1, n_jobs=-1, n_iter=10)\n",
1114
    "        search.fit(self.X, self.y)\n",
1115
    "        return search.best_params_\n",
1116
    "\n",
1117
    "    def cross_validate(self, params):\n",
1118
    "        params = search.best_params_\n",
1119
    "        rsf = RandomSurvivalForest(n_estimators = params['n_estimators'],\n",
1120
    "                                min_samples_split = params['min_samples_split'],\n",
1121
    "                                min_samples_leaf = params['min_samples_leaf'],\n",
1122
    "                                max_features=\"sqrt\",\n",
1123
    "                                n_jobs=-1\n",
1124
    "                                )\n",
1125
    "        return np.mean(cross_validate(rsf, X, y, cv=5)['test_score'])"
1126
   ]
1127
  },
1128
  {
1129
   "cell_type": "code",
1130
   "execution_count": 0,
1131
   "metadata": {
1132
    "id": "1J3zW3ygMIq_",
1133
    "colab_type": "code",
1134
    "colab": {}
1135
   },
1136
   "outputs": [],
1137
   "source": [
1138
    "def best_growing_features(selected_features, remaining_features, hyperparams):\n",
1139
    "    score = []\n",
1140
    "    for feature in remaining_features:\n",
1141
    "        model_features = selected_features + [feature]\n",
1142
    "        print(f'Model features: {model_features}')\n",
1143
    "        model = RSFModel(model_features)\n",
1144
    "        params = model.fine_tune(hyperparams)\n",
1145
    "        model_score = model.cross_validate(params)\n",
1146
    "        print(f'CIndex: {model_score}')\n",
1147
    "        score.append(model_score)\n",
1148
    "    max_id = np.argmax(score)\n",
1149
    "    return remaining_features[max_id], score[max_id]"
1150
   ]
1151
  },
1152
  {
1153
   "cell_type": "markdown",
1154
   "metadata": {
1155
    "id": "UbKiQqOjRgZL",
1156
    "colab_type": "text"
1157
   },
1158
   "source": [
1159
    "Feature growth: find a set of selected features. The list of selected features are given in the order of the growth. After each growth, we compute the CIndex of the model with the selected features by cross validation."
1160
   ]
1161
  },
1162
  {
1163
   "cell_type": "code",
1164
   "execution_count": 0,
1165
   "metadata": {
1166
    "id": "wszzRO2qPP4u",
1167
    "colab_type": "code",
1168
    "outputId": "3472146c-256d-4889-b0c7-fa74ec0a234d",
1169
    "colab": {
1170
     "base_uri": "https://localhost:8080/",
1171
     "height": 1000.0
1172
    }
1173
   },
1174
   "outputs": [
1175
    {
1176
     "name": "stdout",
1177
     "output_type": "stream",
1178
     "text": [
1179
      "Growing 1-th feature...\n",
1180
      "\n",
1181
      "Model features: ['original_shape_Compactness2']\n",
1182
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
1183
     ]
1184
    },
1185
    {
1186
     "name": "stderr",
1187
     "output_type": "stream",
1188
     "text": [
1189
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
1190
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   30.9s\n",
1191
      "/usr/local/lib/python3.6/dist-packages/joblib/externals/loky/process_executor.py:706: UserWarning: A worker stopped while some jobs were given to the executor. This can be caused by a too short worker timeout or by a memory leak.\n",
1192
      "  \"timeout or by a memory leak.\", UserWarning\n",
1193
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   43.7s finished\n"
1194
     ]
1195
    },
1196
    {
1197
     "name": "stdout",
1198
     "output_type": "stream",
1199
     "text": [
1200
      "CIndex: 0.668255125000726\n",
1201
      "Model features: ['original_shape_SphericalDisproportion']\n",
1202
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
1203
     ]
1204
    },
1205
    {
1206
     "name": "stderr",
1207
     "output_type": "stream",
1208
     "text": [
1209
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
1210
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   30.3s\n",
1211
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   39.0s finished\n",
1212
      "/usr/local/lib/python3.6/dist-packages/sklearn/model_selection/_search.py:814: DeprecationWarning: The default of the `iid` parameter will change from True to False in version 0.22 and will be removed in 0.24. This will change numeric results when test-set sizes are unequal.\n",
1213
      "  DeprecationWarning)\n"
1214
     ]
1215
    },
1216
    {
1217
     "name": "stdout",
1218
     "output_type": "stream",
1219
     "text": [
1220
      "CIndex: 0.641458168606933\n",
1221
      "Model features: ['original_shape_SurfaceVolumeRatio']\n",
1222
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
1223
     ]
1224
    },
1225
    {
1226
     "name": "stderr",
1227
     "output_type": "stream",
1228
     "text": [
1229
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
1230
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   31.2s\n",
1231
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   36.3s finished\n"
1232
     ]
1233
    },
1234
    {
1235
     "name": "stdout",
1236
     "output_type": "stream",
1237
     "text": [
1238
      "CIndex: 0.6520622648319663\n",
1239
      "Model features: ['original_firstorder_Kurtosis']\n",
1240
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
1241
     ]
1242
    },
1243
    {
1244
     "name": "stderr",
1245
     "output_type": "stream",
1246
     "text": [
1247
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
1248
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   20.0s\n",
1249
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   20.6s finished\n"
1250
     ]
1251
    },
1252
    {
1253
     "name": "stdout",
1254
     "output_type": "stream",
1255
     "text": [
1256
      "CIndex: 0.6620346376053959\n",
1257
      "Model features: ['original_firstorder_MeanAbsoluteDeviation']\n",
1258
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
1259
     ]
1260
    },
1261
    {
1262
     "name": "stderr",
1263
     "output_type": "stream",
1264
     "text": [
1265
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
1266
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   18.8s\n",
1267
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   19.6s finished\n",
1268
      "/usr/local/lib/python3.6/dist-packages/sklearn/model_selection/_search.py:814: DeprecationWarning: The default of the `iid` parameter will change from True to False in version 0.22 and will be removed in 0.24. This will change numeric results when test-set sizes are unequal.\n",
1269
      "  DeprecationWarning)\n"
1270
     ]
1271
    },
1272
    {
1273
     "name": "stdout",
1274
     "output_type": "stream",
1275
     "text": [
1276
      "CIndex: 0.66053307075514\n",
1277
      "Model features: ['original_firstorder_Minimum']\n",
1278
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
1279
     ]
1280
    },
1281
    {
1282
     "name": "stderr",
1283
     "output_type": "stream",
1284
     "text": [
1285
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
1286
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   23.6s\n",
1287
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   25.6s finished\n",
1288
      "/usr/local/lib/python3.6/dist-packages/sklearn/model_selection/_search.py:814: DeprecationWarning: The default of the `iid` parameter will change from True to False in version 0.22 and will be removed in 0.24. This will change numeric results when test-set sizes are unequal.\n",
1289
      "  DeprecationWarning)\n"
1290
     ]
1291
    },
1292
    {
1293
     "name": "stdout",
1294
     "output_type": "stream",
1295
     "text": [
1296
      "CIndex: 0.6373208187269601\n",
1297
      "Model features: ['original_glcm_ClusterProminence']\n",
1298
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
1299
     ]
1300
    },
1301
    {
1302
     "name": "stderr",
1303
     "output_type": "stream",
1304
     "text": [
1305
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
1306
      "/usr/local/lib/python3.6/dist-packages/joblib/externals/loky/process_executor.py:706: UserWarning: A worker stopped while some jobs were given to the executor. This can be caused by a too short worker timeout or by a memory leak.\n",
1307
      "  \"timeout or by a memory leak.\", UserWarning\n",
1308
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   40.8s\n",
1309
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   42.7s finished\n",
1310
      "/usr/local/lib/python3.6/dist-packages/sklearn/model_selection/_search.py:814: DeprecationWarning: The default of the `iid` parameter will change from True to False in version 0.22 and will be removed in 0.24. This will change numeric results when test-set sizes are unequal.\n",
1311
      "  DeprecationWarning)\n"
1312
     ]
1313
    },
1314
    {
1315
     "name": "stdout",
1316
     "output_type": "stream",
1317
     "text": [
1318
      "CIndex: 0.6464345869017427\n",
1319
      "Model features: ['original_glcm_Contrast']\n",
1320
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
1321
     ]
1322
    },
1323
    {
1324
     "name": "stderr",
1325
     "output_type": "stream",
1326
     "text": [
1327
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
1328
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   19.9s finished\n"
1329
     ]
1330
    },
1331
    {
1332
     "name": "stdout",
1333
     "output_type": "stream",
1334
     "text": [
1335
      "CIndex: 0.6486722031949121\n",
1336
      "Model features: ['original_glcm_DifferenceEntropy']\n",
1337
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
1338
     ]
1339
    },
1340
    {
1341
     "name": "stderr",
1342
     "output_type": "stream",
1343
     "text": [
1344
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
1345
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   20.2s finished\n",
1346
      "/usr/local/lib/python3.6/dist-packages/sklearn/model_selection/_search.py:814: DeprecationWarning: The default of the `iid` parameter will change from True to False in version 0.22 and will be removed in 0.24. This will change numeric results when test-set sizes are unequal.\n",
1347
      "  DeprecationWarning)\n"
1348
     ]
1349
    },
1350
    {
1351
     "name": "stdout",
1352
     "output_type": "stream",
1353
     "text": [
1354
      "CIndex: 0.655411689710727\n",
1355
      "Model features: ['original_glcm_DifferenceAverage']\n",
1356
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
1357
     ]
1358
    },
1359
    {
1360
     "name": "stderr",
1361
     "output_type": "stream",
1362
     "text": [
1363
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
1364
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   25.4s finished\n",
1365
      "/usr/local/lib/python3.6/dist-packages/sklearn/model_selection/_search.py:814: DeprecationWarning: The default of the `iid` parameter will change from True to False in version 0.22 and will be removed in 0.24. This will change numeric results when test-set sizes are unequal.\n",
1366
      "  DeprecationWarning)\n"
1367
     ]
1368
    },
1369
    {
1370
     "name": "stdout",
1371
     "output_type": "stream",
1372
     "text": [
1373
      "CIndex: 0.6535454318402498\n",
1374
      "Model features: ['original_glcm_JointEnergy']\n",
1375
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
1376
     ]
1377
    },
1378
    {
1379
     "name": "stderr",
1380
     "output_type": "stream",
1381
     "text": [
1382
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
1383
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   19.2s\n",
1384
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   22.3s finished\n",
1385
      "/usr/local/lib/python3.6/dist-packages/sklearn/model_selection/_search.py:814: DeprecationWarning: The default of the `iid` parameter will change from True to False in version 0.22 and will be removed in 0.24. This will change numeric results when test-set sizes are unequal.\n",
1386
      "  DeprecationWarning)\n"
1387
     ]
1388
    },
1389
    {
1390
     "name": "stdout",
1391
     "output_type": "stream",
1392
     "text": [
1393
      "CIndex: 0.6412856719019797\n",
1394
      "Model features: ['original_glcm_Id']\n",
1395
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
1396
     ]
1397
    },
1398
    {
1399
     "name": "stderr",
1400
     "output_type": "stream",
1401
     "text": [
1402
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
1403
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   28.1s finished\n",
1404
      "/usr/local/lib/python3.6/dist-packages/sklearn/model_selection/_search.py:814: DeprecationWarning: The default of the `iid` parameter will change from True to False in version 0.22 and will be removed in 0.24. This will change numeric results when test-set sizes are unequal.\n",
1405
      "  DeprecationWarning)\n"
1406
     ]
1407
    },
1408
    {
1409
     "name": "stdout",
1410
     "output_type": "stream",
1411
     "text": [
1412
      "CIndex: 0.6457482150712742\n",
1413
      "Model features: ['original_glcm_Idm']\n",
1414
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
1415
     ]
1416
    },
1417
    {
1418
     "name": "stderr",
1419
     "output_type": "stream",
1420
     "text": [
1421
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
1422
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   19.1s finished\n"
1423
     ]
1424
    },
1425
    {
1426
     "name": "stdout",
1427
     "output_type": "stream",
1428
     "text": [
1429
      "CIndex: 0.656469270880619\n",
1430
      "Model features: ['original_glcm_Imc1']\n",
1431
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
1432
     ]
1433
    },
1434
    {
1435
     "name": "stderr",
1436
     "output_type": "stream",
1437
     "text": [
1438
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
1439
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   18.6s\n",
1440
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   20.0s finished\n"
1441
     ]
1442
    },
1443
    {
1444
     "name": "stdout",
1445
     "output_type": "stream",
1446
     "text": [
1447
      "CIndex: 0.663713695934673\n",
1448
      "Model features: ['original_glcm_Imc2']\n",
1449
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
1450
     ]
1451
    },
1452
    {
1453
     "name": "stderr",
1454
     "output_type": "stream",
1455
     "text": [
1456
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
1457
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   38.6s\n",
1458
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   38.8s finished\n",
1459
      "/usr/local/lib/python3.6/dist-packages/sklearn/model_selection/_search.py:814: DeprecationWarning: The default of the `iid` parameter will change from True to False in version 0.22 and will be removed in 0.24. This will change numeric results when test-set sizes are unequal.\n",
1460
      "  DeprecationWarning)\n"
1461
     ]
1462
    },
1463
    {
1464
     "name": "stdout",
1465
     "output_type": "stream",
1466
     "text": [
1467
      "CIndex: 0.6432562299852479\n",
1468
      "Model features: ['original_glcm_Idmn']\n",
1469
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
1470
     ]
1471
    },
1472
    {
1473
     "name": "stderr",
1474
     "output_type": "stream",
1475
     "text": [
1476
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
1477
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   33.5s\n",
1478
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   37.8s finished\n"
1479
     ]
1480
    },
1481
    {
1482
     "name": "stdout",
1483
     "output_type": "stream",
1484
     "text": [
1485
      "CIndex: 0.645192027157947\n",
1486
      "Model features: ['original_glcm_Idn']\n",
1487
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
1488
     ]
1489
    },
1490
    {
1491
     "name": "stderr",
1492
     "output_type": "stream",
1493
     "text": [
1494
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
1495
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   27.8s\n",
1496
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   29.3s finished\n"
1497
     ]
1498
    },
1499
    {
1500
     "name": "stdout",
1501
     "output_type": "stream",
1502
     "text": [
1503
      "CIndex: 0.630047153023764\n",
1504
      "Model features: ['original_glrlm_ShortRunEmphasis']\n",
1505
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
1506
     ]
1507
    },
1508
    {
1509
     "name": "stderr",
1510
     "output_type": "stream",
1511
     "text": [
1512
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
1513
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   14.3s\n",
1514
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   15.9s finished\n"
1515
     ]
1516
    },
1517
    {
1518
     "name": "stdout",
1519
     "output_type": "stream",
1520
     "text": [
1521
      "CIndex: 0.6439044215738351\n",
1522
      "Model features: ['original_glrlm_LongRunEmphasis']\n",
1523
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
1524
     ]
1525
    },
1526
    {
1527
     "name": "stderr",
1528
     "output_type": "stream",
1529
     "text": [
1530
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
1531
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   29.7s\n",
1532
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   30.2s finished\n",
1533
      "/usr/local/lib/python3.6/dist-packages/sklearn/model_selection/_search.py:814: DeprecationWarning: The default of the `iid` parameter will change from True to False in version 0.22 and will be removed in 0.24. This will change numeric results when test-set sizes are unequal.\n",
1534
      "  DeprecationWarning)\n"
1535
     ]
1536
    },
1537
    {
1538
     "name": "stdout",
1539
     "output_type": "stream",
1540
     "text": [
1541
      "CIndex: 0.6644781590644955\n",
1542
      "Model features: ['original_glrlm_GrayLevelNonUniformity']\n",
1543
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
1544
     ]
1545
    },
1546
    {
1547
     "name": "stderr",
1548
     "output_type": "stream",
1549
     "text": [
1550
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
1551
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   13.7s\n",
1552
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   14.5s finished\n"
1553
     ]
1554
    },
1555
    {
1556
     "name": "stdout",
1557
     "output_type": "stream",
1558
     "text": [
1559
      "CIndex: 0.6432880618293775\n",
1560
      "Model features: ['original_glrlm_RunPercentage']\n",
1561
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
1562
     ]
1563
    },
1564
    {
1565
     "name": "stderr",
1566
     "output_type": "stream",
1567
     "text": [
1568
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
1569
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   27.4s\n",
1570
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   28.0s finished\n",
1571
      "/usr/local/lib/python3.6/dist-packages/sklearn/model_selection/_search.py:814: DeprecationWarning: The default of the `iid` parameter will change from True to False in version 0.22 and will be removed in 0.24. This will change numeric results when test-set sizes are unequal.\n",
1572
      "  DeprecationWarning)\n"
1573
     ]
1574
    },
1575
    {
1576
     "name": "stdout",
1577
     "output_type": "stream",
1578
     "text": [
1579
      "CIndex: 0.6377557876234958\n",
1580
      "Model features: ['original_glrlm_ShortRunLowGrayLevelEmphasis']\n",
1581
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
1582
     ]
1583
    },
1584
    {
1585
     "name": "stderr",
1586
     "output_type": "stream",
1587
     "text": [
1588
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
1589
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   45.8s\n",
1590
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   47.8s finished\n",
1591
      "/usr/local/lib/python3.6/dist-packages/sklearn/model_selection/_search.py:814: DeprecationWarning: The default of the `iid` parameter will change from True to False in version 0.22 and will be removed in 0.24. This will change numeric results when test-set sizes are unequal.\n",
1592
      "  DeprecationWarning)\n"
1593
     ]
1594
    },
1595
    {
1596
     "name": "stdout",
1597
     "output_type": "stream",
1598
     "text": [
1599
      "CIndex: 0.6531771453113256\n",
1600
      "Model features: ['original_glrlm_LongRunLowGrayLevelEmphasis']\n",
1601
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
1602
     ]
1603
    },
1604
    {
1605
     "name": "stderr",
1606
     "output_type": "stream",
1607
     "text": [
1608
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
1609
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   44.8s\n",
1610
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   45.5s finished\n",
1611
      "/usr/local/lib/python3.6/dist-packages/sklearn/model_selection/_search.py:814: DeprecationWarning: The default of the `iid` parameter will change from True to False in version 0.22 and will be removed in 0.24. This will change numeric results when test-set sizes are unequal.\n",
1612
      "  DeprecationWarning)\n"
1613
     ]
1614
    },
1615
    {
1616
     "name": "stdout",
1617
     "output_type": "stream",
1618
     "text": [
1619
      "CIndex: 0.630843879263647\n",
1620
      "Model features: ['original_glrlm_LongRunHighGrayLevelEmphasis']\n",
1621
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
1622
     ]
1623
    },
1624
    {
1625
     "name": "stderr",
1626
     "output_type": "stream",
1627
     "text": [
1628
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
1629
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   24.8s\n",
1630
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   27.5s finished\n"
1631
     ]
1632
    },
1633
    {
1634
     "name": "stdout",
1635
     "output_type": "stream",
1636
     "text": [
1637
      "CIndex: 0.6531062616845703\n",
1638
      "Model features: ['Nstage']\n",
1639
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
1640
     ]
1641
    },
1642
    {
1643
     "name": "stderr",
1644
     "output_type": "stream",
1645
     "text": [
1646
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
1647
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   11.3s\n",
1648
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   13.0s finished\n",
1649
      "/usr/local/lib/python3.6/dist-packages/sklearn/model_selection/_search.py:814: DeprecationWarning: The default of the `iid` parameter will change from True to False in version 0.22 and will be removed in 0.24. This will change numeric results when test-set sizes are unequal.\n",
1650
      "  DeprecationWarning)\n"
1651
     ]
1652
    },
1653
    {
1654
     "name": "stdout",
1655
     "output_type": "stream",
1656
     "text": [
1657
      "CIndex: 0.6610080674472011\n",
1658
      "Model features: ['age']\n",
1659
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
1660
     ]
1661
    },
1662
    {
1663
     "name": "stderr",
1664
     "output_type": "stream",
1665
     "text": [
1666
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
1667
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   38.5s finished\n"
1668
     ]
1669
    },
1670
    {
1671
     "name": "stdout",
1672
     "output_type": "stream",
1673
     "text": [
1674
      "CIndex: 0.6413726941280498\n",
1675
      "Model features: ['SourceDataset_l1']\n",
1676
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
1677
     ]
1678
    },
1679
    {
1680
     "name": "stderr",
1681
     "output_type": "stream",
1682
     "text": [
1683
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
1684
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:    6.5s finished\n",
1685
      "/usr/local/lib/python3.6/dist-packages/sklearn/model_selection/_search.py:814: DeprecationWarning: The default of the `iid` parameter will change from True to False in version 0.22 and will be removed in 0.24. This will change numeric results when test-set sizes are unequal.\n",
1686
      "  DeprecationWarning)\n"
1687
     ]
1688
    },
1689
    {
1690
     "name": "stdout",
1691
     "output_type": "stream",
1692
     "text": [
1693
      "CIndex: 0.6581097454458957\n",
1694
      "Model features: ['SourceDataset_l2']\n",
1695
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
1696
     ]
1697
    },
1698
    {
1699
     "name": "stderr",
1700
     "output_type": "stream",
1701
     "text": [
1702
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
1703
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:    8.9s finished\n",
1704
      "/usr/local/lib/python3.6/dist-packages/sklearn/model_selection/_search.py:814: DeprecationWarning: The default of the `iid` parameter will change from True to False in version 0.22 and will be removed in 0.24. This will change numeric results when test-set sizes are unequal.\n",
1705
      "  DeprecationWarning)\n"
1706
     ]
1707
    },
1708
    {
1709
     "name": "stdout",
1710
     "output_type": "stream",
1711
     "text": [
1712
      "CIndex: 0.6432952642003361\n",
1713
      "Selected new growing feature: original_shape_Compactness2\n",
1714
      "\n",
1715
      "Growing 2-th feature...\n",
1716
      "\n",
1717
      "Model features: ['original_shape_Compactness2', 'original_shape_SphericalDisproportion']\n",
1718
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
1719
     ]
1720
    },
1721
    {
1722
     "name": "stderr",
1723
     "output_type": "stream",
1724
     "text": [
1725
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
1726
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   32.7s\n",
1727
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   32.9s finished\n",
1728
      "/usr/local/lib/python3.6/dist-packages/sklearn/model_selection/_search.py:814: DeprecationWarning: The default of the `iid` parameter will change from True to False in version 0.22 and will be removed in 0.24. This will change numeric results when test-set sizes are unequal.\n",
1729
      "  DeprecationWarning)\n"
1730
     ]
1731
    },
1732
    {
1733
     "name": "stdout",
1734
     "output_type": "stream",
1735
     "text": [
1736
      "CIndex: 0.6651242647073013\n",
1737
      "Model features: ['original_shape_Compactness2', 'original_shape_SurfaceVolumeRatio']\n",
1738
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
1739
     ]
1740
    },
1741
    {
1742
     "name": "stderr",
1743
     "output_type": "stream",
1744
     "text": [
1745
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
1746
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   20.0s\n",
1747
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   20.8s finished\n"
1748
     ]
1749
    },
1750
    {
1751
     "name": "stdout",
1752
     "output_type": "stream",
1753
     "text": [
1754
      "CIndex: 0.6456137113371129\n",
1755
      "Model features: ['original_shape_Compactness2', 'original_firstorder_Kurtosis']\n",
1756
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
1757
     ]
1758
    },
1759
    {
1760
     "name": "stderr",
1761
     "output_type": "stream",
1762
     "text": [
1763
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
1764
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   35.1s\n",
1765
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   36.4s finished\n",
1766
      "/usr/local/lib/python3.6/dist-packages/sklearn/model_selection/_search.py:814: DeprecationWarning: The default of the `iid` parameter will change from True to False in version 0.22 and will be removed in 0.24. This will change numeric results when test-set sizes are unequal.\n",
1767
      "  DeprecationWarning)\n"
1768
     ]
1769
    },
1770
    {
1771
     "name": "stdout",
1772
     "output_type": "stream",
1773
     "text": [
1774
      "CIndex: 0.6574225729667444\n",
1775
      "Model features: ['original_shape_Compactness2', 'original_firstorder_MeanAbsoluteDeviation']\n",
1776
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
1777
     ]
1778
    },
1779
    {
1780
     "name": "stderr",
1781
     "output_type": "stream",
1782
     "text": [
1783
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
1784
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   17.9s finished\n"
1785
     ]
1786
    },
1787
    {
1788
     "name": "stdout",
1789
     "output_type": "stream",
1790
     "text": [
1791
      "CIndex: 0.66036935436364\n",
1792
      "Model features: ['original_shape_Compactness2', 'original_firstorder_Minimum']\n",
1793
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
1794
     ]
1795
    },
1796
    {
1797
     "name": "stderr",
1798
     "output_type": "stream",
1799
     "text": [
1800
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
1801
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   46.3s\n",
1802
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   48.7s finished\n",
1803
      "/usr/local/lib/python3.6/dist-packages/sklearn/model_selection/_search.py:814: DeprecationWarning: The default of the `iid` parameter will change from True to False in version 0.22 and will be removed in 0.24. This will change numeric results when test-set sizes are unequal.\n",
1804
      "  DeprecationWarning)\n"
1805
     ]
1806
    },
1807
    {
1808
     "name": "stdout",
1809
     "output_type": "stream",
1810
     "text": [
1811
      "CIndex: 0.6477711597801306\n",
1812
      "Model features: ['original_shape_Compactness2', 'original_glcm_ClusterProminence']\n",
1813
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
1814
     ]
1815
    },
1816
    {
1817
     "name": "stderr",
1818
     "output_type": "stream",
1819
     "text": [
1820
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
1821
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   25.4s\n",
1822
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   28.1s finished\n",
1823
      "/usr/local/lib/python3.6/dist-packages/sklearn/model_selection/_search.py:814: DeprecationWarning: The default of the `iid` parameter will change from True to False in version 0.22 and will be removed in 0.24. This will change numeric results when test-set sizes are unequal.\n",
1824
      "  DeprecationWarning)\n"
1825
     ]
1826
    },
1827
    {
1828
     "name": "stdout",
1829
     "output_type": "stream",
1830
     "text": [
1831
      "CIndex: 0.6514649487946292\n",
1832
      "Model features: ['original_shape_Compactness2', 'original_glcm_Contrast']\n",
1833
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
1834
     ]
1835
    },
1836
    {
1837
     "name": "stderr",
1838
     "output_type": "stream",
1839
     "text": [
1840
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
1841
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   37.9s finished\n"
1842
     ]
1843
    },
1844
    {
1845
     "name": "stdout",
1846
     "output_type": "stream",
1847
     "text": [
1848
      "CIndex: 0.6470730504017175\n",
1849
      "Model features: ['original_shape_Compactness2', 'original_glcm_DifferenceEntropy']\n",
1850
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
1851
     ]
1852
    },
1853
    {
1854
     "name": "stderr",
1855
     "output_type": "stream",
1856
     "text": [
1857
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
1858
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   58.3s\n",
1859
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:  1.1min finished\n"
1860
     ]
1861
    },
1862
    {
1863
     "name": "stdout",
1864
     "output_type": "stream",
1865
     "text": [
1866
      "CIndex: 0.6548124770014455\n",
1867
      "Model features: ['original_shape_Compactness2', 'original_glcm_DifferenceAverage']\n",
1868
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
1869
     ]
1870
    },
1871
    {
1872
     "name": "stderr",
1873
     "output_type": "stream",
1874
     "text": [
1875
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
1876
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   16.7s\n",
1877
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   17.3s finished\n"
1878
     ]
1879
    },
1880
    {
1881
     "name": "stdout",
1882
     "output_type": "stream",
1883
     "text": [
1884
      "CIndex: 0.6590013436289548\n",
1885
      "Model features: ['original_shape_Compactness2', 'original_glcm_JointEnergy']\n",
1886
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
1887
     ]
1888
    },
1889
    {
1890
     "name": "stderr",
1891
     "output_type": "stream",
1892
     "text": [
1893
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
1894
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   16.1s finished\n",
1895
      "/usr/local/lib/python3.6/dist-packages/sklearn/model_selection/_search.py:814: DeprecationWarning: The default of the `iid` parameter will change from True to False in version 0.22 and will be removed in 0.24. This will change numeric results when test-set sizes are unequal.\n",
1896
      "  DeprecationWarning)\n"
1897
     ]
1898
    },
1899
    {
1900
     "name": "stdout",
1901
     "output_type": "stream",
1902
     "text": [
1903
      "CIndex: 0.6512023886061536\n",
1904
      "Model features: ['original_shape_Compactness2', 'original_glcm_Id']\n",
1905
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
1906
     ]
1907
    },
1908
    {
1909
     "name": "stderr",
1910
     "output_type": "stream",
1911
     "text": [
1912
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
1913
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   22.3s\n",
1914
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   23.3s finished\n",
1915
      "/usr/local/lib/python3.6/dist-packages/sklearn/model_selection/_search.py:814: DeprecationWarning: The default of the `iid` parameter will change from True to False in version 0.22 and will be removed in 0.24. This will change numeric results when test-set sizes are unequal.\n",
1916
      "  DeprecationWarning)\n"
1917
     ]
1918
    },
1919
    {
1920
     "name": "stdout",
1921
     "output_type": "stream",
1922
     "text": [
1923
      "CIndex: 0.641475360315751\n",
1924
      "Model features: ['original_shape_Compactness2', 'original_glcm_Idm']\n",
1925
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
1926
     ]
1927
    },
1928
    {
1929
     "name": "stderr",
1930
     "output_type": "stream",
1931
     "text": [
1932
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
1933
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   16.4s\n",
1934
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   16.5s finished\n"
1935
     ]
1936
    },
1937
    {
1938
     "name": "stdout",
1939
     "output_type": "stream",
1940
     "text": [
1941
      "CIndex: 0.6540737884615309\n",
1942
      "Model features: ['original_shape_Compactness2', 'original_glcm_Imc1']\n",
1943
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
1944
     ]
1945
    },
1946
    {
1947
     "name": "stderr",
1948
     "output_type": "stream",
1949
     "text": [
1950
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
1951
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   36.7s\n",
1952
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   38.3s finished\n"
1953
     ]
1954
    },
1955
    {
1956
     "name": "stdout",
1957
     "output_type": "stream",
1958
     "text": [
1959
      "CIndex: 0.6595755300658864\n",
1960
      "Model features: ['original_shape_Compactness2', 'original_glcm_Imc2']\n",
1961
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
1962
     ]
1963
    },
1964
    {
1965
     "name": "stderr",
1966
     "output_type": "stream",
1967
     "text": [
1968
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
1969
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   13.6s\n",
1970
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   23.7s finished\n",
1971
      "/usr/local/lib/python3.6/dist-packages/sklearn/model_selection/_search.py:814: DeprecationWarning: The default of the `iid` parameter will change from True to False in version 0.22 and will be removed in 0.24. This will change numeric results when test-set sizes are unequal.\n",
1972
      "  DeprecationWarning)\n"
1973
     ]
1974
    },
1975
    {
1976
     "name": "stdout",
1977
     "output_type": "stream",
1978
     "text": [
1979
      "CIndex: 0.6647215168354366\n",
1980
      "Model features: ['original_shape_Compactness2', 'original_glcm_Idmn']\n",
1981
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
1982
     ]
1983
    },
1984
    {
1985
     "name": "stderr",
1986
     "output_type": "stream",
1987
     "text": [
1988
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
1989
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   44.7s\n",
1990
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   52.3s finished\n"
1991
     ]
1992
    },
1993
    {
1994
     "name": "stdout",
1995
     "output_type": "stream",
1996
     "text": [
1997
      "CIndex: 0.651342627179609\n",
1998
      "Model features: ['original_shape_Compactness2', 'original_glcm_Idn']\n",
1999
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
2000
     ]
2001
    },
2002
    {
2003
     "name": "stderr",
2004
     "output_type": "stream",
2005
     "text": [
2006
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
2007
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   33.5s finished\n"
2008
     ]
2009
    },
2010
    {
2011
     "name": "stdout",
2012
     "output_type": "stream",
2013
     "text": [
2014
      "CIndex: 0.6501124486571423\n",
2015
      "Model features: ['original_shape_Compactness2', 'original_glrlm_ShortRunEmphasis']\n",
2016
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
2017
     ]
2018
    },
2019
    {
2020
     "name": "stderr",
2021
     "output_type": "stream",
2022
     "text": [
2023
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
2024
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   24.3s\n",
2025
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   25.1s finished\n"
2026
     ]
2027
    },
2028
    {
2029
     "name": "stdout",
2030
     "output_type": "stream",
2031
     "text": [
2032
      "CIndex: 0.6328222152677472\n",
2033
      "Model features: ['original_shape_Compactness2', 'original_glrlm_LongRunEmphasis']\n",
2034
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
2035
     ]
2036
    },
2037
    {
2038
     "name": "stderr",
2039
     "output_type": "stream",
2040
     "text": [
2041
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
2042
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   31.1s\n",
2043
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   32.9s finished\n",
2044
      "/usr/local/lib/python3.6/dist-packages/sklearn/model_selection/_search.py:814: DeprecationWarning: The default of the `iid` parameter will change from True to False in version 0.22 and will be removed in 0.24. This will change numeric results when test-set sizes are unequal.\n",
2045
      "  DeprecationWarning)\n"
2046
     ]
2047
    },
2048
    {
2049
     "name": "stdout",
2050
     "output_type": "stream",
2051
     "text": [
2052
      "CIndex: 0.6598622387896654\n",
2053
      "Model features: ['original_shape_Compactness2', 'original_glrlm_GrayLevelNonUniformity']\n",
2054
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
2055
     ]
2056
    },
2057
    {
2058
     "name": "stderr",
2059
     "output_type": "stream",
2060
     "text": [
2061
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
2062
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   31.2s\n",
2063
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   32.8s finished\n",
2064
      "/usr/local/lib/python3.6/dist-packages/sklearn/model_selection/_search.py:814: DeprecationWarning: The default of the `iid` parameter will change from True to False in version 0.22 and will be removed in 0.24. This will change numeric results when test-set sizes are unequal.\n",
2065
      "  DeprecationWarning)\n"
2066
     ]
2067
    },
2068
    {
2069
     "name": "stdout",
2070
     "output_type": "stream",
2071
     "text": [
2072
      "CIndex: 0.6445618707940186\n",
2073
      "Model features: ['original_shape_Compactness2', 'original_glrlm_RunPercentage']\n",
2074
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
2075
     ]
2076
    },
2077
    {
2078
     "name": "stderr",
2079
     "output_type": "stream",
2080
     "text": [
2081
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
2082
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   30.3s\n",
2083
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   34.8s finished\n"
2084
     ]
2085
    },
2086
    {
2087
     "name": "stdout",
2088
     "output_type": "stream",
2089
     "text": [
2090
      "CIndex: 0.6524014810706922\n",
2091
      "Model features: ['original_shape_Compactness2', 'original_glrlm_ShortRunLowGrayLevelEmphasis']\n",
2092
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
2093
     ]
2094
    },
2095
    {
2096
     "name": "stderr",
2097
     "output_type": "stream",
2098
     "text": [
2099
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
2100
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   31.7s\n",
2101
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   33.4s finished\n",
2102
      "/usr/local/lib/python3.6/dist-packages/sklearn/model_selection/_search.py:814: DeprecationWarning: The default of the `iid` parameter will change from True to False in version 0.22 and will be removed in 0.24. This will change numeric results when test-set sizes are unequal.\n",
2103
      "  DeprecationWarning)\n"
2104
     ]
2105
    },
2106
    {
2107
     "name": "stdout",
2108
     "output_type": "stream",
2109
     "text": [
2110
      "CIndex: 0.6320387090314612\n",
2111
      "Model features: ['original_shape_Compactness2', 'original_glrlm_LongRunLowGrayLevelEmphasis']\n",
2112
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
2113
     ]
2114
    },
2115
    {
2116
     "name": "stderr",
2117
     "output_type": "stream",
2118
     "text": [
2119
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
2120
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   50.6s\n",
2121
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   50.8s finished\n",
2122
      "/usr/local/lib/python3.6/dist-packages/sklearn/model_selection/_search.py:814: DeprecationWarning: The default of the `iid` parameter will change from True to False in version 0.22 and will be removed in 0.24. This will change numeric results when test-set sizes are unequal.\n",
2123
      "  DeprecationWarning)\n"
2124
     ]
2125
    },
2126
    {
2127
     "name": "stdout",
2128
     "output_type": "stream",
2129
     "text": [
2130
      "CIndex: 0.6476330360851696\n",
2131
      "Model features: ['original_shape_Compactness2', 'original_glrlm_LongRunHighGrayLevelEmphasis']\n",
2132
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
2133
     ]
2134
    },
2135
    {
2136
     "name": "stderr",
2137
     "output_type": "stream",
2138
     "text": [
2139
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
2140
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   37.4s finished\n"
2141
     ]
2142
    },
2143
    {
2144
     "name": "stdout",
2145
     "output_type": "stream",
2146
     "text": [
2147
      "CIndex: 0.6670932210994385\n",
2148
      "Model features: ['original_shape_Compactness2', 'Nstage']\n",
2149
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
2150
     ]
2151
    },
2152
    {
2153
     "name": "stderr",
2154
     "output_type": "stream",
2155
     "text": [
2156
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
2157
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   13.6s\n",
2158
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   16.4s finished\n"
2159
     ]
2160
    },
2161
    {
2162
     "name": "stdout",
2163
     "output_type": "stream",
2164
     "text": [
2165
      "CIndex: 0.6598799078988445\n",
2166
      "Model features: ['original_shape_Compactness2', 'age']\n",
2167
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
2168
     ]
2169
    },
2170
    {
2171
     "name": "stderr",
2172
     "output_type": "stream",
2173
     "text": [
2174
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
2175
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   22.7s\n",
2176
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   25.3s finished\n",
2177
      "/usr/local/lib/python3.6/dist-packages/sklearn/model_selection/_search.py:814: DeprecationWarning: The default of the `iid` parameter will change from True to False in version 0.22 and will be removed in 0.24. This will change numeric results when test-set sizes are unequal.\n",
2178
      "  DeprecationWarning)\n"
2179
     ]
2180
    },
2181
    {
2182
     "name": "stdout",
2183
     "output_type": "stream",
2184
     "text": [
2185
      "CIndex: 0.6517814100757244\n",
2186
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1']\n",
2187
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
2188
     ]
2189
    },
2190
    {
2191
     "name": "stderr",
2192
     "output_type": "stream",
2193
     "text": [
2194
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
2195
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   23.5s\n",
2196
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   24.8s finished\n",
2197
      "/usr/local/lib/python3.6/dist-packages/sklearn/model_selection/_search.py:814: DeprecationWarning: The default of the `iid` parameter will change from True to False in version 0.22 and will be removed in 0.24. This will change numeric results when test-set sizes are unequal.\n",
2198
      "  DeprecationWarning)\n"
2199
     ]
2200
    },
2201
    {
2202
     "name": "stdout",
2203
     "output_type": "stream",
2204
     "text": [
2205
      "CIndex: 0.6705034984625279\n",
2206
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l2']\n",
2207
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
2208
     ]
2209
    },
2210
    {
2211
     "name": "stderr",
2212
     "output_type": "stream",
2213
     "text": [
2214
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
2215
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   34.3s\n",
2216
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   34.4s finished\n",
2217
      "/usr/local/lib/python3.6/dist-packages/sklearn/model_selection/_search.py:814: DeprecationWarning: The default of the `iid` parameter will change from True to False in version 0.22 and will be removed in 0.24. This will change numeric results when test-set sizes are unequal.\n",
2218
      "  DeprecationWarning)\n"
2219
     ]
2220
    },
2221
    {
2222
     "name": "stdout",
2223
     "output_type": "stream",
2224
     "text": [
2225
      "CIndex: 0.6513380358105194\n",
2226
      "Selected new growing feature: SourceDataset_l1\n",
2227
      "\n",
2228
      "Growing 3-th feature...\n",
2229
      "\n",
2230
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SphericalDisproportion']\n",
2231
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
2232
     ]
2233
    },
2234
    {
2235
     "name": "stderr",
2236
     "output_type": "stream",
2237
     "text": [
2238
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
2239
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   37.8s\n",
2240
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   38.8s finished\n",
2241
      "/usr/local/lib/python3.6/dist-packages/sklearn/model_selection/_search.py:814: DeprecationWarning: The default of the `iid` parameter will change from True to False in version 0.22 and will be removed in 0.24. This will change numeric results when test-set sizes are unequal.\n",
2242
      "  DeprecationWarning)\n"
2243
     ]
2244
    },
2245
    {
2246
     "name": "stdout",
2247
     "output_type": "stream",
2248
     "text": [
2249
      "CIndex: 0.6415728692391619\n",
2250
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio']\n",
2251
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
2252
     ]
2253
    },
2254
    {
2255
     "name": "stderr",
2256
     "output_type": "stream",
2257
     "text": [
2258
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
2259
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   21.5s\n",
2260
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   21.9s finished\n"
2261
     ]
2262
    },
2263
    {
2264
     "name": "stdout",
2265
     "output_type": "stream",
2266
     "text": [
2267
      "CIndex: 0.6631818323582115\n",
2268
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_firstorder_Kurtosis']\n",
2269
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
2270
     ]
2271
    },
2272
    {
2273
     "name": "stderr",
2274
     "output_type": "stream",
2275
     "text": [
2276
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
2277
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   19.3s\n",
2278
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   20.3s finished\n",
2279
      "/usr/local/lib/python3.6/dist-packages/sklearn/model_selection/_search.py:814: DeprecationWarning: The default of the `iid` parameter will change from True to False in version 0.22 and will be removed in 0.24. This will change numeric results when test-set sizes are unequal.\n",
2280
      "  DeprecationWarning)\n"
2281
     ]
2282
    },
2283
    {
2284
     "name": "stdout",
2285
     "output_type": "stream",
2286
     "text": [
2287
      "CIndex: 0.6384153786839792\n",
2288
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_firstorder_MeanAbsoluteDeviation']\n",
2289
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
2290
     ]
2291
    },
2292
    {
2293
     "name": "stderr",
2294
     "output_type": "stream",
2295
     "text": [
2296
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
2297
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   41.0s finished\n"
2298
     ]
2299
    },
2300
    {
2301
     "name": "stdout",
2302
     "output_type": "stream",
2303
     "text": [
2304
      "CIndex: 0.641876883801129\n",
2305
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_firstorder_Minimum']\n",
2306
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
2307
     ]
2308
    },
2309
    {
2310
     "name": "stderr",
2311
     "output_type": "stream",
2312
     "text": [
2313
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
2314
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   29.8s\n",
2315
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   29.9s finished\n",
2316
      "/usr/local/lib/python3.6/dist-packages/sklearn/model_selection/_search.py:814: DeprecationWarning: The default of the `iid` parameter will change from True to False in version 0.22 and will be removed in 0.24. This will change numeric results when test-set sizes are unequal.\n",
2317
      "  DeprecationWarning)\n"
2318
     ]
2319
    },
2320
    {
2321
     "name": "stdout",
2322
     "output_type": "stream",
2323
     "text": [
2324
      "CIndex: 0.6542316657187583\n",
2325
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_glcm_ClusterProminence']\n",
2326
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
2327
     ]
2328
    },
2329
    {
2330
     "name": "stderr",
2331
     "output_type": "stream",
2332
     "text": [
2333
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
2334
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   39.1s finished\n",
2335
      "/usr/local/lib/python3.6/dist-packages/sklearn/model_selection/_search.py:814: DeprecationWarning: The default of the `iid` parameter will change from True to False in version 0.22 and will be removed in 0.24. This will change numeric results when test-set sizes are unequal.\n",
2336
      "  DeprecationWarning)\n"
2337
     ]
2338
    },
2339
    {
2340
     "name": "stdout",
2341
     "output_type": "stream",
2342
     "text": [
2343
      "CIndex: 0.633418856297596\n",
2344
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_glcm_Contrast']\n",
2345
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
2346
     ]
2347
    },
2348
    {
2349
     "name": "stderr",
2350
     "output_type": "stream",
2351
     "text": [
2352
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
2353
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   30.9s\n",
2354
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   31.7s finished\n"
2355
     ]
2356
    },
2357
    {
2358
     "name": "stdout",
2359
     "output_type": "stream",
2360
     "text": [
2361
      "CIndex: 0.6468580547732365\n",
2362
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_glcm_DifferenceEntropy']\n",
2363
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
2364
     ]
2365
    },
2366
    {
2367
     "name": "stderr",
2368
     "output_type": "stream",
2369
     "text": [
2370
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
2371
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   33.7s\n",
2372
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   37.2s finished\n",
2373
      "/usr/local/lib/python3.6/dist-packages/sklearn/model_selection/_search.py:814: DeprecationWarning: The default of the `iid` parameter will change from True to False in version 0.22 and will be removed in 0.24. This will change numeric results when test-set sizes are unequal.\n",
2374
      "  DeprecationWarning)\n"
2375
     ]
2376
    },
2377
    {
2378
     "name": "stdout",
2379
     "output_type": "stream",
2380
     "text": [
2381
      "CIndex: 0.638478295393538\n",
2382
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_glcm_DifferenceAverage']\n",
2383
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
2384
     ]
2385
    },
2386
    {
2387
     "name": "stderr",
2388
     "output_type": "stream",
2389
     "text": [
2390
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
2391
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   27.1s finished\n"
2392
     ]
2393
    },
2394
    {
2395
     "name": "stdout",
2396
     "output_type": "stream",
2397
     "text": [
2398
      "CIndex: 0.6349722940193099\n",
2399
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_glcm_JointEnergy']\n",
2400
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
2401
     ]
2402
    },
2403
    {
2404
     "name": "stderr",
2405
     "output_type": "stream",
2406
     "text": [
2407
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
2408
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   20.3s\n",
2409
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   21.0s finished\n",
2410
      "/usr/local/lib/python3.6/dist-packages/sklearn/model_selection/_search.py:814: DeprecationWarning: The default of the `iid` parameter will change from True to False in version 0.22 and will be removed in 0.24. This will change numeric results when test-set sizes are unequal.\n",
2411
      "  DeprecationWarning)\n"
2412
     ]
2413
    },
2414
    {
2415
     "name": "stdout",
2416
     "output_type": "stream",
2417
     "text": [
2418
      "CIndex: 0.6539515903772191\n",
2419
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_glcm_Id']\n",
2420
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
2421
     ]
2422
    },
2423
    {
2424
     "name": "stderr",
2425
     "output_type": "stream",
2426
     "text": [
2427
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
2428
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   27.6s finished\n",
2429
      "/usr/local/lib/python3.6/dist-packages/sklearn/model_selection/_search.py:814: DeprecationWarning: The default of the `iid` parameter will change from True to False in version 0.22 and will be removed in 0.24. This will change numeric results when test-set sizes are unequal.\n",
2430
      "  DeprecationWarning)\n"
2431
     ]
2432
    },
2433
    {
2434
     "name": "stdout",
2435
     "output_type": "stream",
2436
     "text": [
2437
      "CIndex: 0.6521170012887875\n",
2438
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_glcm_Idm']\n",
2439
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
2440
     ]
2441
    },
2442
    {
2443
     "name": "stderr",
2444
     "output_type": "stream",
2445
     "text": [
2446
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
2447
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   22.5s\n",
2448
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   24.0s finished\n",
2449
      "/usr/local/lib/python3.6/dist-packages/sklearn/model_selection/_search.py:814: DeprecationWarning: The default of the `iid` parameter will change from True to False in version 0.22 and will be removed in 0.24. This will change numeric results when test-set sizes are unequal.\n",
2450
      "  DeprecationWarning)\n"
2451
     ]
2452
    },
2453
    {
2454
     "name": "stdout",
2455
     "output_type": "stream",
2456
     "text": [
2457
      "CIndex: 0.626369181124789\n",
2458
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_glcm_Imc1']\n",
2459
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
2460
     ]
2461
    },
2462
    {
2463
     "name": "stderr",
2464
     "output_type": "stream",
2465
     "text": [
2466
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
2467
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   33.3s\n",
2468
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   33.9s finished\n",
2469
      "/usr/local/lib/python3.6/dist-packages/sklearn/model_selection/_search.py:814: DeprecationWarning: The default of the `iid` parameter will change from True to False in version 0.22 and will be removed in 0.24. This will change numeric results when test-set sizes are unequal.\n",
2470
      "  DeprecationWarning)\n"
2471
     ]
2472
    },
2473
    {
2474
     "name": "stdout",
2475
     "output_type": "stream",
2476
     "text": [
2477
      "CIndex: 0.6579436963754846\n",
2478
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_glcm_Imc2']\n",
2479
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
2480
     ]
2481
    },
2482
    {
2483
     "name": "stderr",
2484
     "output_type": "stream",
2485
     "text": [
2486
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
2487
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   22.4s\n",
2488
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   24.3s finished\n"
2489
     ]
2490
    },
2491
    {
2492
     "name": "stdout",
2493
     "output_type": "stream",
2494
     "text": [
2495
      "CIndex: 0.6450581361766345\n",
2496
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_glcm_Idmn']\n",
2497
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
2498
     ]
2499
    },
2500
    {
2501
     "name": "stderr",
2502
     "output_type": "stream",
2503
     "text": [
2504
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
2505
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   29.2s\n",
2506
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   29.3s finished\n"
2507
     ]
2508
    },
2509
    {
2510
     "name": "stdout",
2511
     "output_type": "stream",
2512
     "text": [
2513
      "CIndex: 0.6452401009204051\n",
2514
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_glcm_Idn']\n",
2515
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
2516
     ]
2517
    },
2518
    {
2519
     "name": "stderr",
2520
     "output_type": "stream",
2521
     "text": [
2522
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
2523
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   13.5s\n",
2524
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   14.4s finished\n",
2525
      "/usr/local/lib/python3.6/dist-packages/sklearn/model_selection/_search.py:814: DeprecationWarning: The default of the `iid` parameter will change from True to False in version 0.22 and will be removed in 0.24. This will change numeric results when test-set sizes are unequal.\n",
2526
      "  DeprecationWarning)\n"
2527
     ]
2528
    },
2529
    {
2530
     "name": "stdout",
2531
     "output_type": "stream",
2532
     "text": [
2533
      "CIndex: 0.6530334611262925\n",
2534
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_glrlm_ShortRunEmphasis']\n",
2535
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
2536
     ]
2537
    },
2538
    {
2539
     "name": "stderr",
2540
     "output_type": "stream",
2541
     "text": [
2542
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
2543
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   24.0s\n",
2544
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   26.1s finished\n",
2545
      "/usr/local/lib/python3.6/dist-packages/sklearn/model_selection/_search.py:814: DeprecationWarning: The default of the `iid` parameter will change from True to False in version 0.22 and will be removed in 0.24. This will change numeric results when test-set sizes are unequal.\n",
2546
      "  DeprecationWarning)\n"
2547
     ]
2548
    },
2549
    {
2550
     "name": "stdout",
2551
     "output_type": "stream",
2552
     "text": [
2553
      "CIndex: 0.6559759636990118\n",
2554
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_glrlm_LongRunEmphasis']\n",
2555
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
2556
     ]
2557
    },
2558
    {
2559
     "name": "stderr",
2560
     "output_type": "stream",
2561
     "text": [
2562
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
2563
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   37.1s\n",
2564
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   38.7s finished\n",
2565
      "/usr/local/lib/python3.6/dist-packages/sklearn/model_selection/_search.py:814: DeprecationWarning: The default of the `iid` parameter will change from True to False in version 0.22 and will be removed in 0.24. This will change numeric results when test-set sizes are unequal.\n",
2566
      "  DeprecationWarning)\n"
2567
     ]
2568
    },
2569
    {
2570
     "name": "stdout",
2571
     "output_type": "stream",
2572
     "text": [
2573
      "CIndex: 0.6445885945039107\n",
2574
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_glrlm_GrayLevelNonUniformity']\n",
2575
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
2576
     ]
2577
    },
2578
    {
2579
     "name": "stderr",
2580
     "output_type": "stream",
2581
     "text": [
2582
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
2583
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   34.1s\n",
2584
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   35.0s finished\n",
2585
      "/usr/local/lib/python3.6/dist-packages/sklearn/model_selection/_search.py:814: DeprecationWarning: The default of the `iid` parameter will change from True to False in version 0.22 and will be removed in 0.24. This will change numeric results when test-set sizes are unequal.\n",
2586
      "  DeprecationWarning)\n"
2587
     ]
2588
    },
2589
    {
2590
     "name": "stdout",
2591
     "output_type": "stream",
2592
     "text": [
2593
      "CIndex: 0.6337758648434746\n",
2594
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_glrlm_RunPercentage']\n",
2595
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
2596
     ]
2597
    },
2598
    {
2599
     "name": "stderr",
2600
     "output_type": "stream",
2601
     "text": [
2602
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
2603
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   23.2s\n",
2604
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   27.9s finished\n",
2605
      "/usr/local/lib/python3.6/dist-packages/sklearn/model_selection/_search.py:814: DeprecationWarning: The default of the `iid` parameter will change from True to False in version 0.22 and will be removed in 0.24. This will change numeric results when test-set sizes are unequal.\n",
2606
      "  DeprecationWarning)\n"
2607
     ]
2608
    },
2609
    {
2610
     "name": "stdout",
2611
     "output_type": "stream",
2612
     "text": [
2613
      "CIndex: 0.6514324875042824\n",
2614
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_glrlm_ShortRunLowGrayLevelEmphasis']\n",
2615
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
2616
     ]
2617
    },
2618
    {
2619
     "name": "stderr",
2620
     "output_type": "stream",
2621
     "text": [
2622
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
2623
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   27.7s finished\n",
2624
      "/usr/local/lib/python3.6/dist-packages/sklearn/model_selection/_search.py:814: DeprecationWarning: The default of the `iid` parameter will change from True to False in version 0.22 and will be removed in 0.24. This will change numeric results when test-set sizes are unequal.\n",
2625
      "  DeprecationWarning)\n"
2626
     ]
2627
    },
2628
    {
2629
     "name": "stdout",
2630
     "output_type": "stream",
2631
     "text": [
2632
      "CIndex: 0.6381903486780197\n",
2633
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_glrlm_LongRunLowGrayLevelEmphasis']\n",
2634
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
2635
     ]
2636
    },
2637
    {
2638
     "name": "stderr",
2639
     "output_type": "stream",
2640
     "text": [
2641
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
2642
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   31.6s finished\n",
2643
      "/usr/local/lib/python3.6/dist-packages/sklearn/model_selection/_search.py:814: DeprecationWarning: The default of the `iid` parameter will change from True to False in version 0.22 and will be removed in 0.24. This will change numeric results when test-set sizes are unequal.\n",
2644
      "  DeprecationWarning)\n"
2645
     ]
2646
    },
2647
    {
2648
     "name": "stdout",
2649
     "output_type": "stream",
2650
     "text": [
2651
      "CIndex: 0.6505033687304297\n",
2652
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_glrlm_LongRunHighGrayLevelEmphasis']\n",
2653
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
2654
     ]
2655
    },
2656
    {
2657
     "name": "stderr",
2658
     "output_type": "stream",
2659
     "text": [
2660
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
2661
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   21.0s\n",
2662
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   22.6s finished\n"
2663
     ]
2664
    },
2665
    {
2666
     "name": "stdout",
2667
     "output_type": "stream",
2668
     "text": [
2669
      "CIndex: 0.6143924740516076\n",
2670
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'Nstage']\n",
2671
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
2672
     ]
2673
    },
2674
    {
2675
     "name": "stderr",
2676
     "output_type": "stream",
2677
     "text": [
2678
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
2679
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   20.0s\n",
2680
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   20.6s finished\n",
2681
      "/usr/local/lib/python3.6/dist-packages/sklearn/model_selection/_search.py:814: DeprecationWarning: The default of the `iid` parameter will change from True to False in version 0.22 and will be removed in 0.24. This will change numeric results when test-set sizes are unequal.\n",
2682
      "  DeprecationWarning)\n"
2683
     ]
2684
    },
2685
    {
2686
     "name": "stdout",
2687
     "output_type": "stream",
2688
     "text": [
2689
      "CIndex: 0.6415257725713739\n",
2690
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'age']\n",
2691
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
2692
     ]
2693
    },
2694
    {
2695
     "name": "stderr",
2696
     "output_type": "stream",
2697
     "text": [
2698
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
2699
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   16.3s finished\n"
2700
     ]
2701
    },
2702
    {
2703
     "name": "stdout",
2704
     "output_type": "stream",
2705
     "text": [
2706
      "CIndex: 0.6437775330382668\n",
2707
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'SourceDataset_l2']\n",
2708
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
2709
     ]
2710
    },
2711
    {
2712
     "name": "stderr",
2713
     "output_type": "stream",
2714
     "text": [
2715
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
2716
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   24.8s\n",
2717
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   26.9s finished\n",
2718
      "/usr/local/lib/python3.6/dist-packages/sklearn/model_selection/_search.py:814: DeprecationWarning: The default of the `iid` parameter will change from True to False in version 0.22 and will be removed in 0.24. This will change numeric results when test-set sizes are unequal.\n",
2719
      "  DeprecationWarning)\n"
2720
     ]
2721
    },
2722
    {
2723
     "name": "stdout",
2724
     "output_type": "stream",
2725
     "text": [
2726
      "CIndex: 0.6543413995162223\n",
2727
      "Selected new growing feature: original_shape_SurfaceVolumeRatio\n",
2728
      "\n",
2729
      "Growing 4-th feature...\n",
2730
      "\n",
2731
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_shape_SphericalDisproportion']\n",
2732
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
2733
     ]
2734
    },
2735
    {
2736
     "name": "stderr",
2737
     "output_type": "stream",
2738
     "text": [
2739
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
2740
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   24.2s finished\n"
2741
     ]
2742
    },
2743
    {
2744
     "name": "stdout",
2745
     "output_type": "stream",
2746
     "text": [
2747
      "CIndex: 0.6447133974727156\n",
2748
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_firstorder_Kurtosis']\n",
2749
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
2750
     ]
2751
    },
2752
    {
2753
     "name": "stderr",
2754
     "output_type": "stream",
2755
     "text": [
2756
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
2757
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   44.9s\n",
2758
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   47.7s finished\n"
2759
     ]
2760
    },
2761
    {
2762
     "name": "stdout",
2763
     "output_type": "stream",
2764
     "text": [
2765
      "CIndex: 0.6280176762161866\n",
2766
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_firstorder_MeanAbsoluteDeviation']\n",
2767
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
2768
     ]
2769
    },
2770
    {
2771
     "name": "stderr",
2772
     "output_type": "stream",
2773
     "text": [
2774
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
2775
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:  1.0min\n",
2776
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:  1.0min finished\n"
2777
     ]
2778
    },
2779
    {
2780
     "name": "stdout",
2781
     "output_type": "stream",
2782
     "text": [
2783
      "CIndex: 0.6411354658393125\n",
2784
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_firstorder_Minimum']\n",
2785
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
2786
     ]
2787
    },
2788
    {
2789
     "name": "stderr",
2790
     "output_type": "stream",
2791
     "text": [
2792
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
2793
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   44.5s\n",
2794
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   54.0s finished\n",
2795
      "/usr/local/lib/python3.6/dist-packages/sklearn/model_selection/_search.py:814: DeprecationWarning: The default of the `iid` parameter will change from True to False in version 0.22 and will be removed in 0.24. This will change numeric results when test-set sizes are unequal.\n",
2796
      "  DeprecationWarning)\n"
2797
     ]
2798
    },
2799
    {
2800
     "name": "stdout",
2801
     "output_type": "stream",
2802
     "text": [
2803
      "CIndex: 0.6585365830755782\n",
2804
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_glcm_ClusterProminence']\n",
2805
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
2806
     ]
2807
    },
2808
    {
2809
     "name": "stderr",
2810
     "output_type": "stream",
2811
     "text": [
2812
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
2813
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   23.1s finished\n"
2814
     ]
2815
    },
2816
    {
2817
     "name": "stdout",
2818
     "output_type": "stream",
2819
     "text": [
2820
      "CIndex: 0.6246973516330051\n",
2821
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_glcm_Contrast']\n",
2822
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
2823
     ]
2824
    },
2825
    {
2826
     "name": "stderr",
2827
     "output_type": "stream",
2828
     "text": [
2829
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
2830
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   35.3s finished\n"
2831
     ]
2832
    },
2833
    {
2834
     "name": "stdout",
2835
     "output_type": "stream",
2836
     "text": [
2837
      "CIndex: 0.6302952115593043\n",
2838
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_glcm_DifferenceEntropy']\n",
2839
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
2840
     ]
2841
    },
2842
    {
2843
     "name": "stderr",
2844
     "output_type": "stream",
2845
     "text": [
2846
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
2847
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   56.6s\n",
2848
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   57.1s finished\n",
2849
      "/usr/local/lib/python3.6/dist-packages/sklearn/model_selection/_search.py:814: DeprecationWarning: The default of the `iid` parameter will change from True to False in version 0.22 and will be removed in 0.24. This will change numeric results when test-set sizes are unequal.\n",
2850
      "  DeprecationWarning)\n"
2851
     ]
2852
    },
2853
    {
2854
     "name": "stdout",
2855
     "output_type": "stream",
2856
     "text": [
2857
      "CIndex: 0.6422912738365969\n",
2858
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_glcm_DifferenceAverage']\n",
2859
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
2860
     ]
2861
    },
2862
    {
2863
     "name": "stderr",
2864
     "output_type": "stream",
2865
     "text": [
2866
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
2867
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   39.1s finished\n"
2868
     ]
2869
    },
2870
    {
2871
     "name": "stdout",
2872
     "output_type": "stream",
2873
     "text": [
2874
      "CIndex: 0.6280211795820422\n",
2875
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_glcm_JointEnergy']\n",
2876
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
2877
     ]
2878
    },
2879
    {
2880
     "name": "stderr",
2881
     "output_type": "stream",
2882
     "text": [
2883
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
2884
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   50.9s\n",
2885
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   53.3s finished\n"
2886
     ]
2887
    },
2888
    {
2889
     "name": "stdout",
2890
     "output_type": "stream",
2891
     "text": [
2892
      "CIndex: 0.6591129085154689\n",
2893
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_glcm_Id']\n",
2894
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
2895
     ]
2896
    },
2897
    {
2898
     "name": "stderr",
2899
     "output_type": "stream",
2900
     "text": [
2901
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
2902
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:  1.1min finished\n",
2903
      "/usr/local/lib/python3.6/dist-packages/sklearn/model_selection/_search.py:814: DeprecationWarning: The default of the `iid` parameter will change from True to False in version 0.22 and will be removed in 0.24. This will change numeric results when test-set sizes are unequal.\n",
2904
      "  DeprecationWarning)\n"
2905
     ]
2906
    },
2907
    {
2908
     "name": "stdout",
2909
     "output_type": "stream",
2910
     "text": [
2911
      "CIndex: 0.6464868940951897\n",
2912
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_glcm_Idm']\n",
2913
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
2914
     ]
2915
    },
2916
    {
2917
     "name": "stderr",
2918
     "output_type": "stream",
2919
     "text": [
2920
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
2921
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   34.4s\n",
2922
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   35.5s finished\n",
2923
      "/usr/local/lib/python3.6/dist-packages/sklearn/model_selection/_search.py:814: DeprecationWarning: The default of the `iid` parameter will change from True to False in version 0.22 and will be removed in 0.24. This will change numeric results when test-set sizes are unequal.\n",
2924
      "  DeprecationWarning)\n"
2925
     ]
2926
    },
2927
    {
2928
     "name": "stdout",
2929
     "output_type": "stream",
2930
     "text": [
2931
      "CIndex: 0.6504785273536441\n",
2932
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_glcm_Imc1']\n",
2933
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
2934
     ]
2935
    },
2936
    {
2937
     "name": "stderr",
2938
     "output_type": "stream",
2939
     "text": [
2940
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
2941
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   46.2s finished\n"
2942
     ]
2943
    },
2944
    {
2945
     "name": "stdout",
2946
     "output_type": "stream",
2947
     "text": [
2948
      "CIndex: 0.6310197524160918\n",
2949
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_glcm_Imc2']\n",
2950
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
2951
     ]
2952
    },
2953
    {
2954
     "name": "stderr",
2955
     "output_type": "stream",
2956
     "text": [
2957
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
2958
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   36.1s finished\n",
2959
      "/usr/local/lib/python3.6/dist-packages/sklearn/model_selection/_search.py:814: DeprecationWarning: The default of the `iid` parameter will change from True to False in version 0.22 and will be removed in 0.24. This will change numeric results when test-set sizes are unequal.\n",
2960
      "  DeprecationWarning)\n"
2961
     ]
2962
    },
2963
    {
2964
     "name": "stdout",
2965
     "output_type": "stream",
2966
     "text": [
2967
      "CIndex: 0.6485088367803277\n",
2968
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_glcm_Idmn']\n",
2969
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
2970
     ]
2971
    },
2972
    {
2973
     "name": "stderr",
2974
     "output_type": "stream",
2975
     "text": [
2976
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
2977
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   46.2s\n",
2978
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   59.4s finished\n",
2979
      "/usr/local/lib/python3.6/dist-packages/sklearn/model_selection/_search.py:814: DeprecationWarning: The default of the `iid` parameter will change from True to False in version 0.22 and will be removed in 0.24. This will change numeric results when test-set sizes are unequal.\n",
2980
      "  DeprecationWarning)\n"
2981
     ]
2982
    },
2983
    {
2984
     "name": "stdout",
2985
     "output_type": "stream",
2986
     "text": [
2987
      "CIndex: 0.6415561994591408\n",
2988
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_glcm_Idn']\n",
2989
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
2990
     ]
2991
    },
2992
    {
2993
     "name": "stderr",
2994
     "output_type": "stream",
2995
     "text": [
2996
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
2997
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   24.0s\n",
2998
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   25.3s finished\n"
2999
     ]
3000
    },
3001
    {
3002
     "name": "stdout",
3003
     "output_type": "stream",
3004
     "text": [
3005
      "CIndex: 0.6700353526862737\n",
3006
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_glrlm_ShortRunEmphasis']\n",
3007
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
3008
     ]
3009
    },
3010
    {
3011
     "name": "stderr",
3012
     "output_type": "stream",
3013
     "text": [
3014
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
3015
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   42.7s\n",
3016
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   45.5s finished\n",
3017
      "/usr/local/lib/python3.6/dist-packages/sklearn/model_selection/_search.py:814: DeprecationWarning: The default of the `iid` parameter will change from True to False in version 0.22 and will be removed in 0.24. This will change numeric results when test-set sizes are unequal.\n",
3018
      "  DeprecationWarning)\n"
3019
     ]
3020
    },
3021
    {
3022
     "name": "stdout",
3023
     "output_type": "stream",
3024
     "text": [
3025
      "CIndex: 0.6605541222403328\n",
3026
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_glrlm_LongRunEmphasis']\n",
3027
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
3028
     ]
3029
    },
3030
    {
3031
     "name": "stderr",
3032
     "output_type": "stream",
3033
     "text": [
3034
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
3035
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   41.3s\n",
3036
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   44.7s finished\n"
3037
     ]
3038
    },
3039
    {
3040
     "name": "stdout",
3041
     "output_type": "stream",
3042
     "text": [
3043
      "CIndex: 0.6529417088729828\n",
3044
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_glrlm_GrayLevelNonUniformity']\n",
3045
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
3046
     ]
3047
    },
3048
    {
3049
     "name": "stderr",
3050
     "output_type": "stream",
3051
     "text": [
3052
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
3053
      "/usr/local/lib/python3.6/dist-packages/joblib/externals/loky/process_executor.py:706: UserWarning: A worker stopped while some jobs were given to the executor. This can be caused by a too short worker timeout or by a memory leak.\n",
3054
      "  \"timeout or by a memory leak.\", UserWarning\n",
3055
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:  1.5min finished\n"
3056
     ]
3057
    },
3058
    {
3059
     "name": "stdout",
3060
     "output_type": "stream",
3061
     "text": [
3062
      "CIndex: 0.6384136418717073\n",
3063
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_glrlm_RunPercentage']\n",
3064
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
3065
     ]
3066
    },
3067
    {
3068
     "name": "stderr",
3069
     "output_type": "stream",
3070
     "text": [
3071
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
3072
      "/usr/local/lib/python3.6/dist-packages/joblib/externals/loky/process_executor.py:706: UserWarning: A worker stopped while some jobs were given to the executor. This can be caused by a too short worker timeout or by a memory leak.\n",
3073
      "  \"timeout or by a memory leak.\", UserWarning\n",
3074
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   41.1s\n",
3075
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   42.0s finished\n"
3076
     ]
3077
    },
3078
    {
3079
     "name": "stdout",
3080
     "output_type": "stream",
3081
     "text": [
3082
      "CIndex: 0.6549922168331123\n",
3083
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_glrlm_ShortRunLowGrayLevelEmphasis']\n",
3084
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
3085
     ]
3086
    },
3087
    {
3088
     "name": "stderr",
3089
     "output_type": "stream",
3090
     "text": [
3091
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
3092
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   31.0s\n",
3093
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   31.3s finished\n"
3094
     ]
3095
    },
3096
    {
3097
     "name": "stdout",
3098
     "output_type": "stream",
3099
     "text": [
3100
      "CIndex: 0.6568827815889188\n",
3101
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_glrlm_LongRunLowGrayLevelEmphasis']\n",
3102
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
3103
     ]
3104
    },
3105
    {
3106
     "name": "stderr",
3107
     "output_type": "stream",
3108
     "text": [
3109
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
3110
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   16.4s\n",
3111
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   17.0s finished\n"
3112
     ]
3113
    },
3114
    {
3115
     "name": "stdout",
3116
     "output_type": "stream",
3117
     "text": [
3118
      "CIndex: 0.6404185130686262\n",
3119
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_glrlm_LongRunHighGrayLevelEmphasis']\n",
3120
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
3121
     ]
3122
    },
3123
    {
3124
     "name": "stderr",
3125
     "output_type": "stream",
3126
     "text": [
3127
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
3128
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   22.6s\n",
3129
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   23.6s finished\n"
3130
     ]
3131
    },
3132
    {
3133
     "name": "stdout",
3134
     "output_type": "stream",
3135
     "text": [
3136
      "CIndex: 0.6430673440069903\n",
3137
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'Nstage']\n",
3138
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
3139
     ]
3140
    },
3141
    {
3142
     "name": "stderr",
3143
     "output_type": "stream",
3144
     "text": [
3145
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
3146
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   32.4s finished\n",
3147
      "/usr/local/lib/python3.6/dist-packages/sklearn/model_selection/_search.py:814: DeprecationWarning: The default of the `iid` parameter will change from True to False in version 0.22 and will be removed in 0.24. This will change numeric results when test-set sizes are unequal.\n",
3148
      "  DeprecationWarning)\n"
3149
     ]
3150
    },
3151
    {
3152
     "name": "stdout",
3153
     "output_type": "stream",
3154
     "text": [
3155
      "CIndex: 0.6378951731810535\n",
3156
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'age']\n",
3157
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
3158
     ]
3159
    },
3160
    {
3161
     "name": "stderr",
3162
     "output_type": "stream",
3163
     "text": [
3164
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
3165
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   25.0s finished\n"
3166
     ]
3167
    },
3168
    {
3169
     "name": "stdout",
3170
     "output_type": "stream",
3171
     "text": [
3172
      "CIndex: 0.6517340879834499\n",
3173
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'SourceDataset_l2']\n",
3174
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
3175
     ]
3176
    },
3177
    {
3178
     "name": "stderr",
3179
     "output_type": "stream",
3180
     "text": [
3181
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
3182
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   42.1s\n",
3183
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   44.1s finished\n"
3184
     ]
3185
    },
3186
    {
3187
     "name": "stdout",
3188
     "output_type": "stream",
3189
     "text": [
3190
      "CIndex: 0.6431448781383295\n",
3191
      "Selected new growing feature: original_glcm_Idn\n",
3192
      "\n",
3193
      "Growing 5-th feature...\n",
3194
      "\n",
3195
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_glcm_Idn', 'original_shape_SphericalDisproportion']\n",
3196
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
3197
     ]
3198
    },
3199
    {
3200
     "name": "stderr",
3201
     "output_type": "stream",
3202
     "text": [
3203
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
3204
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   18.6s\n",
3205
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   20.6s finished\n"
3206
     ]
3207
    },
3208
    {
3209
     "name": "stdout",
3210
     "output_type": "stream",
3211
     "text": [
3212
      "CIndex: 0.6310065562524546\n",
3213
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_glcm_Idn', 'original_firstorder_Kurtosis']\n",
3214
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
3215
     ]
3216
    },
3217
    {
3218
     "name": "stderr",
3219
     "output_type": "stream",
3220
     "text": [
3221
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
3222
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   42.7s finished\n",
3223
      "/usr/local/lib/python3.6/dist-packages/sklearn/model_selection/_search.py:814: DeprecationWarning: The default of the `iid` parameter will change from True to False in version 0.22 and will be removed in 0.24. This will change numeric results when test-set sizes are unequal.\n",
3224
      "  DeprecationWarning)\n"
3225
     ]
3226
    },
3227
    {
3228
     "name": "stdout",
3229
     "output_type": "stream",
3230
     "text": [
3231
      "CIndex: 0.6494533791094825\n",
3232
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_glcm_Idn', 'original_firstorder_MeanAbsoluteDeviation']\n",
3233
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
3234
     ]
3235
    },
3236
    {
3237
     "name": "stderr",
3238
     "output_type": "stream",
3239
     "text": [
3240
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
3241
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   44.9s\n",
3242
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   47.8s finished\n"
3243
     ]
3244
    },
3245
    {
3246
     "name": "stdout",
3247
     "output_type": "stream",
3248
     "text": [
3249
      "CIndex: 0.6464285622211989\n",
3250
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_glcm_Idn', 'original_firstorder_Minimum']\n",
3251
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
3252
     ]
3253
    },
3254
    {
3255
     "name": "stderr",
3256
     "output_type": "stream",
3257
     "text": [
3258
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
3259
      "/usr/local/lib/python3.6/dist-packages/joblib/externals/loky/process_executor.py:706: UserWarning: A worker stopped while some jobs were given to the executor. This can be caused by a too short worker timeout or by a memory leak.\n",
3260
      "  \"timeout or by a memory leak.\", UserWarning\n",
3261
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   54.1s finished\n"
3262
     ]
3263
    },
3264
    {
3265
     "name": "stdout",
3266
     "output_type": "stream",
3267
     "text": [
3268
      "CIndex: 0.6768835309749677\n",
3269
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_glcm_Idn', 'original_glcm_ClusterProminence']\n",
3270
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
3271
     ]
3272
    },
3273
    {
3274
     "name": "stderr",
3275
     "output_type": "stream",
3276
     "text": [
3277
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
3278
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   30.6s\n",
3279
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   33.1s finished\n"
3280
     ]
3281
    },
3282
    {
3283
     "name": "stdout",
3284
     "output_type": "stream",
3285
     "text": [
3286
      "CIndex: 0.6580263643962103\n",
3287
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_glcm_Idn', 'original_glcm_Contrast']\n",
3288
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
3289
     ]
3290
    },
3291
    {
3292
     "name": "stderr",
3293
     "output_type": "stream",
3294
     "text": [
3295
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
3296
      "/usr/local/lib/python3.6/dist-packages/joblib/externals/loky/process_executor.py:706: UserWarning: A worker stopped while some jobs were given to the executor. This can be caused by a too short worker timeout or by a memory leak.\n",
3297
      "  \"timeout or by a memory leak.\", UserWarning\n",
3298
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   34.4s finished\n"
3299
     ]
3300
    },
3301
    {
3302
     "name": "stdout",
3303
     "output_type": "stream",
3304
     "text": [
3305
      "CIndex: 0.6539834361080634\n",
3306
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_glcm_Idn', 'original_glcm_DifferenceEntropy']\n",
3307
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
3308
     ]
3309
    },
3310
    {
3311
     "name": "stderr",
3312
     "output_type": "stream",
3313
     "text": [
3314
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
3315
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   32.1s\n",
3316
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   32.6s finished\n"
3317
     ]
3318
    },
3319
    {
3320
     "name": "stdout",
3321
     "output_type": "stream",
3322
     "text": [
3323
      "CIndex: 0.6638638512888428\n",
3324
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_glcm_Idn', 'original_glcm_DifferenceAverage']\n",
3325
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
3326
     ]
3327
    },
3328
    {
3329
     "name": "stderr",
3330
     "output_type": "stream",
3331
     "text": [
3332
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
3333
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   28.3s finished\n"
3334
     ]
3335
    },
3336
    {
3337
     "name": "stdout",
3338
     "output_type": "stream",
3339
     "text": [
3340
      "CIndex: 0.6391755679773458\n",
3341
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_glcm_Idn', 'original_glcm_JointEnergy']\n",
3342
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
3343
     ]
3344
    },
3345
    {
3346
     "name": "stderr",
3347
     "output_type": "stream",
3348
     "text": [
3349
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
3350
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   26.9s finished\n",
3351
      "/usr/local/lib/python3.6/dist-packages/sklearn/model_selection/_search.py:814: DeprecationWarning: The default of the `iid` parameter will change from True to False in version 0.22 and will be removed in 0.24. This will change numeric results when test-set sizes are unequal.\n",
3352
      "  DeprecationWarning)\n"
3353
     ]
3354
    },
3355
    {
3356
     "name": "stdout",
3357
     "output_type": "stream",
3358
     "text": [
3359
      "CIndex: 0.6559024129658692\n",
3360
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_glcm_Idn', 'original_glcm_Id']\n",
3361
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
3362
     ]
3363
    },
3364
    {
3365
     "name": "stderr",
3366
     "output_type": "stream",
3367
     "text": [
3368
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
3369
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   57.3s finished\n"
3370
     ]
3371
    },
3372
    {
3373
     "name": "stdout",
3374
     "output_type": "stream",
3375
     "text": [
3376
      "CIndex: 0.6468773558379797\n",
3377
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_glcm_Idn', 'original_glcm_Idm']\n",
3378
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
3379
     ]
3380
    },
3381
    {
3382
     "name": "stderr",
3383
     "output_type": "stream",
3384
     "text": [
3385
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
3386
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   50.7s finished\n",
3387
      "/usr/local/lib/python3.6/dist-packages/sklearn/model_selection/_search.py:814: DeprecationWarning: The default of the `iid` parameter will change from True to False in version 0.22 and will be removed in 0.24. This will change numeric results when test-set sizes are unequal.\n",
3388
      "  DeprecationWarning)\n"
3389
     ]
3390
    },
3391
    {
3392
     "name": "stdout",
3393
     "output_type": "stream",
3394
     "text": [
3395
      "CIndex: 0.6585616400592593\n",
3396
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_glcm_Idn', 'original_glcm_Imc1']\n",
3397
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
3398
     ]
3399
    },
3400
    {
3401
     "name": "stderr",
3402
     "output_type": "stream",
3403
     "text": [
3404
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
3405
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:  1.1min\n",
3406
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:  1.1min finished\n",
3407
      "/usr/local/lib/python3.6/dist-packages/sklearn/model_selection/_search.py:814: DeprecationWarning: The default of the `iid` parameter will change from True to False in version 0.22 and will be removed in 0.24. This will change numeric results when test-set sizes are unequal.\n",
3408
      "  DeprecationWarning)\n"
3409
     ]
3410
    },
3411
    {
3412
     "name": "stdout",
3413
     "output_type": "stream",
3414
     "text": [
3415
      "CIndex: 0.645539947359713\n",
3416
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_glcm_Idn', 'original_glcm_Imc2']\n",
3417
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
3418
     ]
3419
    },
3420
    {
3421
     "name": "stderr",
3422
     "output_type": "stream",
3423
     "text": [
3424
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
3425
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   33.8s\n",
3426
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   41.9s finished\n"
3427
     ]
3428
    },
3429
    {
3430
     "name": "stdout",
3431
     "output_type": "stream",
3432
     "text": [
3433
      "CIndex: 0.6616367591560964\n",
3434
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_glcm_Idn', 'original_glcm_Idmn']\n",
3435
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
3436
     ]
3437
    },
3438
    {
3439
     "name": "stderr",
3440
     "output_type": "stream",
3441
     "text": [
3442
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
3443
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   46.4s finished\n"
3444
     ]
3445
    },
3446
    {
3447
     "name": "stdout",
3448
     "output_type": "stream",
3449
     "text": [
3450
      "CIndex: 0.6491923197133298\n",
3451
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_glcm_Idn', 'original_glrlm_ShortRunEmphasis']\n",
3452
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
3453
     ]
3454
    },
3455
    {
3456
     "name": "stderr",
3457
     "output_type": "stream",
3458
     "text": [
3459
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
3460
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   34.1s\n",
3461
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   34.7s finished\n"
3462
     ]
3463
    },
3464
    {
3465
     "name": "stdout",
3466
     "output_type": "stream",
3467
     "text": [
3468
      "CIndex: 0.6754888410009978\n",
3469
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_glcm_Idn', 'original_glrlm_LongRunEmphasis']\n",
3470
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
3471
     ]
3472
    },
3473
    {
3474
     "name": "stderr",
3475
     "output_type": "stream",
3476
     "text": [
3477
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
3478
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   33.7s\n",
3479
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   35.8s finished\n",
3480
      "/usr/local/lib/python3.6/dist-packages/sklearn/model_selection/_search.py:814: DeprecationWarning: The default of the `iid` parameter will change from True to False in version 0.22 and will be removed in 0.24. This will change numeric results when test-set sizes are unequal.\n",
3481
      "  DeprecationWarning)\n"
3482
     ]
3483
    },
3484
    {
3485
     "name": "stdout",
3486
     "output_type": "stream",
3487
     "text": [
3488
      "CIndex: 0.6432857629021708\n",
3489
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_glcm_Idn', 'original_glrlm_GrayLevelNonUniformity']\n",
3490
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
3491
     ]
3492
    },
3493
    {
3494
     "name": "stderr",
3495
     "output_type": "stream",
3496
     "text": [
3497
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
3498
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   36.8s\n",
3499
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   37.3s finished\n"
3500
     ]
3501
    },
3502
    {
3503
     "name": "stdout",
3504
     "output_type": "stream",
3505
     "text": [
3506
      "CIndex: 0.6406120648049114\n",
3507
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_glcm_Idn', 'original_glrlm_RunPercentage']\n",
3508
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
3509
     ]
3510
    },
3511
    {
3512
     "name": "stderr",
3513
     "output_type": "stream",
3514
     "text": [
3515
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
3516
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   26.7s\n",
3517
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   27.2s finished\n",
3518
      "/usr/local/lib/python3.6/dist-packages/sklearn/model_selection/_search.py:814: DeprecationWarning: The default of the `iid` parameter will change from True to False in version 0.22 and will be removed in 0.24. This will change numeric results when test-set sizes are unequal.\n",
3519
      "  DeprecationWarning)\n"
3520
     ]
3521
    },
3522
    {
3523
     "name": "stdout",
3524
     "output_type": "stream",
3525
     "text": [
3526
      "CIndex: 0.6132089644082993\n",
3527
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_glcm_Idn', 'original_glrlm_ShortRunLowGrayLevelEmphasis']\n",
3528
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
3529
     ]
3530
    },
3531
    {
3532
     "name": "stderr",
3533
     "output_type": "stream",
3534
     "text": [
3535
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
3536
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   49.6s\n",
3537
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:  1.0min finished\n"
3538
     ]
3539
    },
3540
    {
3541
     "name": "stdout",
3542
     "output_type": "stream",
3543
     "text": [
3544
      "CIndex: 0.6497606052618934\n",
3545
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_glcm_Idn', 'original_glrlm_LongRunLowGrayLevelEmphasis']\n",
3546
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
3547
     ]
3548
    },
3549
    {
3550
     "name": "stderr",
3551
     "output_type": "stream",
3552
     "text": [
3553
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
3554
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   34.9s\n",
3555
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   46.7s finished\n"
3556
     ]
3557
    },
3558
    {
3559
     "name": "stdout",
3560
     "output_type": "stream",
3561
     "text": [
3562
      "CIndex: 0.6475144213509665\n",
3563
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_glcm_Idn', 'original_glrlm_LongRunHighGrayLevelEmphasis']\n",
3564
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
3565
     ]
3566
    },
3567
    {
3568
     "name": "stderr",
3569
     "output_type": "stream",
3570
     "text": [
3571
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
3572
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   15.5s finished\n",
3573
      "/usr/local/lib/python3.6/dist-packages/sklearn/model_selection/_search.py:814: DeprecationWarning: The default of the `iid` parameter will change from True to False in version 0.22 and will be removed in 0.24. This will change numeric results when test-set sizes are unequal.\n",
3574
      "  DeprecationWarning)\n"
3575
     ]
3576
    },
3577
    {
3578
     "name": "stdout",
3579
     "output_type": "stream",
3580
     "text": [
3581
      "CIndex: 0.646330658501042\n",
3582
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_glcm_Idn', 'Nstage']\n",
3583
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
3584
     ]
3585
    },
3586
    {
3587
     "name": "stderr",
3588
     "output_type": "stream",
3589
     "text": [
3590
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
3591
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   14.9s\n",
3592
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   17.0s finished\n"
3593
     ]
3594
    },
3595
    {
3596
     "name": "stdout",
3597
     "output_type": "stream",
3598
     "text": [
3599
      "CIndex: 0.6508903567424602\n",
3600
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_glcm_Idn', 'age']\n",
3601
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
3602
     ]
3603
    },
3604
    {
3605
     "name": "stderr",
3606
     "output_type": "stream",
3607
     "text": [
3608
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
3609
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   41.4s\n",
3610
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   43.4s finished\n"
3611
     ]
3612
    },
3613
    {
3614
     "name": "stdout",
3615
     "output_type": "stream",
3616
     "text": [
3617
      "CIndex: 0.66089187937231\n",
3618
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_glcm_Idn', 'SourceDataset_l2']\n",
3619
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
3620
     ]
3621
    },
3622
    {
3623
     "name": "stderr",
3624
     "output_type": "stream",
3625
     "text": [
3626
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
3627
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   47.7s\n",
3628
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   48.6s finished\n"
3629
     ]
3630
    },
3631
    {
3632
     "name": "stdout",
3633
     "output_type": "stream",
3634
     "text": [
3635
      "CIndex: 0.6340649750707333\n",
3636
      "Selected new growing feature: original_firstorder_Minimum\n",
3637
      "\n",
3638
      "Growing 6-th feature...\n",
3639
      "\n",
3640
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_glcm_Idn', 'original_firstorder_Minimum', 'original_shape_SphericalDisproportion']\n",
3641
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
3642
     ]
3643
    },
3644
    {
3645
     "name": "stderr",
3646
     "output_type": "stream",
3647
     "text": [
3648
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
3649
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   29.6s\n",
3650
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   32.1s finished\n"
3651
     ]
3652
    },
3653
    {
3654
     "name": "stdout",
3655
     "output_type": "stream",
3656
     "text": [
3657
      "CIndex: 0.6438708963845137\n",
3658
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_glcm_Idn', 'original_firstorder_Minimum', 'original_firstorder_Kurtosis']\n",
3659
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
3660
     ]
3661
    },
3662
    {
3663
     "name": "stderr",
3664
     "output_type": "stream",
3665
     "text": [
3666
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
3667
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   38.3s\n",
3668
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   39.3s finished\n"
3669
     ]
3670
    },
3671
    {
3672
     "name": "stdout",
3673
     "output_type": "stream",
3674
     "text": [
3675
      "CIndex: 0.645671432525158\n",
3676
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_glcm_Idn', 'original_firstorder_Minimum', 'original_firstorder_MeanAbsoluteDeviation']\n",
3677
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
3678
     ]
3679
    },
3680
    {
3681
     "name": "stderr",
3682
     "output_type": "stream",
3683
     "text": [
3684
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
3685
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   47.7s\n",
3686
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   51.6s finished\n"
3687
     ]
3688
    },
3689
    {
3690
     "name": "stdout",
3691
     "output_type": "stream",
3692
     "text": [
3693
      "CIndex: 0.6402632647720633\n",
3694
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_glcm_Idn', 'original_firstorder_Minimum', 'original_glcm_ClusterProminence']\n",
3695
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
3696
     ]
3697
    },
3698
    {
3699
     "name": "stderr",
3700
     "output_type": "stream",
3701
     "text": [
3702
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
3703
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   58.2s\n",
3704
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   59.5s finished\n"
3705
     ]
3706
    },
3707
    {
3708
     "name": "stdout",
3709
     "output_type": "stream",
3710
     "text": [
3711
      "CIndex: 0.6543060458892206\n",
3712
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_glcm_Idn', 'original_firstorder_Minimum', 'original_glcm_Contrast']\n",
3713
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
3714
     ]
3715
    },
3716
    {
3717
     "name": "stderr",
3718
     "output_type": "stream",
3719
     "text": [
3720
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
3721
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   33.4s\n",
3722
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   35.8s finished\n"
3723
     ]
3724
    },
3725
    {
3726
     "name": "stdout",
3727
     "output_type": "stream",
3728
     "text": [
3729
      "CIndex: 0.6476542533226369\n",
3730
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_glcm_Idn', 'original_firstorder_Minimum', 'original_glcm_DifferenceEntropy']\n",
3731
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
3732
     ]
3733
    },
3734
    {
3735
     "name": "stderr",
3736
     "output_type": "stream",
3737
     "text": [
3738
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
3739
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   33.8s\n",
3740
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   34.5s finished\n"
3741
     ]
3742
    },
3743
    {
3744
     "name": "stdout",
3745
     "output_type": "stream",
3746
     "text": [
3747
      "CIndex: 0.672037433725073\n",
3748
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_glcm_Idn', 'original_firstorder_Minimum', 'original_glcm_DifferenceAverage']\n",
3749
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
3750
     ]
3751
    },
3752
    {
3753
     "name": "stderr",
3754
     "output_type": "stream",
3755
     "text": [
3756
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
3757
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   35.6s finished\n"
3758
     ]
3759
    },
3760
    {
3761
     "name": "stdout",
3762
     "output_type": "stream",
3763
     "text": [
3764
      "CIndex: 0.6346470434737717\n",
3765
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_glcm_Idn', 'original_firstorder_Minimum', 'original_glcm_JointEnergy']\n",
3766
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
3767
     ]
3768
    },
3769
    {
3770
     "name": "stderr",
3771
     "output_type": "stream",
3772
     "text": [
3773
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
3774
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   58.3s\n",
3775
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   59.3s finished\n",
3776
      "/usr/local/lib/python3.6/dist-packages/sklearn/model_selection/_search.py:814: DeprecationWarning: The default of the `iid` parameter will change from True to False in version 0.22 and will be removed in 0.24. This will change numeric results when test-set sizes are unequal.\n",
3777
      "  DeprecationWarning)\n"
3778
     ]
3779
    },
3780
    {
3781
     "name": "stdout",
3782
     "output_type": "stream",
3783
     "text": [
3784
      "CIndex: 0.6536999491911979\n",
3785
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_glcm_Idn', 'original_firstorder_Minimum', 'original_glcm_Id']\n",
3786
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
3787
     ]
3788
    },
3789
    {
3790
     "name": "stderr",
3791
     "output_type": "stream",
3792
     "text": [
3793
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
3794
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   33.2s\n",
3795
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   35.6s finished\n"
3796
     ]
3797
    },
3798
    {
3799
     "name": "stdout",
3800
     "output_type": "stream",
3801
     "text": [
3802
      "CIndex: 0.6519356155531815\n",
3803
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_glcm_Idn', 'original_firstorder_Minimum', 'original_glcm_Idm']\n",
3804
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
3805
     ]
3806
    },
3807
    {
3808
     "name": "stderr",
3809
     "output_type": "stream",
3810
     "text": [
3811
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
3812
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   43.0s\n",
3813
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   44.3s finished\n"
3814
     ]
3815
    },
3816
    {
3817
     "name": "stdout",
3818
     "output_type": "stream",
3819
     "text": [
3820
      "CIndex: 0.6359706632133694\n",
3821
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_glcm_Idn', 'original_firstorder_Minimum', 'original_glcm_Imc1']\n",
3822
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
3823
     ]
3824
    },
3825
    {
3826
     "name": "stderr",
3827
     "output_type": "stream",
3828
     "text": [
3829
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
3830
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   51.6s\n",
3831
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   60.0s finished\n",
3832
      "/usr/local/lib/python3.6/dist-packages/sklearn/model_selection/_search.py:814: DeprecationWarning: The default of the `iid` parameter will change from True to False in version 0.22 and will be removed in 0.24. This will change numeric results when test-set sizes are unequal.\n",
3833
      "  DeprecationWarning)\n"
3834
     ]
3835
    },
3836
    {
3837
     "name": "stdout",
3838
     "output_type": "stream",
3839
     "text": [
3840
      "CIndex: 0.6334542836741885\n",
3841
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_glcm_Idn', 'original_firstorder_Minimum', 'original_glcm_Imc2']\n",
3842
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
3843
     ]
3844
    },
3845
    {
3846
     "name": "stderr",
3847
     "output_type": "stream",
3848
     "text": [
3849
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
3850
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:  1.4min\n",
3851
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:  1.4min finished\n"
3852
     ]
3853
    },
3854
    {
3855
     "name": "stdout",
3856
     "output_type": "stream",
3857
     "text": [
3858
      "CIndex: 0.6597615421214905\n",
3859
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_glcm_Idn', 'original_firstorder_Minimum', 'original_glcm_Idmn']\n",
3860
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
3861
     ]
3862
    },
3863
    {
3864
     "name": "stderr",
3865
     "output_type": "stream",
3866
     "text": [
3867
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
3868
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   24.3s\n",
3869
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   28.0s finished\n"
3870
     ]
3871
    },
3872
    {
3873
     "name": "stdout",
3874
     "output_type": "stream",
3875
     "text": [
3876
      "CIndex: 0.6489937909340602\n",
3877
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_glcm_Idn', 'original_firstorder_Minimum', 'original_glrlm_ShortRunEmphasis']\n",
3878
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
3879
     ]
3880
    },
3881
    {
3882
     "name": "stderr",
3883
     "output_type": "stream",
3884
     "text": [
3885
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
3886
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   27.7s\n",
3887
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   29.3s finished\n"
3888
     ]
3889
    },
3890
    {
3891
     "name": "stdout",
3892
     "output_type": "stream",
3893
     "text": [
3894
      "CIndex: 0.6521456288269757\n",
3895
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_glcm_Idn', 'original_firstorder_Minimum', 'original_glrlm_LongRunEmphasis']\n",
3896
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
3897
     ]
3898
    },
3899
    {
3900
     "name": "stderr",
3901
     "output_type": "stream",
3902
     "text": [
3903
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
3904
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:  1.1min\n",
3905
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:  1.2min finished\n",
3906
      "/usr/local/lib/python3.6/dist-packages/sklearn/model_selection/_search.py:814: DeprecationWarning: The default of the `iid` parameter will change from True to False in version 0.22 and will be removed in 0.24. This will change numeric results when test-set sizes are unequal.\n",
3907
      "  DeprecationWarning)\n"
3908
     ]
3909
    },
3910
    {
3911
     "name": "stdout",
3912
     "output_type": "stream",
3913
     "text": [
3914
      "CIndex: 0.6285623148086928\n",
3915
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_glcm_Idn', 'original_firstorder_Minimum', 'original_glrlm_GrayLevelNonUniformity']\n",
3916
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
3917
     ]
3918
    },
3919
    {
3920
     "name": "stderr",
3921
     "output_type": "stream",
3922
     "text": [
3923
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
3924
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   32.6s\n",
3925
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   32.9s finished\n",
3926
      "/usr/local/lib/python3.6/dist-packages/sklearn/model_selection/_search.py:814: DeprecationWarning: The default of the `iid` parameter will change from True to False in version 0.22 and will be removed in 0.24. This will change numeric results when test-set sizes are unequal.\n",
3927
      "  DeprecationWarning)\n"
3928
     ]
3929
    },
3930
    {
3931
     "name": "stdout",
3932
     "output_type": "stream",
3933
     "text": [
3934
      "CIndex: 0.628459257836856\n",
3935
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_glcm_Idn', 'original_firstorder_Minimum', 'original_glrlm_RunPercentage']\n",
3936
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
3937
     ]
3938
    },
3939
    {
3940
     "name": "stderr",
3941
     "output_type": "stream",
3942
     "text": [
3943
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
3944
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:  1.0min\n",
3945
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:  1.1min finished\n",
3946
      "/usr/local/lib/python3.6/dist-packages/sklearn/model_selection/_search.py:814: DeprecationWarning: The default of the `iid` parameter will change from True to False in version 0.22 and will be removed in 0.24. This will change numeric results when test-set sizes are unequal.\n",
3947
      "  DeprecationWarning)\n"
3948
     ]
3949
    },
3950
    {
3951
     "name": "stdout",
3952
     "output_type": "stream",
3953
     "text": [
3954
      "CIndex: 0.6731385245399564\n",
3955
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_glcm_Idn', 'original_firstorder_Minimum', 'original_glrlm_ShortRunLowGrayLevelEmphasis']\n",
3956
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
3957
     ]
3958
    },
3959
    {
3960
     "name": "stderr",
3961
     "output_type": "stream",
3962
     "text": [
3963
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
3964
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   32.7s\n",
3965
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   37.8s finished\n"
3966
     ]
3967
    },
3968
    {
3969
     "name": "stdout",
3970
     "output_type": "stream",
3971
     "text": [
3972
      "CIndex: 0.6471695848249974\n",
3973
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_glcm_Idn', 'original_firstorder_Minimum', 'original_glrlm_LongRunLowGrayLevelEmphasis']\n",
3974
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
3975
     ]
3976
    },
3977
    {
3978
     "name": "stderr",
3979
     "output_type": "stream",
3980
     "text": [
3981
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
3982
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   48.2s\n",
3983
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   51.3s finished\n"
3984
     ]
3985
    },
3986
    {
3987
     "name": "stdout",
3988
     "output_type": "stream",
3989
     "text": [
3990
      "CIndex: 0.6322635348517441\n",
3991
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_glcm_Idn', 'original_firstorder_Minimum', 'original_glrlm_LongRunHighGrayLevelEmphasis']\n",
3992
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
3993
     ]
3994
    },
3995
    {
3996
     "name": "stderr",
3997
     "output_type": "stream",
3998
     "text": [
3999
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
4000
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   52.7s\n",
4001
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   57.6s finished\n"
4002
     ]
4003
    },
4004
    {
4005
     "name": "stdout",
4006
     "output_type": "stream",
4007
     "text": [
4008
      "CIndex: 0.6337943684314038\n",
4009
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_glcm_Idn', 'original_firstorder_Minimum', 'Nstage']\n",
4010
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
4011
     ]
4012
    },
4013
    {
4014
     "name": "stderr",
4015
     "output_type": "stream",
4016
     "text": [
4017
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
4018
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   46.5s\n",
4019
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   47.1s finished\n"
4020
     ]
4021
    },
4022
    {
4023
     "name": "stdout",
4024
     "output_type": "stream",
4025
     "text": [
4026
      "CIndex: 0.6590232673469685\n",
4027
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_glcm_Idn', 'original_firstorder_Minimum', 'age']\n",
4028
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
4029
     ]
4030
    },
4031
    {
4032
     "name": "stderr",
4033
     "output_type": "stream",
4034
     "text": [
4035
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
4036
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   36.3s\n",
4037
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   38.0s finished\n"
4038
     ]
4039
    },
4040
    {
4041
     "name": "stdout",
4042
     "output_type": "stream",
4043
     "text": [
4044
      "CIndex: 0.6497039777954979\n",
4045
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_glcm_Idn', 'original_firstorder_Minimum', 'SourceDataset_l2']\n",
4046
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
4047
     ]
4048
    },
4049
    {
4050
     "name": "stderr",
4051
     "output_type": "stream",
4052
     "text": [
4053
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
4054
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   25.0s\n",
4055
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   33.6s finished\n",
4056
      "/usr/local/lib/python3.6/dist-packages/sklearn/model_selection/_search.py:814: DeprecationWarning: The default of the `iid` parameter will change from True to False in version 0.22 and will be removed in 0.24. This will change numeric results when test-set sizes are unequal.\n",
4057
      "  DeprecationWarning)\n"
4058
     ]
4059
    },
4060
    {
4061
     "name": "stdout",
4062
     "output_type": "stream",
4063
     "text": [
4064
      "CIndex: 0.651655891929536\n",
4065
      "Selected new growing feature: original_glrlm_RunPercentage\n",
4066
      "\n",
4067
      "Growing 7-th feature...\n",
4068
      "\n",
4069
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_glcm_Idn', 'original_firstorder_Minimum', 'original_glrlm_RunPercentage', 'original_shape_SphericalDisproportion']\n",
4070
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
4071
     ]
4072
    },
4073
    {
4074
     "name": "stderr",
4075
     "output_type": "stream",
4076
     "text": [
4077
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
4078
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   38.4s\n",
4079
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   38.6s finished\n",
4080
      "/usr/local/lib/python3.6/dist-packages/sklearn/model_selection/_search.py:814: DeprecationWarning: The default of the `iid` parameter will change from True to False in version 0.22 and will be removed in 0.24. This will change numeric results when test-set sizes are unequal.\n",
4081
      "  DeprecationWarning)\n"
4082
     ]
4083
    },
4084
    {
4085
     "name": "stdout",
4086
     "output_type": "stream",
4087
     "text": [
4088
      "CIndex: 0.6505305517241264\n",
4089
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_glcm_Idn', 'original_firstorder_Minimum', 'original_glrlm_RunPercentage', 'original_firstorder_Kurtosis']\n",
4090
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
4091
     ]
4092
    },
4093
    {
4094
     "name": "stderr",
4095
     "output_type": "stream",
4096
     "text": [
4097
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
4098
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   34.3s\n",
4099
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   35.5s finished\n",
4100
      "/usr/local/lib/python3.6/dist-packages/sklearn/model_selection/_search.py:814: DeprecationWarning: The default of the `iid` parameter will change from True to False in version 0.22 and will be removed in 0.24. This will change numeric results when test-set sizes are unequal.\n",
4101
      "  DeprecationWarning)\n"
4102
     ]
4103
    },
4104
    {
4105
     "name": "stdout",
4106
     "output_type": "stream",
4107
     "text": [
4108
      "CIndex: 0.6523607601909773\n",
4109
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_glcm_Idn', 'original_firstorder_Minimum', 'original_glrlm_RunPercentage', 'original_firstorder_MeanAbsoluteDeviation']\n",
4110
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
4111
     ]
4112
    },
4113
    {
4114
     "name": "stderr",
4115
     "output_type": "stream",
4116
     "text": [
4117
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
4118
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:  1.1min\n",
4119
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:  1.3min finished\n",
4120
      "/usr/local/lib/python3.6/dist-packages/sklearn/model_selection/_search.py:814: DeprecationWarning: The default of the `iid` parameter will change from True to False in version 0.22 and will be removed in 0.24. This will change numeric results when test-set sizes are unequal.\n",
4121
      "  DeprecationWarning)\n"
4122
     ]
4123
    },
4124
    {
4125
     "name": "stdout",
4126
     "output_type": "stream",
4127
     "text": [
4128
      "CIndex: 0.6501609280569307\n",
4129
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_glcm_Idn', 'original_firstorder_Minimum', 'original_glrlm_RunPercentage', 'original_glcm_ClusterProminence']\n",
4130
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
4131
     ]
4132
    },
4133
    {
4134
     "name": "stderr",
4135
     "output_type": "stream",
4136
     "text": [
4137
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
4138
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   52.5s finished\n",
4139
      "/usr/local/lib/python3.6/dist-packages/sklearn/model_selection/_search.py:814: DeprecationWarning: The default of the `iid` parameter will change from True to False in version 0.22 and will be removed in 0.24. This will change numeric results when test-set sizes are unequal.\n",
4140
      "  DeprecationWarning)\n"
4141
     ]
4142
    },
4143
    {
4144
     "name": "stdout",
4145
     "output_type": "stream",
4146
     "text": [
4147
      "CIndex: 0.648809607252376\n",
4148
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_glcm_Idn', 'original_firstorder_Minimum', 'original_glrlm_RunPercentage', 'original_glcm_Contrast']\n",
4149
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
4150
     ]
4151
    },
4152
    {
4153
     "name": "stderr",
4154
     "output_type": "stream",
4155
     "text": [
4156
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
4157
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:  1.1min\n",
4158
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:  1.1min finished\n"
4159
     ]
4160
    },
4161
    {
4162
     "name": "stdout",
4163
     "output_type": "stream",
4164
     "text": [
4165
      "CIndex: 0.6540529011331655\n",
4166
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_glcm_Idn', 'original_firstorder_Minimum', 'original_glrlm_RunPercentage', 'original_glcm_DifferenceEntropy']\n",
4167
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
4168
     ]
4169
    },
4170
    {
4171
     "name": "stderr",
4172
     "output_type": "stream",
4173
     "text": [
4174
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
4175
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   37.2s\n",
4176
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   40.3s finished\n",
4177
      "/usr/local/lib/python3.6/dist-packages/sklearn/model_selection/_search.py:814: DeprecationWarning: The default of the `iid` parameter will change from True to False in version 0.22 and will be removed in 0.24. This will change numeric results when test-set sizes are unequal.\n",
4178
      "  DeprecationWarning)\n"
4179
     ]
4180
    },
4181
    {
4182
     "name": "stdout",
4183
     "output_type": "stream",
4184
     "text": [
4185
      "CIndex: 0.6510308477080453\n",
4186
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_glcm_Idn', 'original_firstorder_Minimum', 'original_glrlm_RunPercentage', 'original_glcm_DifferenceAverage']\n",
4187
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
4188
     ]
4189
    },
4190
    {
4191
     "name": "stderr",
4192
     "output_type": "stream",
4193
     "text": [
4194
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
4195
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   32.8s finished\n",
4196
      "/usr/local/lib/python3.6/dist-packages/sklearn/model_selection/_search.py:814: DeprecationWarning: The default of the `iid` parameter will change from True to False in version 0.22 and will be removed in 0.24. This will change numeric results when test-set sizes are unequal.\n",
4197
      "  DeprecationWarning)\n"
4198
     ]
4199
    },
4200
    {
4201
     "name": "stdout",
4202
     "output_type": "stream",
4203
     "text": [
4204
      "CIndex: 0.6415228355750101\n",
4205
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_glcm_Idn', 'original_firstorder_Minimum', 'original_glrlm_RunPercentage', 'original_glcm_JointEnergy']\n",
4206
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
4207
     ]
4208
    },
4209
    {
4210
     "name": "stderr",
4211
     "output_type": "stream",
4212
     "text": [
4213
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
4214
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   34.8s\n",
4215
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   36.2s finished\n",
4216
      "/usr/local/lib/python3.6/dist-packages/sklearn/model_selection/_search.py:814: DeprecationWarning: The default of the `iid` parameter will change from True to False in version 0.22 and will be removed in 0.24. This will change numeric results when test-set sizes are unequal.\n",
4217
      "  DeprecationWarning)\n"
4218
     ]
4219
    },
4220
    {
4221
     "name": "stdout",
4222
     "output_type": "stream",
4223
     "text": [
4224
      "CIndex: 0.6594980865590531\n",
4225
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_glcm_Idn', 'original_firstorder_Minimum', 'original_glrlm_RunPercentage', 'original_glcm_Id']\n",
4226
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
4227
     ]
4228
    },
4229
    {
4230
     "name": "stderr",
4231
     "output_type": "stream",
4232
     "text": [
4233
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
4234
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:  1.1min\n",
4235
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:  1.1min finished\n",
4236
      "/usr/local/lib/python3.6/dist-packages/sklearn/model_selection/_search.py:814: DeprecationWarning: The default of the `iid` parameter will change from True to False in version 0.22 and will be removed in 0.24. This will change numeric results when test-set sizes are unequal.\n",
4237
      "  DeprecationWarning)\n"
4238
     ]
4239
    },
4240
    {
4241
     "name": "stdout",
4242
     "output_type": "stream",
4243
     "text": [
4244
      "CIndex: 0.6444737052240825\n",
4245
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_glcm_Idn', 'original_firstorder_Minimum', 'original_glrlm_RunPercentage', 'original_glcm_Idm']\n",
4246
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
4247
     ]
4248
    },
4249
    {
4250
     "name": "stderr",
4251
     "output_type": "stream",
4252
     "text": [
4253
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
4254
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   47.0s finished\n",
4255
      "/usr/local/lib/python3.6/dist-packages/sklearn/model_selection/_search.py:814: DeprecationWarning: The default of the `iid` parameter will change from True to False in version 0.22 and will be removed in 0.24. This will change numeric results when test-set sizes are unequal.\n",
4256
      "  DeprecationWarning)\n"
4257
     ]
4258
    },
4259
    {
4260
     "name": "stdout",
4261
     "output_type": "stream",
4262
     "text": [
4263
      "CIndex: 0.6432613932042355\n",
4264
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_glcm_Idn', 'original_firstorder_Minimum', 'original_glrlm_RunPercentage', 'original_glcm_Imc1']\n",
4265
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
4266
     ]
4267
    },
4268
    {
4269
     "name": "stderr",
4270
     "output_type": "stream",
4271
     "text": [
4272
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
4273
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   21.8s\n",
4274
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   26.3s finished\n",
4275
      "/usr/local/lib/python3.6/dist-packages/sklearn/model_selection/_search.py:814: DeprecationWarning: The default of the `iid` parameter will change from True to False in version 0.22 and will be removed in 0.24. This will change numeric results when test-set sizes are unequal.\n",
4276
      "  DeprecationWarning)\n"
4277
     ]
4278
    },
4279
    {
4280
     "name": "stdout",
4281
     "output_type": "stream",
4282
     "text": [
4283
      "CIndex: 0.6621799997444924\n",
4284
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_glcm_Idn', 'original_firstorder_Minimum', 'original_glrlm_RunPercentage', 'original_glcm_Imc2']\n",
4285
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
4286
     ]
4287
    },
4288
    {
4289
     "name": "stderr",
4290
     "output_type": "stream",
4291
     "text": [
4292
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
4293
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   33.8s finished\n",
4294
      "/usr/local/lib/python3.6/dist-packages/sklearn/model_selection/_search.py:814: DeprecationWarning: The default of the `iid` parameter will change from True to False in version 0.22 and will be removed in 0.24. This will change numeric results when test-set sizes are unequal.\n",
4295
      "  DeprecationWarning)\n"
4296
     ]
4297
    },
4298
    {
4299
     "name": "stdout",
4300
     "output_type": "stream",
4301
     "text": [
4302
      "CIndex: 0.6391928815862651\n",
4303
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_glcm_Idn', 'original_firstorder_Minimum', 'original_glrlm_RunPercentage', 'original_glcm_Idmn']\n",
4304
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
4305
     ]
4306
    },
4307
    {
4308
     "name": "stderr",
4309
     "output_type": "stream",
4310
     "text": [
4311
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
4312
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   26.3s\n",
4313
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   28.4s finished\n",
4314
      "/usr/local/lib/python3.6/dist-packages/sklearn/model_selection/_search.py:814: DeprecationWarning: The default of the `iid` parameter will change from True to False in version 0.22 and will be removed in 0.24. This will change numeric results when test-set sizes are unequal.\n",
4315
      "  DeprecationWarning)\n"
4316
     ]
4317
    },
4318
    {
4319
     "name": "stdout",
4320
     "output_type": "stream",
4321
     "text": [
4322
      "CIndex: 0.6540348679580397\n",
4323
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_glcm_Idn', 'original_firstorder_Minimum', 'original_glrlm_RunPercentage', 'original_glrlm_ShortRunEmphasis']\n",
4324
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
4325
     ]
4326
    },
4327
    {
4328
     "name": "stderr",
4329
     "output_type": "stream",
4330
     "text": [
4331
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
4332
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   36.6s\n",
4333
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   44.8s finished\n",
4334
      "/usr/local/lib/python3.6/dist-packages/sklearn/model_selection/_search.py:814: DeprecationWarning: The default of the `iid` parameter will change from True to False in version 0.22 and will be removed in 0.24. This will change numeric results when test-set sizes are unequal.\n",
4335
      "  DeprecationWarning)\n"
4336
     ]
4337
    },
4338
    {
4339
     "name": "stdout",
4340
     "output_type": "stream",
4341
     "text": [
4342
      "CIndex: 0.6544075694457536\n",
4343
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_glcm_Idn', 'original_firstorder_Minimum', 'original_glrlm_RunPercentage', 'original_glrlm_LongRunEmphasis']\n",
4344
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
4345
     ]
4346
    },
4347
    {
4348
     "name": "stderr",
4349
     "output_type": "stream",
4350
     "text": [
4351
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
4352
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   39.3s\n",
4353
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   44.9s finished\n",
4354
      "/usr/local/lib/python3.6/dist-packages/sklearn/model_selection/_search.py:814: DeprecationWarning: The default of the `iid` parameter will change from True to False in version 0.22 and will be removed in 0.24. This will change numeric results when test-set sizes are unequal.\n",
4355
      "  DeprecationWarning)\n"
4356
     ]
4357
    },
4358
    {
4359
     "name": "stdout",
4360
     "output_type": "stream",
4361
     "text": [
4362
      "CIndex: 0.6570961073232571\n",
4363
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_glcm_Idn', 'original_firstorder_Minimum', 'original_glrlm_RunPercentage', 'original_glrlm_GrayLevelNonUniformity']\n",
4364
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
4365
     ]
4366
    },
4367
    {
4368
     "name": "stderr",
4369
     "output_type": "stream",
4370
     "text": [
4371
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
4372
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   35.6s\n",
4373
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   36.5s finished\n"
4374
     ]
4375
    },
4376
    {
4377
     "name": "stdout",
4378
     "output_type": "stream",
4379
     "text": [
4380
      "CIndex: 0.6658012216968485\n",
4381
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_glcm_Idn', 'original_firstorder_Minimum', 'original_glrlm_RunPercentage', 'original_glrlm_ShortRunLowGrayLevelEmphasis']\n",
4382
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
4383
     ]
4384
    },
4385
    {
4386
     "name": "stderr",
4387
     "output_type": "stream",
4388
     "text": [
4389
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
4390
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   54.5s\n",
4391
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   56.0s finished\n"
4392
     ]
4393
    },
4394
    {
4395
     "name": "stdout",
4396
     "output_type": "stream",
4397
     "text": [
4398
      "CIndex: 0.6555960244048159\n",
4399
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_glcm_Idn', 'original_firstorder_Minimum', 'original_glrlm_RunPercentage', 'original_glrlm_LongRunLowGrayLevelEmphasis']\n",
4400
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
4401
     ]
4402
    },
4403
    {
4404
     "name": "stderr",
4405
     "output_type": "stream",
4406
     "text": [
4407
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
4408
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   52.9s\n",
4409
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   55.1s finished\n"
4410
     ]
4411
    },
4412
    {
4413
     "name": "stdout",
4414
     "output_type": "stream",
4415
     "text": [
4416
      "CIndex: 0.6538551233767697\n",
4417
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_glcm_Idn', 'original_firstorder_Minimum', 'original_glrlm_RunPercentage', 'original_glrlm_LongRunHighGrayLevelEmphasis']\n",
4418
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
4419
     ]
4420
    },
4421
    {
4422
     "name": "stderr",
4423
     "output_type": "stream",
4424
     "text": [
4425
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
4426
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   40.3s finished\n",
4427
      "/usr/local/lib/python3.6/dist-packages/sklearn/model_selection/_search.py:814: DeprecationWarning: The default of the `iid` parameter will change from True to False in version 0.22 and will be removed in 0.24. This will change numeric results when test-set sizes are unequal.\n",
4428
      "  DeprecationWarning)\n"
4429
     ]
4430
    },
4431
    {
4432
     "name": "stdout",
4433
     "output_type": "stream",
4434
     "text": [
4435
      "CIndex: 0.6606809777776571\n",
4436
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_glcm_Idn', 'original_firstorder_Minimum', 'original_glrlm_RunPercentage', 'Nstage']\n",
4437
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
4438
     ]
4439
    },
4440
    {
4441
     "name": "stderr",
4442
     "output_type": "stream",
4443
     "text": [
4444
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
4445
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   19.4s finished\n",
4446
      "/usr/local/lib/python3.6/dist-packages/sklearn/model_selection/_search.py:814: DeprecationWarning: The default of the `iid` parameter will change from True to False in version 0.22 and will be removed in 0.24. This will change numeric results when test-set sizes are unequal.\n",
4447
      "  DeprecationWarning)\n"
4448
     ]
4449
    },
4450
    {
4451
     "name": "stdout",
4452
     "output_type": "stream",
4453
     "text": [
4454
      "CIndex: 0.6331919375790542\n",
4455
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_glcm_Idn', 'original_firstorder_Minimum', 'original_glrlm_RunPercentage', 'age']\n",
4456
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
4457
     ]
4458
    },
4459
    {
4460
     "name": "stderr",
4461
     "output_type": "stream",
4462
     "text": [
4463
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
4464
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   22.4s finished\n"
4465
     ]
4466
    },
4467
    {
4468
     "name": "stdout",
4469
     "output_type": "stream",
4470
     "text": [
4471
      "CIndex: 0.6541487783084814\n",
4472
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_glcm_Idn', 'original_firstorder_Minimum', 'original_glrlm_RunPercentage', 'SourceDataset_l2']\n",
4473
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
4474
     ]
4475
    },
4476
    {
4477
     "name": "stderr",
4478
     "output_type": "stream",
4479
     "text": [
4480
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
4481
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   40.8s\n",
4482
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   42.6s finished\n",
4483
      "/usr/local/lib/python3.6/dist-packages/sklearn/model_selection/_search.py:814: DeprecationWarning: The default of the `iid` parameter will change from True to False in version 0.22 and will be removed in 0.24. This will change numeric results when test-set sizes are unequal.\n",
4484
      "  DeprecationWarning)\n"
4485
     ]
4486
    },
4487
    {
4488
     "name": "stdout",
4489
     "output_type": "stream",
4490
     "text": [
4491
      "CIndex: 0.6543166935201571\n",
4492
      "Selected new growing feature: original_glrlm_GrayLevelNonUniformity\n",
4493
      "\n",
4494
      "Growing 8-th feature...\n",
4495
      "\n",
4496
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_glcm_Idn', 'original_firstorder_Minimum', 'original_glrlm_RunPercentage', 'original_glrlm_GrayLevelNonUniformity', 'original_shape_SphericalDisproportion']\n",
4497
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
4498
     ]
4499
    },
4500
    {
4501
     "name": "stderr",
4502
     "output_type": "stream",
4503
     "text": [
4504
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
4505
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   18.3s finished\n"
4506
     ]
4507
    },
4508
    {
4509
     "name": "stdout",
4510
     "output_type": "stream",
4511
     "text": [
4512
      "CIndex: 0.6435880292834651\n",
4513
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_glcm_Idn', 'original_firstorder_Minimum', 'original_glrlm_RunPercentage', 'original_glrlm_GrayLevelNonUniformity', 'original_firstorder_Kurtosis']\n",
4514
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
4515
     ]
4516
    },
4517
    {
4518
     "name": "stderr",
4519
     "output_type": "stream",
4520
     "text": [
4521
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
4522
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   43.8s\n",
4523
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   53.6s finished\n"
4524
     ]
4525
    },
4526
    {
4527
     "name": "stdout",
4528
     "output_type": "stream",
4529
     "text": [
4530
      "CIndex: 0.6528156366689855\n",
4531
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_glcm_Idn', 'original_firstorder_Minimum', 'original_glrlm_RunPercentage', 'original_glrlm_GrayLevelNonUniformity', 'original_firstorder_MeanAbsoluteDeviation']\n",
4532
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
4533
     ]
4534
    },
4535
    {
4536
     "name": "stderr",
4537
     "output_type": "stream",
4538
     "text": [
4539
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
4540
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   31.0s finished\n",
4541
      "/usr/local/lib/python3.6/dist-packages/sklearn/model_selection/_search.py:814: DeprecationWarning: The default of the `iid` parameter will change from True to False in version 0.22 and will be removed in 0.24. This will change numeric results when test-set sizes are unequal.\n",
4542
      "  DeprecationWarning)\n"
4543
     ]
4544
    },
4545
    {
4546
     "name": "stdout",
4547
     "output_type": "stream",
4548
     "text": [
4549
      "CIndex: 0.6499040071742639\n",
4550
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_glcm_Idn', 'original_firstorder_Minimum', 'original_glrlm_RunPercentage', 'original_glrlm_GrayLevelNonUniformity', 'original_glcm_ClusterProminence']\n",
4551
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
4552
     ]
4553
    },
4554
    {
4555
     "name": "stderr",
4556
     "output_type": "stream",
4557
     "text": [
4558
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
4559
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   43.8s finished\n"
4560
     ]
4561
    },
4562
    {
4563
     "name": "stdout",
4564
     "output_type": "stream",
4565
     "text": [
4566
      "CIndex: 0.6540521565561755\n",
4567
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_glcm_Idn', 'original_firstorder_Minimum', 'original_glrlm_RunPercentage', 'original_glrlm_GrayLevelNonUniformity', 'original_glcm_Contrast']\n",
4568
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
4569
     ]
4570
    },
4571
    {
4572
     "name": "stderr",
4573
     "output_type": "stream",
4574
     "text": [
4575
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
4576
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:  1.1min\n",
4577
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:  1.2min finished\n"
4578
     ]
4579
    },
4580
    {
4581
     "name": "stdout",
4582
     "output_type": "stream",
4583
     "text": [
4584
      "CIndex: 0.6447869613018444\n",
4585
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_glcm_Idn', 'original_firstorder_Minimum', 'original_glrlm_RunPercentage', 'original_glrlm_GrayLevelNonUniformity', 'original_glcm_DifferenceEntropy']\n",
4586
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
4587
     ]
4588
    },
4589
    {
4590
     "name": "stderr",
4591
     "output_type": "stream",
4592
     "text": [
4593
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
4594
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   45.2s\n",
4595
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   46.7s finished\n"
4596
     ]
4597
    },
4598
    {
4599
     "name": "stdout",
4600
     "output_type": "stream",
4601
     "text": [
4602
      "CIndex: 0.6431069312892038\n",
4603
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_glcm_Idn', 'original_firstorder_Minimum', 'original_glrlm_RunPercentage', 'original_glrlm_GrayLevelNonUniformity', 'original_glcm_DifferenceAverage']\n",
4604
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
4605
     ]
4606
    },
4607
    {
4608
     "name": "stderr",
4609
     "output_type": "stream",
4610
     "text": [
4611
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
4612
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:  1.0min\n",
4613
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:  1.2min finished\n"
4614
     ]
4615
    },
4616
    {
4617
     "name": "stdout",
4618
     "output_type": "stream",
4619
     "text": [
4620
      "CIndex: 0.6431636221789764\n",
4621
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_glcm_Idn', 'original_firstorder_Minimum', 'original_glrlm_RunPercentage', 'original_glrlm_GrayLevelNonUniformity', 'original_glcm_JointEnergy']\n",
4622
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
4623
     ]
4624
    },
4625
    {
4626
     "name": "stderr",
4627
     "output_type": "stream",
4628
     "text": [
4629
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
4630
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   38.5s\n",
4631
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   39.6s finished\n",
4632
      "/usr/local/lib/python3.6/dist-packages/sklearn/model_selection/_search.py:814: DeprecationWarning: The default of the `iid` parameter will change from True to False in version 0.22 and will be removed in 0.24. This will change numeric results when test-set sizes are unequal.\n",
4633
      "  DeprecationWarning)\n"
4634
     ]
4635
    },
4636
    {
4637
     "name": "stdout",
4638
     "output_type": "stream",
4639
     "text": [
4640
      "CIndex: 0.6554684695995565\n",
4641
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_glcm_Idn', 'original_firstorder_Minimum', 'original_glrlm_RunPercentage', 'original_glrlm_GrayLevelNonUniformity', 'original_glcm_Id']\n",
4642
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
4643
     ]
4644
    },
4645
    {
4646
     "name": "stderr",
4647
     "output_type": "stream",
4648
     "text": [
4649
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
4650
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   40.5s\n",
4651
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   40.8s finished\n",
4652
      "/usr/local/lib/python3.6/dist-packages/sklearn/model_selection/_search.py:814: DeprecationWarning: The default of the `iid` parameter will change from True to False in version 0.22 and will be removed in 0.24. This will change numeric results when test-set sizes are unequal.\n",
4653
      "  DeprecationWarning)\n"
4654
     ]
4655
    },
4656
    {
4657
     "name": "stdout",
4658
     "output_type": "stream",
4659
     "text": [
4660
      "CIndex: 0.6497335647100754\n",
4661
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_glcm_Idn', 'original_firstorder_Minimum', 'original_glrlm_RunPercentage', 'original_glrlm_GrayLevelNonUniformity', 'original_glcm_Idm']\n",
4662
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
4663
     ]
4664
    },
4665
    {
4666
     "name": "stderr",
4667
     "output_type": "stream",
4668
     "text": [
4669
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
4670
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:  1.1min\n",
4671
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:  1.1min finished\n",
4672
      "/usr/local/lib/python3.6/dist-packages/sklearn/model_selection/_search.py:814: DeprecationWarning: The default of the `iid` parameter will change from True to False in version 0.22 and will be removed in 0.24. This will change numeric results when test-set sizes are unequal.\n",
4673
      "  DeprecationWarning)\n"
4674
     ]
4675
    },
4676
    {
4677
     "name": "stdout",
4678
     "output_type": "stream",
4679
     "text": [
4680
      "CIndex: 0.641291929789704\n",
4681
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_glcm_Idn', 'original_firstorder_Minimum', 'original_glrlm_RunPercentage', 'original_glrlm_GrayLevelNonUniformity', 'original_glcm_Imc1']\n",
4682
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
4683
     ]
4684
    },
4685
    {
4686
     "name": "stderr",
4687
     "output_type": "stream",
4688
     "text": [
4689
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
4690
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   18.5s\n",
4691
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   25.0s finished\n",
4692
      "/usr/local/lib/python3.6/dist-packages/sklearn/model_selection/_search.py:814: DeprecationWarning: The default of the `iid` parameter will change from True to False in version 0.22 and will be removed in 0.24. This will change numeric results when test-set sizes are unequal.\n",
4693
      "  DeprecationWarning)\n"
4694
     ]
4695
    },
4696
    {
4697
     "name": "stdout",
4698
     "output_type": "stream",
4699
     "text": [
4700
      "CIndex: 0.6622940561202497\n",
4701
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_glcm_Idn', 'original_firstorder_Minimum', 'original_glrlm_RunPercentage', 'original_glrlm_GrayLevelNonUniformity', 'original_glcm_Imc2']\n",
4702
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
4703
     ]
4704
    },
4705
    {
4706
     "name": "stderr",
4707
     "output_type": "stream",
4708
     "text": [
4709
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
4710
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   44.9s\n",
4711
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   50.8s finished\n",
4712
      "/usr/local/lib/python3.6/dist-packages/sklearn/model_selection/_search.py:814: DeprecationWarning: The default of the `iid` parameter will change from True to False in version 0.22 and will be removed in 0.24. This will change numeric results when test-set sizes are unequal.\n",
4713
      "  DeprecationWarning)\n"
4714
     ]
4715
    },
4716
    {
4717
     "name": "stdout",
4718
     "output_type": "stream",
4719
     "text": [
4720
      "CIndex: 0.6481422502571381\n",
4721
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_glcm_Idn', 'original_firstorder_Minimum', 'original_glrlm_RunPercentage', 'original_glrlm_GrayLevelNonUniformity', 'original_glcm_Idmn']\n",
4722
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
4723
     ]
4724
    },
4725
    {
4726
     "name": "stderr",
4727
     "output_type": "stream",
4728
     "text": [
4729
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
4730
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   51.1s\n",
4731
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:  1.0min finished\n",
4732
      "/usr/local/lib/python3.6/dist-packages/sklearn/model_selection/_search.py:814: DeprecationWarning: The default of the `iid` parameter will change from True to False in version 0.22 and will be removed in 0.24. This will change numeric results when test-set sizes are unequal.\n",
4733
      "  DeprecationWarning)\n"
4734
     ]
4735
    },
4736
    {
4737
     "name": "stdout",
4738
     "output_type": "stream",
4739
     "text": [
4740
      "CIndex: 0.6743567424996522\n",
4741
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_glcm_Idn', 'original_firstorder_Minimum', 'original_glrlm_RunPercentage', 'original_glrlm_GrayLevelNonUniformity', 'original_glrlm_ShortRunEmphasis']\n",
4742
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
4743
     ]
4744
    },
4745
    {
4746
     "name": "stderr",
4747
     "output_type": "stream",
4748
     "text": [
4749
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
4750
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   41.4s\n",
4751
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   46.9s finished\n"
4752
     ]
4753
    },
4754
    {
4755
     "name": "stdout",
4756
     "output_type": "stream",
4757
     "text": [
4758
      "CIndex: 0.6536824645175667\n",
4759
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_glcm_Idn', 'original_firstorder_Minimum', 'original_glrlm_RunPercentage', 'original_glrlm_GrayLevelNonUniformity', 'original_glrlm_LongRunEmphasis']\n",
4760
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
4761
     ]
4762
    },
4763
    {
4764
     "name": "stderr",
4765
     "output_type": "stream",
4766
     "text": [
4767
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
4768
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:  1.3min\n",
4769
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:  1.3min finished\n",
4770
      "/usr/local/lib/python3.6/dist-packages/sklearn/model_selection/_search.py:814: DeprecationWarning: The default of the `iid` parameter will change from True to False in version 0.22 and will be removed in 0.24. This will change numeric results when test-set sizes are unequal.\n",
4771
      "  DeprecationWarning)\n"
4772
     ]
4773
    },
4774
    {
4775
     "name": "stdout",
4776
     "output_type": "stream",
4777
     "text": [
4778
      "CIndex: 0.6352841528699844\n",
4779
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_glcm_Idn', 'original_firstorder_Minimum', 'original_glrlm_RunPercentage', 'original_glrlm_GrayLevelNonUniformity', 'original_glrlm_ShortRunLowGrayLevelEmphasis']\n",
4780
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
4781
     ]
4782
    },
4783
    {
4784
     "name": "stderr",
4785
     "output_type": "stream",
4786
     "text": [
4787
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
4788
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   58.5s\n",
4789
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:  1.0min finished\n"
4790
     ]
4791
    },
4792
    {
4793
     "name": "stdout",
4794
     "output_type": "stream",
4795
     "text": [
4796
      "CIndex: 0.6553850386819328\n",
4797
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_glcm_Idn', 'original_firstorder_Minimum', 'original_glrlm_RunPercentage', 'original_glrlm_GrayLevelNonUniformity', 'original_glrlm_LongRunLowGrayLevelEmphasis']\n",
4798
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
4799
     ]
4800
    },
4801
    {
4802
     "name": "stderr",
4803
     "output_type": "stream",
4804
     "text": [
4805
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
4806
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   37.5s\n",
4807
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   40.6s finished\n",
4808
      "/usr/local/lib/python3.6/dist-packages/sklearn/model_selection/_search.py:814: DeprecationWarning: The default of the `iid` parameter will change from True to False in version 0.22 and will be removed in 0.24. This will change numeric results when test-set sizes are unequal.\n",
4809
      "  DeprecationWarning)\n"
4810
     ]
4811
    },
4812
    {
4813
     "name": "stdout",
4814
     "output_type": "stream",
4815
     "text": [
4816
      "CIndex: 0.6538759521301886\n",
4817
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_glcm_Idn', 'original_firstorder_Minimum', 'original_glrlm_RunPercentage', 'original_glrlm_GrayLevelNonUniformity', 'original_glrlm_LongRunHighGrayLevelEmphasis']\n",
4818
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
4819
     ]
4820
    },
4821
    {
4822
     "name": "stderr",
4823
     "output_type": "stream",
4824
     "text": [
4825
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
4826
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   45.9s\n",
4827
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   46.6s finished\n",
4828
      "/usr/local/lib/python3.6/dist-packages/sklearn/model_selection/_search.py:814: DeprecationWarning: The default of the `iid` parameter will change from True to False in version 0.22 and will be removed in 0.24. This will change numeric results when test-set sizes are unequal.\n",
4829
      "  DeprecationWarning)\n"
4830
     ]
4831
    },
4832
    {
4833
     "name": "stdout",
4834
     "output_type": "stream",
4835
     "text": [
4836
      "CIndex: 0.6596913962687563\n",
4837
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_glcm_Idn', 'original_firstorder_Minimum', 'original_glrlm_RunPercentage', 'original_glrlm_GrayLevelNonUniformity', 'Nstage']\n",
4838
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
4839
     ]
4840
    },
4841
    {
4842
     "name": "stderr",
4843
     "output_type": "stream",
4844
     "text": [
4845
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
4846
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   39.4s\n",
4847
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   41.2s finished\n"
4848
     ]
4849
    },
4850
    {
4851
     "name": "stdout",
4852
     "output_type": "stream",
4853
     "text": [
4854
      "CIndex: 0.6406058822454301\n",
4855
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_glcm_Idn', 'original_firstorder_Minimum', 'original_glrlm_RunPercentage', 'original_glrlm_GrayLevelNonUniformity', 'age']\n",
4856
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
4857
     ]
4858
    },
4859
    {
4860
     "name": "stderr",
4861
     "output_type": "stream",
4862
     "text": [
4863
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
4864
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   52.3s\n",
4865
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   57.6s finished\n"
4866
     ]
4867
    },
4868
    {
4869
     "name": "stdout",
4870
     "output_type": "stream",
4871
     "text": [
4872
      "CIndex: 0.6492294254906092\n",
4873
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_glcm_Idn', 'original_firstorder_Minimum', 'original_glrlm_RunPercentage', 'original_glrlm_GrayLevelNonUniformity', 'SourceDataset_l2']\n",
4874
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
4875
     ]
4876
    },
4877
    {
4878
     "name": "stderr",
4879
     "output_type": "stream",
4880
     "text": [
4881
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
4882
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   30.6s\n",
4883
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   32.3s finished\n"
4884
     ]
4885
    },
4886
    {
4887
     "name": "stdout",
4888
     "output_type": "stream",
4889
     "text": [
4890
      "CIndex: 0.6501886633714034\n",
4891
      "Selected new growing feature: original_glcm_Idmn\n",
4892
      "\n",
4893
      "Growing 9-th feature...\n",
4894
      "\n",
4895
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_glcm_Idn', 'original_firstorder_Minimum', 'original_glrlm_RunPercentage', 'original_glrlm_GrayLevelNonUniformity', 'original_glcm_Idmn', 'original_shape_SphericalDisproportion']\n",
4896
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
4897
     ]
4898
    },
4899
    {
4900
     "name": "stderr",
4901
     "output_type": "stream",
4902
     "text": [
4903
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
4904
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:  1.6min\n",
4905
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:  1.6min finished\n",
4906
      "/usr/local/lib/python3.6/dist-packages/sklearn/model_selection/_search.py:814: DeprecationWarning: The default of the `iid` parameter will change from True to False in version 0.22 and will be removed in 0.24. This will change numeric results when test-set sizes are unequal.\n",
4907
      "  DeprecationWarning)\n"
4908
     ]
4909
    },
4910
    {
4911
     "name": "stdout",
4912
     "output_type": "stream",
4913
     "text": [
4914
      "CIndex: 0.6408920808089033\n",
4915
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_glcm_Idn', 'original_firstorder_Minimum', 'original_glrlm_RunPercentage', 'original_glrlm_GrayLevelNonUniformity', 'original_glcm_Idmn', 'original_firstorder_Kurtosis']\n",
4916
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
4917
     ]
4918
    },
4919
    {
4920
     "name": "stderr",
4921
     "output_type": "stream",
4922
     "text": [
4923
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
4924
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   46.1s\n",
4925
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   51.7s finished\n"
4926
     ]
4927
    },
4928
    {
4929
     "name": "stdout",
4930
     "output_type": "stream",
4931
     "text": [
4932
      "CIndex: 0.6454697068969659\n",
4933
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_glcm_Idn', 'original_firstorder_Minimum', 'original_glrlm_RunPercentage', 'original_glrlm_GrayLevelNonUniformity', 'original_glcm_Idmn', 'original_firstorder_MeanAbsoluteDeviation']\n",
4934
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
4935
     ]
4936
    },
4937
    {
4938
     "name": "stderr",
4939
     "output_type": "stream",
4940
     "text": [
4941
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
4942
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:  1.1min\n",
4943
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:  1.4min finished\n"
4944
     ]
4945
    },
4946
    {
4947
     "name": "stdout",
4948
     "output_type": "stream",
4949
     "text": [
4950
      "CIndex: 0.6508953130253752\n",
4951
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_glcm_Idn', 'original_firstorder_Minimum', 'original_glrlm_RunPercentage', 'original_glrlm_GrayLevelNonUniformity', 'original_glcm_Idmn', 'original_glcm_ClusterProminence']\n",
4952
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
4953
     ]
4954
    },
4955
    {
4956
     "name": "stderr",
4957
     "output_type": "stream",
4958
     "text": [
4959
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
4960
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   49.0s\n",
4961
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   51.0s finished\n"
4962
     ]
4963
    },
4964
    {
4965
     "name": "stdout",
4966
     "output_type": "stream",
4967
     "text": [
4968
      "CIndex: 0.651538948742043\n",
4969
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_glcm_Idn', 'original_firstorder_Minimum', 'original_glrlm_RunPercentage', 'original_glrlm_GrayLevelNonUniformity', 'original_glcm_Idmn', 'original_glcm_Contrast']\n",
4970
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
4971
     ]
4972
    },
4973
    {
4974
     "name": "stderr",
4975
     "output_type": "stream",
4976
     "text": [
4977
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
4978
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:  1.2min\n",
4979
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:  1.3min finished\n",
4980
      "/usr/local/lib/python3.6/dist-packages/sklearn/model_selection/_search.py:814: DeprecationWarning: The default of the `iid` parameter will change from True to False in version 0.22 and will be removed in 0.24. This will change numeric results when test-set sizes are unequal.\n",
4981
      "  DeprecationWarning)\n"
4982
     ]
4983
    },
4984
    {
4985
     "name": "stdout",
4986
     "output_type": "stream",
4987
     "text": [
4988
      "CIndex: 0.6465475773936328\n",
4989
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_glcm_Idn', 'original_firstorder_Minimum', 'original_glrlm_RunPercentage', 'original_glrlm_GrayLevelNonUniformity', 'original_glcm_Idmn', 'original_glcm_DifferenceEntropy']\n",
4990
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
4991
     ]
4992
    },
4993
    {
4994
     "name": "stderr",
4995
     "output_type": "stream",
4996
     "text": [
4997
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
4998
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   49.2s finished\n"
4999
     ]
5000
    },
5001
    {
5002
     "name": "stdout",
5003
     "output_type": "stream",
5004
     "text": [
5005
      "CIndex: 0.6490130452837637\n",
5006
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_glcm_Idn', 'original_firstorder_Minimum', 'original_glrlm_RunPercentage', 'original_glrlm_GrayLevelNonUniformity', 'original_glcm_Idmn', 'original_glcm_DifferenceAverage']\n",
5007
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
5008
     ]
5009
    },
5010
    {
5011
     "name": "stderr",
5012
     "output_type": "stream",
5013
     "text": [
5014
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
5015
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:  1.1min\n",
5016
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:  1.2min finished\n",
5017
      "/usr/local/lib/python3.6/dist-packages/sklearn/model_selection/_search.py:814: DeprecationWarning: The default of the `iid` parameter will change from True to False in version 0.22 and will be removed in 0.24. This will change numeric results when test-set sizes are unequal.\n",
5018
      "  DeprecationWarning)\n"
5019
     ]
5020
    },
5021
    {
5022
     "name": "stdout",
5023
     "output_type": "stream",
5024
     "text": [
5025
      "CIndex: 0.6521799097933643\n",
5026
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_glcm_Idn', 'original_firstorder_Minimum', 'original_glrlm_RunPercentage', 'original_glrlm_GrayLevelNonUniformity', 'original_glcm_Idmn', 'original_glcm_JointEnergy']\n",
5027
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
5028
     ]
5029
    },
5030
    {
5031
     "name": "stderr",
5032
     "output_type": "stream",
5033
     "text": [
5034
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
5035
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   24.7s\n",
5036
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   27.1s finished\n",
5037
      "/usr/local/lib/python3.6/dist-packages/sklearn/model_selection/_search.py:814: DeprecationWarning: The default of the `iid` parameter will change from True to False in version 0.22 and will be removed in 0.24. This will change numeric results when test-set sizes are unequal.\n",
5038
      "  DeprecationWarning)\n"
5039
     ]
5040
    },
5041
    {
5042
     "name": "stdout",
5043
     "output_type": "stream",
5044
     "text": [
5045
      "CIndex: 0.6564178000351939\n",
5046
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_glcm_Idn', 'original_firstorder_Minimum', 'original_glrlm_RunPercentage', 'original_glrlm_GrayLevelNonUniformity', 'original_glcm_Idmn', 'original_glcm_Id']\n",
5047
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
5048
     ]
5049
    },
5050
    {
5051
     "name": "stderr",
5052
     "output_type": "stream",
5053
     "text": [
5054
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
5055
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   37.4s\n",
5056
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   38.7s finished\n",
5057
      "/usr/local/lib/python3.6/dist-packages/sklearn/model_selection/_search.py:814: DeprecationWarning: The default of the `iid` parameter will change from True to False in version 0.22 and will be removed in 0.24. This will change numeric results when test-set sizes are unequal.\n",
5058
      "  DeprecationWarning)\n"
5059
     ]
5060
    },
5061
    {
5062
     "name": "stdout",
5063
     "output_type": "stream",
5064
     "text": [
5065
      "CIndex: 0.6523726133874888\n",
5066
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_glcm_Idn', 'original_firstorder_Minimum', 'original_glrlm_RunPercentage', 'original_glrlm_GrayLevelNonUniformity', 'original_glcm_Idmn', 'original_glcm_Idm']\n",
5067
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
5068
     ]
5069
    },
5070
    {
5071
     "name": "stderr",
5072
     "output_type": "stream",
5073
     "text": [
5074
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
5075
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   51.2s\n",
5076
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   55.8s finished\n",
5077
      "/usr/local/lib/python3.6/dist-packages/sklearn/model_selection/_search.py:814: DeprecationWarning: The default of the `iid` parameter will change from True to False in version 0.22 and will be removed in 0.24. This will change numeric results when test-set sizes are unequal.\n",
5078
      "  DeprecationWarning)\n"
5079
     ]
5080
    },
5081
    {
5082
     "name": "stdout",
5083
     "output_type": "stream",
5084
     "text": [
5085
      "CIndex: 0.646038646390089\n",
5086
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_glcm_Idn', 'original_firstorder_Minimum', 'original_glrlm_RunPercentage', 'original_glrlm_GrayLevelNonUniformity', 'original_glcm_Idmn', 'original_glcm_Imc1']\n",
5087
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
5088
     ]
5089
    },
5090
    {
5091
     "name": "stderr",
5092
     "output_type": "stream",
5093
     "text": [
5094
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
5095
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:  1.1min finished\n",
5096
      "/usr/local/lib/python3.6/dist-packages/sklearn/model_selection/_search.py:814: DeprecationWarning: The default of the `iid` parameter will change from True to False in version 0.22 and will be removed in 0.24. This will change numeric results when test-set sizes are unequal.\n",
5097
      "  DeprecationWarning)\n"
5098
     ]
5099
    },
5100
    {
5101
     "name": "stdout",
5102
     "output_type": "stream",
5103
     "text": [
5104
      "CIndex: 0.641130543835568\n",
5105
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_glcm_Idn', 'original_firstorder_Minimum', 'original_glrlm_RunPercentage', 'original_glrlm_GrayLevelNonUniformity', 'original_glcm_Idmn', 'original_glcm_Imc2']\n",
5106
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
5107
     ]
5108
    },
5109
    {
5110
     "name": "stderr",
5111
     "output_type": "stream",
5112
     "text": [
5113
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
5114
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:  1.2min\n",
5115
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:  1.5min finished\n"
5116
     ]
5117
    },
5118
    {
5119
     "name": "stdout",
5120
     "output_type": "stream",
5121
     "text": [
5122
      "CIndex: 0.6359011861394965\n",
5123
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_glcm_Idn', 'original_firstorder_Minimum', 'original_glrlm_RunPercentage', 'original_glrlm_GrayLevelNonUniformity', 'original_glcm_Idmn', 'original_glrlm_ShortRunEmphasis']\n",
5124
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
5125
     ]
5126
    },
5127
    {
5128
     "name": "stderr",
5129
     "output_type": "stream",
5130
     "text": [
5131
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
5132
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   34.3s\n",
5133
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   34.7s finished\n",
5134
      "/usr/local/lib/python3.6/dist-packages/sklearn/model_selection/_search.py:814: DeprecationWarning: The default of the `iid` parameter will change from True to False in version 0.22 and will be removed in 0.24. This will change numeric results when test-set sizes are unequal.\n",
5135
      "  DeprecationWarning)\n"
5136
     ]
5137
    },
5138
    {
5139
     "name": "stdout",
5140
     "output_type": "stream",
5141
     "text": [
5142
      "CIndex: 0.6531063212994896\n",
5143
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_glcm_Idn', 'original_firstorder_Minimum', 'original_glrlm_RunPercentage', 'original_glrlm_GrayLevelNonUniformity', 'original_glcm_Idmn', 'original_glrlm_LongRunEmphasis']\n",
5144
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
5145
     ]
5146
    },
5147
    {
5148
     "name": "stderr",
5149
     "output_type": "stream",
5150
     "text": [
5151
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
5152
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:  1.3min\n",
5153
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:  1.5min finished\n",
5154
      "/usr/local/lib/python3.6/dist-packages/sklearn/model_selection/_search.py:814: DeprecationWarning: The default of the `iid` parameter will change from True to False in version 0.22 and will be removed in 0.24. This will change numeric results when test-set sizes are unequal.\n",
5155
      "  DeprecationWarning)\n"
5156
     ]
5157
    },
5158
    {
5159
     "name": "stdout",
5160
     "output_type": "stream",
5161
     "text": [
5162
      "CIndex: 0.6393217246449815\n",
5163
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_glcm_Idn', 'original_firstorder_Minimum', 'original_glrlm_RunPercentage', 'original_glrlm_GrayLevelNonUniformity', 'original_glcm_Idmn', 'original_glrlm_ShortRunLowGrayLevelEmphasis']\n",
5164
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
5165
     ]
5166
    },
5167
    {
5168
     "name": "stderr",
5169
     "output_type": "stream",
5170
     "text": [
5171
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
5172
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:  1.6min\n",
5173
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:  1.6min finished\n",
5174
      "/usr/local/lib/python3.6/dist-packages/sklearn/model_selection/_search.py:814: DeprecationWarning: The default of the `iid` parameter will change from True to False in version 0.22 and will be removed in 0.24. This will change numeric results when test-set sizes are unequal.\n",
5175
      "  DeprecationWarning)\n"
5176
     ]
5177
    },
5178
    {
5179
     "name": "stdout",
5180
     "output_type": "stream",
5181
     "text": [
5182
      "CIndex: 0.6522691996621252\n",
5183
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_glcm_Idn', 'original_firstorder_Minimum', 'original_glrlm_RunPercentage', 'original_glrlm_GrayLevelNonUniformity', 'original_glcm_Idmn', 'original_glrlm_LongRunLowGrayLevelEmphasis']\n",
5184
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
5185
     ]
5186
    },
5187
    {
5188
     "name": "stderr",
5189
     "output_type": "stream",
5190
     "text": [
5191
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
5192
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:  1.0min\n",
5193
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:  1.1min finished\n"
5194
     ]
5195
    },
5196
    {
5197
     "name": "stdout",
5198
     "output_type": "stream",
5199
     "text": [
5200
      "CIndex: 0.6580099783382528\n",
5201
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_glcm_Idn', 'original_firstorder_Minimum', 'original_glrlm_RunPercentage', 'original_glrlm_GrayLevelNonUniformity', 'original_glcm_Idmn', 'original_glrlm_LongRunHighGrayLevelEmphasis']\n",
5202
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
5203
     ]
5204
    },
5205
    {
5206
     "name": "stderr",
5207
     "output_type": "stream",
5208
     "text": [
5209
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
5210
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   55.6s\n",
5211
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:  1.0min finished\n"
5212
     ]
5213
    },
5214
    {
5215
     "name": "stdout",
5216
     "output_type": "stream",
5217
     "text": [
5218
      "CIndex: 0.6419721910327935\n",
5219
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_glcm_Idn', 'original_firstorder_Minimum', 'original_glrlm_RunPercentage', 'original_glrlm_GrayLevelNonUniformity', 'original_glcm_Idmn', 'Nstage']\n",
5220
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
5221
     ]
5222
    },
5223
    {
5224
     "name": "stderr",
5225
     "output_type": "stream",
5226
     "text": [
5227
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
5228
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:  1.1min\n",
5229
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:  1.2min finished\n",
5230
      "/usr/local/lib/python3.6/dist-packages/sklearn/model_selection/_search.py:814: DeprecationWarning: The default of the `iid` parameter will change from True to False in version 0.22 and will be removed in 0.24. This will change numeric results when test-set sizes are unequal.\n",
5231
      "  DeprecationWarning)\n"
5232
     ]
5233
    },
5234
    {
5235
     "name": "stdout",
5236
     "output_type": "stream",
5237
     "text": [
5238
      "CIndex: 0.6631660349615801\n",
5239
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_glcm_Idn', 'original_firstorder_Minimum', 'original_glrlm_RunPercentage', 'original_glrlm_GrayLevelNonUniformity', 'original_glcm_Idmn', 'age']\n",
5240
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
5241
     ]
5242
    },
5243
    {
5244
     "name": "stderr",
5245
     "output_type": "stream",
5246
     "text": [
5247
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
5248
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:  1.2min\n",
5249
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:  1.2min finished\n",
5250
      "/usr/local/lib/python3.6/dist-packages/sklearn/model_selection/_search.py:814: DeprecationWarning: The default of the `iid` parameter will change from True to False in version 0.22 and will be removed in 0.24. This will change numeric results when test-set sizes are unequal.\n",
5251
      "  DeprecationWarning)\n"
5252
     ]
5253
    },
5254
    {
5255
     "name": "stdout",
5256
     "output_type": "stream",
5257
     "text": [
5258
      "CIndex: 0.6549175817786312\n",
5259
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_glcm_Idn', 'original_firstorder_Minimum', 'original_glrlm_RunPercentage', 'original_glrlm_GrayLevelNonUniformity', 'original_glcm_Idmn', 'SourceDataset_l2']\n",
5260
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
5261
     ]
5262
    },
5263
    {
5264
     "name": "stderr",
5265
     "output_type": "stream",
5266
     "text": [
5267
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
5268
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   45.4s\n",
5269
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   45.8s finished\n"
5270
     ]
5271
    },
5272
    {
5273
     "name": "stdout",
5274
     "output_type": "stream",
5275
     "text": [
5276
      "CIndex: 0.6567940605614707\n",
5277
      "Selected new growing feature: Nstage\n",
5278
      "\n",
5279
      "Growing 10-th feature...\n",
5280
      "\n",
5281
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_glcm_Idn', 'original_firstorder_Minimum', 'original_glrlm_RunPercentage', 'original_glrlm_GrayLevelNonUniformity', 'original_glcm_Idmn', 'Nstage', 'original_shape_SphericalDisproportion']\n",
5282
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
5283
     ]
5284
    },
5285
    {
5286
     "name": "stderr",
5287
     "output_type": "stream",
5288
     "text": [
5289
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
5290
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:  1.3min\n",
5291
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:  1.3min finished\n"
5292
     ]
5293
    },
5294
    {
5295
     "name": "stdout",
5296
     "output_type": "stream",
5297
     "text": [
5298
      "CIndex: 0.6734926653581707\n",
5299
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_glcm_Idn', 'original_firstorder_Minimum', 'original_glrlm_RunPercentage', 'original_glrlm_GrayLevelNonUniformity', 'original_glcm_Idmn', 'Nstage', 'original_firstorder_Kurtosis']\n",
5300
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
5301
     ]
5302
    },
5303
    {
5304
     "name": "stderr",
5305
     "output_type": "stream",
5306
     "text": [
5307
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
5308
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   43.7s\n",
5309
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   50.4s finished\n",
5310
      "/usr/local/lib/python3.6/dist-packages/sklearn/model_selection/_search.py:814: DeprecationWarning: The default of the `iid` parameter will change from True to False in version 0.22 and will be removed in 0.24. This will change numeric results when test-set sizes are unequal.\n",
5311
      "  DeprecationWarning)\n"
5312
     ]
5313
    },
5314
    {
5315
     "name": "stdout",
5316
     "output_type": "stream",
5317
     "text": [
5318
      "CIndex: 0.631644815062024\n",
5319
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_glcm_Idn', 'original_firstorder_Minimum', 'original_glrlm_RunPercentage', 'original_glrlm_GrayLevelNonUniformity', 'original_glcm_Idmn', 'Nstage', 'original_firstorder_MeanAbsoluteDeviation']\n",
5320
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
5321
     ]
5322
    },
5323
    {
5324
     "name": "stderr",
5325
     "output_type": "stream",
5326
     "text": [
5327
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
5328
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   56.6s\n",
5329
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   58.5s finished\n"
5330
     ]
5331
    },
5332
    {
5333
     "name": "stdout",
5334
     "output_type": "stream",
5335
     "text": [
5336
      "CIndex: 0.6398437744924247\n",
5337
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_glcm_Idn', 'original_firstorder_Minimum', 'original_glrlm_RunPercentage', 'original_glrlm_GrayLevelNonUniformity', 'original_glcm_Idmn', 'Nstage', 'original_glcm_ClusterProminence']\n",
5338
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
5339
     ]
5340
    },
5341
    {
5342
     "name": "stderr",
5343
     "output_type": "stream",
5344
     "text": [
5345
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
5346
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   34.7s\n",
5347
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   46.0s finished\n"
5348
     ]
5349
    },
5350
    {
5351
     "name": "stdout",
5352
     "output_type": "stream",
5353
     "text": [
5354
      "CIndex: 0.6487793600559588\n",
5355
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_glcm_Idn', 'original_firstorder_Minimum', 'original_glrlm_RunPercentage', 'original_glrlm_GrayLevelNonUniformity', 'original_glcm_Idmn', 'Nstage', 'original_glcm_Contrast']\n",
5356
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
5357
     ]
5358
    },
5359
    {
5360
     "name": "stderr",
5361
     "output_type": "stream",
5362
     "text": [
5363
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
5364
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   41.6s\n",
5365
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   41.9s finished\n",
5366
      "/usr/local/lib/python3.6/dist-packages/sklearn/model_selection/_search.py:814: DeprecationWarning: The default of the `iid` parameter will change from True to False in version 0.22 and will be removed in 0.24. This will change numeric results when test-set sizes are unequal.\n",
5367
      "  DeprecationWarning)\n"
5368
     ]
5369
    },
5370
    {
5371
     "name": "stdout",
5372
     "output_type": "stream",
5373
     "text": [
5374
      "CIndex: 0.6693273027064738\n",
5375
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_glcm_Idn', 'original_firstorder_Minimum', 'original_glrlm_RunPercentage', 'original_glrlm_GrayLevelNonUniformity', 'original_glcm_Idmn', 'Nstage', 'original_glcm_DifferenceEntropy']\n",
5376
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
5377
     ]
5378
    },
5379
    {
5380
     "name": "stderr",
5381
     "output_type": "stream",
5382
     "text": [
5383
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
5384
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   43.8s\n",
5385
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   50.8s finished\n"
5386
     ]
5387
    },
5388
    {
5389
     "name": "stdout",
5390
     "output_type": "stream",
5391
     "text": [
5392
      "CIndex: 0.6395816514593193\n",
5393
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_glcm_Idn', 'original_firstorder_Minimum', 'original_glrlm_RunPercentage', 'original_glrlm_GrayLevelNonUniformity', 'original_glcm_Idmn', 'Nstage', 'original_glcm_DifferenceAverage']\n",
5394
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
5395
     ]
5396
    },
5397
    {
5398
     "name": "stderr",
5399
     "output_type": "stream",
5400
     "text": [
5401
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
5402
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:  1.3min\n",
5403
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:  1.5min finished\n",
5404
      "/usr/local/lib/python3.6/dist-packages/sklearn/model_selection/_search.py:814: DeprecationWarning: The default of the `iid` parameter will change from True to False in version 0.22 and will be removed in 0.24. This will change numeric results when test-set sizes are unequal.\n",
5405
      "  DeprecationWarning)\n"
5406
     ]
5407
    },
5408
    {
5409
     "name": "stdout",
5410
     "output_type": "stream",
5411
     "text": [
5412
      "CIndex: 0.6565903412591652\n",
5413
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_glcm_Idn', 'original_firstorder_Minimum', 'original_glrlm_RunPercentage', 'original_glrlm_GrayLevelNonUniformity', 'original_glcm_Idmn', 'Nstage', 'original_glcm_JointEnergy']\n",
5414
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
5415
     ]
5416
    },
5417
    {
5418
     "name": "stderr",
5419
     "output_type": "stream",
5420
     "text": [
5421
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
5422
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:  1.2min\n",
5423
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:  1.2min finished\n",
5424
      "/usr/local/lib/python3.6/dist-packages/sklearn/model_selection/_search.py:814: DeprecationWarning: The default of the `iid` parameter will change from True to False in version 0.22 and will be removed in 0.24. This will change numeric results when test-set sizes are unequal.\n",
5425
      "  DeprecationWarning)\n"
5426
     ]
5427
    },
5428
    {
5429
     "name": "stdout",
5430
     "output_type": "stream",
5431
     "text": [
5432
      "CIndex: 0.6405212249255315\n",
5433
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_glcm_Idn', 'original_firstorder_Minimum', 'original_glrlm_RunPercentage', 'original_glrlm_GrayLevelNonUniformity', 'original_glcm_Idmn', 'Nstage', 'original_glcm_Id']\n",
5434
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
5435
     ]
5436
    },
5437
    {
5438
     "name": "stderr",
5439
     "output_type": "stream",
5440
     "text": [
5441
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
5442
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:  1.1min\n",
5443
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:  1.1min finished\n"
5444
     ]
5445
    },
5446
    {
5447
     "name": "stdout",
5448
     "output_type": "stream",
5449
     "text": [
5450
      "CIndex: 0.646922268914205\n",
5451
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_glcm_Idn', 'original_firstorder_Minimum', 'original_glrlm_RunPercentage', 'original_glrlm_GrayLevelNonUniformity', 'original_glcm_Idmn', 'Nstage', 'original_glcm_Idm']\n",
5452
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
5453
     ]
5454
    },
5455
    {
5456
     "name": "stderr",
5457
     "output_type": "stream",
5458
     "text": [
5459
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
5460
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   39.9s\n",
5461
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   41.8s finished\n",
5462
      "/usr/local/lib/python3.6/dist-packages/sklearn/model_selection/_search.py:814: DeprecationWarning: The default of the `iid` parameter will change from True to False in version 0.22 and will be removed in 0.24. This will change numeric results when test-set sizes are unequal.\n",
5463
      "  DeprecationWarning)\n"
5464
     ]
5465
    },
5466
    {
5467
     "name": "stdout",
5468
     "output_type": "stream",
5469
     "text": [
5470
      "CIndex: 0.6519100167711613\n",
5471
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_glcm_Idn', 'original_firstorder_Minimum', 'original_glrlm_RunPercentage', 'original_glrlm_GrayLevelNonUniformity', 'original_glcm_Idmn', 'Nstage', 'original_glcm_Imc1']\n",
5472
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
5473
     ]
5474
    },
5475
    {
5476
     "name": "stderr",
5477
     "output_type": "stream",
5478
     "text": [
5479
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
5480
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   33.1s\n",
5481
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   34.8s finished\n",
5482
      "/usr/local/lib/python3.6/dist-packages/sklearn/model_selection/_search.py:814: DeprecationWarning: The default of the `iid` parameter will change from True to False in version 0.22 and will be removed in 0.24. This will change numeric results when test-set sizes are unequal.\n",
5483
      "  DeprecationWarning)\n"
5484
     ]
5485
    },
5486
    {
5487
     "name": "stdout",
5488
     "output_type": "stream",
5489
     "text": [
5490
      "CIndex: 0.6597459697370164\n",
5491
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_glcm_Idn', 'original_firstorder_Minimum', 'original_glrlm_RunPercentage', 'original_glrlm_GrayLevelNonUniformity', 'original_glcm_Idmn', 'Nstage', 'original_glcm_Imc2']\n",
5492
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
5493
     ]
5494
    },
5495
    {
5496
     "name": "stderr",
5497
     "output_type": "stream",
5498
     "text": [
5499
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
5500
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   25.2s\n",
5501
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   27.9s finished\n"
5502
     ]
5503
    },
5504
    {
5505
     "name": "stdout",
5506
     "output_type": "stream",
5507
     "text": [
5508
      "CIndex: 0.6536907389294039\n",
5509
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_glcm_Idn', 'original_firstorder_Minimum', 'original_glrlm_RunPercentage', 'original_glrlm_GrayLevelNonUniformity', 'original_glcm_Idmn', 'Nstage', 'original_glrlm_ShortRunEmphasis']\n",
5510
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
5511
     ]
5512
    },
5513
    {
5514
     "name": "stderr",
5515
     "output_type": "stream",
5516
     "text": [
5517
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
5518
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   40.0s\n",
5519
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   42.8s finished\n",
5520
      "/usr/local/lib/python3.6/dist-packages/sklearn/model_selection/_search.py:814: DeprecationWarning: The default of the `iid` parameter will change from True to False in version 0.22 and will be removed in 0.24. This will change numeric results when test-set sizes are unequal.\n",
5521
      "  DeprecationWarning)\n"
5522
     ]
5523
    },
5524
    {
5525
     "name": "stdout",
5526
     "output_type": "stream",
5527
     "text": [
5528
      "CIndex: 0.6502592812331731\n",
5529
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_glcm_Idn', 'original_firstorder_Minimum', 'original_glrlm_RunPercentage', 'original_glrlm_GrayLevelNonUniformity', 'original_glcm_Idmn', 'Nstage', 'original_glrlm_LongRunEmphasis']\n",
5530
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
5531
     ]
5532
    },
5533
    {
5534
     "name": "stderr",
5535
     "output_type": "stream",
5536
     "text": [
5537
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
5538
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:  1.2min finished\n",
5539
      "/usr/local/lib/python3.6/dist-packages/sklearn/model_selection/_search.py:814: DeprecationWarning: The default of the `iid` parameter will change from True to False in version 0.22 and will be removed in 0.24. This will change numeric results when test-set sizes are unequal.\n",
5540
      "  DeprecationWarning)\n"
5541
     ]
5542
    },
5543
    {
5544
     "name": "stdout",
5545
     "output_type": "stream",
5546
     "text": [
5547
      "CIndex: 0.644468027499275\n",
5548
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_glcm_Idn', 'original_firstorder_Minimum', 'original_glrlm_RunPercentage', 'original_glrlm_GrayLevelNonUniformity', 'original_glcm_Idmn', 'Nstage', 'original_glrlm_ShortRunLowGrayLevelEmphasis']\n",
5549
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
5550
     ]
5551
    },
5552
    {
5553
     "name": "stderr",
5554
     "output_type": "stream",
5555
     "text": [
5556
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
5557
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   36.1s\n",
5558
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   38.0s finished\n",
5559
      "/usr/local/lib/python3.6/dist-packages/sklearn/model_selection/_search.py:814: DeprecationWarning: The default of the `iid` parameter will change from True to False in version 0.22 and will be removed in 0.24. This will change numeric results when test-set sizes are unequal.\n",
5560
      "  DeprecationWarning)\n"
5561
     ]
5562
    },
5563
    {
5564
     "name": "stdout",
5565
     "output_type": "stream",
5566
     "text": [
5567
      "CIndex: 0.6507651784777961\n",
5568
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_glcm_Idn', 'original_firstorder_Minimum', 'original_glrlm_RunPercentage', 'original_glrlm_GrayLevelNonUniformity', 'original_glcm_Idmn', 'Nstage', 'original_glrlm_LongRunLowGrayLevelEmphasis']\n",
5569
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
5570
     ]
5571
    },
5572
    {
5573
     "name": "stderr",
5574
     "output_type": "stream",
5575
     "text": [
5576
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
5577
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:  1.0min\n",
5578
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:  1.1min finished\n",
5579
      "/usr/local/lib/python3.6/dist-packages/sklearn/model_selection/_search.py:814: DeprecationWarning: The default of the `iid` parameter will change from True to False in version 0.22 and will be removed in 0.24. This will change numeric results when test-set sizes are unequal.\n",
5580
      "  DeprecationWarning)\n"
5581
     ]
5582
    },
5583
    {
5584
     "name": "stdout",
5585
     "output_type": "stream",
5586
     "text": [
5587
      "CIndex: 0.6350950457491924\n",
5588
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_glcm_Idn', 'original_firstorder_Minimum', 'original_glrlm_RunPercentage', 'original_glrlm_GrayLevelNonUniformity', 'original_glcm_Idmn', 'Nstage', 'original_glrlm_LongRunHighGrayLevelEmphasis']\n",
5589
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
5590
     ]
5591
    },
5592
    {
5593
     "name": "stderr",
5594
     "output_type": "stream",
5595
     "text": [
5596
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
5597
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:  1.0min\n",
5598
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:  1.0min finished\n"
5599
     ]
5600
    },
5601
    {
5602
     "name": "stdout",
5603
     "output_type": "stream",
5604
     "text": [
5605
      "CIndex: 0.6393357304231814\n",
5606
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_glcm_Idn', 'original_firstorder_Minimum', 'original_glrlm_RunPercentage', 'original_glrlm_GrayLevelNonUniformity', 'original_glcm_Idmn', 'Nstage', 'age']\n",
5607
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
5608
     ]
5609
    },
5610
    {
5611
     "name": "stderr",
5612
     "output_type": "stream",
5613
     "text": [
5614
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
5615
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   30.8s\n",
5616
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:   38.0s finished\n"
5617
     ]
5618
    },
5619
    {
5620
     "name": "stdout",
5621
     "output_type": "stream",
5622
     "text": [
5623
      "CIndex: 0.6517707969889683\n",
5624
      "Model features: ['original_shape_Compactness2', 'SourceDataset_l1', 'original_shape_SurfaceVolumeRatio', 'original_glcm_Idn', 'original_firstorder_Minimum', 'original_glrlm_RunPercentage', 'original_glrlm_GrayLevelNonUniformity', 'original_glcm_Idmn', 'Nstage', 'SourceDataset_l2']\n",
5625
      "Fitting 5 folds for each of 10 candidates, totalling 50 fits\n"
5626
     ]
5627
    },
5628
    {
5629
     "name": "stderr",
5630
     "output_type": "stream",
5631
     "text": [
5632
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 2 concurrent workers.\n",
5633
      "[Parallel(n_jobs=-1)]: Done  46 tasks      | elapsed:   59.3s\n",
5634
      "[Parallel(n_jobs=-1)]: Done  50 out of  50 | elapsed:  1.2min finished\n",
5635
      "/usr/local/lib/python3.6/dist-packages/sklearn/model_selection/_search.py:814: DeprecationWarning: The default of the `iid` parameter will change from True to False in version 0.22 and will be removed in 0.24. This will change numeric results when test-set sizes are unequal.\n",
5636
      "  DeprecationWarning)\n"
5637
     ]
5638
    },
5639
    {
5640
     "name": "stdout",
5641
     "output_type": "stream",
5642
     "text": [
5643
      "CIndex: 0.64946705354424\n",
5644
      "Selected new growing feature: original_shape_SphericalDisproportion\n",
5645
      "\n"
5646
     ]
5647
    },
5648
    {
5649
     "data": {
5650
      "text/plain": [
5651
       "(['original_shape_Compactness2',\n",
5652
       "  'SourceDataset_l1',\n",
5653
       "  'original_shape_SurfaceVolumeRatio',\n",
5654
       "  'original_glcm_Idn',\n",
5655
       "  'original_firstorder_Minimum',\n",
5656
       "  'original_glrlm_RunPercentage',\n",
5657
       "  'original_glrlm_GrayLevelNonUniformity',\n",
5658
       "  'original_glcm_Idmn',\n",
5659
       "  'Nstage',\n",
5660
       "  'original_shape_SphericalDisproportion'],\n",
5661
       " [0.668255125000726,\n",
5662
       "  0.6705034984625279,\n",
5663
       "  0.6631818323582115,\n",
5664
       "  0.6700353526862737,\n",
5665
       "  0.6768835309749677,\n",
5666
       "  0.6731385245399564,\n",
5667
       "  0.6658012216968485,\n",
5668
       "  0.6743567424996522,\n",
5669
       "  0.6631660349615801,\n",
5670
       "  0.6734926653581707])"
5671
      ]
5672
     },
5673
     "execution_count": 144,
5674
     "metadata": {
5675
      "tags": []
5676
     },
5677
     "output_type": "execute_result"
5678
    }
5679
   ],
5680
   "source": [
5681
    "import copy\n",
5682
    "max_features = 10\n",
5683
    "selected_features = []\n",
5684
    "remaining_features = copy.deepcopy(feature_name)\n",
5685
    "\n",
5686
    "hyperparams = {\"n_estimators\": [10, 50, 100, 200, 500],\n",
5687
    "                \"min_samples_split\": [2, 5, 10, 20, 40],\n",
5688
    "                \"min_samples_leaf\": [1, 2, 4, 8, 16]\n",
5689
    "                }\n",
5690
    "\n",
5691
    "score = []\n",
5692
    "for i in range(max_features):\n",
5693
    "    print(f'Growing {i+1}-th feature...\\n')\n",
5694
    "    new_feature, new_score = best_growing_features(selected_features, remaining_features, hyperparams)\n",
5695
    "    score.append(new_score)\n",
5696
    "    selected_features.append(new_feature)\n",
5697
    "    remaining_features.remove(new_feature)\n",
5698
    "    print('Selected new growing feature: ' + new_feature + '\\n')\n",
5699
    "selected_features, score"
5700
   ]
5701
  },
5702
  {
5703
   "cell_type": "markdown",
5704
   "metadata": {
5705
    "id": "LYRHHcaJz6QM",
5706
    "colab_type": "text"
5707
   },
5708
   "source": [
5709
    "# Appendix"
5710
   ]
5711
  },
5712
  {
5713
   "cell_type": "code",
5714
   "execution_count": 0,
5715
   "metadata": {
5716
    "id": "gRkra8-v3lXC",
5717
    "colab_type": "code",
5718
    "colab": {}
5719
   },
5720
   "outputs": [],
5721
   "source": [
5722
    "from sklearn.model_selection import train_test_split\n",
5723
    "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25)"
5724
   ]
5725
  },
5726
  {
5727
   "cell_type": "code",
5728
   "execution_count": 0,
5729
   "metadata": {
5730
    "id": "isykVcwa3lXH",
5731
    "colab_type": "code",
5732
    "outputId": "0243e765-70c7-4715-95cc-cc6b6432c0c7",
5733
    "colab": {
5734
     "base_uri": "https://localhost:8080/",
5735
     "height": 34.0
5736
    }
5737
   },
5738
   "outputs": [
5739
    {
5740
     "data": {
5741
      "text/plain": [
5742
       "0.639361154044307"
5743
      ]
5744
     },
5745
     "execution_count": 17,
5746
     "metadata": {
5747
      "tags": []
5748
     },
5749
     "output_type": "execute_result"
5750
    }
5751
   ],
5752
   "source": [
5753
    "rsf = RandomSurvivalForest(n_estimators=1000,\n",
5754
    "                           min_samples_split=10,\n",
5755
    "                           min_samples_leaf=15,\n",
5756
    "                           max_features=\"sqrt\",\n",
5757
    "                           n_jobs=-1)\n",
5758
    "rsf.fit(X_train, y_train)\n",
5759
    "rsf.score(X_test, y_test)"
5760
   ]
5761
  },
5762
  {
5763
   "cell_type": "code",
5764
   "execution_count": 0,
5765
   "metadata": {
5766
    "id": "ao6CazyX3lXR",
5767
    "colab_type": "code",
5768
    "outputId": "04030e56-85fc-41cc-e006-b3491e4a8d04",
5769
    "colab": {}
5770
   },
5771
   "outputs": [
5772
    {
5773
     "ename": "AttributeError",
5774
     "evalue": "'PermutationImportance' object has no attribute 'feature_importances_'",
5775
     "traceback": [
5776
      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
5777
      "\u001b[0;31mAttributeError\u001b[0m                            Traceback (most recent call last)",
5778
      "\u001b[0;32m<ipython-input-35-a2ef83e007ff>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msave\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mfeature_name\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mperm\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfeature_importances_\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mperm\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfeature_importances_std_\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m\"feature_importance\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
5779
      "\u001b[0;31mAttributeError\u001b[0m: 'PermutationImportance' object has no attribute 'feature_importances_'"
5780
     ],
5781
     "output_type": "error"
5782
    }
5783
   ],
5784
   "source": [
5785
    "np.save([feature_name, perm.feature_importances_, perm.feature_importances_std_], \"feature_importance\")"
5786
   ]
5787
  },
5788
  {
5789
   "cell_type": "code",
5790
   "execution_count": 0,
5791
   "metadata": {
5792
    "id": "VIya2iAQ3lXW",
5793
    "colab_type": "code",
5794
    "outputId": "409765e1-45ca-4109-b5d6-5ca92ff4ff7d",
5795
    "colab": {}
5796
   },
5797
   "outputs": [
5798
    {
5799
     "data": {
5800
      "text/plain": [
5801
       "['original_glcm_Idn',\n",
5802
       " 'original_glcm_Idmn',\n",
5803
       " 'Nstage',\n",
5804
       " 'age',\n",
5805
       " 'original_shape_VoxelVolume',\n",
5806
       " 'original_glrlm_RunLengthNonUniformity',\n",
5807
       " 'original_firstorder_Energy',\n",
5808
       " 'SourceDataset_l1',\n",
5809
       " 'original_glcm_Imc1',\n",
5810
       " 'original_glrlm_ShortRunEmphasis']"
5811
      ]
5812
     },
5813
     "execution_count": 22,
5814
     "metadata": {
5815
      "tags": []
5816
     },
5817
     "output_type": "execute_result"
5818
    }
5819
   ],
5820
   "source": [
5821
    "best_indices = np.flip(np.argsort(perm.feature_importances_))[:10]\n",
5822
    "best_features = [feature_name[i] for i in best_indices]\n",
5823
    "best_features"
5824
   ]
5825
  },
5826
  {
5827
   "cell_type": "code",
5828
   "execution_count": 0,
5829
   "metadata": {
5830
    "id": "bSuOlY6j3lXb",
5831
    "colab_type": "code",
5832
    "outputId": "555bf4ef-f40d-4666-ff5c-6e73977f2f6d",
5833
    "colab": {}
5834
   },
5835
   "outputs": [
5836
    {
5837
     "data": {
5838
      "text/plain": [
5839
       "['original_glcm_Idn',\n",
5840
       " 'original_glcm_Idmn',\n",
5841
       " 'Nstage',\n",
5842
       " 'age',\n",
5843
       " 'original_shape_VoxelVolume',\n",
5844
       " 'original_glrlm_RunLengthNonUniformity',\n",
5845
       " 'original_firstorder_Energy',\n",
5846
       " 'SourceDataset_l1',\n",
5847
       " 'original_glcm_Imc1',\n",
5848
       " 'original_glrlm_ShortRunEmphasis']"
5849
      ]
5850
     },
5851
     "execution_count": 3,
5852
     "metadata": {
5853
      "tags": []
5854
     },
5855
     "output_type": "execute_result"
5856
    }
5857
   ],
5858
   "source": [
5859
    "best_features = ['original_glcm_Idn',\n",
5860
    " 'original_glcm_Idmn',\n",
5861
    " 'Nstage',\n",
5862
    " 'age',\n",
5863
    " 'original_shape_VoxelVolume',\n",
5864
    " 'original_glrlm_RunLengthNonUniformity',\n",
5865
    " 'original_firstorder_Energy',\n",
5866
    " 'SourceDataset_l1',\n",
5867
    " 'original_glcm_Imc1',\n",
5868
    " 'original_glrlm_ShortRunEmphasis']\n",
5869
    "best_features"
5870
   ]
5871
  },
5872
  {
5873
   "cell_type": "code",
5874
   "execution_count": 0,
5875
   "metadata": {
5876
    "id": "kcUEwLA_3lXf",
5877
    "colab_type": "code",
5878
    "outputId": "9cde8157-7b23-4e98-b41b-850e51d4a3d8",
5879
    "colab": {}
5880
   },
5881
   "outputs": [
5882
    {
5883
     "data": {
5884
      "text/plain": [
5885
       "['original_glcm_Idn',\n",
5886
       " 'original_glcm_Idmn',\n",
5887
       " 'Nstage',\n",
5888
       " 'age',\n",
5889
       " 'original_shape_VoxelVolume',\n",
5890
       " 'original_glrlm_RunLengthNonUniformity',\n",
5891
       " 'original_firstorder_Energy',\n",
5892
       " 'SourceDataset_l1',\n",
5893
       " 'original_glcm_Imc1',\n",
5894
       " 'original_glrlm_ShortRunEmphasis']"
5895
      ]
5896
     },
5897
     "execution_count": 4,
5898
     "metadata": {
5899
      "tags": []
5900
     },
5901
     "output_type": "execute_result"
5902
    }
5903
   ],
5904
   "source": [
5905
    "import read_data\n",
5906
    "X_best_df = X_df[best_features]\n",
5907
    "X_best = X_best_df.to_numpy()\n",
5908
    "list(X_df[best_features].columns.values)"
5909
   ]
5910
  },
5911
  {
5912
   "cell_type": "code",
5913
   "execution_count": 0,
5914
   "metadata": {
5915
    "id": "qXtbSHyO3lXj",
5916
    "colab_type": "code",
5917
    "colab": {}
5918
   },
5919
   "outputs": [],
5920
   "source": [
5921
    "from sklearn.model_selection import train_test_split\n",
5922
    "random_state = 20\n",
5923
    "X_best_train_df, X_best_test_df, y_train_df, y_test_df = train_test_split(X_best_df, y_df, test_size=0.25, random_state=random_state)"
5924
   ]
5925
  },
5926
  {
5927
   "cell_type": "code",
5928
   "execution_count": 0,
5929
   "metadata": {
5930
    "id": "QKZdjEqh3lXn",
5931
    "colab_type": "code",
5932
    "outputId": "56cacb5e-a430-4af6-9715-360fb0392fa3",
5933
    "colab": {}
5934
   },
5935
   "outputs": [
5936
    {
5937
     "name": "stderr",
5938
     "output_type": "stream",
5939
     "text": [
5940
      "/home/leon/anaconda3/envs/std/lib/python3.7/importlib/_bootstrap.py:219: RuntimeWarning: sklearn.tree._splitter.Splitter size changed, may indicate binary incompatibility. Expected 360 from C header, got 368 from PyObject\n",
5941
      "  return f(*args, **kwds)\n"
5942
     ]
5943
    },
5944
    {
5945
     "data": {
5946
      "text/plain": [
5947
       "0.7404306220095693"
5948
      ]
5949
     },
5950
     "execution_count": 6,
5951
     "metadata": {
5952
      "tags": []
5953
     },
5954
     "output_type": "execute_result"
5955
    }
5956
   ],
5957
   "source": [
5958
    "from sksurv.ensemble import RandomSurvivalForest\n",
5959
    "rsf = RandomSurvivalForest(n_estimators=1000,\n",
5960
    "                           min_samples_split=10,\n",
5961
    "                           min_samples_leaf=15,\n",
5962
    "                           max_features=\"sqrt\",\n",
5963
    "                           n_jobs=-1,\n",
5964
    "                           random_state=random_state)\n",
5965
    "\n",
5966
    "X_best_train = X_best_train_df.to_numpy()\n",
5967
    "y_train = y_dataframe_to_rsf_input(y_train_df)\n",
5968
    "X_best_test = X_best_test_df.to_numpy()\n",
5969
    "y_test = y_dataframe_to_rsf_input(y_test_df)\n",
5970
    "\n",
5971
    "rsf.fit(X_best_train, y_train)\n",
5972
    "rsf.score(X_best_test, y_test)"
5973
   ]
5974
  },
5975
  {
5976
   "cell_type": "markdown",
5977
   "metadata": {
5978
    "id": "PfnwfxZk3lXr",
5979
    "colab_type": "text"
5980
   },
5981
   "source": [
5982
    "Cross validation"
5983
   ]
5984
  },
5985
  {
5986
   "cell_type": "code",
5987
   "execution_count": 0,
5988
   "metadata": {
5989
    "id": "r3wqARnI3lXt",
5990
    "colab_type": "code",
5991
    "outputId": "58b9878e-610d-4edd-c87a-a7eca44a85d4",
5992
    "colab": {}
5993
   },
5994
   "outputs": [
5995
    {
5996
     "data": {
5997
      "text/plain": [
5998
       "{'fit_time': array([2.99259663, 1.20549083, 1.13966799, 1.31296301, 1.22523999]),\n",
5999
       " 'score_time': array([0.20998502, 0.2038331 , 0.20748258, 0.20694542, 0.20662284]),\n",
6000
       " 'test_score': array([0.71166667, 0.69576491, 0.60574621, 0.6993865 , 0.69255663])}"
6001
      ]
6002
     },
6003
     "execution_count": 7,
6004
     "metadata": {
6005
      "tags": []
6006
     },
6007
     "output_type": "execute_result"
6008
    }
6009
   ],
6010
   "source": [
6011
    "from sklearn.model_selection import cross_validate\n",
6012
    "cross_validate(rsf, X_best, y, cv=5)"
6013
   ]
6014
  },
6015
  {
6016
   "cell_type": "markdown",
6017
   "metadata": {
6018
    "id": "01OZT1Oj3lXx",
6019
    "colab_type": "text"
6020
   },
6021
   "source": [
6022
    "Prediction: trying on the training - testing set split"
6023
   ]
6024
  },
6025
  {
6026
   "cell_type": "code",
6027
   "execution_count": 0,
6028
   "metadata": {
6029
    "id": "ViCKNjGA3lXy",
6030
    "colab_type": "code",
6031
    "outputId": "a35b2f0e-2f93-492b-9188-f073cc039579",
6032
    "colab": {}
6033
   },
6034
   "outputs": [
6035
    {
6036
     "name": "stdout",
6037
     "output_type": "stream",
6038
     "text": [
6039
      "71\n"
6040
     ]
6041
    },
6042
    {
6043
     "data": {
6044
      "image/png": "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\n",
6045
      "text/plain": [
6046
       "<Figure size 432x288 with 1 Axes>"
6047
      ]
6048
     },
6049
     "metadata": {
6050
      "tags": [],
6051
      "needs_background": "light"
6052
     },
6053
     "output_type": "display_data"
6054
    }
6055
   ],
6056
   "source": [
6057
    "surv = rsf.predict_survival_function(X_best_test)\n",
6058
    "print(len(surv))\n",
6059
    "\n",
6060
    "for i, s in enumerate(surv):\n",
6061
    "    plt.step(rsf.event_times_, s, where=\"post\", label=str(i))\n",
6062
    "plt.ylabel(\"Survival probability\")\n",
6063
    "plt.xlabel(\"Time in days\")\n",
6064
    "plt.grid(True)"
6065
   ]
6066
  },
6067
  {
6068
   "cell_type": "code",
6069
   "execution_count": 0,
6070
   "metadata": {
6071
    "id": "5ggAP5BX3lX3",
6072
    "colab_type": "code",
6073
    "outputId": "e36ae095-3746-4d10-eeae-6b17f8d45094",
6074
    "colab": {}
6075
   },
6076
   "outputs": [
6077
    {
6078
     "data": {
6079
      "text/html": [
6080
       "<div>\n",
6081
       "<style scoped>\n",
6082
       "    .dataframe tbody tr th:only-of-type {\n",
6083
       "        vertical-align: middle;\n",
6084
       "    }\n",
6085
       "\n",
6086
       "    .dataframe tbody tr th {\n",
6087
       "        vertical-align: top;\n",
6088
       "    }\n",
6089
       "\n",
6090
       "    .dataframe thead th {\n",
6091
       "        text-align: right;\n",
6092
       "    }\n",
6093
       "</style>\n",
6094
       "<table border=\"1\" class=\"dataframe\">\n",
6095
       "  <thead>\n",
6096
       "    <tr style=\"text-align: right;\">\n",
6097
       "      <th></th>\n",
6098
       "      <th>SurvivalTime</th>\n",
6099
       "      <th>Event</th>\n",
6100
       "    </tr>\n",
6101
       "    <tr>\n",
6102
       "      <th>PatientID</th>\n",
6103
       "      <th></th>\n",
6104
       "      <th></th>\n",
6105
       "    </tr>\n",
6106
       "  </thead>\n",
6107
       "  <tbody>\n",
6108
       "    <tr>\n",
6109
       "      <td>161</td>\n",
6110
       "      <td>131.0</td>\n",
6111
       "      <td>NaN</td>\n",
6112
       "    </tr>\n",
6113
       "    <tr>\n",
6114
       "      <td>112</td>\n",
6115
       "      <td>85.0</td>\n",
6116
       "      <td>NaN</td>\n",
6117
       "    </tr>\n",
6118
       "    <tr>\n",
6119
       "      <td>159</td>\n",
6120
       "      <td>79.0</td>\n",
6121
       "      <td>NaN</td>\n",
6122
       "    </tr>\n",
6123
       "    <tr>\n",
6124
       "      <td>88</td>\n",
6125
       "      <td>104.0</td>\n",
6126
       "      <td>NaN</td>\n",
6127
       "    </tr>\n",
6128
       "    <tr>\n",
6129
       "      <td>5</td>\n",
6130
       "      <td>131.0</td>\n",
6131
       "      <td>NaN</td>\n",
6132
       "    </tr>\n",
6133
       "    <tr>\n",
6134
       "      <td>...</td>\n",
6135
       "      <td>...</td>\n",
6136
       "      <td>...</td>\n",
6137
       "    </tr>\n",
6138
       "    <tr>\n",
6139
       "      <td>416</td>\n",
6140
       "      <td>98.0</td>\n",
6141
       "      <td>NaN</td>\n",
6142
       "    </tr>\n",
6143
       "    <tr>\n",
6144
       "      <td>343</td>\n",
6145
       "      <td>132.0</td>\n",
6146
       "      <td>NaN</td>\n",
6147
       "    </tr>\n",
6148
       "    <tr>\n",
6149
       "      <td>193</td>\n",
6150
       "      <td>319.0</td>\n",
6151
       "      <td>NaN</td>\n",
6152
       "    </tr>\n",
6153
       "    <tr>\n",
6154
       "      <td>77</td>\n",
6155
       "      <td>193.0</td>\n",
6156
       "      <td>NaN</td>\n",
6157
       "    </tr>\n",
6158
       "    <tr>\n",
6159
       "      <td>78</td>\n",
6160
       "      <td>131.0</td>\n",
6161
       "      <td>NaN</td>\n",
6162
       "    </tr>\n",
6163
       "  </tbody>\n",
6164
       "</table>\n",
6165
       "<p>71 rows × 2 columns</p>\n",
6166
       "</div>"
6167
      ],
6168
      "text/plain": [
6169
       "           SurvivalTime  Event\n",
6170
       "PatientID                     \n",
6171
       "161               131.0    NaN\n",
6172
       "112                85.0    NaN\n",
6173
       "159                79.0    NaN\n",
6174
       "88                104.0    NaN\n",
6175
       "5                 131.0    NaN\n",
6176
       "...                 ...    ...\n",
6177
       "416                98.0    NaN\n",
6178
       "343               132.0    NaN\n",
6179
       "193               319.0    NaN\n",
6180
       "77                193.0    NaN\n",
6181
       "78                131.0    NaN\n",
6182
       "\n",
6183
       "[71 rows x 2 columns]"
6184
      ]
6185
     },
6186
     "execution_count": 9,
6187
     "metadata": {
6188
      "tags": []
6189
     },
6190
     "output_type": "execute_result"
6191
    }
6192
   ],
6193
   "source": [
6194
    "def predict(model, x, x_df, time, threshold = 0.89):\n",
6195
    "    surv = model.predict_survival_function(x)\n",
6196
    "    y_pred = []\n",
6197
    "    for s in surv:\n",
6198
    "        i_pred = 0\n",
6199
    "        while i_pred < len(s) - 1 and s[i_pred] > threshold:\n",
6200
    "            i_pred += 1\n",
6201
    "        y_pred.append(time[i_pred])\n",
6202
    "    return pd.DataFrame(np.array([[y, np.nan] for y in y_pred]), index=x_df.index, columns=['SurvivalTime', 'Event'])\n",
6203
    "\n",
6204
    "y_pred = predict(rsf, X_best_test, X_best_test_df, rsf.event_times_)\n",
6205
    "y_pred"
6206
   ]
6207
  },
6208
  {
6209
   "cell_type": "code",
6210
   "execution_count": 0,
6211
   "metadata": {
6212
    "id": "Q6j7oQKv3lX8",
6213
    "colab_type": "code",
6214
    "outputId": "8ee2f2e0-df71-428f-daf7-379eb7577ac3",
6215
    "colab": {}
6216
   },
6217
   "outputs": [
6218
    {
6219
     "data": {
6220
      "text/plain": [
6221
       "0.7143712574807524"
6222
      ]
6223
     },
6224
     "execution_count": 10,
6225
     "metadata": {
6226
      "tags": []
6227
     },
6228
     "output_type": "execute_result"
6229
    }
6230
   ],
6231
   "source": [
6232
    "from metrics import cindex\n",
6233
    "cindex(y_test_df, y_pred)"
6234
   ]
6235
  },
6236
  {
6237
   "cell_type": "markdown",
6238
   "metadata": {
6239
    "id": "yo5dgc5N3lYA",
6240
    "colab_type": "text"
6241
   },
6242
   "source": [
6243
    "Submission"
6244
   ]
6245
  },
6246
  {
6247
   "cell_type": "code",
6248
   "execution_count": 0,
6249
   "metadata": {
6250
    "id": "jfWsXTZ23lYB",
6251
    "colab_type": "code",
6252
    "outputId": "8db125ac-b260-4dac-a7e2-36aa5eec9e48",
6253
    "colab": {}
6254
   },
6255
   "outputs": [
6256
    {
6257
     "data": {
6258
      "text/plain": [
6259
       "RandomSurvivalForest(bootstrap=True, max_depth=None, max_features='sqrt',\n",
6260
       "                     max_leaf_nodes=None, min_samples_leaf=15,\n",
6261
       "                     min_samples_split=10, min_weight_fraction_leaf=0.0,\n",
6262
       "                     n_estimators=1000, n_jobs=-1, oob_score=False,\n",
6263
       "                     random_state=20, verbose=0, warm_start=False)"
6264
      ]
6265
     },
6266
     "execution_count": 24,
6267
     "metadata": {
6268
      "tags": []
6269
     },
6270
     "output_type": "execute_result"
6271
    }
6272
   ],
6273
   "source": [
6274
    "rsf.fit(X_best, y)"
6275
   ]
6276
  },
6277
  {
6278
   "cell_type": "code",
6279
   "execution_count": 0,
6280
   "metadata": {
6281
    "id": "LK2tBPbx3lYG",
6282
    "colab_type": "code",
6283
    "outputId": "6f61915e-0dcb-4777-e9f4-347a0d5bc50f",
6284
    "colab": {}
6285
   },
6286
   "outputs": [
6287
    {
6288
     "data": {
6289
      "text/html": [
6290
       "<div>\n",
6291
       "<style scoped>\n",
6292
       "    .dataframe tbody tr th:only-of-type {\n",
6293
       "        vertical-align: middle;\n",
6294
       "    }\n",
6295
       "\n",
6296
       "    .dataframe tbody tr th {\n",
6297
       "        vertical-align: top;\n",
6298
       "    }\n",
6299
       "\n",
6300
       "    .dataframe thead th {\n",
6301
       "        text-align: right;\n",
6302
       "    }\n",
6303
       "</style>\n",
6304
       "<table border=\"1\" class=\"dataframe\">\n",
6305
       "  <thead>\n",
6306
       "    <tr style=\"text-align: right;\">\n",
6307
       "      <th></th>\n",
6308
       "      <th>original_glcm_Idn</th>\n",
6309
       "      <th>original_glcm_Idmn</th>\n",
6310
       "      <th>Nstage</th>\n",
6311
       "      <th>age</th>\n",
6312
       "      <th>original_shape_VoxelVolume</th>\n",
6313
       "      <th>original_glrlm_RunLengthNonUniformity</th>\n",
6314
       "      <th>original_firstorder_Energy</th>\n",
6315
       "      <th>SourceDataset_l1</th>\n",
6316
       "      <th>original_glcm_Imc1</th>\n",
6317
       "      <th>original_glrlm_ShortRunEmphasis</th>\n",
6318
       "    </tr>\n",
6319
       "    <tr>\n",
6320
       "      <th>PatientID</th>\n",
6321
       "      <th></th>\n",
6322
       "      <th></th>\n",
6323
       "      <th></th>\n",
6324
       "      <th></th>\n",
6325
       "      <th></th>\n",
6326
       "      <th></th>\n",
6327
       "      <th></th>\n",
6328
       "      <th></th>\n",
6329
       "      <th></th>\n",
6330
       "      <th></th>\n",
6331
       "    </tr>\n",
6332
       "  </thead>\n",
6333
       "  <tbody>\n",
6334
       "    <tr>\n",
6335
       "      <td>13</td>\n",
6336
       "      <td>0.984980</td>\n",
6337
       "      <td>0.999197</td>\n",
6338
       "      <td>0</td>\n",
6339
       "      <td>44.3970</td>\n",
6340
       "      <td>254069.0</td>\n",
6341
       "      <td>64776.697579</td>\n",
6342
       "      <td>2.006942e+09</td>\n",
6343
       "      <td>1</td>\n",
6344
       "      <td>-0.306548</td>\n",
6345
       "      <td>0.686184</td>\n",
6346
       "    </tr>\n",
6347
       "    <tr>\n",
6348
       "      <td>155</td>\n",
6349
       "      <td>0.891016</td>\n",
6350
       "      <td>0.974940</td>\n",
6351
       "      <td>3</td>\n",
6352
       "      <td>63.3183</td>\n",
6353
       "      <td>911.0</td>\n",
6354
       "      <td>795.675280</td>\n",
6355
       "      <td>2.623938e+08</td>\n",
6356
       "      <td>1</td>\n",
6357
       "      <td>-0.244386</td>\n",
6358
       "      <td>0.966275</td>\n",
6359
       "    </tr>\n",
6360
       "    <tr>\n",
6361
       "      <td>404</td>\n",
6362
       "      <td>0.973099</td>\n",
6363
       "      <td>0.996769</td>\n",
6364
       "      <td>2</td>\n",
6365
       "      <td>64.7255</td>\n",
6366
       "      <td>39809.0</td>\n",
6367
       "      <td>14007.509285</td>\n",
6368
       "      <td>6.650322e+08</td>\n",
6369
       "      <td>1</td>\n",
6370
       "      <td>-0.241592</td>\n",
6371
       "      <td>0.763929</td>\n",
6372
       "    </tr>\n",
6373
       "    <tr>\n",
6374
       "      <td>407</td>\n",
6375
       "      <td>0.970611</td>\n",
6376
       "      <td>0.996313</td>\n",
6377
       "      <td>0</td>\n",
6378
       "      <td>65.3635</td>\n",
6379
       "      <td>14458.0</td>\n",
6380
       "      <td>6094.805584</td>\n",
6381
       "      <td>3.754287e+08</td>\n",
6382
       "      <td>1</td>\n",
6383
       "      <td>-0.239166</td>\n",
6384
       "      <td>0.791925</td>\n",
6385
       "    </tr>\n",
6386
       "    <tr>\n",
6387
       "      <td>9</td>\n",
6388
       "      <td>0.904510</td>\n",
6389
       "      <td>0.978024</td>\n",
6390
       "      <td>0</td>\n",
6391
       "      <td>50.0000</td>\n",
6392
       "      <td>18942.0</td>\n",
6393
       "      <td>15924.101510</td>\n",
6394
       "      <td>9.108915e+09</td>\n",
6395
       "      <td>0</td>\n",
6396
       "      <td>-0.087334</td>\n",
6397
       "      <td>0.956571</td>\n",
6398
       "    </tr>\n",
6399
       "    <tr>\n",
6400
       "      <td>...</td>\n",
6401
       "      <td>...</td>\n",
6402
       "      <td>...</td>\n",
6403
       "      <td>...</td>\n",
6404
       "      <td>...</td>\n",
6405
       "      <td>...</td>\n",
6406
       "      <td>...</td>\n",
6407
       "      <td>...</td>\n",
6408
       "      <td>...</td>\n",
6409
       "      <td>...</td>\n",
6410
       "      <td>...</td>\n",
6411
       "    </tr>\n",
6412
       "    <tr>\n",
6413
       "      <td>66</td>\n",
6414
       "      <td>0.988427</td>\n",
6415
       "      <td>0.999585</td>\n",
6416
       "      <td>2</td>\n",
6417
       "      <td>70.7077</td>\n",
6418
       "      <td>147333.0</td>\n",
6419
       "      <td>64292.661837</td>\n",
6420
       "      <td>4.677261e+09</td>\n",
6421
       "      <td>1</td>\n",
6422
       "      <td>-0.331101</td>\n",
6423
       "      <td>0.801772</td>\n",
6424
       "    </tr>\n",
6425
       "    <tr>\n",
6426
       "      <td>132</td>\n",
6427
       "      <td>0.969797</td>\n",
6428
       "      <td>0.995251</td>\n",
6429
       "      <td>3</td>\n",
6430
       "      <td>51.1595</td>\n",
6431
       "      <td>61130.0</td>\n",
6432
       "      <td>18707.945523</td>\n",
6433
       "      <td>2.332008e+09</td>\n",
6434
       "      <td>1</td>\n",
6435
       "      <td>-0.291445</td>\n",
6436
       "      <td>0.747388</td>\n",
6437
       "    </tr>\n",
6438
       "    <tr>\n",
6439
       "      <td>169</td>\n",
6440
       "      <td>0.938707</td>\n",
6441
       "      <td>0.990300</td>\n",
6442
       "      <td>1</td>\n",
6443
       "      <td>70.0000</td>\n",
6444
       "      <td>9795.0</td>\n",
6445
       "      <td>6995.460108</td>\n",
6446
       "      <td>2.036047e+08</td>\n",
6447
       "      <td>0</td>\n",
6448
       "      <td>-0.069610</td>\n",
6449
       "      <td>0.916743</td>\n",
6450
       "    </tr>\n",
6451
       "    <tr>\n",
6452
       "      <td>199</td>\n",
6453
       "      <td>0.966520</td>\n",
6454
       "      <td>0.995673</td>\n",
6455
       "      <td>3</td>\n",
6456
       "      <td>70.5106</td>\n",
6457
       "      <td>5957.0</td>\n",
6458
       "      <td>2148.280752</td>\n",
6459
       "      <td>8.054723e+07</td>\n",
6460
       "      <td>1</td>\n",
6461
       "      <td>-0.298580</td>\n",
6462
       "      <td>0.756837</td>\n",
6463
       "    </tr>\n",
6464
       "    <tr>\n",
6465
       "      <td>274</td>\n",
6466
       "      <td>0.976610</td>\n",
6467
       "      <td>0.997712</td>\n",
6468
       "      <td>0</td>\n",
6469
       "      <td>80.2245</td>\n",
6470
       "      <td>123864.0</td>\n",
6471
       "      <td>39128.630800</td>\n",
6472
       "      <td>4.095957e+09</td>\n",
6473
       "      <td>1</td>\n",
6474
       "      <td>-0.324802</td>\n",
6475
       "      <td>0.748313</td>\n",
6476
       "    </tr>\n",
6477
       "  </tbody>\n",
6478
       "</table>\n",
6479
       "<p>125 rows × 10 columns</p>\n",
6480
       "</div>"
6481
      ],
6482
      "text/plain": [
6483
       "           original_glcm_Idn  original_glcm_Idmn  Nstage      age  \\\n",
6484
       "PatientID                                                           \n",
6485
       "13                  0.984980            0.999197       0  44.3970   \n",
6486
       "155                 0.891016            0.974940       3  63.3183   \n",
6487
       "404                 0.973099            0.996769       2  64.7255   \n",
6488
       "407                 0.970611            0.996313       0  65.3635   \n",
6489
       "9                   0.904510            0.978024       0  50.0000   \n",
6490
       "...                      ...                 ...     ...      ...   \n",
6491
       "66                  0.988427            0.999585       2  70.7077   \n",
6492
       "132                 0.969797            0.995251       3  51.1595   \n",
6493
       "169                 0.938707            0.990300       1  70.0000   \n",
6494
       "199                 0.966520            0.995673       3  70.5106   \n",
6495
       "274                 0.976610            0.997712       0  80.2245   \n",
6496
       "\n",
6497
       "           original_shape_VoxelVolume  original_glrlm_RunLengthNonUniformity  \\\n",
6498
       "PatientID                                                                      \n",
6499
       "13                           254069.0                           64776.697579   \n",
6500
       "155                             911.0                             795.675280   \n",
6501
       "404                           39809.0                           14007.509285   \n",
6502
       "407                           14458.0                            6094.805584   \n",
6503
       "9                             18942.0                           15924.101510   \n",
6504
       "...                               ...                                    ...   \n",
6505
       "66                           147333.0                           64292.661837   \n",
6506
       "132                           61130.0                           18707.945523   \n",
6507
       "169                            9795.0                            6995.460108   \n",
6508
       "199                            5957.0                            2148.280752   \n",
6509
       "274                          123864.0                           39128.630800   \n",
6510
       "\n",
6511
       "           original_firstorder_Energy  SourceDataset_l1  original_glcm_Imc1  \\\n",
6512
       "PatientID                                                                     \n",
6513
       "13                       2.006942e+09                 1           -0.306548   \n",
6514
       "155                      2.623938e+08                 1           -0.244386   \n",
6515
       "404                      6.650322e+08                 1           -0.241592   \n",
6516
       "407                      3.754287e+08                 1           -0.239166   \n",
6517
       "9                        9.108915e+09                 0           -0.087334   \n",
6518
       "...                               ...               ...                 ...   \n",
6519
       "66                       4.677261e+09                 1           -0.331101   \n",
6520
       "132                      2.332008e+09                 1           -0.291445   \n",
6521
       "169                      2.036047e+08                 0           -0.069610   \n",
6522
       "199                      8.054723e+07                 1           -0.298580   \n",
6523
       "274                      4.095957e+09                 1           -0.324802   \n",
6524
       "\n",
6525
       "           original_glrlm_ShortRunEmphasis  \n",
6526
       "PatientID                                   \n",
6527
       "13                                0.686184  \n",
6528
       "155                               0.966275  \n",
6529
       "404                               0.763929  \n",
6530
       "407                               0.791925  \n",
6531
       "9                                 0.956571  \n",
6532
       "...                                    ...  \n",
6533
       "66                                0.801772  \n",
6534
       "132                               0.747388  \n",
6535
       "169                               0.916743  \n",
6536
       "199                               0.756837  \n",
6537
       "274                               0.748313  \n",
6538
       "\n",
6539
       "[125 rows x 10 columns]"
6540
      ]
6541
     },
6542
     "execution_count": 16,
6543
     "metadata": {
6544
      "tags": []
6545
     },
6546
     "output_type": "execute_result"
6547
    }
6548
   ],
6549
   "source": [
6550
    "from read_data import load_submission\n",
6551
    "X_submission_df = load_submission(best_features)\n",
6552
    "X_submission_df"
6553
   ]
6554
  },
6555
  {
6556
   "cell_type": "code",
6557
   "execution_count": 0,
6558
   "metadata": {
6559
    "id": "75Majrav3lYJ",
6560
    "colab_type": "code",
6561
    "outputId": "de3c3f56-acf6-4c60-83c7-6f2248021dde",
6562
    "colab": {}
6563
   },
6564
   "outputs": [
6565
    {
6566
     "name": "stdout",
6567
     "output_type": "stream",
6568
     "text": [
6569
      "[[False False False ... False False False]\n",
6570
      " [False False False ... False False False]\n",
6571
      " [False False False ... False False False]\n",
6572
      " ...\n",
6573
      " [False False False ... False False False]\n",
6574
      " [False False False ... False False False]\n",
6575
      " [False False False ... False False False]]\n"
6576
     ]
6577
    },
6578
    {
6579
     "ename": "ValueError",
6580
     "evalue": "Input contains NaN, infinity or a value too large for dtype('float32').",
6581
     "traceback": [
6582
      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
6583
      "\u001b[0;31mValueError\u001b[0m                                Traceback (most recent call last)",
6584
      "\u001b[0;32m<ipython-input-23-0595d60484f3>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[1;32m      1\u001b[0m \u001b[0mX_submission\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mX_submission_df\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mto_numpy\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m      2\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mX_submission\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mnan\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 3\u001b[0;31m \u001b[0my_pred\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mpredict\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mrsf\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mX_submission\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mX_submission_df\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mrsf\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mevent_times_\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m      4\u001b[0m \u001b[0my_pred\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
6585
      "\u001b[0;32m<ipython-input-9-5af518e54bd6>\u001b[0m in \u001b[0;36mpredict\u001b[0;34m(model, x, x_df, time, threshold)\u001b[0m\n\u001b[1;32m      1\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mpredict\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mmodel\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mx\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mx_df\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtime\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mthreshold\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;36m0.89\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 2\u001b[0;31m     \u001b[0msurv\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mmodel\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpredict_survival_function\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m      3\u001b[0m     \u001b[0my_pred\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m      4\u001b[0m     \u001b[0;32mfor\u001b[0m \u001b[0ms\u001b[0m \u001b[0;32min\u001b[0m \u001b[0msurv\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m      5\u001b[0m         \u001b[0mi_pred\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;36m0\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
6586
      "\u001b[0;32m~/anaconda3/envs/std/lib/python3.7/site-packages/sksurv/ensemble/forest.py\u001b[0m in \u001b[0;36mpredict_survival_function\u001b[0;34m(self, X)\u001b[0m\n\u001b[1;32m    418\u001b[0m             \u001b[0mPredicted\u001b[0m \u001b[0msurvival\u001b[0m \u001b[0mfunctions\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    419\u001b[0m         \"\"\"\n\u001b[0;32m--> 420\u001b[0;31m         \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_predict\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"predict_survival_function\"\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mX\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
6587
      "\u001b[0;32m~/anaconda3/envs/std/lib/python3.7/site-packages/sksurv/ensemble/forest.py\u001b[0m in \u001b[0;36m_predict\u001b[0;34m(self, predict_fn, X)\u001b[0m\n\u001b[1;32m    324\u001b[0m         \u001b[0mcheck_is_fitted\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'estimators_'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    325\u001b[0m         \u001b[0;31m# Check data\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 326\u001b[0;31m         \u001b[0mX\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_validate_X_predict\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mX\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    327\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    328\u001b[0m         \u001b[0;31m# Assign chunk of trees to jobs\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
6588
      "\u001b[0;32m~/anaconda3/envs/std/lib/python3.7/site-packages/sklearn/ensemble/forest.py\u001b[0m in \u001b[0;36m_validate_X_predict\u001b[0;34m(self, X)\u001b[0m\n\u001b[1;32m    357\u001b[0m                                  \"call `fit` before exploiting the model.\")\n\u001b[1;32m    358\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 359\u001b[0;31m         \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mestimators_\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_validate_X_predict\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mX\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcheck_input\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mTrue\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    360\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    361\u001b[0m     \u001b[0;34m@\u001b[0m\u001b[0mproperty\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
6589
      "\u001b[0;32m~/anaconda3/envs/std/lib/python3.7/site-packages/sksurv/tree/tree.py\u001b[0m in \u001b[0;36m_validate_X_predict\u001b[0;34m(self, X, check_input)\u001b[0m\n\u001b[1;32m    343\u001b[0m         \u001b[0;34m\"\"\"Validate X whenever one tries to predict\"\"\"\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    344\u001b[0m         \u001b[0;32mif\u001b[0m \u001b[0mcheck_input\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 345\u001b[0;31m             \u001b[0mX\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mcheck_array\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mX\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdtype\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mDTYPE\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    346\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    347\u001b[0m         \u001b[0mn_features\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mX\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mshape\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
6590
      "\u001b[0;32m~/anaconda3/envs/std/lib/python3.7/site-packages/sklearn/utils/validation.py\u001b[0m in \u001b[0;36mcheck_array\u001b[0;34m(array, accept_sparse, accept_large_sparse, dtype, order, copy, force_all_finite, ensure_2d, allow_nd, ensure_min_samples, ensure_min_features, warn_on_dtype, estimator)\u001b[0m\n\u001b[1;32m    540\u001b[0m         \u001b[0;32mif\u001b[0m \u001b[0mforce_all_finite\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    541\u001b[0m             _assert_all_finite(array,\n\u001b[0;32m--> 542\u001b[0;31m                                allow_nan=force_all_finite == 'allow-nan')\n\u001b[0m\u001b[1;32m    543\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    544\u001b[0m     \u001b[0;32mif\u001b[0m \u001b[0mensure_min_samples\u001b[0m \u001b[0;34m>\u001b[0m \u001b[0;36m0\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
6591
      "\u001b[0;32m~/anaconda3/envs/std/lib/python3.7/site-packages/sklearn/utils/validation.py\u001b[0m in \u001b[0;36m_assert_all_finite\u001b[0;34m(X, allow_nan)\u001b[0m\n\u001b[1;32m     54\u001b[0m                 not allow_nan and not np.isfinite(X).all()):\n\u001b[1;32m     55\u001b[0m             \u001b[0mtype_err\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m'infinity'\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mallow_nan\u001b[0m \u001b[0;32melse\u001b[0m \u001b[0;34m'NaN, infinity'\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 56\u001b[0;31m             \u001b[0;32mraise\u001b[0m \u001b[0mValueError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mmsg_err\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mformat\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtype_err\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mX\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdtype\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m     57\u001b[0m     \u001b[0;31m# for object dtype data, we only check for NaNs (GH-13254)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m     58\u001b[0m     \u001b[0;32melif\u001b[0m \u001b[0mX\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdtype\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdtype\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'object'\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mand\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0mallow_nan\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
6592
      "\u001b[0;31mValueError\u001b[0m: Input contains NaN, infinity or a value too large for dtype('float32')."
6593
     ],
6594
     "output_type": "error"
6595
    }
6596
   ],
6597
   "source": [
6598
    "X_submission = X_submission_df.to_numpy()\n",
6599
    "print(X_submission == np.nan)\n",
6600
    "y_pred = predict(rsf, X_submission, X_submission_df, rsf.event_times_)\n",
6601
    "y_pred"
6602
   ]
6603
  },
6604
  {
6605
   "cell_type": "markdown",
6606
   "metadata": {
6607
    "id": "b3Z6eLA-3lYN",
6608
    "colab_type": "text"
6609
   },
6610
   "source": [
6611
    "Grid search for tuning parameters of RSF"
6612
   ]
6613
  },
6614
  {
6615
   "cell_type": "code",
6616
   "execution_count": 0,
6617
   "metadata": {
6618
    "id": "duU4YRCw3lYX",
6619
    "colab_type": "code",
6620
    "colab": {}
6621
   },
6622
   "outputs": [],
6623
   "source": [
6624
    "best_params = grid_search.best_params_\n",
6625
    "best_params"
6626
   ]
6627
  },
6628
  {
6629
   "cell_type": "code",
6630
   "execution_count": 0,
6631
   "metadata": {
6632
    "id": "16BHRpQ53lYa",
6633
    "colab_type": "code",
6634
    "colab": {}
6635
   },
6636
   "outputs": [],
6637
   "source": [
6638
    ""
6639
   ]
6640
  }
6641
 ],
6642
 "metadata": {
6643
  "kernelspec": {
6644
   "display_name": "Python 3",
6645
   "language": "python",
6646
   "name": "python3"
6647
  },
6648
  "language_info": {
6649
   "codemirror_mode": {
6650
    "name": "ipython",
6651
    "version": 3
6652
   },
6653
   "file_extension": ".py",
6654
   "mimetype": "text/x-python",
6655
   "name": "python",
6656
   "nbconvert_exporter": "python",
6657
   "pygments_lexer": "ipython3",
6658
   "version": "3.7.4"
6659
  },
6660
  "colab": {
6661
   "name": "RSF_model.ipynb",
6662
   "provenance": [],
6663
   "collapsed_sections": [
6664
    "LYRHHcaJz6QM"
6665
   ],
6666
   "toc_visible": true
6667
  }
6668
 },
6669
 "nbformat": 4,
6670
 "nbformat_minor": 0
6671
}