Answer To: CISC 3440 Fall 2021 Lab 4 Description Overview: Prepare a jupyter notebook showing the end to end...
Sathishkumar answered on Oct 18 2021
solutions/code/Decision_Tree.ipynb
{
"cells": [
{
"cell_type": "code",
"execution_count": null,
"id": "371c6b02",
"metadata": {},
"outputs": [],
"source": [
"#Decision Tree Classifier for Iris Dataset"
]
},
{
"cell_type": "code",
"execution_count": 1,
"id": "72457dc4",
"metadata": {},
"outputs": [],
"source": [
"from sklearn.datasets import load_iris\n",
"from sklearn import tree\n",
"iris = load_iris()\n",
"X, y = iris.data, iris.target\n",
"clf = tree.DecisionTreeClassifier()\n",
"clf = clf.fit(X, y)"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "ee3302ae",
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"[Text(167.4, 199.32, 'X[3] <= 0.8\\ngini = 0.667\\nsamples = 150\\nvalue = [50, 50, 50]'),\n",
" Text(141.64615384615385, 163.07999999999998, 'gini = 0.0\\nsamples = 50\\nvalue = [50, 0, 0]'),\n",
" Text(193.15384615384616, 163.07999999999998, 'X[3] <= 1.75\\ngini = 0.5\\nsamples = 100\\nvalue = [0, 50, 50]'),\n",
" Text(103.01538461538462, 126.83999999999999, 'X[2] <= 4.95\\ngini = 0.168\\nsamples = 54\\nvalue = [0, 49, 5]'),\n",
" Text(51.50769230769231, 90.6, 'X[3] <= 1.65\\ngini = 0.041\\nsamples = 48\\nvalue = [0, 47, 1]'),\n",
" Text(25.753846153846155, 54.359999999999985, 'gini = 0.0\\nsamples = 47\\nvalue = [0, 47, 0]'),\n",
" Text(77.26153846153846, 54.359999999999985, 'gini = 0.0\\nsamples = 1\\nvalue = [0, 0, 1]'),\n",
" Text(154.52307692307693, 90.6, 'X[3] <= 1.55\\ngini = 0.444\\nsamples = 6\\nvalue = [0, 2, 4]'),\n",
" Text(128.76923076923077, 54.359999999999985, 'gini = 0.0\\nsamples = 3\\nvalue = [0, 0, 3]'),\n",
" Text(180.27692307692308, 54.359999999999985, 'X[0] <= 6.95\\ngini = 0.444\\nsamples = 3\\nvalue = [0, 2, 1]'),\n",
" Text(154.52307692307693, 18.119999999999976, 'gini = 0.0\\nsamples = 2\\nvalue = [0, 2, 0]'),\n",
" Text(206.03076923076924, 18.119999999999976, 'gini = 0.0\\nsamples = 1\\nvalue = [0, 0, 1]'),\n",
" Text(283.2923076923077, 126.83999999999999, 'X[2] <= 4.85\\ngini = 0.043\\nsamples = 46\\nvalue = [0, 1, 45]'),\n",
" Text(257.53846153846155, 90.6, 'X[1] <= 3.1\\ngini = 0.444\\nsamples = 3\\nvalue = [0, 1, 2]'),\n",
" Text(231.7846153846154, 54.359999999999985, 'gini = 0.0\\nsamples = 2\\nvalue = [0, 0, 2]'),\n",
" Text(283.2923076923077, 54.359999999999985, 'gini = 0.0\\nsamples = 1\\nvalue = [0, 1, 0]'),\n",
" Text(309.04615384615386, 90.6, 'gini = 0.0\\nsamples = 43\\nvalue = [0, 0, 43]')]"
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"