File size: 163,512 Bytes
9864402 |
1 |
{"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"name":"python","version":"3.7.9","mimetype":"text/x-python","codemirror_mode":{"name":"ipython","version":3},"pygments_lexer":"ipython3","nbconvert_exporter":"python","file_extension":".py"}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"markdown","source":"## Decision Trees tutorial & improving hosting with skops 🌲\n\nIn this notebook I will walk you through decision trees and how to inspect them, and we will later improve model hosting using [skops](https://skops.readthedocs.io/en/stable/). ","metadata":{}},{"cell_type":"code","source":"# This Python 3 environment comes with many helpful analytics libraries installed\n# It is defined by the kaggle/python Docker image: https://github.com/kaggle/docker-python\n# For example, here's several helpful packages to load\n\nimport numpy as np # linear algebra\nimport pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv)\n\n# Input data files are available in the read-only \"../input/\" directory\n# For example, running this (by clicking run or pressing Shift+Enter) will list all files under the input directory\n\nimport os\nfor dirname, _, filenames in os.walk('/kaggle/input'):\n for filename in filenames:\n print(os.path.join(dirname, filename))\n\n# You can write up to 20GB to the current directory (/kaggle/working/) that gets preserved as output when you create a version using \"Save & Run All\" \n# You can also write temporary files to /kaggle/temp/, but they won't be saved outside of the current session","metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","_kg_hide-input":true,"_kg_hide-output":true,"execution":{"iopub.status.busy":"2022-12-01T13:21:07.411748Z","iopub.execute_input":"2022-12-01T13:21:07.412350Z","iopub.status.idle":"2022-12-01T13:21:07.419860Z","shell.execute_reply.started":"2022-12-01T13:21:07.412261Z","shell.execute_reply":"2022-12-01T13:21:07.418325Z"},"trusted":true},"execution_count":1,"outputs":[]},{"cell_type":"code","source":"!pip install skops","metadata":{"_kg_hide-output":true,"execution":{"iopub.status.busy":"2022-12-01T13:21:09.851317Z","iopub.execute_input":"2022-12-01T13:21:09.851890Z","iopub.status.idle":"2022-12-01T13:21:15.803438Z","shell.execute_reply.started":"2022-12-01T13:21:09.851859Z","shell.execute_reply":"2022-12-01T13:21:15.802081Z"},"trusted":true},"execution_count":2,"outputs":[{"name":"stdout","text":"Requirement already satisfied: skops in /opt/conda/lib/python3.7/site-packages (0.3.0)\nRequirement already satisfied: tabulate>=0.8.8 in /opt/conda/lib/python3.7/site-packages (from skops) (0.8.8)\nRequirement already satisfied: typing-extensions>=3.7 in /opt/conda/lib/python3.7/site-packages (from skops) (3.7.4.3)\nRequirement already satisfied: huggingface-hub>=0.10.1 in /opt/conda/lib/python3.7/site-packages (from skops) (0.11.1)\nRequirement already satisfied: scikit-learn>=0.24 in /opt/conda/lib/python3.7/site-packages (from skops) (0.24.1)\nRequirement already satisfied: packaging>=20.9 in /opt/conda/lib/python3.7/site-packages (from huggingface-hub>=0.10.1->skops) (21.3)\nRequirement already satisfied: tqdm in /opt/conda/lib/python3.7/site-packages (from huggingface-hub>=0.10.1->skops) (4.55.1)\nRequirement already satisfied: pyyaml>=5.1 in /opt/conda/lib/python3.7/site-packages (from huggingface-hub>=0.10.1->skops) (5.3.1)\nRequirement already satisfied: requests in /opt/conda/lib/python3.7/site-packages (from huggingface-hub>=0.10.1->skops) (2.25.1)\nRequirement already satisfied: importlib-metadata in /opt/conda/lib/python3.7/site-packages (from huggingface-hub>=0.10.1->skops) (3.3.0)\nRequirement already satisfied: filelock in /opt/conda/lib/python3.7/site-packages (from huggingface-hub>=0.10.1->skops) (3.0.12)\nRequirement already satisfied: pyparsing!=3.0.5,>=2.0.2 in /opt/conda/lib/python3.7/site-packages (from packaging>=20.9->huggingface-hub>=0.10.1->skops) (2.4.7)\nRequirement already satisfied: scipy>=0.19.1 in /opt/conda/lib/python3.7/site-packages (from scikit-learn>=0.24->skops) (1.5.4)\nRequirement already satisfied: threadpoolctl>=2.0.0 in /opt/conda/lib/python3.7/site-packages (from scikit-learn>=0.24->skops) (2.1.0)\nRequirement already satisfied: joblib>=0.11 in /opt/conda/lib/python3.7/site-packages (from scikit-learn>=0.24->skops) (1.0.0)\nRequirement already satisfied: numpy>=1.13.3 in /opt/conda/lib/python3.7/site-packages (from scikit-learn>=0.24->skops) (1.19.5)\nRequirement already satisfied: zipp>=0.5 in /opt/conda/lib/python3.7/site-packages (from importlib-metadata->huggingface-hub>=0.10.1->skops) (3.4.0)\nRequirement already satisfied: urllib3<1.27,>=1.21.1 in /opt/conda/lib/python3.7/site-packages (from requests->huggingface-hub>=0.10.1->skops) (1.26.2)\nRequirement already satisfied: certifi>=2017.4.17 in /opt/conda/lib/python3.7/site-packages (from requests->huggingface-hub>=0.10.1->skops) (2020.12.5)\nRequirement already satisfied: idna<3,>=2.5 in /opt/conda/lib/python3.7/site-packages (from requests->huggingface-hub>=0.10.1->skops) (2.10)\nRequirement already satisfied: chardet<5,>=3.0.2 in /opt/conda/lib/python3.7/site-packages (from requests->huggingface-hub>=0.10.1->skops) (3.0.4)\n\u001b[33mWARNING: You are using pip version 21.0.1; however, version 22.3.1 is available.\nYou should consider upgrading via the '/opt/conda/bin/python3.7 -m pip install --upgrade pip' command.\u001b[0m\n","output_type":"stream"}]},{"cell_type":"markdown","source":"We will use breast cancer dataset from sklearn datasets. We will load the dataset and split. ","metadata":{}},{"cell_type":"code","source":"from sklearn.datasets import load_breast_cancer\nfrom sklearn.model_selection import train_test_split","metadata":{"execution":{"iopub.status.busy":"2022-12-01T13:21:16.196274Z","iopub.execute_input":"2022-12-01T13:21:16.196592Z","iopub.status.idle":"2022-12-01T13:21:16.523656Z","shell.execute_reply.started":"2022-12-01T13:21:16.196567Z","shell.execute_reply":"2022-12-01T13:21:16.522085Z"},"trusted":true},"execution_count":3,"outputs":[]},{"cell_type":"code","source":"cancer = load_breast_cancer()\ndata = pd.DataFrame(cancer.data, columns=[cancer.feature_names])\ndata.head()","metadata":{"execution":{"iopub.status.busy":"2022-12-01T13:21:16.668054Z","iopub.execute_input":"2022-12-01T13:21:16.668383Z","iopub.status.idle":"2022-12-01T13:21:16.719596Z","shell.execute_reply.started":"2022-12-01T13:21:16.668356Z","shell.execute_reply":"2022-12-01T13:21:16.717624Z"},"trusted":true},"execution_count":4,"outputs":[{"execution_count":4,"output_type":"execute_result","data":{"text/plain":" mean radius mean texture mean perimeter mean area mean smoothness \\\n0 17.99 10.38 122.80 1001.0 0.11840 \n1 20.57 17.77 132.90 1326.0 0.08474 \n2 19.69 21.25 130.00 1203.0 0.10960 \n3 11.42 20.38 77.58 386.1 0.14250 \n4 20.29 14.34 135.10 1297.0 0.10030 \n\n mean compactness mean concavity mean concave points mean symmetry \\\n0 0.27760 0.3001 0.14710 0.2419 \n1 0.07864 0.0869 0.07017 0.1812 \n2 0.15990 0.1974 0.12790 0.2069 \n3 0.28390 0.2414 0.10520 0.2597 \n4 0.13280 0.1980 0.10430 0.1809 \n\n mean fractal dimension ... worst radius worst texture worst perimeter \\\n0 0.07871 ... 25.38 17.33 184.60 \n1 0.05667 ... 24.99 23.41 158.80 \n2 0.05999 ... 23.57 25.53 152.50 \n3 0.09744 ... 14.91 26.50 98.87 \n4 0.05883 ... 22.54 16.67 152.20 \n\n worst area worst smoothness worst compactness worst concavity \\\n0 2019.0 0.1622 0.6656 0.7119 \n1 1956.0 0.1238 0.1866 0.2416 \n2 1709.0 0.1444 0.4245 0.4504 \n3 567.7 0.2098 0.8663 0.6869 \n4 1575.0 0.1374 0.2050 0.4000 \n\n worst concave points worst symmetry worst fractal dimension \n0 0.2654 0.4601 0.11890 \n1 0.1860 0.2750 0.08902 \n2 0.2430 0.3613 0.08758 \n3 0.2575 0.6638 0.17300 \n4 0.1625 0.2364 0.07678 \n\n[5 rows x 30 columns]","text/html":"<div>\n<style scoped>\n .dataframe tbody tr th:only-of-type {\n vertical-align: middle;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n\n .dataframe thead tr th {\n text-align: left;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr>\n <th></th>\n <th>mean radius</th>\n <th>mean texture</th>\n <th>mean perimeter</th>\n <th>mean area</th>\n <th>mean smoothness</th>\n <th>mean compactness</th>\n <th>mean concavity</th>\n <th>mean concave points</th>\n <th>mean symmetry</th>\n <th>mean fractal dimension</th>\n <th>...</th>\n <th>worst radius</th>\n <th>worst texture</th>\n <th>worst perimeter</th>\n <th>worst area</th>\n <th>worst smoothness</th>\n <th>worst compactness</th>\n <th>worst concavity</th>\n <th>worst concave points</th>\n <th>worst symmetry</th>\n <th>worst fractal dimension</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>0</th>\n <td>17.99</td>\n <td>10.38</td>\n <td>122.80</td>\n <td>1001.0</td>\n <td>0.11840</td>\n <td>0.27760</td>\n <td>0.3001</td>\n <td>0.14710</td>\n <td>0.2419</td>\n <td>0.07871</td>\n <td>...</td>\n <td>25.38</td>\n <td>17.33</td>\n <td>184.60</td>\n <td>2019.0</td>\n <td>0.1622</td>\n <td>0.6656</td>\n <td>0.7119</td>\n <td>0.2654</td>\n <td>0.4601</td>\n <td>0.11890</td>\n </tr>\n <tr>\n <th>1</th>\n <td>20.57</td>\n <td>17.77</td>\n <td>132.90</td>\n <td>1326.0</td>\n <td>0.08474</td>\n <td>0.07864</td>\n <td>0.0869</td>\n <td>0.07017</td>\n <td>0.1812</td>\n <td>0.05667</td>\n <td>...</td>\n <td>24.99</td>\n <td>23.41</td>\n <td>158.80</td>\n <td>1956.0</td>\n <td>0.1238</td>\n <td>0.1866</td>\n <td>0.2416</td>\n <td>0.1860</td>\n <td>0.2750</td>\n <td>0.08902</td>\n </tr>\n <tr>\n <th>2</th>\n <td>19.69</td>\n <td>21.25</td>\n <td>130.00</td>\n <td>1203.0</td>\n <td>0.10960</td>\n <td>0.15990</td>\n <td>0.1974</td>\n <td>0.12790</td>\n <td>0.2069</td>\n <td>0.05999</td>\n <td>...</td>\n <td>23.57</td>\n <td>25.53</td>\n <td>152.50</td>\n <td>1709.0</td>\n <td>0.1444</td>\n <td>0.4245</td>\n <td>0.4504</td>\n <td>0.2430</td>\n <td>0.3613</td>\n <td>0.08758</td>\n </tr>\n <tr>\n <th>3</th>\n <td>11.42</td>\n <td>20.38</td>\n <td>77.58</td>\n <td>386.1</td>\n <td>0.14250</td>\n <td>0.28390</td>\n <td>0.2414</td>\n <td>0.10520</td>\n <td>0.2597</td>\n <td>0.09744</td>\n <td>...</td>\n <td>14.91</td>\n <td>26.50</td>\n <td>98.87</td>\n <td>567.7</td>\n <td>0.2098</td>\n <td>0.8663</td>\n <td>0.6869</td>\n <td>0.2575</td>\n <td>0.6638</td>\n <td>0.17300</td>\n </tr>\n <tr>\n <th>4</th>\n <td>20.29</td>\n <td>14.34</td>\n <td>135.10</td>\n <td>1297.0</td>\n <td>0.10030</td>\n <td>0.13280</td>\n <td>0.1980</td>\n <td>0.10430</td>\n <td>0.1809</td>\n <td>0.05883</td>\n <td>...</td>\n <td>22.54</td>\n <td>16.67</td>\n <td>152.20</td>\n <td>1575.0</td>\n <td>0.1374</td>\n <td>0.2050</td>\n <td>0.4000</td>\n <td>0.1625</td>\n <td>0.2364</td>\n <td>0.07678</td>\n </tr>\n </tbody>\n</table>\n<p>5 rows × 30 columns</p>\n</div>"},"metadata":{}}]},{"cell_type":"code","source":"X = cancer.data\ny = cancer.target\nX_train, X_test, y_train, y_test = train_test_split(X, y, stratify=y, \n random_state=42)","metadata":{"execution":{"iopub.status.busy":"2022-12-01T13:21:17.243233Z","iopub.execute_input":"2022-12-01T13:21:17.243595Z","iopub.status.idle":"2022-12-01T13:21:17.251729Z","shell.execute_reply.started":"2022-12-01T13:21:17.243563Z","shell.execute_reply":"2022-12-01T13:21:17.250403Z"},"trusted":true},"execution_count":5,"outputs":[]},{"cell_type":"code","source":"from sklearn.tree import DecisionTreeClassifier\ntree = DecisionTreeClassifier(random_state=0)\ntree.fit(X_train, y_train)","metadata":{"execution":{"iopub.status.busy":"2022-12-01T13:21:18.976344Z","iopub.execute_input":"2022-12-01T13:21:18.976921Z","iopub.status.idle":"2022-12-01T13:21:19.137843Z","shell.execute_reply.started":"2022-12-01T13:21:18.976882Z","shell.execute_reply":"2022-12-01T13:21:19.135814Z"},"trusted":true},"execution_count":6,"outputs":[{"execution_count":6,"output_type":"execute_result","data":{"text/plain":"DecisionTreeClassifier(random_state=0)"},"metadata":{}}]},{"cell_type":"markdown","source":"## Evaluate and Inspect the Model","metadata":{}},{"cell_type":"code","source":"from sklearn.metrics import classification_report\ny_pred = tree.predict(X_test)\nprint(classification_report(y_test, y_pred))","metadata":{"execution":{"iopub.status.busy":"2022-12-01T13:21:19.705292Z","iopub.execute_input":"2022-12-01T13:21:19.705688Z","iopub.status.idle":"2022-12-01T13:21:19.718621Z","shell.execute_reply.started":"2022-12-01T13:21:19.705652Z","shell.execute_reply":"2022-12-01T13:21:19.717510Z"},"trusted":true},"execution_count":7,"outputs":[{"name":"stdout","text":" precision recall f1-score support\n\n 0 0.91 0.92 0.92 53\n 1 0.96 0.94 0.95 90\n\n accuracy 0.94 143\n macro avg 0.93 0.93 0.93 143\nweighted avg 0.94 0.94 0.94 143\n\n","output_type":"stream"}]},{"cell_type":"code","source":"report = pd.DataFrame.from_dict(classification_report(y_test, y_pred, output_dict = True))","metadata":{"execution":{"iopub.status.busy":"2022-12-01T13:21:35.456594Z","iopub.execute_input":"2022-12-01T13:21:35.457151Z","iopub.status.idle":"2022-12-01T13:21:35.469930Z","shell.execute_reply.started":"2022-12-01T13:21:35.457116Z","shell.execute_reply":"2022-12-01T13:21:35.468844Z"},"trusted":true},"execution_count":9,"outputs":[]},{"cell_type":"code","source":"print(report)","metadata":{"execution":{"iopub.status.busy":"2022-12-01T13:21:36.065318Z","iopub.execute_input":"2022-12-01T13:21:36.065648Z","iopub.status.idle":"2022-12-01T13:21:36.073465Z","shell.execute_reply.started":"2022-12-01T13:21:36.065622Z","shell.execute_reply":"2022-12-01T13:21:36.072161Z"},"trusted":true},"execution_count":10,"outputs":[{"name":"stdout","text":" 0 1 accuracy macro avg weighted avg\nprecision 0.907407 0.955056 0.937063 0.931232 0.937396\nrecall 0.924528 0.944444 0.937063 0.934486 0.937063\nf1-score 0.915888 0.949721 0.937063 0.932804 0.937181\nsupport 53.000000 90.000000 0.937063 143.000000 143.000000\n","output_type":"stream"}]},{"cell_type":"code","source":"from sklearn.tree import export_graphviz\nexport_graphviz(tree, out_file=\"tree.dot\", class_names=[\"malignant\", \"benign\"],\n feature_names=cancer.feature_names, impurity=False, filled=True)","metadata":{"execution":{"iopub.status.busy":"2022-12-01T13:21:59.435038Z","iopub.execute_input":"2022-12-01T13:21:59.435400Z","iopub.status.idle":"2022-12-01T13:21:59.447564Z","shell.execute_reply.started":"2022-12-01T13:21:59.435368Z","shell.execute_reply":"2022-12-01T13:21:59.446135Z"},"trusted":true},"execution_count":11,"outputs":[]},{"cell_type":"code","source":"import pydot\nimport graphviz\n\n(graph,) = pydot.graph_from_dot_file('tree.dot')\n\nwith open(\"tree.dot\") as f:\n dot_graph = f.read()\ndisplay(graphviz.Source(dot_graph))","metadata":{"execution":{"iopub.status.busy":"2022-12-01T13:22:16.395803Z","iopub.execute_input":"2022-12-01T13:22:16.396179Z","iopub.status.idle":"2022-12-01T13:22:16.630158Z","shell.execute_reply.started":"2022-12-01T13:22:16.396144Z","shell.execute_reply":"2022-12-01T13:22:16.628958Z"},"_kg_hide-output":true,"trusted":true},"execution_count":12,"outputs":[{"output_type":"display_data","data":{"text/plain":"<graphviz.files.Source at 0x7ff835f585d0>","image/svg+xml":"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n<!-- Generated by graphviz version 2.42.3 (20191010.1750)\n -->\n<!-- Title: Tree Pages: 1 -->\n<svg width=\"1470pt\" height=\"789pt\"\n viewBox=\"0.00 0.00 1470.00 789.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 785)\">\n<title>Tree</title>\n<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-785 1466,-785 1466,4 -4,4\"/>\n<!-- 0 -->\n<g id=\"node1\" class=\"node\">\n<title>0</title>\n<polygon fill=\"#afd7f4\" stroke=\"black\" points=\"1057,-781 912,-781 912,-713 1057,-713 1057,-781\"/>\n<text text-anchor=\"middle\" x=\"984.5\" y=\"-765.8\" font-family=\"Times,serif\" font-size=\"14.00\">worst radius <= 16.795</text>\n<text text-anchor=\"middle\" x=\"984.5\" y=\"-750.8\" font-family=\"Times,serif\" font-size=\"14.00\">samples = 426</text>\n<text text-anchor=\"middle\" x=\"984.5\" y=\"-735.8\" font-family=\"Times,serif\" font-size=\"14.00\">value = [159, 267]</text>\n<text text-anchor=\"middle\" x=\"984.5\" y=\"-720.8\" font-family=\"Times,serif\" font-size=\"14.00\">class = benign</text>\n</g>\n<!-- 1 -->\n<g id=\"node2\" class=\"node\">\n<title>1</title>\n<polygon fill=\"#4ca6e8\" stroke=\"black\" points=\"916.5,-677 730.5,-677 730.5,-609 916.5,-609 916.5,-677\"/>\n<text text-anchor=\"middle\" x=\"823.5\" y=\"-661.8\" font-family=\"Times,serif\" font-size=\"14.00\">worst concave points <= 0.136</text>\n<text text-anchor=\"middle\" x=\"823.5\" y=\"-646.8\" font-family=\"Times,serif\" font-size=\"14.00\">samples = 284</text>\n<text text-anchor=\"middle\" x=\"823.5\" y=\"-631.8\" font-family=\"Times,serif\" font-size=\"14.00\">value = [25, 259]</text>\n<text text-anchor=\"middle\" x=\"823.5\" y=\"-616.8\" font-family=\"Times,serif\" font-size=\"14.00\">class = benign</text>\n</g>\n<!-- 0->1 -->\n<g id=\"edge1\" class=\"edge\">\n<title>0->1</title>\n<path fill=\"none\" stroke=\"black\" d=\"M932.23,-712.88C916.97,-703.21 900.15,-692.56 884.41,-682.59\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"886.11,-679.52 875.79,-677.12 882.36,-685.43 886.11,-679.52\"/>\n<text text-anchor=\"middle\" x=\"881.26\" y=\"-697.82\" font-family=\"Times,serif\" font-size=\"14.00\">True</text>\n</g>\n<!-- 28 -->\n<g id=\"node29\" class=\"node\">\n<title>28</title>\n<polygon fill=\"#e78945\" stroke=\"black\" points=\"1110,-677 971,-677 971,-609 1110,-609 1110,-677\"/>\n<text text-anchor=\"middle\" x=\"1040.5\" y=\"-661.8\" font-family=\"Times,serif\" font-size=\"14.00\">texture error <= 0.473</text>\n<text text-anchor=\"middle\" x=\"1040.5\" y=\"-646.8\" font-family=\"Times,serif\" font-size=\"14.00\">samples = 142</text>\n<text text-anchor=\"middle\" x=\"1040.5\" y=\"-631.8\" font-family=\"Times,serif\" font-size=\"14.00\">value = [134, 8]</text>\n<text text-anchor=\"middle\" x=\"1040.5\" y=\"-616.8\" font-family=\"Times,serif\" font-size=\"14.00\">class = malignant</text>\n</g>\n<!-- 0->28 -->\n<g id=\"edge28\" class=\"edge\">\n<title>0->28</title>\n<path fill=\"none\" stroke=\"black\" d=\"M1002.68,-712.88C1007.38,-704.33 1012.49,-695.01 1017.4,-686.07\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"1020.47,-687.75 1022.22,-677.3 1014.34,-684.38 1020.47,-687.75\"/>\n<text text-anchor=\"middle\" x=\"1029.21\" y=\"-697.6\" font-family=\"Times,serif\" font-size=\"14.00\">False</text>\n</g>\n<!-- 2 -->\n<g id=\"node3\" class=\"node\">\n<title>2</title>\n<polygon fill=\"#3c9fe5\" stroke=\"black\" points=\"654.5,-573 520.5,-573 520.5,-505 654.5,-505 654.5,-573\"/>\n<text text-anchor=\"middle\" x=\"587.5\" y=\"-557.8\" font-family=\"Times,serif\" font-size=\"14.00\">radius error <= 1.048</text>\n<text text-anchor=\"middle\" x=\"587.5\" y=\"-542.8\" font-family=\"Times,serif\" font-size=\"14.00\">samples = 252</text>\n<text text-anchor=\"middle\" x=\"587.5\" y=\"-527.8\" font-family=\"Times,serif\" font-size=\"14.00\">value = [4, 248]</text>\n<text text-anchor=\"middle\" x=\"587.5\" y=\"-512.8\" font-family=\"Times,serif\" font-size=\"14.00\">class = benign</text>\n</g>\n<!-- 1->2 -->\n<g id=\"edge2\" class=\"edge\">\n<title>1->2</title>\n<path fill=\"none\" stroke=\"black\" d=\"M746.88,-608.88C720.27,-597.38 690.45,-584.49 663.86,-573\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"665.17,-569.76 654.6,-569 662.39,-576.18 665.17,-569.76\"/>\n</g>\n<!-- 17 -->\n<g id=\"node18\" class=\"node\">\n<title>17</title>\n<polygon fill=\"#f3c3a1\" stroke=\"black\" points=\"895,-573 752,-573 752,-505 895,-505 895,-573\"/>\n<text text-anchor=\"middle\" x=\"823.5\" y=\"-557.8\" font-family=\"Times,serif\" font-size=\"14.00\">worst texture <= 25.62</text>\n<text text-anchor=\"middle\" x=\"823.5\" y=\"-542.8\" font-family=\"Times,serif\" font-size=\"14.00\">samples = 32</text>\n<text text-anchor=\"middle\" x=\"823.5\" y=\"-527.8\" font-family=\"Times,serif\" font-size=\"14.00\">value = [21, 11]</text>\n<text text-anchor=\"middle\" x=\"823.5\" y=\"-512.8\" font-family=\"Times,serif\" font-size=\"14.00\">class = malignant</text>\n</g>\n<!-- 1->17 -->\n<g id=\"edge17\" class=\"edge\">\n<title>1->17</title>\n<path fill=\"none\" stroke=\"black\" d=\"M823.5,-608.88C823.5,-600.78 823.5,-591.98 823.5,-583.47\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"827,-583.3 823.5,-573.3 820,-583.3 827,-583.3\"/>\n</g>\n<!-- 3 -->\n<g id=\"node4\" class=\"node\">\n<title>3</title>\n<polygon fill=\"#3b9ee5\" stroke=\"black\" points=\"438,-469 273,-469 273,-401 438,-401 438,-469\"/>\n<text text-anchor=\"middle\" x=\"355.5\" y=\"-453.8\" font-family=\"Times,serif\" font-size=\"14.00\">smoothness error <= 0.003</text>\n<text text-anchor=\"middle\" x=\"355.5\" y=\"-438.8\" font-family=\"Times,serif\" font-size=\"14.00\">samples = 251</text>\n<text text-anchor=\"middle\" x=\"355.5\" y=\"-423.8\" font-family=\"Times,serif\" font-size=\"14.00\">value = [3, 248]</text>\n<text text-anchor=\"middle\" x=\"355.5\" y=\"-408.8\" font-family=\"Times,serif\" font-size=\"14.00\">class = benign</text>\n</g>\n<!-- 2->3 -->\n<g id=\"edge3\" class=\"edge\">\n<title>2->3</title>\n<path fill=\"none\" stroke=\"black\" d=\"M520.4,-508.5C495.26,-497.44 466.37,-484.74 439.86,-473.09\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"441.16,-469.84 430.6,-469.02 438.34,-476.25 441.16,-469.84\"/>\n</g>\n<!-- 16 -->\n<g id=\"node17\" class=\"node\">\n<title>16</title>\n<polygon fill=\"#e58139\" stroke=\"black\" points=\"644,-461.5 531,-461.5 531,-408.5 644,-408.5 644,-461.5\"/>\n<text text-anchor=\"middle\" x=\"587.5\" y=\"-446.3\" font-family=\"Times,serif\" font-size=\"14.00\">samples = 1</text>\n<text text-anchor=\"middle\" x=\"587.5\" y=\"-431.3\" font-family=\"Times,serif\" font-size=\"14.00\">value = [1, 0]</text>\n<text text-anchor=\"middle\" x=\"587.5\" y=\"-416.3\" font-family=\"Times,serif\" font-size=\"14.00\">class = malignant</text>\n</g>\n<!-- 2->16 -->\n<g id=\"edge16\" class=\"edge\">\n<title>2->16</title>\n<path fill=\"none\" stroke=\"black\" d=\"M587.5,-504.88C587.5,-494.33 587.5,-482.6 587.5,-471.85\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"591,-471.52 587.5,-461.52 584,-471.52 591,-471.52\"/>\n</g>\n<!-- 4 -->\n<g id=\"node5\" class=\"node\">\n<title>4</title>\n<polygon fill=\"#7bbeee\" stroke=\"black\" points=\"237.5,-365 101.5,-365 101.5,-297 237.5,-297 237.5,-365\"/>\n<text text-anchor=\"middle\" x=\"169.5\" y=\"-349.8\" font-family=\"Times,serif\" font-size=\"14.00\">mean texture <= 19.9</text>\n<text text-anchor=\"middle\" x=\"169.5\" y=\"-334.8\" font-family=\"Times,serif\" font-size=\"14.00\">samples = 4</text>\n<text text-anchor=\"middle\" x=\"169.5\" y=\"-319.8\" font-family=\"Times,serif\" font-size=\"14.00\">value = [1, 3]</text>\n<text text-anchor=\"middle\" x=\"169.5\" y=\"-304.8\" font-family=\"Times,serif\" font-size=\"14.00\">class = benign</text>\n</g>\n<!-- 3->4 -->\n<g id=\"edge4\" class=\"edge\">\n<title>3->4</title>\n<path fill=\"none\" stroke=\"black\" d=\"M295.11,-400.88C277.15,-391.04 257.34,-380.17 238.86,-370.03\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"240.35,-366.86 229.9,-365.12 236.99,-373 240.35,-366.86\"/>\n</g>\n<!-- 7 -->\n<g id=\"node8\" class=\"node\">\n<title>7</title>\n<polygon fill=\"#3b9ee5\" stroke=\"black\" points=\"414,-365 297,-365 297,-297 414,-297 414,-365\"/>\n<text text-anchor=\"middle\" x=\"355.5\" y=\"-349.8\" font-family=\"Times,serif\" font-size=\"14.00\">area error <= 48.7</text>\n<text text-anchor=\"middle\" x=\"355.5\" y=\"-334.8\" font-family=\"Times,serif\" font-size=\"14.00\">samples = 247</text>\n<text text-anchor=\"middle\" x=\"355.5\" y=\"-319.8\" font-family=\"Times,serif\" font-size=\"14.00\">value = [2, 245]</text>\n<text text-anchor=\"middle\" x=\"355.5\" y=\"-304.8\" font-family=\"Times,serif\" font-size=\"14.00\">class = benign</text>\n</g>\n<!-- 3->7 -->\n<g id=\"edge7\" class=\"edge\">\n<title>3->7</title>\n<path fill=\"none\" stroke=\"black\" d=\"M355.5,-400.88C355.5,-392.78 355.5,-383.98 355.5,-375.47\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"359,-375.3 355.5,-365.3 352,-375.3 359,-375.3\"/>\n</g>\n<!-- 5 -->\n<g id=\"node6\" class=\"node\">\n<title>5</title>\n<polygon fill=\"#399de5\" stroke=\"black\" points=\"95,-253.5 0,-253.5 0,-200.5 95,-200.5 95,-253.5\"/>\n<text text-anchor=\"middle\" x=\"47.5\" y=\"-238.3\" font-family=\"Times,serif\" font-size=\"14.00\">samples = 3</text>\n<text text-anchor=\"middle\" x=\"47.5\" y=\"-223.3\" font-family=\"Times,serif\" font-size=\"14.00\">value = [0, 3]</text>\n<text text-anchor=\"middle\" x=\"47.5\" y=\"-208.3\" font-family=\"Times,serif\" font-size=\"14.00\">class = benign</text>\n</g>\n<!-- 4->5 -->\n<g id=\"edge5\" class=\"edge\">\n<title>4->5</title>\n<path fill=\"none\" stroke=\"black\" d=\"M129.89,-296.88C115.81,-285.12 100,-271.89 86.02,-260.2\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"87.94,-257.25 78.02,-253.52 83.45,-262.62 87.94,-257.25\"/>\n</g>\n<!-- 6 -->\n<g id=\"node7\" class=\"node\">\n<title>6</title>\n<polygon fill=\"#e58139\" stroke=\"black\" points=\"226,-253.5 113,-253.5 113,-200.5 226,-200.5 226,-253.5\"/>\n<text text-anchor=\"middle\" x=\"169.5\" y=\"-238.3\" font-family=\"Times,serif\" font-size=\"14.00\">samples = 1</text>\n<text text-anchor=\"middle\" x=\"169.5\" y=\"-223.3\" font-family=\"Times,serif\" font-size=\"14.00\">value = [1, 0]</text>\n<text text-anchor=\"middle\" x=\"169.5\" y=\"-208.3\" font-family=\"Times,serif\" font-size=\"14.00\">class = malignant</text>\n</g>\n<!-- 4->6 -->\n<g id=\"edge6\" class=\"edge\">\n<title>4->6</title>\n<path fill=\"none\" stroke=\"black\" d=\"M169.5,-296.88C169.5,-286.33 169.5,-274.6 169.5,-263.85\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"173,-263.52 169.5,-253.52 166,-263.52 173,-263.52\"/>\n</g>\n<!-- 8 -->\n<g id=\"node9\" class=\"node\">\n<title>8</title>\n<polygon fill=\"#3a9de5\" stroke=\"black\" points=\"387,-261 244,-261 244,-193 387,-193 387,-261\"/>\n<text text-anchor=\"middle\" x=\"315.5\" y=\"-245.8\" font-family=\"Times,serif\" font-size=\"14.00\">worst texture <= 33.35</text>\n<text text-anchor=\"middle\" x=\"315.5\" y=\"-230.8\" font-family=\"Times,serif\" font-size=\"14.00\">samples = 243</text>\n<text text-anchor=\"middle\" x=\"315.5\" y=\"-215.8\" font-family=\"Times,serif\" font-size=\"14.00\">value = [1, 242]</text>\n<text text-anchor=\"middle\" x=\"315.5\" y=\"-200.8\" font-family=\"Times,serif\" font-size=\"14.00\">class = benign</text>\n</g>\n<!-- 7->8 -->\n<g id=\"edge8\" class=\"edge\">\n<title>7->8</title>\n<path fill=\"none\" stroke=\"black\" d=\"M342.51,-296.88C339.23,-288.51 335.66,-279.4 332.22,-270.63\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"335.47,-269.33 328.56,-261.3 328.95,-271.89 335.47,-269.33\"/>\n</g>\n<!-- 13 -->\n<g id=\"node14\" class=\"node\">\n<title>13</title>\n<polygon fill=\"#7bbeee\" stroke=\"black\" points=\"563.5,-261 405.5,-261 405.5,-193 563.5,-193 563.5,-261\"/>\n<text text-anchor=\"middle\" x=\"484.5\" y=\"-245.8\" font-family=\"Times,serif\" font-size=\"14.00\">mean concavity <= 0.029</text>\n<text text-anchor=\"middle\" x=\"484.5\" y=\"-230.8\" font-family=\"Times,serif\" font-size=\"14.00\">samples = 4</text>\n<text text-anchor=\"middle\" x=\"484.5\" y=\"-215.8\" font-family=\"Times,serif\" font-size=\"14.00\">value = [1, 3]</text>\n<text text-anchor=\"middle\" x=\"484.5\" y=\"-200.8\" font-family=\"Times,serif\" font-size=\"14.00\">class = benign</text>\n</g>\n<!-- 7->13 -->\n<g id=\"edge13\" class=\"edge\">\n<title>7->13</title>\n<path fill=\"none\" stroke=\"black\" d=\"M397.38,-296.88C409.21,-287.53 422.2,-277.26 434.46,-267.57\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"436.71,-270.25 442.39,-261.3 432.37,-264.76 436.71,-270.25\"/>\n</g>\n<!-- 9 -->\n<g id=\"node10\" class=\"node\">\n<title>9</title>\n<polygon fill=\"#399de5\" stroke=\"black\" points=\"236,-149.5 131,-149.5 131,-96.5 236,-96.5 236,-149.5\"/>\n<text text-anchor=\"middle\" x=\"183.5\" y=\"-134.3\" font-family=\"Times,serif\" font-size=\"14.00\">samples = 225</text>\n<text text-anchor=\"middle\" x=\"183.5\" y=\"-119.3\" font-family=\"Times,serif\" font-size=\"14.00\">value = [0, 225]</text>\n<text text-anchor=\"middle\" x=\"183.5\" y=\"-104.3\" font-family=\"Times,serif\" font-size=\"14.00\">class = benign</text>\n</g>\n<!-- 8->9 -->\n<g id=\"edge9\" class=\"edge\">\n<title>8->9</title>\n<path fill=\"none\" stroke=\"black\" d=\"M272.64,-192.88C257.27,-181.01 239.98,-167.65 224.75,-155.88\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"226.58,-152.86 216.53,-149.52 222.3,-158.4 226.58,-152.86\"/>\n</g>\n<!-- 10 -->\n<g id=\"node11\" class=\"node\">\n<title>10</title>\n<polygon fill=\"#45a3e7\" stroke=\"black\" points=\"390.5,-157 254.5,-157 254.5,-89 390.5,-89 390.5,-157\"/>\n<text text-anchor=\"middle\" x=\"322.5\" y=\"-141.8\" font-family=\"Times,serif\" font-size=\"14.00\">worst texture <= 33.8</text>\n<text text-anchor=\"middle\" x=\"322.5\" y=\"-126.8\" font-family=\"Times,serif\" font-size=\"14.00\">samples = 18</text>\n<text text-anchor=\"middle\" x=\"322.5\" y=\"-111.8\" font-family=\"Times,serif\" font-size=\"14.00\">value = [1, 17]</text>\n<text text-anchor=\"middle\" x=\"322.5\" y=\"-96.8\" font-family=\"Times,serif\" font-size=\"14.00\">class = benign</text>\n</g>\n<!-- 8->10 -->\n<g id=\"edge10\" class=\"edge\">\n<title>8->10</title>\n<path fill=\"none\" stroke=\"black\" d=\"M317.77,-192.88C318.33,-184.78 318.93,-175.98 319.52,-167.47\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"323.02,-167.52 320.21,-157.3 316.04,-167.04 323.02,-167.52\"/>\n</g>\n<!-- 11 -->\n<g id=\"node12\" class=\"node\">\n<title>11</title>\n<polygon fill=\"#e58139\" stroke=\"black\" points=\"317,-53 204,-53 204,0 317,0 317,-53\"/>\n<text text-anchor=\"middle\" x=\"260.5\" y=\"-37.8\" font-family=\"Times,serif\" font-size=\"14.00\">samples = 1</text>\n<text text-anchor=\"middle\" x=\"260.5\" y=\"-22.8\" font-family=\"Times,serif\" font-size=\"14.00\">value = [1, 0]</text>\n<text text-anchor=\"middle\" x=\"260.5\" y=\"-7.8\" font-family=\"Times,serif\" font-size=\"14.00\">class = malignant</text>\n</g>\n<!-- 10->11 -->\n<g id=\"edge11\" class=\"edge\">\n<title>10->11</title>\n<path fill=\"none\" stroke=\"black\" d=\"M300.82,-88.95C295.05,-80.17 288.82,-70.66 283.01,-61.82\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"285.8,-59.68 277.39,-53.24 279.94,-63.52 285.8,-59.68\"/>\n</g>\n<!-- 12 -->\n<g id=\"node13\" class=\"node\">\n<title>12</title>\n<polygon fill=\"#399de5\" stroke=\"black\" points=\"433.5,-53 335.5,-53 335.5,0 433.5,0 433.5,-53\"/>\n<text text-anchor=\"middle\" x=\"384.5\" y=\"-37.8\" font-family=\"Times,serif\" font-size=\"14.00\">samples = 17</text>\n<text text-anchor=\"middle\" x=\"384.5\" y=\"-22.8\" font-family=\"Times,serif\" font-size=\"14.00\">value = [0, 17]</text>\n<text text-anchor=\"middle\" x=\"384.5\" y=\"-7.8\" font-family=\"Times,serif\" font-size=\"14.00\">class = benign</text>\n</g>\n<!-- 10->12 -->\n<g id=\"edge12\" class=\"edge\">\n<title>10->12</title>\n<path fill=\"none\" stroke=\"black\" d=\"M344.18,-88.95C349.95,-80.17 356.18,-70.66 361.99,-61.82\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"365.06,-63.52 367.61,-53.24 359.2,-59.68 365.06,-63.52\"/>\n</g>\n<!-- 14 -->\n<g id=\"node15\" class=\"node\">\n<title>14</title>\n<polygon fill=\"#e58139\" stroke=\"black\" points=\"535,-149.5 422,-149.5 422,-96.5 535,-96.5 535,-149.5\"/>\n<text text-anchor=\"middle\" x=\"478.5\" y=\"-134.3\" font-family=\"Times,serif\" font-size=\"14.00\">samples = 1</text>\n<text text-anchor=\"middle\" x=\"478.5\" y=\"-119.3\" font-family=\"Times,serif\" font-size=\"14.00\">value = [1, 0]</text>\n<text text-anchor=\"middle\" x=\"478.5\" y=\"-104.3\" font-family=\"Times,serif\" font-size=\"14.00\">class = malignant</text>\n</g>\n<!-- 13->14 -->\n<g id=\"edge14\" class=\"edge\">\n<title>13->14</title>\n<path fill=\"none\" stroke=\"black\" d=\"M482.55,-192.88C481.92,-182.22 481.23,-170.35 480.59,-159.52\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"484.08,-159.3 480,-149.52 477.09,-159.71 484.08,-159.3\"/>\n</g>\n<!-- 15 -->\n<g id=\"node16\" class=\"node\">\n<title>15</title>\n<polygon fill=\"#399de5\" stroke=\"black\" points=\"648,-149.5 553,-149.5 553,-96.5 648,-96.5 648,-149.5\"/>\n<text text-anchor=\"middle\" x=\"600.5\" y=\"-134.3\" font-family=\"Times,serif\" font-size=\"14.00\">samples = 3</text>\n<text text-anchor=\"middle\" x=\"600.5\" y=\"-119.3\" font-family=\"Times,serif\" font-size=\"14.00\">value = [0, 3]</text>\n<text text-anchor=\"middle\" x=\"600.5\" y=\"-104.3\" font-family=\"Times,serif\" font-size=\"14.00\">class = benign</text>\n</g>\n<!-- 13->15 -->\n<g id=\"edge15\" class=\"edge\">\n<title>13->15</title>\n<path fill=\"none\" stroke=\"black\" d=\"M522.16,-192.88C535.54,-181.12 550.58,-167.89 563.88,-156.2\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"566.28,-158.75 571.48,-149.52 561.66,-153.49 566.28,-158.75\"/>\n</g>\n<!-- 18 -->\n<g id=\"node19\" class=\"node\">\n<title>18</title>\n<polygon fill=\"#7bbeee\" stroke=\"black\" points=\"852.5,-469 724.5,-469 724.5,-401 852.5,-401 852.5,-469\"/>\n<text text-anchor=\"middle\" x=\"788.5\" y=\"-453.8\" font-family=\"Times,serif\" font-size=\"14.00\">worst area <= 817.1</text>\n<text text-anchor=\"middle\" x=\"788.5\" y=\"-438.8\" font-family=\"Times,serif\" font-size=\"14.00\">samples = 12</text>\n<text text-anchor=\"middle\" x=\"788.5\" y=\"-423.8\" font-family=\"Times,serif\" font-size=\"14.00\">value = [3, 9]</text>\n<text text-anchor=\"middle\" x=\"788.5\" y=\"-408.8\" font-family=\"Times,serif\" font-size=\"14.00\">class = benign</text>\n</g>\n<!-- 17->18 -->\n<g id=\"edge18\" class=\"edge\">\n<title>17->18</title>\n<path fill=\"none\" stroke=\"black\" d=\"M812.14,-504.88C809.29,-496.6 806.2,-487.6 803.22,-478.91\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"806.48,-477.62 799.93,-469.3 799.86,-479.89 806.48,-477.62\"/>\n</g>\n<!-- 23 -->\n<g id=\"node24\" class=\"node\">\n<title>23</title>\n<polygon fill=\"#e88f4f\" stroke=\"black\" points=\"1042,-469 881,-469 881,-401 1042,-401 1042,-469\"/>\n<text text-anchor=\"middle\" x=\"961.5\" y=\"-453.8\" font-family=\"Times,serif\" font-size=\"14.00\">worst symmetry <= 0.268</text>\n<text text-anchor=\"middle\" x=\"961.5\" y=\"-438.8\" font-family=\"Times,serif\" font-size=\"14.00\">samples = 20</text>\n<text text-anchor=\"middle\" x=\"961.5\" y=\"-423.8\" font-family=\"Times,serif\" font-size=\"14.00\">value = [18, 2]</text>\n<text text-anchor=\"middle\" x=\"961.5\" y=\"-408.8\" font-family=\"Times,serif\" font-size=\"14.00\">class = malignant</text>\n</g>\n<!-- 17->23 -->\n<g id=\"edge23\" class=\"edge\">\n<title>17->23</title>\n<path fill=\"none\" stroke=\"black\" d=\"M868.3,-504.88C881.08,-495.44 895.12,-485.06 908.34,-475.29\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"910.49,-478.06 916.45,-469.3 906.33,-472.43 910.49,-478.06\"/>\n</g>\n<!-- 19 -->\n<g id=\"node20\" class=\"node\">\n<title>19</title>\n<polygon fill=\"#4fa8e8\" stroke=\"black\" points=\"714,-365 545,-365 545,-297 714,-297 714,-365\"/>\n<text text-anchor=\"middle\" x=\"629.5\" y=\"-349.8\" font-family=\"Times,serif\" font-size=\"14.00\">mean smoothness <= 0.123</text>\n<text text-anchor=\"middle\" x=\"629.5\" y=\"-334.8\" font-family=\"Times,serif\" font-size=\"14.00\">samples = 10</text>\n<text text-anchor=\"middle\" x=\"629.5\" y=\"-319.8\" font-family=\"Times,serif\" font-size=\"14.00\">value = [1, 9]</text>\n<text text-anchor=\"middle\" x=\"629.5\" y=\"-304.8\" font-family=\"Times,serif\" font-size=\"14.00\">class = benign</text>\n</g>\n<!-- 18->19 -->\n<g id=\"edge19\" class=\"edge\">\n<title>18->19</title>\n<path fill=\"none\" stroke=\"black\" d=\"M736.88,-400.88C721.8,-391.21 705.2,-380.56 689.65,-370.59\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"691.44,-367.58 681.14,-365.12 687.66,-373.47 691.44,-367.58\"/>\n</g>\n<!-- 22 -->\n<g id=\"node23\" class=\"node\">\n<title>22</title>\n<polygon fill=\"#e58139\" stroke=\"black\" points=\"845,-357.5 732,-357.5 732,-304.5 845,-304.5 845,-357.5\"/>\n<text text-anchor=\"middle\" x=\"788.5\" y=\"-342.3\" font-family=\"Times,serif\" font-size=\"14.00\">samples = 2</text>\n<text text-anchor=\"middle\" x=\"788.5\" y=\"-327.3\" font-family=\"Times,serif\" font-size=\"14.00\">value = [2, 0]</text>\n<text text-anchor=\"middle\" x=\"788.5\" y=\"-312.3\" font-family=\"Times,serif\" font-size=\"14.00\">class = malignant</text>\n</g>\n<!-- 18->22 -->\n<g id=\"edge22\" class=\"edge\">\n<title>18->22</title>\n<path fill=\"none\" stroke=\"black\" d=\"M788.5,-400.88C788.5,-390.33 788.5,-378.6 788.5,-367.85\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"792,-367.52 788.5,-357.52 785,-367.52 792,-367.52\"/>\n</g>\n<!-- 20 -->\n<g id=\"node21\" class=\"node\">\n<title>20</title>\n<polygon fill=\"#399de5\" stroke=\"black\" points=\"677,-253.5 582,-253.5 582,-200.5 677,-200.5 677,-253.5\"/>\n<text text-anchor=\"middle\" x=\"629.5\" y=\"-238.3\" font-family=\"Times,serif\" font-size=\"14.00\">samples = 9</text>\n<text text-anchor=\"middle\" x=\"629.5\" y=\"-223.3\" font-family=\"Times,serif\" font-size=\"14.00\">value = [0, 9]</text>\n<text text-anchor=\"middle\" x=\"629.5\" y=\"-208.3\" font-family=\"Times,serif\" font-size=\"14.00\">class = benign</text>\n</g>\n<!-- 19->20 -->\n<g id=\"edge20\" class=\"edge\">\n<title>19->20</title>\n<path fill=\"none\" stroke=\"black\" d=\"M629.5,-296.88C629.5,-286.33 629.5,-274.6 629.5,-263.85\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"633,-263.52 629.5,-253.52 626,-263.52 633,-263.52\"/>\n</g>\n<!-- 21 -->\n<g id=\"node22\" class=\"node\">\n<title>21</title>\n<polygon fill=\"#e58139\" stroke=\"black\" points=\"808,-253.5 695,-253.5 695,-200.5 808,-200.5 808,-253.5\"/>\n<text text-anchor=\"middle\" x=\"751.5\" y=\"-238.3\" font-family=\"Times,serif\" font-size=\"14.00\">samples = 1</text>\n<text text-anchor=\"middle\" x=\"751.5\" y=\"-223.3\" font-family=\"Times,serif\" font-size=\"14.00\">value = [1, 0]</text>\n<text text-anchor=\"middle\" x=\"751.5\" y=\"-208.3\" font-family=\"Times,serif\" font-size=\"14.00\">class = malignant</text>\n</g>\n<!-- 19->21 -->\n<g id=\"edge21\" class=\"edge\">\n<title>19->21</title>\n<path fill=\"none\" stroke=\"black\" d=\"M669.11,-296.88C683.19,-285.12 699,-271.89 712.98,-260.2\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"715.55,-262.62 720.98,-253.52 711.06,-257.25 715.55,-262.62\"/>\n</g>\n<!-- 24 -->\n<g id=\"node25\" class=\"node\">\n<title>24</title>\n<polygon fill=\"#9ccef2\" stroke=\"black\" points=\"1060,-365 863,-365 863,-297 1060,-297 1060,-365\"/>\n<text text-anchor=\"middle\" x=\"961.5\" y=\"-349.8\" font-family=\"Times,serif\" font-size=\"14.00\">fractal dimension error <= 0.002</text>\n<text text-anchor=\"middle\" x=\"961.5\" y=\"-334.8\" font-family=\"Times,serif\" font-size=\"14.00\">samples = 3</text>\n<text text-anchor=\"middle\" x=\"961.5\" y=\"-319.8\" font-family=\"Times,serif\" font-size=\"14.00\">value = [1, 2]</text>\n<text text-anchor=\"middle\" x=\"961.5\" y=\"-304.8\" font-family=\"Times,serif\" font-size=\"14.00\">class = benign</text>\n</g>\n<!-- 23->24 -->\n<g id=\"edge24\" class=\"edge\">\n<title>23->24</title>\n<path fill=\"none\" stroke=\"black\" d=\"M961.5,-400.88C961.5,-392.78 961.5,-383.98 961.5,-375.47\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"965,-375.3 961.5,-365.3 958,-375.3 965,-375.3\"/>\n</g>\n<!-- 27 -->\n<g id=\"node28\" class=\"node\">\n<title>27</title>\n<polygon fill=\"#e58139\" stroke=\"black\" points=\"1191,-357.5 1078,-357.5 1078,-304.5 1191,-304.5 1191,-357.5\"/>\n<text text-anchor=\"middle\" x=\"1134.5\" y=\"-342.3\" font-family=\"Times,serif\" font-size=\"14.00\">samples = 17</text>\n<text text-anchor=\"middle\" x=\"1134.5\" y=\"-327.3\" font-family=\"Times,serif\" font-size=\"14.00\">value = [17, 0]</text>\n<text text-anchor=\"middle\" x=\"1134.5\" y=\"-312.3\" font-family=\"Times,serif\" font-size=\"14.00\">class = malignant</text>\n</g>\n<!-- 23->27 -->\n<g id=\"edge27\" class=\"edge\">\n<title>23->27</title>\n<path fill=\"none\" stroke=\"black\" d=\"M1017.67,-400.88C1038.47,-388.62 1061.94,-374.78 1082.37,-362.74\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"1084.38,-365.61 1091.22,-357.52 1080.82,-359.58 1084.38,-365.61\"/>\n</g>\n<!-- 25 -->\n<g id=\"node26\" class=\"node\">\n<title>25</title>\n<polygon fill=\"#e58139\" stroke=\"black\" points=\"979,-253.5 866,-253.5 866,-200.5 979,-200.5 979,-253.5\"/>\n<text text-anchor=\"middle\" x=\"922.5\" y=\"-238.3\" font-family=\"Times,serif\" font-size=\"14.00\">samples = 1</text>\n<text text-anchor=\"middle\" x=\"922.5\" y=\"-223.3\" font-family=\"Times,serif\" font-size=\"14.00\">value = [1, 0]</text>\n<text text-anchor=\"middle\" x=\"922.5\" y=\"-208.3\" font-family=\"Times,serif\" font-size=\"14.00\">class = malignant</text>\n</g>\n<!-- 24->25 -->\n<g id=\"edge25\" class=\"edge\">\n<title>24->25</title>\n<path fill=\"none\" stroke=\"black\" d=\"M948.84,-296.88C944.72,-286.11 940.13,-274.11 935.95,-263.18\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"939.1,-261.61 932.26,-253.52 932.56,-264.11 939.1,-261.61\"/>\n</g>\n<!-- 26 -->\n<g id=\"node27\" class=\"node\">\n<title>26</title>\n<polygon fill=\"#399de5\" stroke=\"black\" points=\"1092,-253.5 997,-253.5 997,-200.5 1092,-200.5 1092,-253.5\"/>\n<text text-anchor=\"middle\" x=\"1044.5\" y=\"-238.3\" font-family=\"Times,serif\" font-size=\"14.00\">samples = 2</text>\n<text text-anchor=\"middle\" x=\"1044.5\" y=\"-223.3\" font-family=\"Times,serif\" font-size=\"14.00\">value = [0, 2]</text>\n<text text-anchor=\"middle\" x=\"1044.5\" y=\"-208.3\" font-family=\"Times,serif\" font-size=\"14.00\">class = benign</text>\n</g>\n<!-- 24->26 -->\n<g id=\"edge26\" class=\"edge\">\n<title>24->26</title>\n<path fill=\"none\" stroke=\"black\" d=\"M988.45,-296.88C997.67,-285.56 1007.98,-272.88 1017.22,-261.52\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"1020.14,-263.49 1023.73,-253.52 1014.71,-259.07 1020.14,-263.49\"/>\n</g>\n<!-- 29 -->\n<g id=\"node30\" class=\"node\">\n<title>29</title>\n<polygon fill=\"#399de5\" stroke=\"black\" points=\"1088,-565.5 993,-565.5 993,-512.5 1088,-512.5 1088,-565.5\"/>\n<text text-anchor=\"middle\" x=\"1040.5\" y=\"-550.3\" font-family=\"Times,serif\" font-size=\"14.00\">samples = 5</text>\n<text text-anchor=\"middle\" x=\"1040.5\" y=\"-535.3\" font-family=\"Times,serif\" font-size=\"14.00\">value = [0, 5]</text>\n<text text-anchor=\"middle\" x=\"1040.5\" y=\"-520.3\" font-family=\"Times,serif\" font-size=\"14.00\">class = benign</text>\n</g>\n<!-- 28->29 -->\n<g id=\"edge29\" class=\"edge\">\n<title>28->29</title>\n<path fill=\"none\" stroke=\"black\" d=\"M1040.5,-608.88C1040.5,-598.33 1040.5,-586.6 1040.5,-575.85\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"1044,-575.52 1040.5,-565.52 1037,-575.52 1044,-575.52\"/>\n</g>\n<!-- 30 -->\n<g id=\"node31\" class=\"node\">\n<title>30</title>\n<polygon fill=\"#e6843d\" stroke=\"black\" points=\"1335.5,-573 1177.5,-573 1177.5,-505 1335.5,-505 1335.5,-573\"/>\n<text text-anchor=\"middle\" x=\"1256.5\" y=\"-557.8\" font-family=\"Times,serif\" font-size=\"14.00\">worst concavity <= 0.191</text>\n<text text-anchor=\"middle\" x=\"1256.5\" y=\"-542.8\" font-family=\"Times,serif\" font-size=\"14.00\">samples = 137</text>\n<text text-anchor=\"middle\" x=\"1256.5\" y=\"-527.8\" font-family=\"Times,serif\" font-size=\"14.00\">value = [134, 3]</text>\n<text text-anchor=\"middle\" x=\"1256.5\" y=\"-512.8\" font-family=\"Times,serif\" font-size=\"14.00\">class = malignant</text>\n</g>\n<!-- 28->30 -->\n<g id=\"edge30\" class=\"edge\">\n<title>28->30</title>\n<path fill=\"none\" stroke=\"black\" d=\"M1110.03,-609.17C1131.4,-599.08 1155.08,-587.89 1177.05,-577.52\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"1178.81,-580.56 1186.36,-573.12 1175.82,-574.23 1178.81,-580.56\"/>\n</g>\n<!-- 31 -->\n<g id=\"node32\" class=\"node\">\n<title>31</title>\n<polygon fill=\"#bddef6\" stroke=\"black\" points=\"1331,-469 1182,-469 1182,-401 1331,-401 1331,-469\"/>\n<text text-anchor=\"middle\" x=\"1256.5\" y=\"-453.8\" font-family=\"Times,serif\" font-size=\"14.00\">worst texture <= 30.975</text>\n<text text-anchor=\"middle\" x=\"1256.5\" y=\"-438.8\" font-family=\"Times,serif\" font-size=\"14.00\">samples = 5</text>\n<text text-anchor=\"middle\" x=\"1256.5\" y=\"-423.8\" font-family=\"Times,serif\" font-size=\"14.00\">value = [2, 3]</text>\n<text text-anchor=\"middle\" x=\"1256.5\" y=\"-408.8\" font-family=\"Times,serif\" font-size=\"14.00\">class = benign</text>\n</g>\n<!-- 30->31 -->\n<g id=\"edge31\" class=\"edge\">\n<title>30->31</title>\n<path fill=\"none\" stroke=\"black\" d=\"M1256.5,-504.88C1256.5,-496.78 1256.5,-487.98 1256.5,-479.47\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"1260,-479.3 1256.5,-469.3 1253,-479.3 1260,-479.3\"/>\n</g>\n<!-- 34 -->\n<g id=\"node35\" class=\"node\">\n<title>34</title>\n<polygon fill=\"#e58139\" stroke=\"black\" points=\"1462,-461.5 1349,-461.5 1349,-408.5 1462,-408.5 1462,-461.5\"/>\n<text text-anchor=\"middle\" x=\"1405.5\" y=\"-446.3\" font-family=\"Times,serif\" font-size=\"14.00\">samples = 132</text>\n<text text-anchor=\"middle\" x=\"1405.5\" y=\"-431.3\" font-family=\"Times,serif\" font-size=\"14.00\">value = [132, 0]</text>\n<text text-anchor=\"middle\" x=\"1405.5\" y=\"-416.3\" font-family=\"Times,serif\" font-size=\"14.00\">class = malignant</text>\n</g>\n<!-- 30->34 -->\n<g id=\"edge34\" class=\"edge\">\n<title>30->34</title>\n<path fill=\"none\" stroke=\"black\" d=\"M1304.88,-504.88C1322.55,-492.79 1342.47,-479.15 1359.89,-467.22\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"1361.95,-470.06 1368.22,-461.52 1357.99,-464.28 1361.95,-470.06\"/>\n</g>\n<!-- 32 -->\n<g id=\"node33\" class=\"node\">\n<title>32</title>\n<polygon fill=\"#399de5\" stroke=\"black\" points=\"1304,-357.5 1209,-357.5 1209,-304.5 1304,-304.5 1304,-357.5\"/>\n<text text-anchor=\"middle\" x=\"1256.5\" y=\"-342.3\" font-family=\"Times,serif\" font-size=\"14.00\">samples = 3</text>\n<text text-anchor=\"middle\" x=\"1256.5\" y=\"-327.3\" font-family=\"Times,serif\" font-size=\"14.00\">value = [0, 3]</text>\n<text text-anchor=\"middle\" x=\"1256.5\" y=\"-312.3\" font-family=\"Times,serif\" font-size=\"14.00\">class = benign</text>\n</g>\n<!-- 31->32 -->\n<g id=\"edge32\" class=\"edge\">\n<title>31->32</title>\n<path fill=\"none\" stroke=\"black\" d=\"M1256.5,-400.88C1256.5,-390.33 1256.5,-378.6 1256.5,-367.85\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"1260,-367.52 1256.5,-357.52 1253,-367.52 1260,-367.52\"/>\n</g>\n<!-- 33 -->\n<g id=\"node34\" class=\"node\">\n<title>33</title>\n<polygon fill=\"#e58139\" stroke=\"black\" points=\"1435,-357.5 1322,-357.5 1322,-304.5 1435,-304.5 1435,-357.5\"/>\n<text text-anchor=\"middle\" x=\"1378.5\" y=\"-342.3\" font-family=\"Times,serif\" font-size=\"14.00\">samples = 2</text>\n<text text-anchor=\"middle\" x=\"1378.5\" y=\"-327.3\" font-family=\"Times,serif\" font-size=\"14.00\">value = [2, 0]</text>\n<text text-anchor=\"middle\" x=\"1378.5\" y=\"-312.3\" font-family=\"Times,serif\" font-size=\"14.00\">class = malignant</text>\n</g>\n<!-- 31->33 -->\n<g id=\"edge33\" class=\"edge\">\n<title>31->33</title>\n<path fill=\"none\" stroke=\"black\" d=\"M1296.11,-400.88C1310.19,-389.12 1326,-375.89 1339.98,-364.2\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"1342.55,-366.62 1347.98,-357.52 1338.06,-361.25 1342.55,-366.62\"/>\n</g>\n</g>\n</svg>\n"},"metadata":{}}]},{"cell_type":"code","source":"print(\"Feature importances:\")\nprint(tree.feature_importances_)","metadata":{"execution":{"iopub.status.busy":"2022-12-01T13:22:27.114215Z","iopub.execute_input":"2022-12-01T13:22:27.114789Z","iopub.status.idle":"2022-12-01T13:22:27.123148Z","shell.execute_reply.started":"2022-12-01T13:22:27.114749Z","shell.execute_reply":"2022-12-01T13:22:27.121501Z"},"trusted":true},"execution_count":13,"outputs":[{"name":"stdout","text":"Feature importances:\n[0. 0.00752597 0. 0. 0.00903116 0.\n 0.00752597 0. 0. 0. 0.00975731 0.04630969\n 0. 0.00238745 0.00231135 0. 0. 0.\n 0. 0.00668975 0.69546322 0.05383211 0. 0.01354675\n 0. 0. 0.01740312 0.11684357 0.01137258 0. ]\n","output_type":"stream"}]},{"cell_type":"code","source":"import matplotlib.pyplot as plt\n#bar chart of feature importances\ndef plot_feature_importances_cancer(model):\n n_features = cancer.data.shape[1]\n plt.figure(figsize=(8,20))\n plt.barh(np.arange(n_features), model.feature_importances_, align='center')\n plt.yticks(np.arange(n_features), cancer.feature_names)\n plt.xlabel(\"Feature importance\")\n plt.ylabel(\"Feature\")\n plt.ylim(-1, n_features)\n plt.savefig('testfig.png',dpi=300, bbox_inches = \"tight\")\n\nplot_feature_importances_cancer(tree)","metadata":{"execution":{"iopub.status.busy":"2022-12-01T13:22:29.532843Z","iopub.execute_input":"2022-12-01T13:22:29.533165Z","iopub.status.idle":"2022-12-01T13:22:31.008940Z","shell.execute_reply.started":"2022-12-01T13:22:29.533139Z","shell.execute_reply":"2022-12-01T13:22:31.008108Z"},"trusted":true},"execution_count":14,"outputs":[{"output_type":"display_data","data":{"text/plain":"<Figure size 576x1440 with 1 Axes>","image/png":"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\n"},"metadata":{"needs_background":"light"}}]},{"cell_type":"markdown","source":"**We will now apply cost complexity pruning (post-pruning) to our tree to reduce the size and overfitting.**","metadata":{}},{"cell_type":"code","source":"path = tree.cost_complexity_pruning_path(X_train, y_train)\nccp_alphas, impurities = path.ccp_alphas, path.impurities","metadata":{"execution":{"iopub.status.busy":"2022-12-01T13:22:36.829875Z","iopub.execute_input":"2022-12-01T13:22:36.830481Z","iopub.status.idle":"2022-12-01T13:22:36.846093Z","shell.execute_reply.started":"2022-12-01T13:22:36.830450Z","shell.execute_reply":"2022-12-01T13:22:36.843969Z"},"trusted":true},"execution_count":15,"outputs":[]},{"cell_type":"code","source":"print(ccp_alphas)","metadata":{"execution":{"iopub.status.busy":"2022-12-01T13:22:39.720460Z","iopub.execute_input":"2022-12-01T13:22:39.720843Z","iopub.status.idle":"2022-12-01T13:22:39.733881Z","shell.execute_reply.started":"2022-12-01T13:22:39.720804Z","shell.execute_reply":"2022-12-01T13:22:39.730426Z"},"trusted":true},"execution_count":16,"outputs":[{"name":"stdout","text":"[0. 0.00231936 0.00312989 0.00422535 0.00456509 0.00532081\n 0.0056338 0.00633803 0.00814228 0.01487676 0.02166662 0.05466684\n 0.32538187]\n","output_type":"stream"}]},{"cell_type":"markdown","source":"## Model hosting using skops 🤗\nWe will now initialize a repository and save a model and a model card in it. ","metadata":{}},{"cell_type":"code","source":"from skops import hub_utils, card\nimport os\nimport joblib\n\n# create a directory to initialize our repo\nlocal_repo = \"./model_dir\"\n# save the model\npkl_path = \"./model.pkl\"\njoblib.dump(tree, pkl_path)\n\n# initialize the repository \nhub_utils.init(model=pkl_path, \n task=\"tabular-classification\",\n requirements=[\"scikit-learn\"], \n dst=local_repo,\n data=X_train)\n\n# see what's inside the repository\nprint(os.listdir(local_repo))","metadata":{"execution":{"iopub.status.busy":"2022-12-01T13:23:19.683597Z","iopub.execute_input":"2022-12-01T13:23:19.684289Z","iopub.status.idle":"2022-12-01T13:23:19.694628Z","shell.execute_reply.started":"2022-12-01T13:23:19.684241Z","shell.execute_reply":"2022-12-01T13:23:19.693726Z"},"trusted":true},"execution_count":19,"outputs":[{"name":"stdout","text":"['config.json', 'model.pkl']\n","output_type":"stream"}]},{"cell_type":"markdown","source":"We will now initialize a model card and add information.","metadata":{}},{"cell_type":"code","source":"from pathlib import Path\nmodel_card = card.Card(tree, metadata=card.metadata_from_config(Path(local_repo)))","metadata":{"execution":{"iopub.status.busy":"2022-12-01T13:23:23.949248Z","iopub.execute_input":"2022-12-01T13:23:23.949851Z","iopub.status.idle":"2022-12-01T13:23:23.956738Z","shell.execute_reply.started":"2022-12-01T13:23:23.949805Z","shell.execute_reply":"2022-12-01T13:23:23.955196Z"},"trusted":true},"execution_count":20,"outputs":[]},{"cell_type":"code","source":"description = \"This is a Decision Tree Classifier trained on breast cancer dataset and pruned with CCP.\"\nlimitations = \"This model is trained for educational purposes.\"\nmodel_card.add(model_description = description,\n limitations = limitations)\n","metadata":{"execution":{"iopub.status.busy":"2022-12-01T13:23:25.733610Z","iopub.execute_input":"2022-12-01T13:23:25.733946Z","iopub.status.idle":"2022-12-01T13:23:25.742664Z","shell.execute_reply.started":"2022-12-01T13:23:25.733916Z","shell.execute_reply":"2022-12-01T13:23:25.741153Z"},"trusted":true},"execution_count":21,"outputs":[{"execution_count":21,"output_type":"execute_result","data":{"text/plain":"Card(\n model=DecisionTreeClassifier(random_state=0),\n metadata.library_name=sklearn,\n metadata.tags=['sklearn', 'skops', 'tabular-classification'],\n metadata.model_file=model.pkl,\n metadata.widget={...},\n model_description='This is a Decisi...cancer dataset and pruned with CCP.',\n limitations='This model is trained for educational purposes.',\n)"},"metadata":{}}]},{"cell_type":"markdown","source":"We will add the plots we've visualized above.","metadata":{}},{"cell_type":"code","source":"# save feature importance bar chart\nplot_feature_importances_cancer(tree)\nplt.savefig(Path(local_repo) / 'feature_importances.png')\n# save graph\ngraph.write_png(Path(local_repo) / 'tree.png')\n\n# write the plots to model card\nmodel_card.add_plot(**{\"Feature Importances\": 'feature_importances.png',\n \"Tree Splits\": 'tree.png'})","metadata":{"_kg_hide-output":true,"execution":{"iopub.status.busy":"2022-12-01T13:23:30.323398Z","iopub.execute_input":"2022-12-01T13:23:30.323754Z","iopub.status.idle":"2022-12-01T13:23:32.254691Z","shell.execute_reply.started":"2022-12-01T13:23:30.323721Z","shell.execute_reply":"2022-12-01T13:23:32.253135Z"},"trusted":true},"execution_count":22,"outputs":[{"execution_count":22,"output_type":"execute_result","data":{"text/plain":"Card(\n model=DecisionTreeClassifier(random_state=0),\n metadata.library_name=sklearn,\n metadata.tags=['sklearn', 'skops', 'tabular-classification'],\n metadata.model_file=model.pkl,\n metadata.widget={...},\n model_description='This is a Decisi...cancer dataset and pruned with CCP.',\n limitations='This model is trained for educational purposes.',\n Feature Importances='feature_importances.png',\n Tree Splits='tree.png',\n)"},"metadata":{}},{"output_type":"display_data","data":{"text/plain":"<Figure size 576x1440 with 1 Axes>","image/png":"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\n"},"metadata":{"needs_background":"light"}}]},{"cell_type":"markdown","source":"We can save confusion matrix.","metadata":{}},{"cell_type":"code","source":"from sklearn.metrics import (\n ConfusionMatrixDisplay,\n accuracy_score,\n classification_report,\n confusion_matrix,\n f1_score,\n)\n# add metrics to our model card\naccuracy = accuracy_score(y_test, y_pred)\nf1 = f1_score(y_test, y_pred, average=\"micro\")\nmodel_card.add_metrics(**{\"accuracy\": accuracy, \"f1 score\": f1})","metadata":{"execution":{"iopub.status.busy":"2022-12-01T13:23:41.422503Z","iopub.execute_input":"2022-12-01T13:23:41.422904Z","iopub.status.idle":"2022-12-01T13:23:41.436927Z","shell.execute_reply.started":"2022-12-01T13:23:41.422867Z","shell.execute_reply":"2022-12-01T13:23:41.435224Z"},"trusted":true},"execution_count":23,"outputs":[{"execution_count":23,"output_type":"execute_result","data":{"text/plain":"Card(\n model=DecisionTreeClassifier(random_state=0),\n metadata.library_name=sklearn,\n metadata.tags=['sklearn', 'skops', 'tabular-classification'],\n metadata.model_file=model.pkl,\n metadata.widget={...},\n model_description='This is a Decisi...cancer dataset and pruned with CCP.',\n limitations='This model is trained for educational purposes.',\n Feature Importances='feature_importances.png',\n Tree Splits='tree.png',\n)"},"metadata":{}}]},{"cell_type":"code","source":"cm = confusion_matrix(y_test, y_pred, labels=tree.classes_)\ndisp = ConfusionMatrixDisplay(confusion_matrix=cm, display_labels=tree.classes_)\ndisp.plot()\n# save the figure to repo\ndisp.figure_.savefig(Path(local_repo) / \"confusion_matrix.png\")\n# write the figure to model card\nmodel_card.add_plot(**{\"Confusion Matrix\": \"confusion_matrix.png\"})","metadata":{"_kg_hide-output":true,"execution":{"iopub.status.busy":"2022-12-01T13:23:44.711392Z","iopub.execute_input":"2022-12-01T13:23:44.711727Z","iopub.status.idle":"2022-12-01T13:23:44.947598Z","shell.execute_reply.started":"2022-12-01T13:23:44.711697Z","shell.execute_reply":"2022-12-01T13:23:44.945571Z"},"trusted":true},"execution_count":24,"outputs":[{"execution_count":24,"output_type":"execute_result","data":{"text/plain":"Card(\n model=DecisionTreeClassifier(random_state=0),\n metadata.library_name=sklearn,\n metadata.tags=['sklearn', 'skops', 'tabular-classification'],\n metadata.model_file=model.pkl,\n metadata.widget={...},\n model_description='This is a Decisi...cancer dataset and pruned with CCP.',\n limitations='This model is trained for educational purposes.',\n Feature Importances='feature_importances.png',\n Tree Splits='tree.png',\n Confusion Matrix='confusion_matrix.png',\n)"},"metadata":{}},{"output_type":"display_data","data":{"text/plain":"<Figure size 432x288 with 2 Axes>","image/png":"iVBORw0KGgoAAAANSUhEUgAAATIAAAEGCAYAAADmLRl+AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/Il7ecAAAACXBIWXMAAAsTAAALEwEAmpwYAAAYY0lEQVR4nO3dfZQddZ3n8fcn3UkIeYA82xKQsMYwkR0yTESQ1YmGVVB3iCPZEXHMeqKAozCrgy7umQODzo6cmXXXGdTdiSD2jIIGBYODErI9MOgOC4QQAiQwQYQk5rETQshz0v3dP6pabmKnqyq5t29V9+d1Tp1bVbfur74h8OVXv/o9KCIwM6uyIc0OwMzseDmRmVnlOZGZWeU5kZlZ5TmRmVnltTY7gFoto0dG6/ixzQ7DChj+0p5mh2AF7GM3B2K/jqeM97xzZGzb3pXr2sdX7l8SERcdz/3yKFUiax0/ltddf3Wzw7AC3vTxZc0OwQp4JDqOu4xt27t4dMlpua5taVsz4bhvmEOpEpmZlV8A3XQ3O4zDOJGZWSFBcDDyPVr2FycyMyvMNTIzq7Qg6CrZ0EYnMjMrrBsnMjOrsAC6nMjMrOpcIzOzSgvgoNvIzKzKgijdo6XHWppZMQFdObcskj4j6RlJT0u6Q9IJksZJWippTfqZOW7RiczMCkl69ufb+iLpFOAaYFZEnAW0AB8CrgM6ImIa0JEe98mJzMwKEl05txxagRGSWoETgQ3AJUB7+n07MDdPIWZmuSWN/bkn0JggqXZmgYURsRAgIn4l6b8Da4G9wP0Rcb+kyRGxMb1mo6RJWTdxIjOzQpJ+ZLkTWWdEzOrti7Tt6xJgKrADuFPSR44lJicyMyusO3+NrC8XAr+MiK0Aku4C3gZsltSW1sbagC1ZBbmNzMwK6amR1aGNbC1wnqQTJQmYA6wG7gHmp9fMBxZnFeQamZkVEoiuOtSBIuIRST8AlgOHgCeAhcAoYJGkBSTJbl5WWU5kZlZYnR4tiYgbgBuOOL2fpHaWmxOZmRUSiAPR0uwwDuNEZmaFJB1iy9W87kRmZoUV6H7RL5zIzKyQCNEVrpGZWcV1u0ZmZlWWNPaXK3WUKxozKz039pvZgNBVp35k9eJEZmaF1Ktnfz05kZlZYd1+a2lmVZYMGnciM7MKC8RBD1EysyqLwB1izazq5A6xZlZtgWtkZjYAuLHfzCotUN0mVqwXJzIzKyRZDu74U4ek6cD3a06dAVwP/H16/nTgReA/RsTLfZVVrvqhmVVAfRbojYjnImJmRMwEfhfYA9yNVxo3s0YLkp79ebYC5gC/iIiX8ErjZtYfGjBD7IeAO9J9rzRuZo0VoSK1rQmSltUcL4yIhbUXSBoG/D7whWONyYnMzApJGvtzD1HqjIhZGddcDCyPiM3psVcaN7NGS+bsz7PldBmvPVaCVxo3s0ZLGvvr00Ym6UTg3wNX1py+Ca80bmaNVq+e/RGxBxh/xLlteKVxM2sk9+w3swHBi4+YWaVFwMFuJzIzq7Dk0dKJzMwqrgE9+4+LE1kjdAenfWkVh8YOY8M10xi2bg+T/+Elhuzv5uD4YWz6xBl0jyjXnOf2miFDgpvv+1e2bRzK9fPPaHY4pVPP7hf10tD6oaSLJD0n6XlJmSPYB4qT/89mDrSN+PXx69pfpPODU3jpxjez65yxjF2yqYnRWZa5H+9k3ZoTmh1GiakRg8aPS8PuJKkF+DrJ8IMZwGWSZjTqfmXRuv0Ao1a+witvn/Drc0M37WPvm0YBsGfGGEY93ufUStZEE9oOcO6cnfz09nHNDqXUutN5+7O2/tLIlHku8HxEvBARB4DvkUzPMaBN/P46tl46hdq/wwOnjGDkih0AjFq2naHbDzQnOMt01Y0buOUv2ojucj06lUny1rIl19ZfGpnITgHW1RyvT88dRtIVkpZJWta1a3cDw2m8kU/uoGt0K/tPH3nY+U3/6XROfmArp31xFUP2dROt/o+kjN564U52dLby/FMnNjuUUuvpEJtn6y+NbOzv7U8Rv3EimdJjIcDw06f8xvdVMuL5XYx8cgdTn3oFHexmyL5uXvfNF9j0iTP41WffBCSPmaNW7mhuoNarGW/ZzXnv3slb5qxi2PDgxNFdfP7ml/irq9/Q7NBKZzAtB7ceOLXmeAqwoYH3a7rOD06h84NTABjx7E7G3r+ZTZ84g5adB+kaMxS6g/H3bmTH7Mx54qwJbvtyG7d9uQ2A3z5/F5detcVJrBdlfGvZyET2GDBN0lTgVyQzQH64gfcrrdGPbufkB5IplXb9zlh2XjA+4xdm5TZoOsRGxCFJnwaWAC3AtyLimUbdr2z2njmGvWeOAWDHhZPZceHkJkdkRax8eBQrHx7V7DBKKUIcGiyJDCAifgL8pJH3MLP+N5geLc1sABpsbWRmNkA5kZlZpZVxYsVytdiZWSXUa4iSpJMl/UDSs5JWSzpf0jhJSyWtST/HZpXjRGZmhUTAoe4hubYc/ga4LyLOBM4GVgPXAR0RMQ3oSI/75ERmZoXVY4iSpDHAO4BbASLiQETsIBmT3Z5e1g7MzYrHiczMCik41nJCz1jqdLuipqgzgK3AbZKekHSLpJHA5IjYCJB+Zg6FcWO/mRUW+Rv7+1ppvBU4B7g6Ih6R9DfkeIzsjWtkZlZYnRr71wPrI+KR9PgHJIlts6Q2gPRzS1ZBTmRmVkhEfdrIImITsE7S9PTUHGAVcA8wPz03H1icFZMfLc2sINFVv+Xgrga+K2kY8ALwMZIK1iJJC4C1wLysQpzIzKywAm1kGeXECqC3NrQ5RcpxIjOzQjzW0syqL5J2sjJxIjOzwgbTVNdmNgBFfRv768KJzMwK86OlmVVevd5a1osTmZkVEuFEZmYDgLtfmFnluY3MzCotEN1+a2lmVVeyCpkTmZkV5MZ+MxsQSlYlcyIzs8IqUyOTdDN95N2IuKYhEZlZqQXQ3V2RRAYs67cozKw6AqhKjSwi2muPJY2MiN2ND8nMyq5s/cgyO4OkK/+uIlk4E0lnS/pGwyMzs/KKnFs/ydOr7avAe4BtABHxJMmimmY2KImIfFtmSdKLkp6StELSsvTcOElLJa1JP8dmlZOre25ErDviVFee35nZAFXfGtk7I2JmzfqX1wEdETEN6CDHWpd5Etk6SW8DQtIwSdeSPmaa2SAUEN3KtR2jS4CeNvp2YG7WD/IksquATwGnAL8CZqbHZjZoKefGBEnLarYrjigogPslPV7z3eSI2AiQfk7KiiazQ2xEdAKX5/mjmdkgkf+xsbPmkbE3F0TEBkmTgKWSnj2WcPK8tTxD0o8lbZW0RdJiSWccy83MbICoUxtZRGxIP7cAdwPnApsltQGkn1uyysnzaHk7sAhoA14P3AnckeN3ZjYQ9XSIzbP1QdJISaN79oF3A08D9wDz08vmA4uzQsoz1lIR8Q81x9+R9OkcvzOzAapOHWInA3dLgiQX3R4R90l6DFgkaQGwFpiXVVBfYy3HpbsPSLoO+B5JLv5D4N7ji9/MKq0OYy0j4gXg7F7ObwPmFCmrrxrZ4ySJqyfiK2vvBXypyI3MbOBQyYYo9TXWcmp/BmJmFdHPw4/yyDUfmaSzgBnACT3nIuLvGxWUmZVZdkN+f8tMZJJuAGaTJLKfABcDPwecyMwGq5LVyPJ0v7iUpOFtU0R8jKRxbnhDozKzcuvOufWTPI+WeyOiW9IhSWNIOqe5Q6zZYFWliRVrLJN0MvBNkjeZu4BHGxmUmZVbZd5a9oiIP053/7ek+4AxEbGysWGZWalVJZFJOqev7yJieWNCMjMrpq8a2Vf6+C6Ad9U5Foav3cP0q1bUu1hroPs2rGh2CFbAue/ZU5dyKvNoGRHv7M9AzKwigroMUaonL9BrZsVVpUZmZnY0lXm0NDM7qpIlsjwzxErSRyRdnx6fJuncxodmZqVVwXUtvwGcD1yWHr8KfL1hEZlZqSnyb/0lz6PlWyPiHElPAETEy5KGNTguMyuzCr61PCiphbSiKGki/Toc1MzKpmyN/XkeLf+WZHWTSZL+G8kUPn/Z0KjMrNzq2EYmqUXSE5L+MT0eJ2mppDXp59isMjITWUR8F/g88GVgIzA3Iu7MF6KZDTj1byP7E2B1zfF1QEdETAM60uM+5XlreRqwB/gxyTJNu9NzZjZY1alGJmkK8D7glprTlwDt6X47MDernDxtZPfy2iIkJwBTgeeAN+f4rZkNQMrfSj5B0rKa44URsbDm+KskT3yja85NjoiNABGxMV2FvE95pvH5t7XH6awYVx7lcjOzWp0RMau3LyS9H9gSEY9Lmn08Nyncsz8ilkt6y/Hc1Mwqrj5vLS8Afl/Se0me9sZI+g6wWVJbWhtrI5mVuk95Fh/5bM3hEOAcYOuxxW1mlVenzq4R8QXgCwBpjezaiPiIpL8G5gM3pZ+Ls8rKUyOrfXY9RNJm9sNiIZvZgNLYfmQ3AYskLQDWAvOyftBnIks7wo6KiM/VJz4zGxDqnMgi4kHgwXR/G8nKbbn1NdV1a0Qc6mvKazMbfESht5b9oq8a2aMk7WErJN0D3Ans7vkyIu5qcGxmVkb9PCA8jzxtZOOAbSRz9Pf0JwvAicxssKpQIpuUvrF8mtcSWI+S/THMrF+VLAP0lchagFEcnsB6lOyPYWb9qUqPlhsj4ov9FomZVUeFElm5Zk4zs3KIar21LNSPw8wGkarUyCJie38GYmbVUaU2MjOz3jmRmVml9fNSb3k4kZlZIcKPlmY2ADiRmVn1OZGZWeU5kZlZpVV09gszs8M5kZlZ1ZVtiFLmAr1mZkeqx0rjkk6Q9KikJyU9I+nG9Pw4SUslrUk/x2bF40RmZsXkXWU8+/FzP/CuiDgbmAlcJOk84DqgIyKmAR3pcZ+cyMysuDokskjsSg+HplsAlwDt6fl2YG5WOE5kZlZIT8/+nI+WEyQtq9muOKwsqUXSCpJFeJdGxCPA5IjYCJB+TsqKyY39ZlaYunO/tuyMiFlH+zIiuoCZkk4G7pZ01rHE4xqZmRVTvzay14qM2EGyruVFwGZJbQDp55as3zuRmVlhdXprOTGtiSFpBHAh8CxwDzA/vWw+sDgrHj9amllx9ekQ2wa0S2ohqVQtioh/lPQwsEjSAmAtMC+rICcyMyusHkOUImIl8Du9nN9Gwan2ncjMrDgPUTKzSqvYKkpmZr/BM8Sa2cAQ5cpkTmRmVphrZINM+/99ij27h9DdJbq6xDXv/61mh2RHuGvhRH56+zgkmHrmPv70f67l+1+bzE9vH8dJ47oA+NgXNnDunFebHGlJDKZVlCR9C3g/sCUijmnYwUDxX/5wOjtf9v8zyqhz41B+dOsEvvngswwfEfzFlW/gwcXJrDEf+MRW5n1ya5MjLKeyNfY3smf/t0mGG5iVWtchsX/fELoOwf69Qxg/+WCzQyo9defb+kvDEllEPARsb1T5VREBf/mdf+Xme1dz8Yf9f/eymdB2kEs/uYU/essMLpt5FiNHd/G7s5NHyB/fNpGr5kznK585lVd3tDQ50hIJkn+x82z9pOljLSVd0TPFx8HY3+xw6u6zH5zOp983gz/76Bv5Dx/dylnnup2lTF7d0cLDS06i/ZFV3P7E0+zb00LHD8fy/vmd3PbwKr6x9DnGTT7Iwhtf3+xQS6UeYy3rqemJLCIWRsSsiJg1VMObHU7dbd88DIBXtg3lX5aczPSZu5sckdV64mejeN2pBzh5fBetQ+GC9+5g1bKRjJ14iJYWGDIELr58O8+tOLHZoZZLnWe/OF5NT2QD2fARXYwY2fXr/XPevpMXnxvR5Kis1qRTDrJ6+Yns2yMiYMXPR3PaG/exbfNrL2f+5acncfr0fU2MslwKTqzYL/wqrYHGTjzE9Qt/AUBLa/DAj8bx+D+f1OSorNaZ5+zh7e97hU+9ZzotrcEbz9rLxR/ZxlevPZVfPDMCCSZPOcA1f7Wu2aGWR0SRiRX7RSO7X9wBzCaZ6nY9cENE3Nqo+5XRprXD+eOLZjQ7DMvw0c9t4qOf23TYuc/fvLZJ0VREufJY4xJZRFzWqLLNrLncs9/Mqi2AwfJoaWYDWLnymBOZmRVXtkdLd78ws8LUHbm2PsuQTpX0gKTVkp6R9Cfp+XGSlkpak36OzYrHiczMiqnfcnCHgD+NiN8CzgM+JWkGcB3QERHTgI70uE9OZGZWSNIhNnJtfYmIjRGxPN1/FVgNnAJcArSnl7UDc7NichuZmRWXf2aLCZKW1RwvjIiFR14k6XSSFZUeASZHxEZIkp2kSVk3cSIzs8Kyals1OiNiVp9lSaOAHwL/OSJ2Siocjx8tzayY+rWRIWkoSRL7bkTclZ7eLKkt/b4N2JJVjhOZmRWU741ljreWAm4FVkfE/6j56h5gfro/H1icFZEfLc2suPpMmngB8EfAU5JWpOf+K3ATsEjSAmAtMC+rICcyMyumTgv0RsTPSV6C9mZOkbKcyMysOK9raWaVV6485kRmZsWpu1zrwTmRmVkxQZEOsf3CiczMChHZw4/6mxOZmRXnRGZmledEZmaV5jYyMxsI/NbSzCou/GhpZhUXOJGZ2QBQridLJzIzK879yMys+pzIzKzSIqCrXM+WTmRmVpxrZGZWeU5kZlZpAWTMx9/fvPiImRUUEN35tgySviVpi6Sna86Nk7RU0pr0c2xWOU5kZlZMkDT259myfRu46Ihz1wEdETEN6EiP++REZmbFReTbMouJh4DtR5y+BGhP99uBuVnluI3MzIrL39g/QdKymuOFEbEw4zeTI2JjcpvYKGlS1k2cyMysoEKDxjsjYlYjowEnMjMrKoDGTuOzWVJbWhtrA7Zk/cBtZGZWXJ3ayI7iHmB+uj8fWJz1A9fIzKyg+g1RknQHMJukLW09cANwE7BI0gJgLTAvqxwnMjMrJiBy9BHLVVTEZUf5ak6RcpzIzKy4kvXsdyIzs+I81tLMKi2i0W8tC3MiM7PiXCMzs2oLoqur2UEcxonMzIop4TQ+TmRmVlydul/UixOZmRUSQLhGZmaVFuEamZlVX9ka+xUleo0qaSvwUrPjaIAJQGezg7BCBurf2RsiYuLxFCDpPpJ/Pnl0RsSRM8DWXakS2UAlaVl/zMlk9eO/s2rxND5mVnlOZGZWeU5k/SNrjnIrH/+dVYjbyMys8lwjM7PKcyIzs8pzImsgSRdJek7S85IyV0u25pP0LUlbJD3d7FgsPyeyBpHUAnwduBiYAVwmaUZzo7Icvg00vAOn1ZcTWeOcCzwfES9ExAHgeyRLwVuJRcRDwPZmx2HFOJE1zinAuprj9ek5M6szJ7LGUS/n3NfFrAGcyBpnPXBqzfEUYEOTYjEb0JzIGucxYJqkqZKGAR8iWQrezOrMiaxBIuIQ8GlgCbAaWBQRzzQ3Kssi6Q7gYWC6pPWSFjQ7JsvmIUpmVnmukZlZ5TmRmVnlOZGZWeU5kZlZ5TmRmVnlOZFViKQuSSskPS3pTkknHkdZ35Z0abp/S18D2iXNlvS2Y7jHi5J+Y7Wdo50/4ppdBe/155KuLRqjDQxOZNWyNyJmRsRZwAHgqtov0xk3CouIj0fEqj4umQ0UTmRm/cWJrLp+BrwxrS09IOl24ClJLZL+WtJjklZKuhJAia9JWiXpXmBST0GSHpQ0K92/SNJySU9K6pB0OknC/ExaG3y7pImSfpje4zFJF6S/HS/pfklPSPo7eh9vehhJP5L0uKRnJF1xxHdfSWPpkDQxPfdvJN2X/uZnks6syz9Nq7aI8FaRDdiVfrYCi4FPktSWdgNT0++uAP4s3R8OLAOmAn8ALAVagNcDO4BL0+seBGYBE0lm7Ogpa1z6+efAtTVx3A78u3T/NGB1uv+3wPXp/vtIBslP6OXP8WLP+Zp7jACeBsanxwFcnu5fD3wt3e8ApqX7bwX+qbcYvQ2urfXY0p81yQhJK9L9nwG3kjzyPRoRv0zPvxv47Z72L+AkYBrwDuCOiOgCNkj6p17KPw94qKesiDjavFwXAjOkX1e4xkgand7jD9Lf3ivp5Rx/pmskfSDdPzWNdRvQDXw/Pf8d4C5Jo9I/75019x6e4x42wDmRVcveiJhZeyL9D3p37Sng6ohYcsR17yV7GiHluAaSJonzI2JvL7HkHvMmaTZJUjw/IvZIehA44SiXR3rfHUf+MzBzG9nAswT4pKShAJLeJGkk8BDwobQNrQ14Zy+/fRj4PUlT09+OS8+/Coyuue5+kgHxpNfNTHcfAi5Pz10MjM2I9STg5TSJnUlSI+wxBOipVX4Y+HlE7AR+KWleeg9JOjvjHjYIOJENPLcAq4Dl6QIaf0dS874bWAM8Bfwv4J+P/GFEbCVpY7tL0pO89mj3Y+ADPY39wDXArPRlwipee3t6I/AOSctJHnHXZsR6H9AqaSXwJeD/1Xy3G3izpMeBdwFfTM9fDixI43sGTx9uePYLMxsAXCMzs8pzIjOzynMiM7PKcyIzs8pzIjOzynMiM7PKcyIzs8r7/4pnxKi1iUtTAAAAAElFTkSuQmCC\n"},"metadata":{"needs_background":"light"}}]},{"cell_type":"markdown","source":"We can now save the model card and push our repository to 🤗Hub!","metadata":{}},{"cell_type":"code","source":"model_card.save(Path(local_repo) / \"README.md\")","metadata":{"execution":{"iopub.status.busy":"2022-12-01T13:23:53.269801Z","iopub.execute_input":"2022-12-01T13:23:53.270182Z","iopub.status.idle":"2022-12-01T13:23:53.327379Z","shell.execute_reply.started":"2022-12-01T13:23:53.270150Z","shell.execute_reply":"2022-12-01T13:23:53.326180Z"},"trusted":true},"execution_count":25,"outputs":[]},{"cell_type":"markdown","source":"We will now push the model to 🤗Hub. For this, we firstly need to authenticate ourselves. Then, we can push our model!","metadata":{}},{"cell_type":"code","source":"from huggingface_hub import notebook_login\nnotebook_login()","metadata":{"execution":{"iopub.status.busy":"2022-12-01T13:23:54.521519Z","iopub.execute_input":"2022-12-01T13:23:54.521921Z","iopub.status.idle":"2022-12-01T13:23:54.578232Z","shell.execute_reply.started":"2022-12-01T13:23:54.521883Z","shell.execute_reply":"2022-12-01T13:23:54.576764Z"},"trusted":true},"execution_count":26,"outputs":[{"output_type":"display_data","data":{"text/plain":"VBox(children=(HTML(value='<center> <img\\nsrc=https://huggingface.co/front/assets/huggingface_logo-noborder.sv…","application/vnd.jupyter.widget-view+json":{"version_major":2,"version_minor":0,"model_id":"6d1a4c50a6b44944b7a57710cdb86ab3"}},"metadata":{}}]},{"cell_type":"code","source":"hub_utils.push(repo_id = \"scikit-learn/cancer-prediction-trees\",\n source = local_repo,\n create_remote = True)","metadata":{"execution":{"iopub.status.busy":"2022-12-01T13:24:15.673795Z","iopub.execute_input":"2022-12-01T13:24:15.674244Z","iopub.status.idle":"2022-12-01T13:24:21.694500Z","shell.execute_reply.started":"2022-12-01T13:24:15.674199Z","shell.execute_reply":"2022-12-01T13:24:21.692858Z"},"trusted":true},"execution_count":27,"outputs":[]}]} |