Commit 2b048b42 authored by TheophilePACE's avatar TheophilePACE

tp mercredi'

'
parent 226c49e3
File added
......@@ -222,7 +222,7 @@
{
"data": {
"text/plain": [
"[<matplotlib.lines.Line2D at 0x10cea2748>]"
"[<matplotlib.lines.Line2D at 0x106acd860>]"
]
},
"execution_count": 10,
......@@ -265,7 +265,7 @@
{
"data": {
"text/plain": [
"[<matplotlib.lines.Line2D at 0x10ce03748>]"
"[<matplotlib.lines.Line2D at 0x106a30860>]"
]
},
"execution_count": 11,
......@@ -329,7 +329,7 @@
{
"data": {
"text/plain": [
"\u001b[0;31mInit signature:\u001b[0m \u001b[0mGaussianNB\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mpriors\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mNone\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mvar_smoothing\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m1e-09\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;31mInit signature:\u001b[0m \u001b[0mGaussianNB\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mpriors\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mNone\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mvar_smoothing\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m1e-09\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;31mDocstring:\u001b[0m \n",
"Gaussian Naive Bayes (GaussianNB)\n",
"\n",
......@@ -411,6 +411,24 @@
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [],
"source": [
"nbc = GaussianNB"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [],
"source": [
"nbc = GaussianNB"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [
{
"name": "stdout",
......@@ -446,7 +464,7 @@
},
{
"cell_type": "code",
"execution_count": 15,
"execution_count": 17,
"metadata": {},
"outputs": [
{
......@@ -512,7 +530,7 @@
},
{
"cell_type": "code",
"execution_count": 16,
"execution_count": 18,
"metadata": {},
"outputs": [],
"source": [
......@@ -521,7 +539,7 @@
},
{
"cell_type": "code",
"execution_count": 17,
"execution_count": 19,
"metadata": {},
"outputs": [
{
......@@ -559,7 +577,7 @@
},
{
"cell_type": "code",
"execution_count": 18,
"execution_count": 20,
"metadata": {},
"outputs": [
{
......@@ -587,7 +605,7 @@
},
{
"cell_type": "code",
"execution_count": 19,
"execution_count": 21,
"metadata": {},
"outputs": [
{
......@@ -605,7 +623,7 @@
" -5.79028509e-01, -6.93277983e-01, -1.24763925e-01]])"
]
},
"execution_count": 19,
"execution_count": 21,
"metadata": {},
"output_type": "execute_result"
}
......@@ -676,7 +694,7 @@
},
{
"cell_type": "code",
"execution_count": 20,
"execution_count": 22,
"metadata": {},
"outputs": [
{
......@@ -714,7 +732,7 @@
},
{
"cell_type": "code",
"execution_count": 21,
"execution_count": 23,
"metadata": {},
"outputs": [
{
......@@ -737,7 +755,7 @@
},
{
"cell_type": "code",
"execution_count": 22,
"execution_count": 24,
"metadata": {},
"outputs": [
{
......@@ -774,15 +792,15 @@
},
{
"cell_type": "code",
"execution_count": 23,
"execution_count": 25,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"204 µs ± 6.73 µs per loop (mean ± std. dev. of 7 runs, 10000 loops each)\n",
"829 µs ± 56.4 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)\n"
"183 µs ± 4.71 µs per loop (mean ± std. dev. of 7 runs, 10000 loops each)\n",
"776 µs ± 6.52 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)\n"
]
}
],
......@@ -838,25 +856,14 @@
},
{
"cell_type": "code",
"execution_count": 43,
"execution_count": 33,
"metadata": {},
"outputs": [
{
"ename": "NotImplementedError",
"evalue": "INSTALLEZ GRAPHVIZ",
"output_type": "error",
"traceback": [
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[0;31mNotImplementedError\u001b[0m Traceback (most recent call last)",
"\u001b[0;32m<ipython-input-43-e8b47aed4505>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m()\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0;32mfrom\u001b[0m \u001b[0msklearn\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtree\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mDecisionTreeClassifier\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 3\u001b[0;31m \u001b[0;32mraise\u001b[0m \u001b[0mNotImplementedError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"INSTALLEZ GRAPHVIZ\"\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[0;31m# ne vous occupez pas de cette fonction, c'est juste de la visu\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[0;31m#!pip install graphviz\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;31mNotImplementedError\u001b[0m: INSTALLEZ GRAPHVIZ"
]
}
],
"outputs": [],
"source": [
"from sklearn.tree import DecisionTreeClassifier\n",
"\n",
"raise NotImplementedError(\"INSTALLEZ GRAPHVIZ\")\n",
"# pour les utilisateurs d'os normaux:\n",
"! conda install graphviz python-graphviz\n",
"# raise NotImplementedError(\"INSTALLEZ GRAPHVIZ\")\n",
"# ne vous occupez pas de cette fonction, c'est juste de la visu\n",
"\n",
"from graphviz import Source\n",
......@@ -879,15 +886,407 @@
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 40,
"metadata": {},
"outputs": [],
"outputs": [
{
"data": {
"image/svg+xml": [
"<svg height=\"790pt\" viewBox=\"0.00 0.00 950.00 790.00\" width=\"950pt\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g class=\"graph\" id=\"graph0\" transform=\"scale(1 1) rotate(0) translate(4 786)\">\n",
"<title>Tree</title>\n",
"<polygon fill=\"#ffffff\" points=\"-4,4 -4,-786 946,-786 946,4 -4,4\" stroke=\"transparent\"/>\n",
"<!-- 0 -->\n",
"<g class=\"node\" id=\"node1\">\n",
"<title>0</title>\n",
"<polygon fill=\"none\" points=\"584,-782 395,-782 395,-699 584,-699 584,-782\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"489.5\" y=\"-766.8\">worst concave points &lt;= 0.142</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"489.5\" y=\"-751.8\">gini = 0.464</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"489.5\" y=\"-736.8\">samples = 341</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"489.5\" y=\"-721.8\">value = [125, 216]</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"489.5\" y=\"-706.8\">class = benign</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g class=\"node\" id=\"node2\">\n",
"<title>1</title>\n",
"<polygon fill=\"none\" points=\"471,-663 342,-663 342,-580 471,-580 471,-663\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"406.5\" y=\"-647.8\">worst area &lt;= 929.8</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"406.5\" y=\"-632.8\">gini = 0.17</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"406.5\" y=\"-617.8\">samples = 234</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"406.5\" y=\"-602.8\">value = [22, 212]</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"406.5\" y=\"-587.8\">class = benign</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g class=\"edge\" id=\"edge1\">\n",
"<title>0-&gt;1</title>\n",
"<path d=\"M460.4706,-698.8796C454.3145,-690.0534 447.7549,-680.6485 441.4064,-671.5466\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"444.2448,-669.4978 435.6533,-663.2981 438.5033,-673.5024 444.2448,-669.4978\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"431.2669\" y=\"-684.2103\">True</text>\n",
"</g>\n",
"<!-- 16 -->\n",
"<g class=\"node\" id=\"node17\">\n",
"<title>16</title>\n",
"<polygon fill=\"none\" points=\"623,-663 494,-663 494,-580 623,-580 623,-663\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"558.5\" y=\"-647.8\">worst area &lt;= 444.3</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"558.5\" y=\"-632.8\">gini = 0.072</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"558.5\" y=\"-617.8\">samples = 107</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"558.5\" y=\"-602.8\">value = [103, 4]</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"558.5\" y=\"-587.8\">class = malignant</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;16 -->\n",
"<g class=\"edge\" id=\"edge16\">\n",
"<title>0-&gt;16</title>\n",
"<path d=\"M513.6329,-698.8796C518.6461,-690.2335 523.9813,-681.0322 529.1581,-672.1042\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"532.2758,-673.7047 534.2641,-663.2981 526.2202,-670.1934 532.2758,-673.7047\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"540.6897\" y=\"-683.7582\">False</text>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g class=\"node\" id=\"node3\">\n",
"<title>2</title>\n",
"<polygon fill=\"none\" points=\"306,-544 149,-544 149,-461 306,-461 306,-544\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"227.5\" y=\"-528.8\">symmetry error &lt;= 0.009</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"227.5\" y=\"-513.8\">gini = 0.054</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"227.5\" y=\"-498.8\">samples = 215</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"227.5\" y=\"-483.8\">value = [6, 209]</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"227.5\" y=\"-468.8\">class = benign</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;2 -->\n",
"<g class=\"edge\" id=\"edge2\">\n",
"<title>1-&gt;2</title>\n",
"<path d=\"M343.8945,-579.8796C329.3146,-570.1868 313.6849,-559.7961 298.7618,-549.8752\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"300.3355,-546.7185 290.0702,-544.0969 296.4601,-552.5479 300.3355,-546.7185\" stroke=\"#000000\"/>\n",
"</g>\n",
"<!-- 11 -->\n",
"<g class=\"node\" id=\"node12\">\n",
"<title>11</title>\n",
"<polygon fill=\"none\" points=\"478.5,-544 334.5,-544 334.5,-461 478.5,-461 478.5,-544\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"406.5\" y=\"-528.8\">worst texture &lt;= 19.33</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"406.5\" y=\"-513.8\">gini = 0.266</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"406.5\" y=\"-498.8\">samples = 19</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"406.5\" y=\"-483.8\">value = [16, 3]</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"406.5\" y=\"-468.8\">class = malignant</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;11 -->\n",
"<g class=\"edge\" id=\"edge11\">\n",
"<title>1-&gt;11</title>\n",
"<path d=\"M406.5,-579.8796C406.5,-571.6838 406.5,-562.9891 406.5,-554.5013\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"410.0001,-554.298 406.5,-544.2981 403.0001,-554.2981 410.0001,-554.298\" stroke=\"#000000\"/>\n",
"</g>\n",
"<!-- 3 -->\n",
"<g class=\"node\" id=\"node4\">\n",
"<title>3</title>\n",
"<polygon fill=\"none\" points=\"115,-417.5 0,-417.5 0,-349.5 115,-349.5 115,-417.5\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"57.5\" y=\"-402.3\">gini = 0.0</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"57.5\" y=\"-387.3\">samples = 1</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"57.5\" y=\"-372.3\">value = [1, 0]</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"57.5\" y=\"-357.3\">class = malignant</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;3 -->\n",
"<g class=\"edge\" id=\"edge3\">\n",
"<title>2-&gt;3</title>\n",
"<path d=\"M168.0422,-460.8796C150.6804,-448.7263 131.7512,-435.4759 114.5425,-423.4297\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"116.4467,-420.4904 106.2472,-417.623 112.4324,-426.225 116.4467,-420.4904\" stroke=\"#000000\"/>\n",
"</g>\n",
"<!-- 4 -->\n",
"<g class=\"node\" id=\"node5\">\n",
"<title>4</title>\n",
"<polygon fill=\"none\" points=\"322,-425 133,-425 133,-342 322,-342 322,-425\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"227.5\" y=\"-409.8\">worst concave points &lt;= 0.111</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"227.5\" y=\"-394.8\">gini = 0.046</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"227.5\" y=\"-379.8\">samples = 214</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"227.5\" y=\"-364.8\">value = [5, 209]</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"227.5\" y=\"-349.8\">class = benign</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;4 -->\n",
"<g class=\"edge\" id=\"edge4\">\n",
"<title>2-&gt;4</title>\n",
"<path d=\"M227.5,-460.8796C227.5,-452.6838 227.5,-443.9891 227.5,-435.5013\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"231.0001,-435.298 227.5,-425.2981 224.0001,-435.2981 231.0001,-435.298\" stroke=\"#000000\"/>\n",
"</g>\n",
"<!-- 5 -->\n",
"<g class=\"node\" id=\"node6\">\n",
"<title>5</title>\n",
"<polygon fill=\"none\" points=\"171.5,-298.5 65.5,-298.5 65.5,-230.5 171.5,-230.5 171.5,-298.5\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"118.5\" y=\"-283.3\">gini = 0.0</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"118.5\" y=\"-268.3\">samples = 185</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"118.5\" y=\"-253.3\">value = [0, 185]</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"118.5\" y=\"-238.3\">class = benign</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;5 -->\n",
"<g class=\"edge\" id=\"edge5\">\n",
"<title>4-&gt;5</title>\n",
"<path d=\"M189.3771,-341.8796C178.8014,-330.3337 167.3188,-317.7976 156.7367,-306.2446\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"159.2667,-303.825 149.9313,-298.8149 154.1049,-308.5531 159.2667,-303.825\" stroke=\"#000000\"/>\n",
"</g>\n",
"<!-- 6 -->\n",
"<g class=\"node\" id=\"node7\">\n",
"<title>6</title>\n",
"<polygon fill=\"none\" points=\"391.5,-306 189.5,-306 189.5,-223 391.5,-223 391.5,-306\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"290.5\" y=\"-290.8\">mean fractal dimension &lt;= 0.056</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"290.5\" y=\"-275.8\">gini = 0.285</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"290.5\" y=\"-260.8\">samples = 29</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"290.5\" y=\"-245.8\">value = [5, 24]</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"290.5\" y=\"-230.8\">class = benign</text>\n",
"</g>\n",
"<!-- 4&#45;&gt;6 -->\n",
"<g class=\"edge\" id=\"edge6\">\n",
"<title>4-&gt;6</title>\n",
"<path d=\"M249.5343,-341.8796C254.064,-333.3236 258.8815,-324.2238 263.5618,-315.3833\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"266.7859,-316.7736 268.3716,-306.2981 260.5994,-313.4983 266.7859,-316.7736\" stroke=\"#000000\"/>\n",
"</g>\n",
"<!-- 7 -->\n",
"<g class=\"node\" id=\"node8\">\n",
"<title>7</title>\n",
"<polygon fill=\"none\" points=\"274,-179.5 159,-179.5 159,-111.5 274,-111.5 274,-179.5\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"216.5\" y=\"-164.3\">gini = 0.0</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"216.5\" y=\"-149.3\">samples = 3</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"216.5\" y=\"-134.3\">value = [3, 0]</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"216.5\" y=\"-119.3\">class = malignant</text>\n",
"</g>\n",
"<!-- 6&#45;&gt;7 -->\n",
"<g class=\"edge\" id=\"edge7\">\n",
"<title>6-&gt;7</title>\n",
"<path d=\"M264.6184,-222.8796C257.7121,-211.7735 250.2361,-199.7513 243.2825,-188.5691\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"246.0917,-186.4587 237.8387,-179.8149 240.1473,-190.1552 246.0917,-186.4587\" stroke=\"#000000\"/>\n",
"</g>\n",
"<!-- 8 -->\n",
"<g class=\"node\" id=\"node9\">\n",
"<title>8</title>\n",
"<polygon fill=\"none\" points=\"436.5,-187 292.5,-187 292.5,-104 436.5,-104 436.5,-187\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"364.5\" y=\"-171.8\">worst texture &lt;= 33.23</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"364.5\" y=\"-156.8\">gini = 0.142</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"364.5\" y=\"-141.8\">samples = 26</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"364.5\" y=\"-126.8\">value = [2, 24]</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"364.5\" y=\"-111.8\">class = benign</text>\n",
"</g>\n",
"<!-- 6&#45;&gt;8 -->\n",
"<g class=\"edge\" id=\"edge8\">\n",
"<title>6-&gt;8</title>\n",
"<path d=\"M316.3816,-222.8796C321.8142,-214.1434 327.5992,-204.8404 333.2053,-195.8253\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"336.1993,-197.6383 338.5079,-187.2981 330.2549,-193.9418 336.1993,-197.6383\" stroke=\"#000000\"/>\n",
"</g>\n",
"<!-- 9 -->\n",
"<g class=\"node\" id=\"node10\">\n",
"<title>9</title>\n",
"<polygon fill=\"none\" points=\"351,-68 252,-68 252,0 351,0 351,-68\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"301.5\" y=\"-52.8\">gini = 0.0</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"301.5\" y=\"-37.8\">samples = 24</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"301.5\" y=\"-22.8\">value = [0, 24]</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"301.5\" y=\"-7.8\">class = benign</text>\n",
"</g>\n",
"<!-- 8&#45;&gt;9 -->\n",
"<g class=\"edge\" id=\"edge9\">\n",
"<title>8-&gt;9</title>\n",
"<path d=\"M341.0411,-103.9815C336.1078,-95.2504 330.8926,-86.0202 325.9248,-77.2281\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"328.8263,-75.2483 320.8597,-68.2637 322.7319,-78.6918 328.8263,-75.2483\" stroke=\"#000000\"/>\n",
"</g>\n",
"<!-- 10 -->\n",
"<g class=\"node\" id=\"node11\">\n",
"<title>10</title>\n",
"<polygon fill=\"none\" points=\"484,-68 369,-68 369,0 484,0 484,-68\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"426.5\" y=\"-52.8\">gini = 0.0</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"426.5\" y=\"-37.8\">samples = 2</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"426.5\" y=\"-22.8\">value = [2, 0]</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"426.5\" y=\"-7.8\">class = malignant</text>\n",
"</g>\n",
"<!-- 8&#45;&gt;10 -->\n",
"<g class=\"edge\" id=\"edge10\">\n",
"<title>8-&gt;10</title>\n",
"<path d=\"M387.5865,-103.9815C392.4415,-95.2504 397.574,-86.0202 402.4629,-77.2281\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"405.6467,-78.7043 407.4476,-68.2637 399.5288,-75.3025 405.6467,-78.7043\" stroke=\"#000000\"/>\n",
"</g>\n",
"<!-- 12 -->\n",
"<g class=\"node\" id=\"node13\">\n",
"<title>12</title>\n",
"<polygon fill=\"none\" points=\"437,-417.5 340,-417.5 340,-349.5 437,-349.5 437,-417.5\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"388.5\" y=\"-402.3\">gini = 0.0</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"388.5\" y=\"-387.3\">samples = 2</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"388.5\" y=\"-372.3\">value = [0, 2]</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"388.5\" y=\"-357.3\">class = benign</text>\n",
"</g>\n",
"<!-- 11&#45;&gt;12 -->\n",
"<g class=\"edge\" id=\"edge12\">\n",
"<title>11-&gt;12</title>\n",
"<path d=\"M400.2045,-460.8796C398.5911,-450.2134 396.8499,-438.7021 395.2162,-427.9015\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"398.6468,-427.179 393.6905,-417.8149 391.7255,-428.226 398.6468,-427.179\" stroke=\"#000000\"/>\n",
"</g>\n",
"<!-- 13 -->\n",
"<g class=\"node\" id=\"node14\">\n",
"<title>13</title>\n",
"<polygon fill=\"none\" points=\"626,-425 455,-425 455,-342 626,-342 626,-425\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"540.5\" y=\"-409.8\">worst smoothness &lt;= 0.088</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"540.5\" y=\"-394.8\">gini = 0.111</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"540.5\" y=\"-379.8\">samples = 17</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"540.5\" y=\"-364.8\">value = [16, 1]</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"540.5\" y=\"-349.8\">class = malignant</text>\n",
"</g>\n",
"<!-- 11&#45;&gt;13 -->\n",
"<g class=\"edge\" id=\"edge13\">\n",
"<title>11-&gt;13</title>\n",
"<path d=\"M453.3667,-460.8796C463.8125,-451.6031 474.9781,-441.6874 485.711,-432.1559\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"488.2801,-434.5553 493.4333,-425.2981 483.632,-429.3213 488.2801,-434.5553\" stroke=\"#000000\"/>\n",
"</g>\n",
"<!-- 14 -->\n",
"<g class=\"node\" id=\"node15\">\n",
"<title>14</title>\n",
"<polygon fill=\"none\" points=\"543,-298.5 446,-298.5 446,-230.5 543,-230.5 543,-298.5\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"494.5\" y=\"-283.3\">gini = 0.0</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"494.5\" y=\"-268.3\">samples = 1</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"494.5\" y=\"-253.3\">value = [0, 1]</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"494.5\" y=\"-238.3\">class = benign</text>\n",
"</g>\n",
"<!-- 13&#45;&gt;14 -->\n",
"<g class=\"edge\" id=\"edge14\">\n",
"<title>13-&gt;14</title>\n",
"<path d=\"M524.4114,-341.8796C520.2034,-330.9935 515.655,-319.227 511.4057,-308.2344\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"514.6348,-306.8804 507.7646,-298.8149 508.1056,-309.4043 514.6348,-306.8804\" stroke=\"#000000\"/>\n",
"</g>\n",
"<!-- 15 -->\n",
"<g class=\"node\" id=\"node16\">\n",
"<title>15</title>\n",
"<polygon fill=\"none\" points=\"676,-298.5 561,-298.5 561,-230.5 676,-230.5 676,-298.5\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"618.5\" y=\"-283.3\">gini = 0.0</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"618.5\" y=\"-268.3\">samples = 16</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"618.5\" y=\"-253.3\">value = [16, 0]</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"618.5\" y=\"-238.3\">class = malignant</text>\n",
"</g>\n",
"<!-- 13&#45;&gt;15 -->\n",
"<g class=\"edge\" id=\"edge15\">\n",
"<title>13-&gt;15</title>\n",
"<path d=\"M567.7806,-341.8796C575.1323,-330.6636 583.0964,-318.5131 590.4874,-307.2372\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"593.4531,-309.0972 596.0079,-298.8149 587.5986,-305.2598 593.4531,-309.0972\" stroke=\"#000000\"/>\n",
"</g>\n",
"<!-- 17 -->\n",
"<g class=\"node\" id=\"node18\">\n",
"<title>17</title>\n",
"<polygon fill=\"none\" points=\"607,-536.5 510,-536.5 510,-468.5 607,-468.5 607,-536.5\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"558.5\" y=\"-521.3\">gini = 0.0</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"558.5\" y=\"-506.3\">samples = 2</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"558.5\" y=\"-491.3\">value = [0, 2]</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"558.5\" y=\"-476.3\">class = benign</text>\n",
"</g>\n",
"<!-- 16&#45;&gt;17 -->\n",
"<g class=\"edge\" id=\"edge17\">\n",
"<title>16-&gt;17</title>\n",
"<path d=\"M558.5,-579.8796C558.5,-569.2134 558.5,-557.7021 558.5,-546.9015\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"562.0001,-546.8149 558.5,-536.8149 555.0001,-546.815 562.0001,-546.8149\" stroke=\"#000000\"/>\n",
"</g>\n",
"<!-- 18 -->\n",
"<g class=\"node\" id=\"node19\">\n",
"<title>18</title>\n",
"<polygon fill=\"none\" points=\"755,-544 630,-544 630,-461 755,-461 755,-544\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"692.5\" y=\"-528.8\">area error &lt;= 13.93</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"692.5\" y=\"-513.8\">gini = 0.037</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"692.5\" y=\"-498.8\">samples = 105</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"692.5\" y=\"-483.8\">value = [103, 2]</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"692.5\" y=\"-468.8\">class = malignant</text>\n",
"</g>\n",
"<!-- 16&#45;&gt;18 -->\n",
"<g class=\"edge\" id=\"edge18\">\n",
"<title>16-&gt;18</title>\n",
"<path d=\"M605.3667,-579.8796C615.8125,-570.6031 626.9781,-560.6874 637.711,-551.1559\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"640.2801,-553.5553 645.4333,-544.2981 635.632,-548.3213 640.2801,-553.5553\" stroke=\"#000000\"/>\n",
"</g>\n",
"<!-- 19 -->\n",
"<g class=\"node\" id=\"node20\">\n",
"<title>19</title>\n",
"<polygon fill=\"none\" points=\"741,-417.5 644,-417.5 644,-349.5 741,-349.5 741,-417.5\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"692.5\" y=\"-402.3\">gini = 0.0</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"692.5\" y=\"-387.3\">samples = 1</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"692.5\" y=\"-372.3\">value = [0, 1]</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"692.5\" y=\"-357.3\">class = benign</text>\n",
"</g>\n",
"<!-- 18&#45;&gt;19 -->\n",
"<g class=\"edge\" id=\"edge19\">\n",
"<title>18-&gt;19</title>\n",
"<path d=\"M692.5,-460.8796C692.5,-450.2134 692.5,-438.7021 692.5,-427.9015\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"696.0001,-427.8149 692.5,-417.8149 689.0001,-427.815 696.0001,-427.8149\" stroke=\"#000000\"/>\n",
"</g>\n",
"<!-- 20 -->\n",
"<g class=\"node\" id=\"node21\">\n",
"<title>20</title>\n",
"<polygon fill=\"none\" points=\"919.5,-425 759.5,-425 759.5,-342 919.5,-342 919.5,-425\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"839.5\" y=\"-409.8\">worst concavity &lt;= 0.203</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"839.5\" y=\"-394.8\">gini = 0.019</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"839.5\" y=\"-379.8\">samples = 104</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"839.5\" y=\"-364.8\">value = [103, 1]</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"839.5\" y=\"-349.8\">class = malignant</text>\n",
"</g>\n",
"<!-- 18&#45;&gt;20 -->\n",
"<g class=\"edge\" id=\"edge20\">\n",
"<title>18-&gt;20</title>\n",
"<path d=\"M743.9135,-460.8796C755.5952,-451.4229 768.0975,-441.302 780.081,-431.6011\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"782.2968,-434.3105 787.8671,-425.2981 777.8924,-428.8697 782.2968,-434.3105\" stroke=\"#000000\"/>\n",
"</g>\n",
"<!-- 21 -->\n",
"<g class=\"node\" id=\"node22\">\n",
"<title>21</title>\n",
"<polygon fill=\"none\" points=\"809,-298.5 712,-298.5 712,-230.5 809,-230.5 809,-298.5\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"760.5\" y=\"-283.3\">gini = 0.0</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"760.5\" y=\"-268.3\">samples = 1</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"760.5\" y=\"-253.3\">value = [0, 1]</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"760.5\" y=\"-238.3\">class = benign</text>\n",
"</g>\n",
"<!-- 20&#45;&gt;21 -->\n",
"<g class=\"edge\" id=\"edge21\">\n",
"<title>20-&gt;21</title>\n",
"<path d=\"M811.8696,-341.8796C804.4237,-330.6636 796.3575,-318.5131 788.8718,-307.2372\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"791.7273,-305.2104 783.2805,-298.8149 785.8954,-309.082 791.7273,-305.2104\" stroke=\"#000000\"/>\n",
"</g>\n",
"<!-- 22 -->\n",
"<g class=\"node\" id=\"node23\">\n",
"<title>22</title>\n",
"<polygon fill=\"none\" points=\"942,-298.5 827,-298.5 827,-230.5 942,-230.5 942,-298.5\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"884.5\" y=\"-283.3\">gini = 0.0</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"884.5\" y=\"-268.3\">samples = 103</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"884.5\" y=\"-253.3\">value = [103, 0]</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"884.5\" y=\"-238.3\">class = malignant</text>\n",
"</g>\n",
"<!-- 20&#45;&gt;22 -->\n",
"<g class=\"edge\" id=\"edge22\">\n",
"<title>20-&gt;22</title>\n",
"<path d=\"M855.2388,-341.8796C859.3554,-330.9935 863.8049,-319.227 867.9618,-308.2344\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"871.2604,-309.4065 871.5238,-298.8149 864.7129,-306.9305 871.2604,-309.4065\" stroke=\"#000000\"/>\n",
"</g>\n",
"</g>\n",
"</svg>"
],
"text/plain": [
"<IPython.core.display.SVG object>"
]
},
"execution_count": 40,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Déclarer le classifieur, avec si nécessaire les hyperparamètres\n",
"clf = DecisionTreeClassifier()\n",
"# Entrainer les hyperparamètres\n",
"clf.fit(X=X_train,y=y_train)\n",
"# Prédire sur l'ensemble de validation\n",
"y_hat = clf.predict(X_validation)\n",
"# Regarder les résultats\n",
"raise NotImplementedError(\"implementez un arbre!\")"
"accuracy_score(y_pred=y_hat,y_true=y_validation)\n",
"visualize_tree(clf)"
]
},
{
"cell_type": "code",
"execution_count": 37,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"3.47 ms ± 39.2 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)\n"
]
}
],
"source": [
"%timeit clf.fit(X=X_train,y=y_train)"
]
},
{
......@@ -899,12 +1298,84 @@
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 43,
"metadata": {},
"outputs": [],
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0.9122807017543859\n"
]
},
{
"data": {
"image/svg+xml": [
"<svg height=\"195pt\" viewBox=\"0.00 0.00 254.00 195.00\" width=\"254pt\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<g class=\"graph\" id=\"graph0\" transform=\"scale(1 1) rotate(0) translate(4 191)\">\n",
"<title>Tree</title>\n",
"<polygon fill=\"#ffffff\" points=\"-4,4 -4,-191 250,-191 250,4 -4,4\" stroke=\"transparent\"/>\n",
"<!-- 0 -->\n",
"<g class=\"node\" id=\"node1\">\n",
"<title>0</title>\n",
"<polygon fill=\"none\" points=\"217,-187 28,-187 28,-104 217,-104 217,-187\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"122.5\" y=\"-171.8\">worst concave points &lt;= 0.142</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"122.5\" y=\"-156.8\">gini = 0.464</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"122.5\" y=\"-141.8\">samples = 341</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"122.5\" y=\"-126.8\">value = [125, 216]</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"122.5\" y=\"-111.8\">class = benign</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g class=\"node\" id=\"node2\">\n",
"<title>1</title>\n",
"<polygon fill=\"none\" points=\"113,-68 0,-68 0,0 113,0 113,-68\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"56.5\" y=\"-52.8\">gini = 0.17</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"56.5\" y=\"-37.8\">samples = 234</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"56.5\" y=\"-22.8\">value = [22, 212]</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"56.5\" y=\"-7.8\">class = benign</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;1 -->\n",
"<g class=\"edge\" id=\"edge1\">\n",
"<title>0-&gt;1</title>\n",
"<path d=\"M97.924,-103.9815C92.7014,-95.1585 87.1771,-85.8258 81.9237,-76.9506\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"84.8874,-75.0863 76.7816,-68.2637 78.8636,-78.652 84.8874,-75.0863\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"70.5739\" y=\"-88.7807\">True</text>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g class=\"node\" id=\"node3\">\n",
"<title>2</title>\n",
"<polygon fill=\"none\" points=\"246,-68 131,-68 131,0 246,0 246,-68\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"188.5\" y=\"-52.8\">gini = 0.072</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"188.5\" y=\"-37.8\">samples = 107</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"188.5\" y=\"-22.8\">value = [103, 4]</text>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"188.5\" y=\"-7.8\">class = malignant</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;2 -->\n",
"<g class=\"edge\" id=\"edge2\">\n",
"<title>0-&gt;2</title>\n",
"<path d=\"M147.076,-103.9815C152.2986,-95.1585 157.8229,-85.8258 163.0763,-76.9506\" fill=\"none\" stroke=\"#000000\"/>\n",
"<polygon fill=\"#000000\" points=\"166.1364,-78.652 168.2184,-68.2637 160.1126,-75.0863 166.1364,-78.652\" stroke=\"#000000\"/>\n",
"<text fill=\"#000000\" font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"174.4261\" y=\"-88.7807\">False</text>\n",
"</g>\n",
"</g>\n",
"</svg>"
],
"text/plain": [
"<IPython.core.display.SVG object>"
]
},
"execution_count": 43,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Déclarer le classifieur, avec un hyperparamètre max_depth\n",
"raise NotImplementedError(\"Essayez avec un arbre borné\")"
"clf = DecisionTreeClassifier(max_depth=1)\n",
"clf.fit(X_train,y_train)\n",
"y_hat = clf.predict(X_validation)\n",
"print(accuracy_score(y_hat,y_validation))\n",
"visualize_tree(clf)"
]
},
{
......@@ -916,24 +1387,45 @@
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 48,
"metadata": {},
"outputs": [],
"outputs": [
{
"data": {
"text/plain": [
"[<matplotlib.lines.Line2D at 0x1a17113668>]"
]
},
"execution_count": 48,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"def search_best_depth(maximum_depth:int):\n",
" accuracies = []\n",
" for depth in range(1,maximum_depth):\n",
" # entrainer l'arbre pour cette valeur de max_depth\n",
" raise NotImplementedError(\"Entrainez l'arbre!\")\n",
" # predire sur l'ensemble de validation\n",
" raise NotImplementedError(\"Prédire!\")\n",
" accuracy_score(y_hat,y_validation)\n",
" clf = DecisionTreeClassifier(max_depth=depth)\n",
" # train\n",
" clf.fit(X_train,y_train)\n",
" y_hat = clf.predict(X_validation)\n",
" accuracy = accuracy_score(y_hat,y_validation)\n",
" # stocker l'accuracy dans accuracies\n",
" accuracies.append(accuracy)\n",
" return accuracies\n",
"\n",
"# On entraine notre arbre!\n",
"maximum_depth = \"Choisissez un max depth\"\n",
"maximum_depth = 50\n",
"accuracies_tree = search_best_depth(maximum_depth)\n",
"plt.plot(range(1,len(accuracies_tree)+1), accuracies_tree)"
]
......@@ -998,7 +1490,7 @@
},
{
"cell_type": "code",
"execution_count": 77,
"execution_count": 51,
"metadata": {},
"outputs": [