Skip to content

Instantly share code, notes, and snippets.

@edouardklein
Last active August 29, 2015 14:14
Show Gist options
  • Save edouardklein/dfa90696fc292664b408 to your computer and use it in GitHub Desktop.
Save edouardklein/dfa90696fc292664b408 to your computer and use it in GitHub Desktop.
iPython notebook - Cancer classifier
{
"metadata": {
"name": "",
"signature": "sha256:85272ac1663064bca34b844ba7fc160187b15dcadf58efacf0ca4b4f043e5d58"
},
"nbformat": 3,
"nbformat_minor": 0,
"worksheets": [
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Analyse mortalit\u00e9 cancer\n",
"\n",
"## Importation des donn\u00e9es\n",
"\n",
"Donn\u00e9es dans tableau 'recueil ASCO.xls'.\n",
"\n",
"Conversion \u00e0 l'aide de csv2mat.py\n",
"\n",
"Il y a pas mal de dossiers incomplets. On m\u00e8nera l'\u00e9tude sur plusieurs datasets de format $n \\times p$ diff\u00e9rents (rajouter une variable fait perdre les patients pour lesquels cette variable est inconnue, c'est \u00e0 dire quand $p$ augmente, $n$ diminue).\n",
"\n",
"Pour pouvoir utiliser des m\u00e9thodes lin\u00e9aires on va rajouter des variables pour remplacer les variables descriptives dont le num\u00e9ro n'a pas de valeur s\u00e9mantique. Par exemple le type de cancer est donn\u00e9 par un chiffre, mais on va transformer \u00e7a en autant de variables binaires qu'il y a de type de cancer."
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"import csv\n",
"import seaborn as sns\n",
"import sys\n",
"\n",
"\n",
"with open('edouard_mat.csv', 'r', encoding='utf-8') as f:\n",
" reader = csv.reader(f)\n",
" all_headers = next(reader)\n",
" remove_index = all_headers.index(' remove')\n",
" data = []\n",
" for row in reader:\n",
" if not float(row[remove_index]):\n",
" if float(row[all_headers.index(' LATA + s\u00e9jour < 24h')]):\n",
" print(\"Patient \"+row[all_headers.index('NDA')]+\" should have been excluded\")\n",
" continue\n",
" data.append([float(v) for v in row])\n",
" data = array(data)\n",
"\n",
"#Separating X and Y\n",
"Y_headers = [' dead_90d', ' dead_hospit', ' dead_rea', ' ttt_bad', ' ttt_nan', ' ttt_ok']\n",
"X_headers = set(all_headers) - set(Y_headers)\n",
"\n",
"#NaN-ing what should be NaN-ed but wasn't because csv2mat is not perfect.\n",
"def nan_empty_headers(dataset, headers, prefix, nan_header=None):\n",
" \"\"\"Set to NaN the entire vector of headers beginning whith prefix if there is a 1 in the column prefix\n",
" \n",
" This is useful when csv2nan creates a column e.g. some_header_ which will be 1 for rows where the some_header value was\n",
" empty. An empty value should in most case be transcribed as NaN. \n",
" \"\"\"\n",
" if nan_header == None:\n",
" nan_header = prefix\n",
" cols_to_nan = [headers.index(h) for h in headers if h.startswith(prefix)]\n",
" nan_col = headers.index(nan_header)\n",
" for row_index in range(0, len(dataset)):\n",
" if dataset[row_index,nan_col]:\n",
" for c in cols_to_nan:\n",
" dataset[row_index,c] = float('nan')\n",
" try:\n",
" X_headers.remove(nan_header)\n",
" except KeyError:\n",
" Y_headers.remove(nan_header)\n",
"\n",
"\n",
"nan_empty_headers(data, all_headers, ' cancer_type_')\n",
"nan_empty_headers(data, all_headers, ' motif_hospit_')\n",
"nan_empty_headers(data, all_headers, ' ttt_', nan_header=' ttt_nan')"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Patient 750727271 should have been excluded\n",
"Patient 750723478 should have been excluded\n",
"Patient 750715807 should have been excluded\n",
"Patient 750712234 should have been excluded\n",
"Patient 750706856 should have been excluded\n",
"Patient 751281222 should have been excluded\n",
"Patient 751279695 should have been excluded\n",
"Patient 751277819 should have been excluded\n",
"Patient 751260872 should have been excluded\n",
"Patient 751248490 should have been excluded\n",
"Patient 751177525 should have been excluded\n",
"Patient 751210491 should have been excluded\n",
"Patient 750735028 should have been excluded\n",
"Patient 750722038 should have been excluded\n",
"Patient 750722474 should have been excluded\n",
"Patient 750719163 should have been excluded\n",
"Patient 750705643 should have been excluded\n",
"Patient 750702173 should have been excluded\n"
]
}
],
"prompt_number": 1
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"On trie les lignes et les colonnes par le nombre de donn\u00e9es manquantes qu'elle contiennent, et on graphe le tout (voir fichier missing_data.pdf, car \u00e7a appara\u00eet mal dans le notebook)."
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"sorted_headers = list(range(0,len(data[0])))\n",
"sorted_headers.sort(key = lambda x : sum(isnan(data[:,x])))\n",
"sorted_samples = list(range(0,len(data)))\n",
"sorted_samples.sort(key = lambda x : sum(isnan(data[x])))\n",
"sorted_data = data[:,sorted_headers]\n",
"sorted_data = sorted_data[sorted_samples]\n",
"sns.heatmap(isnan(sorted_data))\n",
"savefig('missing_data.pdf')"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "display_data",
"png": "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\n",
"text": [
"<matplotlib.figure.Figure at 0x1075267f0>"
]
}
],
"prompt_number": 2
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"def useable_data(nb_headers):\n",
" removed_headers = [all_headers[i] for i in sorted_headers[-nb_headers:]]+['NDA', # Useless\n",
" ' remove', # Useless \n",
" ' Dur\u00e9e VM (jours)', # Not known at first\n",
" ' lata', # Not known at first\n",
" ' Dur\u00e9e s\u00e9jour r\u00e9a (jours)', # Not known at first\n",
" ' Dur\u00e9e inotropes', # Not known at first\n",
" ' LATA + s\u00e9jour < 24h', # Not part of the study\n",
" ' Dur\u00e9e s\u00e9jour hospitalisation', # Not known at first\n",
" ' IGS 2', # Too much information\n",
" ' complication_thromboembo', # Too few patients\n",
" ' Dur\u00e9e VM (jours)', # Not known at first\n",
" ]\n",
" X_j_indices = [all_headers.index(h) for h in X_headers if not h in removed_headers]\n",
" X = data[:,X_j_indices]\n",
" X_i_indices = [i for i in range(0, len(data)) if not any(isnan(X[i]))]\n",
" X = X[X_i_indices]\n",
" Y_index = all_headers.index(' dead_rea')\n",
" Y = data[X_i_indices,Y_index]\n",
" print('Removing : '+str(removed_headers))\n",
" print('Headers used for X : '+str(sorted([all_headers[i] for i in X_j_indices])))\n",
" print('Number of samples : '+str(len(X_i_indices))+'/'+str(len(data)))\n",
" return X,Y,X_j_indices\n",
"X,Y,header_order = useable_data(9)\n",
"X.shape,Y.shape"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Removing : [' Lymphocytes', ' CRP', ' vni', ' Poids kg', ' Taille m', ' chimiotherapie', ' ciblee', ' IMC kg/m\u00b2', \" Albumine \u00e0 l'admission\", 'NDA', ' remove', ' Dur\u00e9e VM (jours)', ' lata', ' Dur\u00e9e s\u00e9jour r\u00e9a (jours)', ' Dur\u00e9e inotropes', ' LATA + s\u00e9jour < 24h', ' Dur\u00e9e s\u00e9jour hospitalisation', ' IGS 2', ' complication_thromboembo', ' Dur\u00e9e VM (jours)']\n",
"Headers used for X : [' AGE', ' ALAT', ' ASAT', ' Leucocytes', ' NOMBRE LIGNE CHIMIO', ' PS', ' Plaquettes', ' bilirubine (\u00b5mol/L)', ' cancer_type_1', ' cancer_type_2', ' cancer_type_3', ' cancer_type_4', ' cancer_type_5', ' cancer_type_6', ' cancer_type_7', ' cr\u00e9atinin\u00e9mie (\u00b5mol/L)', ' diabete', ' dialyse', ' glyc\u00e9mie mmol/L', ' inotropes', ' irenal_chro', ' lactates', ' meta_autre', ' meta_cerveau', ' meta_foie', ' meta_gg', ' meta_lymph', ' meta_os', ' meta_poumon', ' metastatique', ' motif_hospit_1', ' motif_hospit_2', ' motif_hospit_3', ' neutropenie', ' pavm', ' ph', ' respi_chro', ' tabac', ' ur\u00e9e', ' vm']\n",
"Number of samples : 122/157\n"
]
},
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 3,
"text": [
"((122, 40), (122,))"
]
}
],
"prompt_number": 3
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Pr\u00e9diction de la cat\u00e9gorie\n",
"### Evaluation des m\u00e9thodes de classification\n",
"On regarde le score (avec p-valeur si \u00e7a en vaut la peine), la matrice de confusion, et l'importance des variables si la m\u00e9thode le permet."
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"from sklearn import cross_validation\n",
"from sklearn import metrics\n",
"\n",
"def clf_eval(clf, p_value=False, confusion=False):\n",
" #Accuracy\n",
" if not p_value:\n",
" scores = cross_validation.cross_val_score(clf, X, Y, cv=10)\n",
" print(\"Accuracy: %0.2f (+/- %0.2f)\" % (scores.mean(), scores.std() * 2))\n",
" else:\n",
" score, foo, p = cross_validation.permutation_test_score(clf, X, Y, cv=10, n_permutations=100)\n",
" print(\"Accuracy: %0.2f (p-value: %0.2f)\" % (score, p))\n",
" #Relevance info\n",
" clf.fit(X,Y)\n",
" for relevance_attribute in ['feature_importances_', 'coef_']:\n",
" try:\n",
" relevance_vector = eval('clf.'+relevance_attribute)\n",
" d = {i:r for i,r in enumerate(list([abs(x) for x in relevance_vector.flatten()]))}\n",
" for i in sorted(d.keys(), key=lambda x:d[x], reverse=True):\n",
" index_all_headers = header_order[i]\n",
" print(\"{:<25} {:<7.2}\".format(all_headers[index_all_headers], d[i]))\n",
" break\n",
" except (AttributeError, ValueError):\n",
" pass\n",
" #Confusion Matrix\n",
" if not confusion:\n",
" return\n",
" loo = cross_validation.LeaveOneOut(len(Y))\n",
" Y_true = []\n",
" Y_pred = []\n",
" for train_index, test_index in loo:\n",
" X_train, X_test = X[train_index], X[test_index]\n",
" Y_train, Y_test = Y[train_index], Y[test_index]\n",
" clf.fit(X_train, Y_train)\n",
" Y_pred.append(clf.predict(X_test))\n",
" Y_true.append(Y_test)\n",
" cm = metrics.confusion_matrix(Y_true, Y_pred)\n",
" plt.figure()\n",
" sns.heatmap(cm, annot=True, fmt='d')"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 53
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### LinearSVC\n",
"\n",
"En suivant le flowchart (http://scikit-learn.org/stable/tutorial/machine_learning_map/index.html) on tombe sur un SVC lin\u00e9aire.\n",
"http://scikit-learn.org/stable/modules/svm.html#classification"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"from sklearn.svm import LinearSVC\n",
"clf = LinearSVC()\n",
"clf_eval(clf)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Accuracy: 0.66 (+/- 0.19)\n",
" vm 0.35 \n",
" inotropes 0.23 \n",
" pavm 0.19 \n",
" tabac 0.12 \n",
" diabete 0.11 \n",
" dialyse 0.07 \n",
" NOMBRE LIGNE CHIMIO 0.065 \n",
" meta_poumon 0.052 \n",
" meta_autre 0.052 \n",
" meta_os 0.049 \n",
" PS 0.048 \n",
" cancer_type_6 0.045 \n",
" meta_foie 0.041 \n",
" lactates 0.037 \n",
" cancer_type_2 0.034 \n",
" cancer_type_4 0.032 \n",
" neutropenie 0.032 \n",
" motif_hospit_2 0.027 \n",
" cancer_type_1 0.024 \n",
" irenal_chro 0.02 \n",
" motif_hospit_3 0.018 \n",
" ph 0.016 \n",
" meta_lymph 0.015 \n",
" glyc\u00e9mie mmol/L 0.0097 \n",
" AGE 0.0092 \n",
" motif_hospit_1 0.0084 \n",
" meta_cerveau 0.0077 \n",
" Leucocytes 0.0068 \n",
" cancer_type_3 0.0056 \n",
" respi_chro 0.005 \n",
" meta_gg 0.0034 \n",
" cancer_type_7 0.0022 \n",
" ur\u00e9e 0.0021 \n",
" metastatique 0.002 \n",
" Plaquettes 0.002 \n",
" bilirubine (\u00b5mol/L) 0.0018 \n",
" ALAT 0.0012 \n",
" ASAT 0.0011 \n",
" cancer_type_5 0.00066\n",
" cr\u00e9atinin\u00e9mie (\u00b5mol/L) 0.00035\n"
]
}
],
"prompt_number": 54
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Pour l'instant, le r\u00e9sultat est vraiment pas bon (59% de bonne r\u00e9ponses, soit \u00e0 peine mieux que le hasard).\n",
"\n",
"Du coup si on suit le flowchart, on tombe sur les K-neighboors\n",
"### K nearest neighboors\n",
"\n",
"http://scikit-learn.org/stable/modules/neighbors.html#nearest-neighbors-classification\n",
"\n",
"La recherche manuelle du param\u00e8tre $k$ peut \u00eatre p\u00e9nible, donc, vu que la quantit\u00e9 de donn\u00e9es est faible, on va se permettre de tester toutes les valeurs raisonnables de mani\u00e8re exhaustive :\n",
"\n"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"from sklearn import neighbors\n",
"for k in range(3,40):\n",
" clf = neighbors.KNeighborsClassifier(k)\n",
" clf_eval(clf)\n",
"clf_eval(neighbors.KNeighborsClassifier(30), confusion=True)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Accuracy: 0.63 (+/- 0.19)\n",
"Accuracy: 0.65 (+/- 0.14)\n",
"Accuracy: 0.61 (+/- 0.21)"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"Accuracy: 0.62 (+/- 0.16)\n",
"Accuracy: 0.64 (+/- 0.18)"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"Accuracy: 0.63 (+/- 0.17)\n",
"Accuracy: 0.61 (+/- 0.21)"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"Accuracy: 0.61 (+/- 0.20)\n",
"Accuracy: 0.62 (+/- 0.20)"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"Accuracy: 0.65 (+/- 0.10)\n",
"Accuracy: 0.66 (+/- 0.12)"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"Accuracy: 0.63 (+/- 0.13)\n",
"Accuracy: 0.64 (+/- 0.11)"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"Accuracy: 0.65 (+/- 0.10)\n",
"Accuracy: 0.65 (+/- 0.10)"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"Accuracy: 0.66 (+/- 0.12)\n",
"Accuracy: 0.66 (+/- 0.12)"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"Accuracy: 0.66 (+/- 0.11)\n",
"Accuracy: 0.66 (+/- 0.11)"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"Accuracy: 0.66 (+/- 0.09)\n",
"Accuracy: 0.66 (+/- 0.09)"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"Accuracy: 0.66 (+/- 0.05)\n",
"Accuracy: 0.66 (+/- 0.09)"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"Accuracy: 0.66 (+/- 0.01)\n",
"Accuracy: 0.66 (+/- 0.01)"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"Accuracy: 0.66 (+/- 0.01)\n",
"Accuracy: 0.66 (+/- 0.01)"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"Accuracy: 0.66 (+/- 0.01)\n",
"Accuracy: 0.66 (+/- 0.01)"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"Accuracy: 0.66 (+/- 0.01)\n",
"Accuracy: 0.66 (+/- 0.01)"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"Accuracy: 0.66 (+/- 0.01)\n",
"Accuracy: 0.66 (+/- 0.01)"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"Accuracy: 0.66 (+/- 0.01)\n",
"Accuracy: 0.66 (+/- 0.01)"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"Accuracy: 0.66 (+/- 0.01)\n",
"Accuracy: 0.66 (+/- 0.01)"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"Accuracy: 0.66 (+/- 0.01)"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"Loo accuracy : 0.663934"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n"
]
},
{
"metadata": {},
"output_type": "display_data",
"png": "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\nNEEHwKD9H6AvoIwxt6GLAAAAAElFTkSuQmCC\n",
"text": [
"<matplotlib.figure.Figure at 0x10b502f28>"
]
}
],
"prompt_number": 58
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"La matrice de confusion permet de voir qu'avec trop de voisins, on pr\u00e9dit toujours 0 ! Pour faire marcher un $k$-NN, il faut plus de donn\u00e9es\n",
"\n",
"## SVM"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"from sklearn.svm import SVC\n",
"clf = SVC()\n",
"clf_eval(clf, confusion=True)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Accuracy: 0.66 (+/- 0.01)\n",
"Loo accuracy : 0.663934"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n"
]
},
{
"metadata": {},
"output_type": "display_data",
"png": "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\nNEEHwKD9H6AvoIwxt6GLAAAAAElFTkSuQmCC\n",
"text": [
"<matplotlib.figure.Figure at 0x10b376eb8>"
]
}
],
"prompt_number": 59
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"C'est pas mieux (on pr\u00e9dit toujours 0)\n",
"\n",
"On fait une derni\u00e8re tentative avec les\n",
"## Ensemble Methods\n",
"### Bagging"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"from sklearn.ensemble import BaggingClassifier\n",
"clf = BaggingClassifier(neighbors.KNeighborsClassifier(),max_samples=0.5, max_features=0.5)\n",
"clf_eval(clf, confusion=True)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Accuracy: 0.64 (+/- 0.09)\n",
"Loo accuracy : 0.614754"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n"
]
},
{
"metadata": {},
"output_type": "display_data",
"png": "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\n0DQ6AJr1uNBpdAAMm0YHQDNTlwAMmmddAjBs/c051+gAGDaNDoBmfd661OgAGDSNDoBmfW50gg6A\ndj3eHxR0ADTrc6PrcQYDQDuNDoBmGh0AdESjA6BdfwudoAOgnYc6AzBsrtEBQDc0OgCa9bjQaXQA\nDJtGB0CzPt9HJ+jmkcmpyVxyy3/kVyvvzyjJ4S84IJNTk7n0e/+VidEoT3vydjn8BQdky4ktul4q\nbLQ1a9fmYx//u9x9zz1Zs3pNjn7Xkdl/v1d2vSxmy9Qlm8Kt996RUUZ578sPz+333ZWv1v/J8kdW\n5k/2XJpdtt8xV992fb555y3Zb7cXdb1U2GhXXf31bL/9djnt46fmgeXLc8Rb3yHo5qE+NzrX6OaR\nFzzzuTnihQckSX6zanmetNXC3P/wiuyy/Y5Jkl232zG3/+auLpcIs/aqg/4wxx/z7iTJ1ORUttjC\njgSblqCbZyZGE/nCd7+RK269Ni/eqWSHRU95LNxuvfeOrF63puMVwuwsetKTsmjRoqxcuTJ/efKH\n8+fvOabrJTEXo4bXmK1367KU8p9JFj7BMqZqrfuOdVXM6C17H5wHH3koZ3/zkrxryaG5ql6Xb/zo\nxuz21J2yas0jXS8PZu2ee36ZEz54ct58xBtzyKsO7no5DMxM1+g+lOSCJG9IsnbzLIeZ3HTXD/PA\nqhU58Hn7ZKuJLTPKKLfe+9O8de9XZ9GCrXP5969Jefpzul4mzMqv7/tNjn7vCfnISe/PS/dZ0vVy\nmKM+X6Nbb9DVWm8opXwuyV611ss245pYj713fF6+cPM3ct71X8q6yckctud+GSX5zI1XZMuJLfKc\n7Z6ZfZ71e10vE2Zl2YUXZ8WKlfnMsgvzmWUXJknOP/uMLFy4sOOVMRt9ftblaGpqapznn/rKieeO\n8/wwdoeedXySZPXy+zpeCczdgsU7JGO8Ivbzq66ec5js/NpDxpqSbi8AoFmfty5NXQIwaIIOgEGz\ndQlAu/7uXAo6ANr1eepS0AHQrsfDKIIOgGamLgGgI4IOgEGzdQlAO8MoAAxZn6/RCToA2vU35wQd\nAO3G2ehKKS9Lcnqt9YBSyu8nuTLJj6a/Pr/WeslMxws6AHqrlPLBJG9LsmL6oyVJzqy1nrmx5zB1\nCUCf/TiP/gD4byvjkiSvLaVcU0pZVkrZZkMnEHQAtJsYzf01g+kf/l77uI9uSPL+WuvSJD9JcuqG\nlmbrEoBmm3Hq8vJa6wPTf74iyTkbOkCjA6DdaDT31+x8rZTykuk/H5jkpg0doNEB0GwzNLqp6f89\nNsl5pZQ1SX6R5OgNHSjoAOi1WusdSfad/vN3k7xyNsfbugRg0DQ6ANp51iUAQ+ZZlwAMm6ADYMhG\nPd66NIwCwKAJOgAGzdYlAO1cowNgyExdAjBsgg6AITN1CQAdEXQADJqtSwDauUYHwKAJOgCGzO0F\nAAybqUsA6IagA2DQbF0C0Gw06m9vEnQAtDOMAsCQmboEYNhMXQJANwQdAINm6xKAZq7RATBsgg6A\nQXMfHQBD5hfGAaAjgg6AQbN1CUA7wygADJnbCwAYNlOXAAyZqUsA6IigA2DQbF0C0M4wCgBDZuoS\ngGEzdQnAoJm6BIBuCDoABs3WJQDNDKMAMGyGUQAYMo0OgGHrcaPr78oAYBMQdAAMmq1LAJr1+Wd6\nBB0A7QyjADBkox4Po4ympqbGef6xnhyAWRlb7Vq9/L45/3u/YPEOY62D4w46AOhUf7smAGwCgg6A\nQRN0AAyaoANg0AQdAIMm6AAYNDeMz1OllIkkn06yV5JHkhxVa72921XB3JVSXpbk9FrrAV2vhWHR\n6Oavw5IsqLXum+RDSc7oeD0wZ6WUDya5IMnCrtfC8Ai6+esVSb6WJLXWG5Ls0+1yoMmPk7whY3xy\nB/9/Cbr5a3GS5Y97v256OxPmnVrrZUnWdr0Ohsk/jPPX8iTbPu79RK11sqvFAPSVoJu/rkvymiQp\npfxBkpu7XQ5AP5m6nL8uT3JwKeW66ffv7HIxsIl4yjybnF8vAGDQbF0CMGiCDoBBE3QADJqgA2DQ\nBB0AgyboABg0QQfAoAk6AAbt/wCb7KESbS253QAAAABJRU5ErkJggg==\n",
"text": [
"<matplotlib.figure.Figure at 0x10b5a9940>"
]
}
],
"prompt_number": 60
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Bof.\n",
"\n",
"### Forests of randomized trees"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"from sklearn.ensemble import RandomForestClassifier\n",
"clf = RandomForestClassifier(n_estimators=100)\n",
"clf_eval(clf, confusion=True)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Accuracy: 0.79 (+/- 0.23)\n",
" vm 0.14 "
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
" inotropes 0.078 \n",
" ur\u00e9e 0.07 \n",
" lactates 0.06 \n",
" ph 0.052 \n",
" Plaquettes 0.051 \n",
" pavm 0.049 \n",
" glyc\u00e9mie mmol/L 0.046 \n",
" ASAT 0.046 \n",
" bilirubine (\u00b5mol/L) 0.045 \n",
" AGE 0.045 \n",
" cr\u00e9atinin\u00e9mie (\u00b5mol/L) 0.042 \n",
" ALAT 0.036 \n",
" Leucocytes 0.036 \n",
" PS 0.024 \n",
" NOMBRE LIGNE CHIMIO 0.024 \n",
" cancer_type_6 0.015 \n",
" motif_hospit_1 0.011 \n",
" meta_autre 0.0091 \n",
" dialyse 0.0089 \n",
" metastatique 0.0088 \n",
" tabac 0.0082 \n",
" cancer_type_5 0.0081 \n",
" meta_foie 0.0078 \n",
" cancer_type_2 0.0077 \n",
" meta_poumon 0.0077 \n",
" meta_gg 0.0074 \n",
" meta_os 0.0073 \n",
" motif_hospit_2 0.007 \n",
" motif_hospit_3 0.007 \n",
" diabete 0.0054 \n",
" cancer_type_1 0.0051 \n",
" meta_lymph 0.0046 \n",
" cancer_type_4 0.0028 \n",
" cancer_type_3 0.0027 \n",
" meta_cerveau 0.0023 \n",
" irenal_chro 0.002 \n",
" neutropenie 0.0018 \n",
" cancer_type_7 0.0017 \n",
" respi_chro 0.0015 \n",
"Loo accuracy : 0.827869"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n"
]
},
{
"metadata": {},
"output_type": "display_data",
"png": "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\n",
"text": [
"<matplotlib.figure.Figure at 0x10b37f048>"
]
}
],
"prompt_number": 61
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"C'est 'achement mieux. On tourne \u00e0 plus de 70%, la variance est pas excellente, c'est sensible au param\u00e8tre n_estimators. A creuser."
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"from sklearn.ensemble import ExtraTreesClassifier\n",
"clf = ExtraTreesClassifier(n_estimators=100, max_depth=None, min_samples_split=1, random_state=0)\n",
"clf_eval(clf, confusion=True)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Accuracy: 0.84 (+/- 0.17)\n",
" vm 0.22 "
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
" inotropes 0.089 \n",
" pavm 0.065 \n",
" AGE 0.035 \n",
" glyc\u00e9mie mmol/L 0.034 \n",
" lactates 0.033 \n",
" bilirubine (\u00b5mol/L) 0.029 \n",
" ur\u00e9e 0.029 \n",
" cr\u00e9atinin\u00e9mie (\u00b5mol/L) 0.027 \n",
" metastatique 0.025 \n",
" Plaquettes 0.024 \n",
" ph 0.023 \n",
" dialyse 0.023 \n",
" PS 0.022 \n",
" tabac 0.021 \n",
" ALAT 0.021 \n",
" NOMBRE LIGNE CHIMIO 0.021 \n",
" ASAT 0.02 \n",
" Leucocytes 0.02 \n",
" cancer_type_5 0.018 \n",
" cancer_type_6 0.018 \n",
" meta_autre 0.015 \n",
" meta_foie 0.014 \n",
" motif_hospit_1 0.014 \n",
" meta_gg 0.013 \n",
" meta_os 0.012 \n",
" motif_hospit_3 0.012 \n",
" meta_poumon 0.011 \n",
" cancer_type_1 0.011 \n",
" meta_lymph 0.011 \n",
" diabete 0.01 \n",
" motif_hospit_2 0.0097 \n",
" irenal_chro 0.0095 \n",
" cancer_type_2 0.0091 \n",
" neutropenie 0.0082 \n",
" cancer_type_4 0.0066 \n",
" cancer_type_3 0.0059 \n",
" respi_chro 0.0046 \n",
" meta_cerveau 0.0045 \n",
" cancer_type_7 0.0041 \n",
"Loo accuracy : 0.852459"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n"
]
},
{
"metadata": {},
"output_type": "display_data",
"png": "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\n",
"text": [
"<matplotlib.figure.Figure at 0x10b5a95f8>"
]
}
],
"prompt_number": 62
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"OK, m\u00eame type de r\u00e9sultats. Egalement sensible au param\u00e8tres"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"L'ordre des param\u00e8tres est pas compl\u00e8tement incoh\u00e9rent avec celui trouv\u00e9 par le classifieur lin\u00e9aire. C'est bon signe..\n",
"\n",
"Maintenant on essaye \n",
"## AdaBoost"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"from sklearn.ensemble import AdaBoostClassifier\n",
"clf = AdaBoostClassifier(n_estimators=100)\n",
"clf_eval(clf, confusion=True, p_value=True)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Accuracy: 0.80 (p-value: 0.01)\n",
" vm 0.11 "
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
" Plaquettes 0.11 \n",
" cr\u00e9atinin\u00e9mie (\u00b5mol/L) 0.1 \n",
" ASAT 0.07 \n",
" ur\u00e9e 0.06 \n",
" bilirubine (\u00b5mol/L) 0.06 \n",
" lactates 0.06 \n",
" metastatique 0.05 \n",
" pavm 0.05 \n",
" glyc\u00e9mie mmol/L 0.04 \n",
" Leucocytes 0.04 \n",
" PS 0.04 \n",
" cancer_type_6 0.04 \n",
" ph 0.03 \n",
" NOMBRE LIGNE CHIMIO 0.03 \n",
" ALAT 0.03 \n",
" cancer_type_4 0.02 \n",
" inotropes 0.02 \n",
" AGE 0.01 \n",
" meta_lymph 0.01 \n",
" cancer_type_5 0.01 \n",
" meta_poumon 0.01 \n",
" cancer_type_7 0.0 \n",
" meta_autre 0.0 \n",
" meta_cerveau 0.0 \n",
" neutropenie 0.0 \n",
" respi_chro 0.0 \n",
" cancer_type_3 0.0 \n",
" meta_os 0.0 \n",
" meta_foie 0.0 \n",
" cancer_type_1 0.0 \n",
" meta_gg 0.0 \n",
" tabac 0.0 \n",
" diabete 0.0 \n",
" motif_hospit_2 0.0 \n",
" irenal_chro 0.0 \n",
" cancer_type_2 0.0 \n",
" motif_hospit_3 0.0 \n",
" dialyse 0.0 \n",
" motif_hospit_1 0.0 \n",
"Loo accuracy : 0.754098"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n"
]
},
{
"metadata": {},
"output_type": "display_data",
"png": "iVBORw0KGgoAAAANSUhEUgAAAboAAAFRCAYAAAACdGjEAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAEctJREFUeJzt3W2wXVV9BvDn3JCEIAkyDBYUxGmdrnY6Ey1aq9iSIJSK\nlYGhZdqOowPVtipaqrWUIDpQBUSkOKgFDaUBa18pvrSKpVUkFqeorW2k6NL6gi9FpUEagkpCcvoh\nN52oyUlyVw57383vN7OHe85mr7v4ch/+/7X23qPxeBwAGKqZricAANMk6AAYNEEHwKAJOgAGTdAB\nMGiCDoBB22/K47t3AaA/RtMaePlRK+b8937dXbdObV7J9IMuy49aMe1fAVO17q5bkySbNqzveCYw\nd4uWHdL1FDoz9aADYPhGo6kWZU0EHQDNRqP+bvno78wAYB9Q0QHQbGZ6+1yaCToAmvV5jU7rEoBB\nU9EB0Gymx5tRBB0AzbQuAaAjKjoAmo3sugRgyPq8RtffmQHAPqCiA6BZnzejCDoAms30OOi0LgEY\nNBUdAM1GPa6bBB0Azfq8RtffCAaAfUBFB0CzPm9GEXQANOvzk1G0LgEYNBUdAM36/AgwQQdAM7su\nAaAjKjoAmtl1CcCg2XUJAB1R0QHQzK5LAAbNrksA6IiKDoBmdl0CMGh2XQJAR1R0ADTr82YUQQdA\nsz6v0WldAjBoKjoAmvV5M4qgA6CZJ6MAwByVUlYlOTnJwiRvTXJbkjVJtia5I8lZtdbxrq7vbwQD\nMG+MRqM5H5OUUlYmeUat9ZgkK5P8aJLLk5xXaz02ySjJKZPGEHQANJsZjeZ87MaJST5dSnlPkr9L\n8r4kT6m1rp09f1OSEyYNoHUJQJ8dmuTIJM/Ntmru75Lv2/myMclBkwYQdAA0m+Kuy/9J8pla60NJ\nPldK+V6Sx+1wfmmS+yYNoHUJQLMpti7/Ocmzk6SU8tgkByT5UCllxez5k5Ks3cW1SVR0APRYrfX9\npZRjSykfz7bi7KVJvpxkdSllUZI7k9wwaQxBB0CzaT7rstb6Bzv5euWeXi/oAGjmWZcA0BEVHQDN\nPOsSgEHTugSAjqjoAGjmDeMADJrWJQB0REUHQDO7LgEYNK1LAOiIig6AZnZdAjBoWpcA0BEVHQDN\ntC4BGLQ+316gdQnAoKnoAGg209+CTtAB0K7Pa3RalwAMmooOgGZ9vo9O0AHQTOsSADqiogOg2UyP\n76MTdPPMC1/6vKw44Zjst99++cvrbsy6f/9MLrj095Nx8uUvfTUXnPPGrqcIe2TdHf+ZN7/1qlx7\n9VvzhS9+KRdefGmS5PFHHpELz1+VBQsWdDxD9obWJfvEU5/+5Dzp6J/KC047Ky/81bNzxOMfm5ec\nfUZWv+WdOeP0l2fRooU59lnP6HqasFvXXv9nueCiN2TTpk1Jkiuvent+92UvyfXXXJ0k+chH/7nL\n6TEwexR0pRSB2APH/PzP5PP1i3nzO16ft1x7SW75x9vy4IObctDBy5Ikj3rUAdm8eXPHs4Tde/wR\nR+TNb7wk44yTJFdcenGOfvKTsnnz5vzP+nuzbOnSjmfI3poZjeZ8TNsuW5ellB9LcnmSpybZMht2\n65K8otb6uanPjB9y8CGPzmGHH5qX/caqHPH4w3PlNRfn3LNfl6vf+ab81stfkPs3bMwnb/+PrqcJ\nu3XCs1bm6/999/9/npmZyd3f+EZ+86yzs/TAA/PjT3xid5NjTnrcuZxY0V2T5JJa6xG11qNqrUcm\neV2SP314psYP+va99+VjH/1ktmzZkru+9LVs2rQ5F13x6pxx+u/k1ONfkL+/8ea86vyXdj1NmJPD\nDzssf/+3f5XTTzs1b7ziyq6nw4BMCrrFtdbbd/yi1vovU54PE3zqk5/OM1c8LUly6GMOyf5L9s8B\nByzJdzZ+J0lyz7fWZ+myA7ucIszJy195Tr7y1a8lSQ5YsiQLFlgtmW/mZesyybpSyrVJPphkQ5Kl\nSZ6Tbe1LOvDRD/9LnvK0J+Vd7706MzOjXHT+FRmPx7n8qgvz4IObsmnT5lx47mVdTxP22PZXu7zw\njOfn/Atfn4UL98uS/ZfkgvNXdTwz9lafX9MzGo/HOz0xuyZ3apJnJlmWbWF3W5J311p3ftEPGy8/\nasW+mCd0Zt1dtyZJNm1Y3/FMYO4WLTskyfTSaNWJ5+5pLvyQS25+w1RTcpcVXa11a5IbZw8A2KU+\n30fnhnEAmnmoMwCD1uOc82QUAIZNRQdAsz63LlV0AAyaig6AZn2+j07QAdCsz61LQQdAsx7nnDU6\nAIZNRQdAsz4/GUVFB8CgqegAaGYzCgCD1uOcE3QAtOtzRWeNDoBBU9EB0GyaT0Yppfxbkv+d/fjF\nJJckWZNka5I7kpw16YXggg6A3iql7J8ktdbjdvjufUnOq7WuLaVcleSUJO/Z1RiCDoBmU7yP7klJ\n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\n",
"text": [
"<matplotlib.figure.Figure at 0x10b73d438>"
]
}
],
"prompt_number": 63
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Performances similaires, variance am\u00e9lior\u00e9e.\n",
"\n",
"Histoire d'\u00eatre complet, on termine avec\n",
"\n",
"## Gradient Tree Boosting"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"from sklearn.ensemble import GradientBoostingClassifier\n",
"clf = GradientBoostingClassifier(n_estimators=150, learning_rate=1.0, max_depth=1, random_state=0)\n",
"clf_eval(clf)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Accuracy: 0.78 (+/- 0.20)\n",
" bilirubine (\u00b5mol/L) 0.12 "
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
" AGE 0.08 \n",
" cr\u00e9atinin\u00e9mie (\u00b5mol/L) 0.08 \n",
" Plaquettes 0.08 \n",
" glyc\u00e9mie mmol/L 0.06 \n",
" ur\u00e9e 0.06 \n",
" ASAT 0.053 \n",
" vm 0.053 \n",
" pavm 0.053 \n",
" ph 0.047 \n",
" lactates 0.047 \n",
" PS 0.04 \n",
" ALAT 0.04 \n",
" Leucocytes 0.033 \n",
" meta_lymph 0.027 \n",
" inotropes 0.027 \n",
" NOMBRE LIGNE CHIMIO 0.027 \n",
" metastatique 0.02 \n",
" cancer_type_5 0.02 \n",
" cancer_type_6 0.013 \n",
" cancer_type_7 0.0067 \n",
" cancer_type_4 0.0067 \n",
" motif_hospit_3 0.0067 \n",
" meta_autre 0.0 \n",
" meta_cerveau 0.0 \n",
" neutropenie 0.0 \n",
" respi_chro 0.0 \n",
" cancer_type_3 0.0 \n",
" meta_os 0.0 \n",
" meta_foie 0.0 \n",
" cancer_type_1 0.0 \n",
" meta_gg 0.0 \n",
" tabac 0.0 \n",
" diabete 0.0 \n",
" motif_hospit_2 0.0 \n",
" irenal_chro 0.0 \n",
" meta_poumon 0.0 \n",
" cancer_type_2 0.0 \n",
" dialyse 0.0 \n",
" motif_hospit_1 0.0 \n"
]
}
],
"prompt_number": 19
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"L'importance des features est parfois en l\u00e9ger d\u00e9saccord avec le reste. A creuser."
]
}
],
"metadata": {}
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment