5001 lines (5000 with data), 333.6 kB
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Lung cancer: Decision Trees\n",
"\n",
"\n",
"What we'll be doing\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"----\n",
"Install additional programs\n",
"-----\n",
"\n",
"weneed to have [graphviz](https://www.graphviz.org/) installed to display the tree structure later on.\n",
"```"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 1. Import packages"
]
},
{
"cell_type": "code",
"execution_count": 51,
"metadata": {},
"outputs": [],
"source": [
"import graphviz \n",
"import pandas as pd\n",
"import numpy as np\n",
"\n",
"import matplotlib.pyplot as plt\n",
"import seaborn as sns\n",
"%matplotlib inline\n",
"\n",
"from sklearn.model_selection import train_test_split, cross_val_score, GridSearchCV\n",
"from sklearn.tree import DecisionTreeClassifier\n",
"from sklearn.ensemble import RandomForestClassifier\n",
"from sklearn import tree\n",
"from sklearn.metrics import mean_squared_error, r2_score\n",
"from sklearn.datasets import load_iris"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 2. Load and format data"
]
},
{
"cell_type": "code",
"execution_count": 52,
"metadata": {},
"outputs": [
{
"data": {
"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 th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>patient_id</th>\n",
" <th>age</th>\n",
" <th>gender</th>\n",
" <th>air_pollution</th>\n",
" <th>alcohol_use</th>\n",
" <th>dust_allergy</th>\n",
" <th>occupational_hazards</th>\n",
" <th>genetic_risk</th>\n",
" <th>chronic_lung_disease</th>\n",
" <th>balanced_diet</th>\n",
" <th>...</th>\n",
" <th>fatigue</th>\n",
" <th>weight_loss</th>\n",
" <th>shortness_of_breath</th>\n",
" <th>wheezing</th>\n",
" <th>swallowing_difficulty</th>\n",
" <th>clubbing_of_finger_nails</th>\n",
" <th>frequent_cold</th>\n",
" <th>dry_cough</th>\n",
" <th>snoring</th>\n",
" <th>level</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>P1</td>\n",
" <td>33</td>\n",
" <td>1</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" <td>5</td>\n",
" <td>4</td>\n",
" <td>3</td>\n",
" <td>2</td>\n",
" <td>2</td>\n",
" <td>...</td>\n",
" <td>3</td>\n",
" <td>4</td>\n",
" <td>2</td>\n",
" <td>2</td>\n",
" <td>3</td>\n",
" <td>1</td>\n",
" <td>2</td>\n",
" <td>3</td>\n",
" <td>4</td>\n",
" <td>Low</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>P10</td>\n",
" <td>17</td>\n",
" <td>1</td>\n",
" <td>3</td>\n",
" <td>1</td>\n",
" <td>5</td>\n",
" <td>3</td>\n",
" <td>4</td>\n",
" <td>2</td>\n",
" <td>2</td>\n",
" <td>...</td>\n",
" <td>1</td>\n",
" <td>3</td>\n",
" <td>7</td>\n",
" <td>8</td>\n",
" <td>6</td>\n",
" <td>2</td>\n",
" <td>1</td>\n",
" <td>7</td>\n",
" <td>2</td>\n",
" <td>Medium</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>P107</td>\n",
" <td>44</td>\n",
" <td>1</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>...</td>\n",
" <td>5</td>\n",
" <td>3</td>\n",
" <td>2</td>\n",
" <td>7</td>\n",
" <td>8</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" <td>5</td>\n",
" <td>3</td>\n",
" <td>High</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>P189</td>\n",
" <td>39</td>\n",
" <td>2</td>\n",
" <td>6</td>\n",
" <td>8</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>...</td>\n",
" <td>3</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" <td>1</td>\n",
" <td>4</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" <td>2</td>\n",
" <td>3</td>\n",
" <td>High</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>P19</td>\n",
" <td>38</td>\n",
" <td>2</td>\n",
" <td>2</td>\n",
" <td>1</td>\n",
" <td>5</td>\n",
" <td>3</td>\n",
" <td>2</td>\n",
" <td>3</td>\n",
" <td>2</td>\n",
" <td>...</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>2</td>\n",
" <td>5</td>\n",
" <td>8</td>\n",
" <td>1</td>\n",
" <td>3</td>\n",
" <td>2</td>\n",
" <td>3</td>\n",
" <td>Medium</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>P190</td>\n",
" <td>49</td>\n",
" <td>1</td>\n",
" <td>6</td>\n",
" <td>5</td>\n",
" <td>6</td>\n",
" <td>5</td>\n",
" <td>5</td>\n",
" <td>4</td>\n",
" <td>6</td>\n",
" <td>...</td>\n",
" <td>8</td>\n",
" <td>7</td>\n",
" <td>9</td>\n",
" <td>2</td>\n",
" <td>1</td>\n",
" <td>4</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>2</td>\n",
" <td>High</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>P191</td>\n",
" <td>37</td>\n",
" <td>1</td>\n",
" <td>8</td>\n",
" <td>8</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>...</td>\n",
" <td>3</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" <td>1</td>\n",
" <td>4</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" <td>2</td>\n",
" <td>3</td>\n",
" <td>High</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>P192</td>\n",
" <td>26</td>\n",
" <td>2</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>...</td>\n",
" <td>2</td>\n",
" <td>7</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>2</td>\n",
" <td>3</td>\n",
" <td>1</td>\n",
" <td>High</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>P193</td>\n",
" <td>37</td>\n",
" <td>2</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>...</td>\n",
" <td>4</td>\n",
" <td>2</td>\n",
" <td>3</td>\n",
" <td>1</td>\n",
" <td>4</td>\n",
" <td>5</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>5</td>\n",
" <td>High</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>P194</td>\n",
" <td>33</td>\n",
" <td>1</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>6</td>\n",
" <td>...</td>\n",
" <td>8</td>\n",
" <td>5</td>\n",
" <td>7</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>8</td>\n",
" <td>7</td>\n",
" <td>6</td>\n",
" <td>2</td>\n",
" <td>High</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>P195</td>\n",
" <td>44</td>\n",
" <td>1</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>...</td>\n",
" <td>5</td>\n",
" <td>3</td>\n",
" <td>2</td>\n",
" <td>7</td>\n",
" <td>8</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" <td>5</td>\n",
" <td>3</td>\n",
" <td>High</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td>P196</td>\n",
" <td>37</td>\n",
" <td>2</td>\n",
" <td>6</td>\n",
" <td>8</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>...</td>\n",
" <td>9</td>\n",
" <td>6</td>\n",
" <td>5</td>\n",
" <td>7</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" <td>3</td>\n",
" <td>1</td>\n",
" <td>4</td>\n",
" <td>High</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td>P197</td>\n",
" <td>25</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" <td>5</td>\n",
" <td>6</td>\n",
" <td>5</td>\n",
" <td>5</td>\n",
" <td>4</td>\n",
" <td>6</td>\n",
" <td>...</td>\n",
" <td>8</td>\n",
" <td>7</td>\n",
" <td>9</td>\n",
" <td>2</td>\n",
" <td>1</td>\n",
" <td>4</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>2</td>\n",
" <td>High</td>\n",
" </tr>\n",
" <tr>\n",
" <th>13</th>\n",
" <td>P108</td>\n",
" <td>64</td>\n",
" <td>2</td>\n",
" <td>6</td>\n",
" <td>8</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>...</td>\n",
" <td>9</td>\n",
" <td>6</td>\n",
" <td>5</td>\n",
" <td>7</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" <td>3</td>\n",
" <td>1</td>\n",
" <td>4</td>\n",
" <td>High</td>\n",
" </tr>\n",
" <tr>\n",
" <th>14</th>\n",
" <td>P198</td>\n",
" <td>18</td>\n",
" <td>2</td>\n",
" <td>6</td>\n",
" <td>8</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>...</td>\n",
" <td>3</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" <td>1</td>\n",
" <td>4</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" <td>2</td>\n",
" <td>3</td>\n",
" <td>High</td>\n",
" </tr>\n",
" <tr>\n",
" <th>15</th>\n",
" <td>P199</td>\n",
" <td>47</td>\n",
" <td>1</td>\n",
" <td>6</td>\n",
" <td>5</td>\n",
" <td>6</td>\n",
" <td>5</td>\n",
" <td>5</td>\n",
" <td>4</td>\n",
" <td>6</td>\n",
" <td>...</td>\n",
" <td>8</td>\n",
" <td>7</td>\n",
" <td>9</td>\n",
" <td>2</td>\n",
" <td>1</td>\n",
" <td>4</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>2</td>\n",
" <td>High</td>\n",
" </tr>\n",
" <tr>\n",
" <th>16</th>\n",
" <td>P2</td>\n",
" <td>25</td>\n",
" <td>2</td>\n",
" <td>3</td>\n",
" <td>1</td>\n",
" <td>4</td>\n",
" <td>3</td>\n",
" <td>2</td>\n",
" <td>3</td>\n",
" <td>4</td>\n",
" <td>...</td>\n",
" <td>3</td>\n",
" <td>2</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" <td>2</td>\n",
" <td>2</td>\n",
" <td>3</td>\n",
" <td>4</td>\n",
" <td>3</td>\n",
" <td>Low</td>\n",
" </tr>\n",
" <tr>\n",
" <th>17</th>\n",
" <td>P20</td>\n",
" <td>19</td>\n",
" <td>1</td>\n",
" <td>3</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" <td>2</td>\n",
" <td>3</td>\n",
" <td>2</td>\n",
" <td>3</td>\n",
" <td>...</td>\n",
" <td>4</td>\n",
" <td>5</td>\n",
" <td>6</td>\n",
" <td>5</td>\n",
" <td>5</td>\n",
" <td>4</td>\n",
" <td>6</td>\n",
" <td>5</td>\n",
" <td>4</td>\n",
" <td>Medium</td>\n",
" </tr>\n",
" <tr>\n",
" <th>18</th>\n",
" <td>P200</td>\n",
" <td>26</td>\n",
" <td>2</td>\n",
" <td>8</td>\n",
" <td>8</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>...</td>\n",
" <td>3</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" <td>1</td>\n",
" <td>4</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" <td>2</td>\n",
" <td>3</td>\n",
" <td>High</td>\n",
" </tr>\n",
" <tr>\n",
" <th>19</th>\n",
" <td>P201</td>\n",
" <td>37</td>\n",
" <td>1</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>...</td>\n",
" <td>4</td>\n",
" <td>2</td>\n",
" <td>3</td>\n",
" <td>1</td>\n",
" <td>4</td>\n",
" <td>5</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>5</td>\n",
" <td>High</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20</th>\n",
" <td>P202</td>\n",
" <td>35</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" <td>5</td>\n",
" <td>6</td>\n",
" <td>5</td>\n",
" <td>5</td>\n",
" <td>4</td>\n",
" <td>6</td>\n",
" <td>...</td>\n",
" <td>8</td>\n",
" <td>7</td>\n",
" <td>9</td>\n",
" <td>2</td>\n",
" <td>1</td>\n",
" <td>4</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>2</td>\n",
" <td>High</td>\n",
" </tr>\n",
" <tr>\n",
" <th>21</th>\n",
" <td>P203</td>\n",
" <td>33</td>\n",
" <td>1</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" <td>5</td>\n",
" <td>4</td>\n",
" <td>3</td>\n",
" <td>2</td>\n",
" <td>2</td>\n",
" <td>...</td>\n",
" <td>3</td>\n",
" <td>4</td>\n",
" <td>2</td>\n",
" <td>2</td>\n",
" <td>3</td>\n",
" <td>1</td>\n",
" <td>2</td>\n",
" <td>3</td>\n",
" <td>4</td>\n",
" <td>Low</td>\n",
" </tr>\n",
" <tr>\n",
" <th>22</th>\n",
" <td>P204</td>\n",
" <td>25</td>\n",
" <td>2</td>\n",
" <td>3</td>\n",
" <td>1</td>\n",
" <td>4</td>\n",
" <td>3</td>\n",
" <td>2</td>\n",
" <td>3</td>\n",
" <td>4</td>\n",
" <td>...</td>\n",
" <td>3</td>\n",
" <td>2</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" <td>2</td>\n",
" <td>2</td>\n",
" <td>3</td>\n",
" <td>4</td>\n",
" <td>3</td>\n",
" <td>Low</td>\n",
" </tr>\n",
" <tr>\n",
" <th>23</th>\n",
" <td>P205</td>\n",
" <td>35</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" <td>5</td>\n",
" <td>6</td>\n",
" <td>5</td>\n",
" <td>6</td>\n",
" <td>5</td>\n",
" <td>5</td>\n",
" <td>...</td>\n",
" <td>1</td>\n",
" <td>4</td>\n",
" <td>3</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" <td>6</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" <td>1</td>\n",
" <td>Medium</td>\n",
" </tr>\n",
" <tr>\n",
" <th>24</th>\n",
" <td>P109</td>\n",
" <td>39</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" <td>5</td>\n",
" <td>6</td>\n",
" <td>6</td>\n",
" <td>5</td>\n",
" <td>4</td>\n",
" <td>6</td>\n",
" <td>...</td>\n",
" <td>5</td>\n",
" <td>3</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" <td>3</td>\n",
" <td>1</td>\n",
" <td>7</td>\n",
" <td>5</td>\n",
" <td>6</td>\n",
" <td>Medium</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25</th>\n",
" <td>P206</td>\n",
" <td>27</td>\n",
" <td>2</td>\n",
" <td>2</td>\n",
" <td>3</td>\n",
" <td>4</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" <td>3</td>\n",
" <td>3</td>\n",
" <td>...</td>\n",
" <td>1</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" <td>6</td>\n",
" <td>5</td>\n",
" <td>4</td>\n",
" <td>2</td>\n",
" <td>1</td>\n",
" <td>5</td>\n",
" <td>Medium</td>\n",
" </tr>\n",
" <tr>\n",
" <th>26</th>\n",
" <td>P207</td>\n",
" <td>48</td>\n",
" <td>1</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>...</td>\n",
" <td>5</td>\n",
" <td>3</td>\n",
" <td>2</td>\n",
" <td>7</td>\n",
" <td>8</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" <td>5</td>\n",
" <td>3</td>\n",
" <td>High</td>\n",
" </tr>\n",
" <tr>\n",
" <th>27</th>\n",
" <td>P208</td>\n",
" <td>64</td>\n",
" <td>1</td>\n",
" <td>6</td>\n",
" <td>8</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>...</td>\n",
" <td>9</td>\n",
" <td>6</td>\n",
" <td>5</td>\n",
" <td>7</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" <td>3</td>\n",
" <td>1</td>\n",
" <td>4</td>\n",
" <td>High</td>\n",
" </tr>\n",
" <tr>\n",
" <th>28</th>\n",
" <td>P209</td>\n",
" <td>39</td>\n",
" <td>1</td>\n",
" <td>4</td>\n",
" <td>5</td>\n",
" <td>6</td>\n",
" <td>6</td>\n",
" <td>5</td>\n",
" <td>4</td>\n",
" <td>6</td>\n",
" <td>...</td>\n",
" <td>5</td>\n",
" <td>3</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" <td>3</td>\n",
" <td>1</td>\n",
" <td>7</td>\n",
" <td>5</td>\n",
" <td>6</td>\n",
" <td>Medium</td>\n",
" </tr>\n",
" <tr>\n",
" <th>29</th>\n",
" <td>P21</td>\n",
" <td>33</td>\n",
" <td>1</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>...</td>\n",
" <td>4</td>\n",
" <td>4</td>\n",
" <td>5</td>\n",
" <td>6</td>\n",
" <td>5</td>\n",
" <td>5</td>\n",
" <td>4</td>\n",
" <td>6</td>\n",
" <td>5</td>\n",
" <td>High</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>970</th>\n",
" <td>P974</td>\n",
" <td>31</td>\n",
" <td>2</td>\n",
" <td>3</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" <td>2</td>\n",
" <td>3</td>\n",
" <td>2</td>\n",
" <td>3</td>\n",
" <td>...</td>\n",
" <td>4</td>\n",
" <td>5</td>\n",
" <td>6</td>\n",
" <td>5</td>\n",
" <td>5</td>\n",
" <td>4</td>\n",
" <td>6</td>\n",
" <td>5</td>\n",
" <td>4</td>\n",
" <td>Medium</td>\n",
" </tr>\n",
" <tr>\n",
" <th>971</th>\n",
" <td>P975</td>\n",
" <td>38</td>\n",
" <td>2</td>\n",
" <td>1</td>\n",
" <td>2</td>\n",
" <td>3</td>\n",
" <td>4</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" <td>3</td>\n",
" <td>...</td>\n",
" <td>4</td>\n",
" <td>1</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" <td>6</td>\n",
" <td>5</td>\n",
" <td>4</td>\n",
" <td>2</td>\n",
" <td>5</td>\n",
" <td>Medium</td>\n",
" </tr>\n",
" <tr>\n",
" <th>972</th>\n",
" <td>P976</td>\n",
" <td>35</td>\n",
" <td>1</td>\n",
" <td>6</td>\n",
" <td>8</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>6</td>\n",
" <td>2</td>\n",
" <td>...</td>\n",
" <td>2</td>\n",
" <td>7</td>\n",
" <td>6</td>\n",
" <td>5</td>\n",
" <td>1</td>\n",
" <td>9</td>\n",
" <td>3</td>\n",
" <td>4</td>\n",
" <td>2</td>\n",
" <td>Medium</td>\n",
" </tr>\n",
" <tr>\n",
" <th>973</th>\n",
" <td>P977</td>\n",
" <td>44</td>\n",
" <td>1</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>...</td>\n",
" <td>5</td>\n",
" <td>3</td>\n",
" <td>2</td>\n",
" <td>7</td>\n",
" <td>8</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" <td>5</td>\n",
" <td>3</td>\n",
" <td>High</td>\n",
" </tr>\n",
" <tr>\n",
" <th>974</th>\n",
" <td>P978</td>\n",
" <td>33</td>\n",
" <td>1</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" <td>5</td>\n",
" <td>4</td>\n",
" <td>3</td>\n",
" <td>2</td>\n",
" <td>2</td>\n",
" <td>...</td>\n",
" <td>3</td>\n",
" <td>4</td>\n",
" <td>2</td>\n",
" <td>2</td>\n",
" <td>3</td>\n",
" <td>1</td>\n",
" <td>2</td>\n",
" <td>3</td>\n",
" <td>4</td>\n",
" <td>Low</td>\n",
" </tr>\n",
" <tr>\n",
" <th>975</th>\n",
" <td>P979</td>\n",
" <td>45</td>\n",
" <td>1</td>\n",
" <td>3</td>\n",
" <td>1</td>\n",
" <td>4</td>\n",
" <td>3</td>\n",
" <td>2</td>\n",
" <td>3</td>\n",
" <td>4</td>\n",
" <td>...</td>\n",
" <td>3</td>\n",
" <td>2</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" <td>2</td>\n",
" <td>2</td>\n",
" <td>3</td>\n",
" <td>4</td>\n",
" <td>3</td>\n",
" <td>Low</td>\n",
" </tr>\n",
" <tr>\n",
" <th>976</th>\n",
" <td>P98</td>\n",
" <td>26</td>\n",
" <td>2</td>\n",
" <td>8</td>\n",
" <td>8</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>...</td>\n",
" <td>3</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" <td>1</td>\n",
" <td>4</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" <td>2</td>\n",
" <td>3</td>\n",
" <td>High</td>\n",
" </tr>\n",
" <tr>\n",
" <th>977</th>\n",
" <td>P980</td>\n",
" <td>53</td>\n",
" <td>1</td>\n",
" <td>3</td>\n",
" <td>1</td>\n",
" <td>4</td>\n",
" <td>2</td>\n",
" <td>3</td>\n",
" <td>2</td>\n",
" <td>3</td>\n",
" <td>...</td>\n",
" <td>2</td>\n",
" <td>2</td>\n",
" <td>3</td>\n",
" <td>4</td>\n",
" <td>1</td>\n",
" <td>5</td>\n",
" <td>2</td>\n",
" <td>6</td>\n",
" <td>2</td>\n",
" <td>Low</td>\n",
" </tr>\n",
" <tr>\n",
" <th>978</th>\n",
" <td>P187</td>\n",
" <td>19</td>\n",
" <td>1</td>\n",
" <td>6</td>\n",
" <td>8</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>...</td>\n",
" <td>9</td>\n",
" <td>6</td>\n",
" <td>5</td>\n",
" <td>7</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" <td>3</td>\n",
" <td>1</td>\n",
" <td>4</td>\n",
" <td>High</td>\n",
" </tr>\n",
" <tr>\n",
" <th>979</th>\n",
" <td>P981</td>\n",
" <td>35</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" <td>5</td>\n",
" <td>6</td>\n",
" <td>5</td>\n",
" <td>5</td>\n",
" <td>4</td>\n",
" <td>6</td>\n",
" <td>...</td>\n",
" <td>8</td>\n",
" <td>7</td>\n",
" <td>9</td>\n",
" <td>2</td>\n",
" <td>1</td>\n",
" <td>4</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>2</td>\n",
" <td>High</td>\n",
" </tr>\n",
" <tr>\n",
" <th>980</th>\n",
" <td>P982</td>\n",
" <td>46</td>\n",
" <td>1</td>\n",
" <td>6</td>\n",
" <td>8</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>...</td>\n",
" <td>3</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" <td>1</td>\n",
" <td>4</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" <td>2</td>\n",
" <td>3</td>\n",
" <td>High</td>\n",
" </tr>\n",
" <tr>\n",
" <th>981</th>\n",
" <td>P983</td>\n",
" <td>27</td>\n",
" <td>1</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>...</td>\n",
" <td>2</td>\n",
" <td>7</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>2</td>\n",
" <td>3</td>\n",
" <td>1</td>\n",
" <td>High</td>\n",
" </tr>\n",
" <tr>\n",
" <th>982</th>\n",
" <td>P984</td>\n",
" <td>26</td>\n",
" <td>1</td>\n",
" <td>3</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" <td>2</td>\n",
" <td>3</td>\n",
" <td>2</td>\n",
" <td>3</td>\n",
" <td>...</td>\n",
" <td>4</td>\n",
" <td>5</td>\n",
" <td>6</td>\n",
" <td>5</td>\n",
" <td>5</td>\n",
" <td>4</td>\n",
" <td>6</td>\n",
" <td>5</td>\n",
" <td>4</td>\n",
" <td>Medium</td>\n",
" </tr>\n",
" <tr>\n",
" <th>983</th>\n",
" <td>P985</td>\n",
" <td>37</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>2</td>\n",
" <td>3</td>\n",
" <td>4</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" <td>3</td>\n",
" <td>...</td>\n",
" <td>4</td>\n",
" <td>1</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" <td>6</td>\n",
" <td>5</td>\n",
" <td>4</td>\n",
" <td>2</td>\n",
" <td>5</td>\n",
" <td>Medium</td>\n",
" </tr>\n",
" <tr>\n",
" <th>984</th>\n",
" <td>P986</td>\n",
" <td>28</td>\n",
" <td>1</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>...</td>\n",
" <td>5</td>\n",
" <td>3</td>\n",
" <td>2</td>\n",
" <td>7</td>\n",
" <td>8</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" <td>5</td>\n",
" <td>3</td>\n",
" <td>High</td>\n",
" </tr>\n",
" <tr>\n",
" <th>985</th>\n",
" <td>P987</td>\n",
" <td>19</td>\n",
" <td>1</td>\n",
" <td>6</td>\n",
" <td>8</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>...</td>\n",
" <td>9</td>\n",
" <td>6</td>\n",
" <td>5</td>\n",
" <td>7</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" <td>3</td>\n",
" <td>1</td>\n",
" <td>4</td>\n",
" <td>High</td>\n",
" </tr>\n",
" <tr>\n",
" <th>986</th>\n",
" <td>P988</td>\n",
" <td>29</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" <td>5</td>\n",
" <td>6</td>\n",
" <td>5</td>\n",
" <td>5</td>\n",
" <td>4</td>\n",
" <td>6</td>\n",
" <td>...</td>\n",
" <td>8</td>\n",
" <td>7</td>\n",
" <td>9</td>\n",
" <td>2</td>\n",
" <td>1</td>\n",
" <td>4</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>2</td>\n",
" <td>High</td>\n",
" </tr>\n",
" <tr>\n",
" <th>987</th>\n",
" <td>P989</td>\n",
" <td>39</td>\n",
" <td>2</td>\n",
" <td>6</td>\n",
" <td>8</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>...</td>\n",
" <td>3</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" <td>1</td>\n",
" <td>4</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" <td>2</td>\n",
" <td>3</td>\n",
" <td>High</td>\n",
" </tr>\n",
" <tr>\n",
" <th>988</th>\n",
" <td>P99</td>\n",
" <td>37</td>\n",
" <td>1</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>...</td>\n",
" <td>4</td>\n",
" <td>2</td>\n",
" <td>3</td>\n",
" <td>1</td>\n",
" <td>4</td>\n",
" <td>5</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>5</td>\n",
" <td>High</td>\n",
" </tr>\n",
" <tr>\n",
" <th>989</th>\n",
" <td>P188</td>\n",
" <td>29</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" <td>5</td>\n",
" <td>6</td>\n",
" <td>5</td>\n",
" <td>5</td>\n",
" <td>4</td>\n",
" <td>6</td>\n",
" <td>...</td>\n",
" <td>8</td>\n",
" <td>7</td>\n",
" <td>9</td>\n",
" <td>2</td>\n",
" <td>1</td>\n",
" <td>4</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>2</td>\n",
" <td>High</td>\n",
" </tr>\n",
" <tr>\n",
" <th>990</th>\n",
" <td>P990</td>\n",
" <td>49</td>\n",
" <td>1</td>\n",
" <td>6</td>\n",
" <td>5</td>\n",
" <td>6</td>\n",
" <td>5</td>\n",
" <td>5</td>\n",
" <td>4</td>\n",
" <td>6</td>\n",
" <td>...</td>\n",
" <td>8</td>\n",
" <td>7</td>\n",
" <td>9</td>\n",
" <td>2</td>\n",
" <td>1</td>\n",
" <td>4</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>2</td>\n",
" <td>High</td>\n",
" </tr>\n",
" <tr>\n",
" <th>991</th>\n",
" <td>P991</td>\n",
" <td>37</td>\n",
" <td>1</td>\n",
" <td>8</td>\n",
" <td>8</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>...</td>\n",
" <td>3</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" <td>1</td>\n",
" <td>4</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" <td>2</td>\n",
" <td>3</td>\n",
" <td>High</td>\n",
" </tr>\n",
" <tr>\n",
" <th>992</th>\n",
" <td>P992</td>\n",
" <td>26</td>\n",
" <td>2</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>...</td>\n",
" <td>2</td>\n",
" <td>7</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>2</td>\n",
" <td>3</td>\n",
" <td>1</td>\n",
" <td>High</td>\n",
" </tr>\n",
" <tr>\n",
" <th>993</th>\n",
" <td>P993</td>\n",
" <td>37</td>\n",
" <td>2</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>...</td>\n",
" <td>4</td>\n",
" <td>2</td>\n",
" <td>3</td>\n",
" <td>1</td>\n",
" <td>4</td>\n",
" <td>5</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>5</td>\n",
" <td>High</td>\n",
" </tr>\n",
" <tr>\n",
" <th>994</th>\n",
" <td>P994</td>\n",
" <td>33</td>\n",
" <td>1</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>6</td>\n",
" <td>...</td>\n",
" <td>8</td>\n",
" <td>5</td>\n",
" <td>7</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>8</td>\n",
" <td>7</td>\n",
" <td>6</td>\n",
" <td>2</td>\n",
" <td>High</td>\n",
" </tr>\n",
" <tr>\n",
" <th>995</th>\n",
" <td>P995</td>\n",
" <td>44</td>\n",
" <td>1</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>...</td>\n",
" <td>5</td>\n",
" <td>3</td>\n",
" <td>2</td>\n",
" <td>7</td>\n",
" <td>8</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" <td>5</td>\n",
" <td>3</td>\n",
" <td>High</td>\n",
" </tr>\n",
" <tr>\n",
" <th>996</th>\n",
" <td>P996</td>\n",
" <td>37</td>\n",
" <td>2</td>\n",
" <td>6</td>\n",
" <td>8</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>...</td>\n",
" <td>9</td>\n",
" <td>6</td>\n",
" <td>5</td>\n",
" <td>7</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" <td>3</td>\n",
" <td>1</td>\n",
" <td>4</td>\n",
" <td>High</td>\n",
" </tr>\n",
" <tr>\n",
" <th>997</th>\n",
" <td>P997</td>\n",
" <td>25</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" <td>5</td>\n",
" <td>6</td>\n",
" <td>5</td>\n",
" <td>5</td>\n",
" <td>4</td>\n",
" <td>6</td>\n",
" <td>...</td>\n",
" <td>8</td>\n",
" <td>7</td>\n",
" <td>9</td>\n",
" <td>2</td>\n",
" <td>1</td>\n",
" <td>4</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>2</td>\n",
" <td>High</td>\n",
" </tr>\n",
" <tr>\n",
" <th>998</th>\n",
" <td>P998</td>\n",
" <td>18</td>\n",
" <td>2</td>\n",
" <td>6</td>\n",
" <td>8</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>...</td>\n",
" <td>3</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" <td>1</td>\n",
" <td>4</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" <td>2</td>\n",
" <td>3</td>\n",
" <td>High</td>\n",
" </tr>\n",
" <tr>\n",
" <th>999</th>\n",
" <td>P999</td>\n",
" <td>47</td>\n",
" <td>1</td>\n",
" <td>6</td>\n",
" <td>5</td>\n",
" <td>6</td>\n",
" <td>5</td>\n",
" <td>5</td>\n",
" <td>4</td>\n",
" <td>6</td>\n",
" <td>...</td>\n",
" <td>8</td>\n",
" <td>7</td>\n",
" <td>9</td>\n",
" <td>2</td>\n",
" <td>1</td>\n",
" <td>4</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>2</td>\n",
" <td>High</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>1000 rows × 25 columns</p>\n",
"</div>"
],
"text/plain": [
" patient_id age gender air_pollution alcohol_use dust_allergy \\\n",
"0 P1 33 1 2 4 5 \n",
"1 P10 17 1 3 1 5 \n",
"2 P107 44 1 6 7 7 \n",
"3 P189 39 2 6 8 7 \n",
"4 P19 38 2 2 1 5 \n",
"5 P190 49 1 6 5 6 \n",
"6 P191 37 1 8 8 7 \n",
"7 P192 26 2 7 7 7 \n",
"8 P193 37 2 7 7 7 \n",
"9 P194 33 1 6 7 7 \n",
"10 P195 44 1 6 7 7 \n",
"11 P196 37 2 6 8 7 \n",
"12 P197 25 2 4 5 6 \n",
"13 P108 64 2 6 8 7 \n",
"14 P198 18 2 6 8 7 \n",
"15 P199 47 1 6 5 6 \n",
"16 P2 25 2 3 1 4 \n",
"17 P20 19 1 3 2 4 \n",
"18 P200 26 2 8 8 7 \n",
"19 P201 37 1 7 7 7 \n",
"20 P202 35 2 4 5 6 \n",
"21 P203 33 1 2 4 5 \n",
"22 P204 25 2 3 1 4 \n",
"23 P205 35 2 4 5 6 \n",
"24 P109 39 2 4 5 6 \n",
"25 P206 27 2 2 3 4 \n",
"26 P207 48 1 6 7 7 \n",
"27 P208 64 1 6 8 7 \n",
"28 P209 39 1 4 5 6 \n",
"29 P21 33 1 6 7 7 \n",
".. ... ... ... ... ... ... \n",
"970 P974 31 2 3 2 4 \n",
"971 P975 38 2 1 2 3 \n",
"972 P976 35 1 6 8 7 \n",
"973 P977 44 1 6 7 7 \n",
"974 P978 33 1 2 4 5 \n",
"975 P979 45 1 3 1 4 \n",
"976 P98 26 2 8 8 7 \n",
"977 P980 53 1 3 1 4 \n",
"978 P187 19 1 6 8 7 \n",
"979 P981 35 2 4 5 6 \n",
"980 P982 46 1 6 8 7 \n",
"981 P983 27 1 6 7 7 \n",
"982 P984 26 1 3 2 4 \n",
"983 P985 37 1 1 2 3 \n",
"984 P986 28 1 6 7 7 \n",
"985 P987 19 1 6 8 7 \n",
"986 P988 29 2 4 5 6 \n",
"987 P989 39 2 6 8 7 \n",
"988 P99 37 1 7 7 7 \n",
"989 P188 29 2 4 5 6 \n",
"990 P990 49 1 6 5 6 \n",
"991 P991 37 1 8 8 7 \n",
"992 P992 26 2 7 7 7 \n",
"993 P993 37 2 7 7 7 \n",
"994 P994 33 1 6 7 7 \n",
"995 P995 44 1 6 7 7 \n",
"996 P996 37 2 6 8 7 \n",
"997 P997 25 2 4 5 6 \n",
"998 P998 18 2 6 8 7 \n",
"999 P999 47 1 6 5 6 \n",
"\n",
" occupational_hazards genetic_risk chronic_lung_disease balanced_diet \\\n",
"0 4 3 2 2 \n",
"1 3 4 2 2 \n",
"2 7 7 6 7 \n",
"3 7 7 6 7 \n",
"4 3 2 3 2 \n",
"5 5 5 4 6 \n",
"6 7 7 6 7 \n",
"7 7 7 6 7 \n",
"8 7 6 7 7 \n",
"9 7 7 7 6 \n",
"10 7 7 6 7 \n",
"11 7 7 6 7 \n",
"12 5 5 4 6 \n",
"13 7 7 6 7 \n",
"14 7 7 6 7 \n",
"15 5 5 4 6 \n",
"16 3 2 3 4 \n",
"17 2 3 2 3 \n",
"18 7 7 6 7 \n",
"19 7 6 7 7 \n",
"20 5 5 4 6 \n",
"21 4 3 2 2 \n",
"22 3 2 3 4 \n",
"23 5 6 5 5 \n",
"24 6 5 4 6 \n",
"25 2 4 3 3 \n",
"26 7 7 6 7 \n",
"27 7 7 6 7 \n",
"28 6 5 4 6 \n",
"29 7 7 6 7 \n",
".. ... ... ... ... \n",
"970 2 3 2 3 \n",
"971 4 2 4 3 \n",
"972 7 7 6 2 \n",
"973 7 7 6 7 \n",
"974 4 3 2 2 \n",
"975 3 2 3 4 \n",
"976 7 7 6 7 \n",
"977 2 3 2 3 \n",
"978 7 7 6 7 \n",
"979 5 5 4 6 \n",
"980 7 7 6 7 \n",
"981 7 7 6 7 \n",
"982 2 3 2 3 \n",
"983 4 2 4 3 \n",
"984 7 7 6 7 \n",
"985 7 7 6 7 \n",
"986 5 5 4 6 \n",
"987 7 7 6 7 \n",
"988 7 6 7 7 \n",
"989 5 5 4 6 \n",
"990 5 5 4 6 \n",
"991 7 7 6 7 \n",
"992 7 7 6 7 \n",
"993 7 6 7 7 \n",
"994 7 7 7 6 \n",
"995 7 7 6 7 \n",
"996 7 7 6 7 \n",
"997 5 5 4 6 \n",
"998 7 7 6 7 \n",
"999 5 5 4 6 \n",
"\n",
" ... fatigue weight_loss shortness_of_breath wheezing \\\n",
"0 ... 3 4 2 2 \n",
"1 ... 1 3 7 8 \n",
"2 ... 5 3 2 7 \n",
"3 ... 3 2 4 1 \n",
"4 ... 6 7 2 5 \n",
"5 ... 8 7 9 2 \n",
"6 ... 3 2 4 1 \n",
"7 ... 2 7 6 7 \n",
"8 ... 4 2 3 1 \n",
"9 ... 8 5 7 6 \n",
"10 ... 5 3 2 7 \n",
"11 ... 9 6 5 7 \n",
"12 ... 8 7 9 2 \n",
"13 ... 9 6 5 7 \n",
"14 ... 3 2 4 1 \n",
"15 ... 8 7 9 2 \n",
"16 ... 3 2 2 4 \n",
"17 ... 4 5 6 5 \n",
"18 ... 3 2 4 1 \n",
"19 ... 4 2 3 1 \n",
"20 ... 8 7 9 2 \n",
"21 ... 3 4 2 2 \n",
"22 ... 3 2 2 4 \n",
"23 ... 1 4 3 2 \n",
"24 ... 5 3 2 4 \n",
"25 ... 1 2 4 6 \n",
"26 ... 5 3 2 7 \n",
"27 ... 9 6 5 7 \n",
"28 ... 5 3 2 4 \n",
"29 ... 4 4 5 6 \n",
".. ... ... ... ... ... \n",
"970 ... 4 5 6 5 \n",
"971 ... 4 1 2 4 \n",
"972 ... 2 7 6 5 \n",
"973 ... 5 3 2 7 \n",
"974 ... 3 4 2 2 \n",
"975 ... 3 2 2 4 \n",
"976 ... 3 2 4 1 \n",
"977 ... 2 2 3 4 \n",
"978 ... 9 6 5 7 \n",
"979 ... 8 7 9 2 \n",
"980 ... 3 2 4 1 \n",
"981 ... 2 7 6 7 \n",
"982 ... 4 5 6 5 \n",
"983 ... 4 1 2 4 \n",
"984 ... 5 3 2 7 \n",
"985 ... 9 6 5 7 \n",
"986 ... 8 7 9 2 \n",
"987 ... 3 2 4 1 \n",
"988 ... 4 2 3 1 \n",
"989 ... 8 7 9 2 \n",
"990 ... 8 7 9 2 \n",
"991 ... 3 2 4 1 \n",
"992 ... 2 7 6 7 \n",
"993 ... 4 2 3 1 \n",
"994 ... 8 5 7 6 \n",
"995 ... 5 3 2 7 \n",
"996 ... 9 6 5 7 \n",
"997 ... 8 7 9 2 \n",
"998 ... 3 2 4 1 \n",
"999 ... 8 7 9 2 \n",
"\n",
" swallowing_difficulty clubbing_of_finger_nails frequent_cold \\\n",
"0 3 1 2 \n",
"1 6 2 1 \n",
"2 8 2 4 \n",
"3 4 2 4 \n",
"4 8 1 3 \n",
"5 1 4 6 \n",
"6 4 2 4 \n",
"7 6 7 2 \n",
"8 4 5 6 \n",
"9 7 8 7 \n",
"10 8 2 4 \n",
"11 2 4 3 \n",
"12 1 4 6 \n",
"13 2 4 3 \n",
"14 4 2 4 \n",
"15 1 4 6 \n",
"16 2 2 3 \n",
"17 5 4 6 \n",
"18 4 2 4 \n",
"19 4 5 6 \n",
"20 1 4 6 \n",
"21 3 1 2 \n",
"22 2 2 3 \n",
"23 4 6 2 \n",
"24 3 1 7 \n",
"25 5 4 2 \n",
"26 8 2 4 \n",
"27 2 4 3 \n",
"28 3 1 7 \n",
"29 5 5 4 \n",
".. ... ... ... \n",
"970 5 4 6 \n",
"971 6 5 4 \n",
"972 1 9 3 \n",
"973 8 2 4 \n",
"974 3 1 2 \n",
"975 2 2 3 \n",
"976 4 2 4 \n",
"977 1 5 2 \n",
"978 2 4 3 \n",
"979 1 4 6 \n",
"980 4 2 4 \n",
"981 6 7 2 \n",
"982 5 4 6 \n",
"983 6 5 4 \n",
"984 8 2 4 \n",
"985 2 4 3 \n",
"986 1 4 6 \n",
"987 4 2 4 \n",
"988 4 5 6 \n",
"989 1 4 6 \n",
"990 1 4 6 \n",
"991 4 2 4 \n",
"992 6 7 2 \n",
"993 4 5 6 \n",
"994 7 8 7 \n",
"995 8 2 4 \n",
"996 2 4 3 \n",
"997 1 4 6 \n",
"998 4 2 4 \n",
"999 1 4 6 \n",
"\n",
" dry_cough snoring level \n",
"0 3 4 Low \n",
"1 7 2 Medium \n",
"2 5 3 High \n",
"3 2 3 High \n",
"4 2 3 Medium \n",
"5 7 2 High \n",
"6 2 3 High \n",
"7 3 1 High \n",
"8 7 5 High \n",
"9 6 2 High \n",
"10 5 3 High \n",
"11 1 4 High \n",
"12 7 2 High \n",
"13 1 4 High \n",
"14 2 3 High \n",
"15 7 2 High \n",
"16 4 3 Low \n",
"17 5 4 Medium \n",
"18 2 3 High \n",
"19 7 5 High \n",
"20 7 2 High \n",
"21 3 4 Low \n",
"22 4 3 Low \n",
"23 4 1 Medium \n",
"24 5 6 Medium \n",
"25 1 5 Medium \n",
"26 5 3 High \n",
"27 1 4 High \n",
"28 5 6 Medium \n",
"29 6 5 High \n",
".. ... ... ... \n",
"970 5 4 Medium \n",
"971 2 5 Medium \n",
"972 4 2 Medium \n",
"973 5 3 High \n",
"974 3 4 Low \n",
"975 4 3 Low \n",
"976 2 3 High \n",
"977 6 2 Low \n",
"978 1 4 High \n",
"979 7 2 High \n",
"980 2 3 High \n",
"981 3 1 High \n",
"982 5 4 Medium \n",
"983 2 5 Medium \n",
"984 5 3 High \n",
"985 1 4 High \n",
"986 7 2 High \n",
"987 2 3 High \n",
"988 7 5 High \n",
"989 7 2 High \n",
"990 7 2 High \n",
"991 2 3 High \n",
"992 3 1 High \n",
"993 7 5 High \n",
"994 6 2 High \n",
"995 5 3 High \n",
"996 1 4 High \n",
"997 7 2 High \n",
"998 2 3 High \n",
"999 7 2 High \n",
"\n",
"[1000 rows x 25 columns]"
]
},
"execution_count": 52,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Load data\n",
"filename = 'cancer_patient.csv'\n",
"df = pd.read_csv(filename)\n",
"df"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We are going to build Classification to predict the lung cancer and we will build a tree that considers many the features in the dataset.\n",
"\n",
"Here we choose a limited subset of data to conduct the analysis for the sake of training time. In practice, we should use more features. This is a mix of numeric and one hot-coded categorical variables. "
]
},
{
"cell_type": "code",
"execution_count": 53,
"metadata": {},
"outputs": [],
"source": [
"# Drop everything that is not numeric\n",
"#df = df.select_dtypes(exclude=['object'])"
]
},
{
"cell_type": "code",
"execution_count": 54,
"metadata": {},
"outputs": [
{
"data": {
"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 th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>patient_id</th>\n",
" <th>age</th>\n",
" <th>gender</th>\n",
" <th>air_pollution</th>\n",
" <th>alcohol_use</th>\n",
" <th>dust_allergy</th>\n",
" <th>occupational_hazards</th>\n",
" <th>genetic_risk</th>\n",
" <th>chronic_lung_disease</th>\n",
" <th>balanced_diet</th>\n",
" <th>...</th>\n",
" <th>fatigue</th>\n",
" <th>weight_loss</th>\n",
" <th>shortness_of_breath</th>\n",
" <th>wheezing</th>\n",
" <th>swallowing_difficulty</th>\n",
" <th>clubbing_of_finger_nails</th>\n",
" <th>frequent_cold</th>\n",
" <th>dry_cough</th>\n",
" <th>snoring</th>\n",
" <th>level</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>P1</td>\n",
" <td>33</td>\n",
" <td>1</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" <td>5</td>\n",
" <td>4</td>\n",
" <td>3</td>\n",
" <td>2</td>\n",
" <td>2</td>\n",
" <td>...</td>\n",
" <td>3</td>\n",
" <td>4</td>\n",
" <td>2</td>\n",
" <td>2</td>\n",
" <td>3</td>\n",
" <td>1</td>\n",
" <td>2</td>\n",
" <td>3</td>\n",
" <td>4</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>P10</td>\n",
" <td>17</td>\n",
" <td>1</td>\n",
" <td>3</td>\n",
" <td>1</td>\n",
" <td>5</td>\n",
" <td>3</td>\n",
" <td>4</td>\n",
" <td>2</td>\n",
" <td>2</td>\n",
" <td>...</td>\n",
" <td>1</td>\n",
" <td>3</td>\n",
" <td>7</td>\n",
" <td>8</td>\n",
" <td>6</td>\n",
" <td>2</td>\n",
" <td>1</td>\n",
" <td>7</td>\n",
" <td>2</td>\n",
" <td>2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>P107</td>\n",
" <td>44</td>\n",
" <td>1</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>...</td>\n",
" <td>5</td>\n",
" <td>3</td>\n",
" <td>2</td>\n",
" <td>7</td>\n",
" <td>8</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" <td>5</td>\n",
" <td>3</td>\n",
" <td>3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>P189</td>\n",
" <td>39</td>\n",
" <td>2</td>\n",
" <td>6</td>\n",
" <td>8</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>...</td>\n",
" <td>3</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" <td>1</td>\n",
" <td>4</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" <td>2</td>\n",
" <td>3</td>\n",
" <td>3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>P19</td>\n",
" <td>38</td>\n",
" <td>2</td>\n",
" <td>2</td>\n",
" <td>1</td>\n",
" <td>5</td>\n",
" <td>3</td>\n",
" <td>2</td>\n",
" <td>3</td>\n",
" <td>2</td>\n",
" <td>...</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>2</td>\n",
" <td>5</td>\n",
" <td>8</td>\n",
" <td>1</td>\n",
" <td>3</td>\n",
" <td>2</td>\n",
" <td>3</td>\n",
" <td>2</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>5 rows × 25 columns</p>\n",
"</div>"
],
"text/plain": [
" patient_id age gender air_pollution alcohol_use dust_allergy \\\n",
"0 P1 33 1 2 4 5 \n",
"1 P10 17 1 3 1 5 \n",
"2 P107 44 1 6 7 7 \n",
"3 P189 39 2 6 8 7 \n",
"4 P19 38 2 2 1 5 \n",
"\n",
" occupational_hazards genetic_risk chronic_lung_disease balanced_diet \\\n",
"0 4 3 2 2 \n",
"1 3 4 2 2 \n",
"2 7 7 6 7 \n",
"3 7 7 6 7 \n",
"4 3 2 3 2 \n",
"\n",
" ... fatigue weight_loss shortness_of_breath wheezing \\\n",
"0 ... 3 4 2 2 \n",
"1 ... 1 3 7 8 \n",
"2 ... 5 3 2 7 \n",
"3 ... 3 2 4 1 \n",
"4 ... 6 7 2 5 \n",
"\n",
" swallowing_difficulty clubbing_of_finger_nails frequent_cold dry_cough \\\n",
"0 3 1 2 3 \n",
"1 6 2 1 7 \n",
"2 8 2 4 5 \n",
"3 4 2 4 2 \n",
"4 8 1 3 2 \n",
"\n",
" snoring level \n",
"0 4 1 \n",
"1 2 2 \n",
"2 3 3 \n",
"3 3 3 \n",
"4 3 2 \n",
"\n",
"[5 rows x 25 columns]"
]
},
"execution_count": 54,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"def data_cleaning(data):\n",
" df[\"age\"]=data[\"age\"].fillna(df[\"age\"].median())\n",
" \n",
" \n",
" df.loc[data[\"level\"]==\"Low\",\"level\"]=1\n",
" df.loc[data[\"level\"]==\"Medium\",\"level\"]=2\n",
" df.loc[data[\"level\"]==\"High\",\"level\"]=3\n",
" \n",
" return data\n",
"\n",
"df=data_cleaning(df)\n",
"df.head()\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"we've used hot encoding to our y because it's categorical and we need to convert it to numeric"
]
},
{
"cell_type": "code",
"execution_count": 55,
"metadata": {},
"outputs": [],
"source": [
"y_column = 'level'\n",
"y = df[y_column]\n",
"# Drop returns a copy of the DataFrame with the specified columns removed. \n",
"X = df.drop([y_column, \"patient_id\"], axis=1) # patient_id will not be helpful"
]
},
{
"cell_type": "code",
"execution_count": 56,
"metadata": {},
"outputs": [
{
"data": {
"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 th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>age</th>\n",
" <th>gender</th>\n",
" <th>air_pollution</th>\n",
" <th>alcohol_use</th>\n",
" <th>dust_allergy</th>\n",
" <th>occupational_hazards</th>\n",
" <th>genetic_risk</th>\n",
" <th>chronic_lung_disease</th>\n",
" <th>balanced_diet</th>\n",
" <th>obesity</th>\n",
" <th>...</th>\n",
" <th>coughing_of_blood</th>\n",
" <th>fatigue</th>\n",
" <th>weight_loss</th>\n",
" <th>shortness_of_breath</th>\n",
" <th>wheezing</th>\n",
" <th>swallowing_difficulty</th>\n",
" <th>clubbing_of_finger_nails</th>\n",
" <th>frequent_cold</th>\n",
" <th>dry_cough</th>\n",
" <th>snoring</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>33</td>\n",
" <td>1</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" <td>5</td>\n",
" <td>4</td>\n",
" <td>3</td>\n",
" <td>2</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" <td>...</td>\n",
" <td>4</td>\n",
" <td>3</td>\n",
" <td>4</td>\n",
" <td>2</td>\n",
" <td>2</td>\n",
" <td>3</td>\n",
" <td>1</td>\n",
" <td>2</td>\n",
" <td>3</td>\n",
" <td>4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>17</td>\n",
" <td>1</td>\n",
" <td>3</td>\n",
" <td>1</td>\n",
" <td>5</td>\n",
" <td>3</td>\n",
" <td>4</td>\n",
" <td>2</td>\n",
" <td>2</td>\n",
" <td>2</td>\n",
" <td>...</td>\n",
" <td>3</td>\n",
" <td>1</td>\n",
" <td>3</td>\n",
" <td>7</td>\n",
" <td>8</td>\n",
" <td>6</td>\n",
" <td>2</td>\n",
" <td>1</td>\n",
" <td>7</td>\n",
" <td>2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>44</td>\n",
" <td>1</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>...</td>\n",
" <td>7</td>\n",
" <td>5</td>\n",
" <td>3</td>\n",
" <td>2</td>\n",
" <td>7</td>\n",
" <td>8</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" <td>5</td>\n",
" <td>3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>39</td>\n",
" <td>2</td>\n",
" <td>6</td>\n",
" <td>8</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>...</td>\n",
" <td>9</td>\n",
" <td>3</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" <td>1</td>\n",
" <td>4</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" <td>2</td>\n",
" <td>3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>38</td>\n",
" <td>2</td>\n",
" <td>2</td>\n",
" <td>1</td>\n",
" <td>5</td>\n",
" <td>3</td>\n",
" <td>2</td>\n",
" <td>3</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" <td>...</td>\n",
" <td>4</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>2</td>\n",
" <td>5</td>\n",
" <td>8</td>\n",
" <td>1</td>\n",
" <td>3</td>\n",
" <td>2</td>\n",
" <td>3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>49</td>\n",
" <td>1</td>\n",
" <td>6</td>\n",
" <td>5</td>\n",
" <td>6</td>\n",
" <td>5</td>\n",
" <td>5</td>\n",
" <td>4</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>...</td>\n",
" <td>8</td>\n",
" <td>8</td>\n",
" <td>7</td>\n",
" <td>9</td>\n",
" <td>2</td>\n",
" <td>1</td>\n",
" <td>4</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>37</td>\n",
" <td>1</td>\n",
" <td>8</td>\n",
" <td>8</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>...</td>\n",
" <td>9</td>\n",
" <td>3</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" <td>1</td>\n",
" <td>4</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" <td>2</td>\n",
" <td>3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>26</td>\n",
" <td>2</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>...</td>\n",
" <td>7</td>\n",
" <td>2</td>\n",
" <td>7</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>2</td>\n",
" <td>3</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>37</td>\n",
" <td>2</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>...</td>\n",
" <td>8</td>\n",
" <td>4</td>\n",
" <td>2</td>\n",
" <td>3</td>\n",
" <td>1</td>\n",
" <td>4</td>\n",
" <td>5</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>33</td>\n",
" <td>1</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>...</td>\n",
" <td>7</td>\n",
" <td>8</td>\n",
" <td>5</td>\n",
" <td>7</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>8</td>\n",
" <td>7</td>\n",
" <td>6</td>\n",
" <td>2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>44</td>\n",
" <td>1</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>...</td>\n",
" <td>7</td>\n",
" <td>5</td>\n",
" <td>3</td>\n",
" <td>2</td>\n",
" <td>7</td>\n",
" <td>8</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" <td>5</td>\n",
" <td>3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td>37</td>\n",
" <td>2</td>\n",
" <td>6</td>\n",
" <td>8</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>...</td>\n",
" <td>7</td>\n",
" <td>9</td>\n",
" <td>6</td>\n",
" <td>5</td>\n",
" <td>7</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" <td>3</td>\n",
" <td>1</td>\n",
" <td>4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td>25</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" <td>5</td>\n",
" <td>6</td>\n",
" <td>5</td>\n",
" <td>5</td>\n",
" <td>4</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>...</td>\n",
" <td>8</td>\n",
" <td>8</td>\n",
" <td>7</td>\n",
" <td>9</td>\n",
" <td>2</td>\n",
" <td>1</td>\n",
" <td>4</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>13</th>\n",
" <td>64</td>\n",
" <td>2</td>\n",
" <td>6</td>\n",
" <td>8</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>...</td>\n",
" <td>7</td>\n",
" <td>9</td>\n",
" <td>6</td>\n",
" <td>5</td>\n",
" <td>7</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" <td>3</td>\n",
" <td>1</td>\n",
" <td>4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>14</th>\n",
" <td>18</td>\n",
" <td>2</td>\n",
" <td>6</td>\n",
" <td>8</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>...</td>\n",
" <td>9</td>\n",
" <td>3</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" <td>1</td>\n",
" <td>4</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" <td>2</td>\n",
" <td>3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>15</th>\n",
" <td>47</td>\n",
" <td>1</td>\n",
" <td>6</td>\n",
" <td>5</td>\n",
" <td>6</td>\n",
" <td>5</td>\n",
" <td>5</td>\n",
" <td>4</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>...</td>\n",
" <td>8</td>\n",
" <td>8</td>\n",
" <td>7</td>\n",
" <td>9</td>\n",
" <td>2</td>\n",
" <td>1</td>\n",
" <td>4</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>16</th>\n",
" <td>25</td>\n",
" <td>2</td>\n",
" <td>3</td>\n",
" <td>1</td>\n",
" <td>4</td>\n",
" <td>3</td>\n",
" <td>2</td>\n",
" <td>3</td>\n",
" <td>4</td>\n",
" <td>3</td>\n",
" <td>...</td>\n",
" <td>1</td>\n",
" <td>3</td>\n",
" <td>2</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" <td>2</td>\n",
" <td>2</td>\n",
" <td>3</td>\n",
" <td>4</td>\n",
" <td>3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>17</th>\n",
" <td>19</td>\n",
" <td>1</td>\n",
" <td>3</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" <td>2</td>\n",
" <td>3</td>\n",
" <td>2</td>\n",
" <td>3</td>\n",
" <td>3</td>\n",
" <td>...</td>\n",
" <td>3</td>\n",
" <td>4</td>\n",
" <td>5</td>\n",
" <td>6</td>\n",
" <td>5</td>\n",
" <td>5</td>\n",
" <td>4</td>\n",
" <td>6</td>\n",
" <td>5</td>\n",
" <td>4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>18</th>\n",
" <td>26</td>\n",
" <td>2</td>\n",
" <td>8</td>\n",
" <td>8</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>...</td>\n",
" <td>9</td>\n",
" <td>3</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" <td>1</td>\n",
" <td>4</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" <td>2</td>\n",
" <td>3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>19</th>\n",
" <td>37</td>\n",
" <td>1</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>...</td>\n",
" <td>8</td>\n",
" <td>4</td>\n",
" <td>2</td>\n",
" <td>3</td>\n",
" <td>1</td>\n",
" <td>4</td>\n",
" <td>5</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20</th>\n",
" <td>35</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" <td>5</td>\n",
" <td>6</td>\n",
" <td>5</td>\n",
" <td>5</td>\n",
" <td>4</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>...</td>\n",
" <td>8</td>\n",
" <td>8</td>\n",
" <td>7</td>\n",
" <td>9</td>\n",
" <td>2</td>\n",
" <td>1</td>\n",
" <td>4</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>21</th>\n",
" <td>33</td>\n",
" <td>1</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" <td>5</td>\n",
" <td>4</td>\n",
" <td>3</td>\n",
" <td>2</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" <td>...</td>\n",
" <td>4</td>\n",
" <td>3</td>\n",
" <td>4</td>\n",
" <td>2</td>\n",
" <td>2</td>\n",
" <td>3</td>\n",
" <td>1</td>\n",
" <td>2</td>\n",
" <td>3</td>\n",
" <td>4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>22</th>\n",
" <td>25</td>\n",
" <td>2</td>\n",
" <td>3</td>\n",
" <td>1</td>\n",
" <td>4</td>\n",
" <td>3</td>\n",
" <td>2</td>\n",
" <td>3</td>\n",
" <td>4</td>\n",
" <td>3</td>\n",
" <td>...</td>\n",
" <td>1</td>\n",
" <td>3</td>\n",
" <td>2</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" <td>2</td>\n",
" <td>2</td>\n",
" <td>3</td>\n",
" <td>4</td>\n",
" <td>3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>23</th>\n",
" <td>35</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" <td>5</td>\n",
" <td>6</td>\n",
" <td>5</td>\n",
" <td>6</td>\n",
" <td>5</td>\n",
" <td>5</td>\n",
" <td>5</td>\n",
" <td>...</td>\n",
" <td>5</td>\n",
" <td>1</td>\n",
" <td>4</td>\n",
" <td>3</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" <td>6</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>24</th>\n",
" <td>39</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" <td>5</td>\n",
" <td>6</td>\n",
" <td>6</td>\n",
" <td>5</td>\n",
" <td>4</td>\n",
" <td>6</td>\n",
" <td>6</td>\n",
" <td>...</td>\n",
" <td>6</td>\n",
" <td>5</td>\n",
" <td>3</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" <td>3</td>\n",
" <td>1</td>\n",
" <td>7</td>\n",
" <td>5</td>\n",
" <td>6</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25</th>\n",
" <td>27</td>\n",
" <td>2</td>\n",
" <td>2</td>\n",
" <td>3</td>\n",
" <td>4</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" <td>3</td>\n",
" <td>3</td>\n",
" <td>3</td>\n",
" <td>...</td>\n",
" <td>4</td>\n",
" <td>1</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" <td>6</td>\n",
" <td>5</td>\n",
" <td>4</td>\n",
" <td>2</td>\n",
" <td>1</td>\n",
" <td>5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>26</th>\n",
" <td>48</td>\n",
" <td>1</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>...</td>\n",
" <td>7</td>\n",
" <td>5</td>\n",
" <td>3</td>\n",
" <td>2</td>\n",
" <td>7</td>\n",
" <td>8</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" <td>5</td>\n",
" <td>3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>27</th>\n",
" <td>64</td>\n",
" <td>1</td>\n",
" <td>6</td>\n",
" <td>8</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>...</td>\n",
" <td>7</td>\n",
" <td>9</td>\n",
" <td>6</td>\n",
" <td>5</td>\n",
" <td>7</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" <td>3</td>\n",
" <td>1</td>\n",
" <td>4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>28</th>\n",
" <td>39</td>\n",
" <td>1</td>\n",
" <td>4</td>\n",
" <td>5</td>\n",
" <td>6</td>\n",
" <td>6</td>\n",
" <td>5</td>\n",
" <td>4</td>\n",
" <td>6</td>\n",
" <td>6</td>\n",
" <td>...</td>\n",
" <td>6</td>\n",
" <td>5</td>\n",
" <td>3</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" <td>3</td>\n",
" <td>1</td>\n",
" <td>7</td>\n",
" <td>5</td>\n",
" <td>6</td>\n",
" </tr>\n",
" <tr>\n",
" <th>29</th>\n",
" <td>33</td>\n",
" <td>1</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>...</td>\n",
" <td>7</td>\n",
" <td>4</td>\n",
" <td>4</td>\n",
" <td>5</td>\n",
" <td>6</td>\n",
" <td>5</td>\n",
" <td>5</td>\n",
" <td>4</td>\n",
" <td>6</td>\n",
" <td>5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>970</th>\n",
" <td>31</td>\n",
" <td>2</td>\n",
" <td>3</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" <td>2</td>\n",
" <td>3</td>\n",
" <td>2</td>\n",
" <td>3</td>\n",
" <td>3</td>\n",
" <td>...</td>\n",
" <td>3</td>\n",
" <td>4</td>\n",
" <td>5</td>\n",
" <td>6</td>\n",
" <td>5</td>\n",
" <td>5</td>\n",
" <td>4</td>\n",
" <td>6</td>\n",
" <td>5</td>\n",
" <td>4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>971</th>\n",
" <td>38</td>\n",
" <td>2</td>\n",
" <td>1</td>\n",
" <td>2</td>\n",
" <td>3</td>\n",
" <td>4</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" <td>3</td>\n",
" <td>3</td>\n",
" <td>...</td>\n",
" <td>4</td>\n",
" <td>4</td>\n",
" <td>1</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" <td>6</td>\n",
" <td>5</td>\n",
" <td>4</td>\n",
" <td>2</td>\n",
" <td>5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>972</th>\n",
" <td>35</td>\n",
" <td>1</td>\n",
" <td>6</td>\n",
" <td>8</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>6</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" <td>...</td>\n",
" <td>3</td>\n",
" <td>2</td>\n",
" <td>7</td>\n",
" <td>6</td>\n",
" <td>5</td>\n",
" <td>1</td>\n",
" <td>9</td>\n",
" <td>3</td>\n",
" <td>4</td>\n",
" <td>2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>973</th>\n",
" <td>44</td>\n",
" <td>1</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>...</td>\n",
" <td>7</td>\n",
" <td>5</td>\n",
" <td>3</td>\n",
" <td>2</td>\n",
" <td>7</td>\n",
" <td>8</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" <td>5</td>\n",
" <td>3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>974</th>\n",
" <td>33</td>\n",
" <td>1</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" <td>5</td>\n",
" <td>4</td>\n",
" <td>3</td>\n",
" <td>2</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" <td>...</td>\n",
" <td>4</td>\n",
" <td>3</td>\n",
" <td>4</td>\n",
" <td>2</td>\n",
" <td>2</td>\n",
" <td>3</td>\n",
" <td>1</td>\n",
" <td>2</td>\n",
" <td>3</td>\n",
" <td>4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>975</th>\n",
" <td>45</td>\n",
" <td>1</td>\n",
" <td>3</td>\n",
" <td>1</td>\n",
" <td>4</td>\n",
" <td>3</td>\n",
" <td>2</td>\n",
" <td>3</td>\n",
" <td>4</td>\n",
" <td>3</td>\n",
" <td>...</td>\n",
" <td>1</td>\n",
" <td>3</td>\n",
" <td>2</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" <td>2</td>\n",
" <td>2</td>\n",
" <td>3</td>\n",
" <td>4</td>\n",
" <td>3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>976</th>\n",
" <td>26</td>\n",
" <td>2</td>\n",
" <td>8</td>\n",
" <td>8</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>...</td>\n",
" <td>9</td>\n",
" <td>3</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" <td>1</td>\n",
" <td>4</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" <td>2</td>\n",
" <td>3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>977</th>\n",
" <td>53</td>\n",
" <td>1</td>\n",
" <td>3</td>\n",
" <td>1</td>\n",
" <td>4</td>\n",
" <td>2</td>\n",
" <td>3</td>\n",
" <td>2</td>\n",
" <td>3</td>\n",
" <td>3</td>\n",
" <td>...</td>\n",
" <td>2</td>\n",
" <td>2</td>\n",
" <td>2</td>\n",
" <td>3</td>\n",
" <td>4</td>\n",
" <td>1</td>\n",
" <td>5</td>\n",
" <td>2</td>\n",
" <td>6</td>\n",
" <td>2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>978</th>\n",
" <td>19</td>\n",
" <td>1</td>\n",
" <td>6</td>\n",
" <td>8</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>...</td>\n",
" <td>7</td>\n",
" <td>9</td>\n",
" <td>6</td>\n",
" <td>5</td>\n",
" <td>7</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" <td>3</td>\n",
" <td>1</td>\n",
" <td>4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>979</th>\n",
" <td>35</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" <td>5</td>\n",
" <td>6</td>\n",
" <td>5</td>\n",
" <td>5</td>\n",
" <td>4</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>...</td>\n",
" <td>8</td>\n",
" <td>8</td>\n",
" <td>7</td>\n",
" <td>9</td>\n",
" <td>2</td>\n",
" <td>1</td>\n",
" <td>4</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>980</th>\n",
" <td>46</td>\n",
" <td>1</td>\n",
" <td>6</td>\n",
" <td>8</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>...</td>\n",
" <td>9</td>\n",
" <td>3</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" <td>1</td>\n",
" <td>4</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" <td>2</td>\n",
" <td>3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>981</th>\n",
" <td>27</td>\n",
" <td>1</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>...</td>\n",
" <td>7</td>\n",
" <td>2</td>\n",
" <td>7</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>2</td>\n",
" <td>3</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>982</th>\n",
" <td>26</td>\n",
" <td>1</td>\n",
" <td>3</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" <td>2</td>\n",
" <td>3</td>\n",
" <td>2</td>\n",
" <td>3</td>\n",
" <td>3</td>\n",
" <td>...</td>\n",
" <td>3</td>\n",
" <td>4</td>\n",
" <td>5</td>\n",
" <td>6</td>\n",
" <td>5</td>\n",
" <td>5</td>\n",
" <td>4</td>\n",
" <td>6</td>\n",
" <td>5</td>\n",
" <td>4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>983</th>\n",
" <td>37</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>2</td>\n",
" <td>3</td>\n",
" <td>4</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" <td>3</td>\n",
" <td>3</td>\n",
" <td>...</td>\n",
" <td>4</td>\n",
" <td>4</td>\n",
" <td>1</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" <td>6</td>\n",
" <td>5</td>\n",
" <td>4</td>\n",
" <td>2</td>\n",
" <td>5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>984</th>\n",
" <td>28</td>\n",
" <td>1</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>...</td>\n",
" <td>7</td>\n",
" <td>5</td>\n",
" <td>3</td>\n",
" <td>2</td>\n",
" <td>7</td>\n",
" <td>8</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" <td>5</td>\n",
" <td>3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>985</th>\n",
" <td>19</td>\n",
" <td>1</td>\n",
" <td>6</td>\n",
" <td>8</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>...</td>\n",
" <td>7</td>\n",
" <td>9</td>\n",
" <td>6</td>\n",
" <td>5</td>\n",
" <td>7</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" <td>3</td>\n",
" <td>1</td>\n",
" <td>4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>986</th>\n",
" <td>29</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" <td>5</td>\n",
" <td>6</td>\n",
" <td>5</td>\n",
" <td>5</td>\n",
" <td>4</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>...</td>\n",
" <td>8</td>\n",
" <td>8</td>\n",
" <td>7</td>\n",
" <td>9</td>\n",
" <td>2</td>\n",
" <td>1</td>\n",
" <td>4</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>987</th>\n",
" <td>39</td>\n",
" <td>2</td>\n",
" <td>6</td>\n",
" <td>8</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>...</td>\n",
" <td>9</td>\n",
" <td>3</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" <td>1</td>\n",
" <td>4</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" <td>2</td>\n",
" <td>3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>988</th>\n",
" <td>37</td>\n",
" <td>1</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>...</td>\n",
" <td>8</td>\n",
" <td>4</td>\n",
" <td>2</td>\n",
" <td>3</td>\n",
" <td>1</td>\n",
" <td>4</td>\n",
" <td>5</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>989</th>\n",
" <td>29</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" <td>5</td>\n",
" <td>6</td>\n",
" <td>5</td>\n",
" <td>5</td>\n",
" <td>4</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>...</td>\n",
" <td>8</td>\n",
" <td>8</td>\n",
" <td>7</td>\n",
" <td>9</td>\n",
" <td>2</td>\n",
" <td>1</td>\n",
" <td>4</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>990</th>\n",
" <td>49</td>\n",
" <td>1</td>\n",
" <td>6</td>\n",
" <td>5</td>\n",
" <td>6</td>\n",
" <td>5</td>\n",
" <td>5</td>\n",
" <td>4</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>...</td>\n",
" <td>8</td>\n",
" <td>8</td>\n",
" <td>7</td>\n",
" <td>9</td>\n",
" <td>2</td>\n",
" <td>1</td>\n",
" <td>4</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>991</th>\n",
" <td>37</td>\n",
" <td>1</td>\n",
" <td>8</td>\n",
" <td>8</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>...</td>\n",
" <td>9</td>\n",
" <td>3</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" <td>1</td>\n",
" <td>4</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" <td>2</td>\n",
" <td>3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>992</th>\n",
" <td>26</td>\n",
" <td>2</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>...</td>\n",
" <td>7</td>\n",
" <td>2</td>\n",
" <td>7</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>2</td>\n",
" <td>3</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>993</th>\n",
" <td>37</td>\n",
" <td>2</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>...</td>\n",
" <td>8</td>\n",
" <td>4</td>\n",
" <td>2</td>\n",
" <td>3</td>\n",
" <td>1</td>\n",
" <td>4</td>\n",
" <td>5</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>994</th>\n",
" <td>33</td>\n",
" <td>1</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>...</td>\n",
" <td>7</td>\n",
" <td>8</td>\n",
" <td>5</td>\n",
" <td>7</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>8</td>\n",
" <td>7</td>\n",
" <td>6</td>\n",
" <td>2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>995</th>\n",
" <td>44</td>\n",
" <td>1</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>...</td>\n",
" <td>7</td>\n",
" <td>5</td>\n",
" <td>3</td>\n",
" <td>2</td>\n",
" <td>7</td>\n",
" <td>8</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" <td>5</td>\n",
" <td>3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>996</th>\n",
" <td>37</td>\n",
" <td>2</td>\n",
" <td>6</td>\n",
" <td>8</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>...</td>\n",
" <td>7</td>\n",
" <td>9</td>\n",
" <td>6</td>\n",
" <td>5</td>\n",
" <td>7</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" <td>3</td>\n",
" <td>1</td>\n",
" <td>4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>997</th>\n",
" <td>25</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" <td>5</td>\n",
" <td>6</td>\n",
" <td>5</td>\n",
" <td>5</td>\n",
" <td>4</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>...</td>\n",
" <td>8</td>\n",
" <td>8</td>\n",
" <td>7</td>\n",
" <td>9</td>\n",
" <td>2</td>\n",
" <td>1</td>\n",
" <td>4</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>998</th>\n",
" <td>18</td>\n",
" <td>2</td>\n",
" <td>6</td>\n",
" <td>8</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>...</td>\n",
" <td>9</td>\n",
" <td>3</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" <td>1</td>\n",
" <td>4</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" <td>2</td>\n",
" <td>3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>999</th>\n",
" <td>47</td>\n",
" <td>1</td>\n",
" <td>6</td>\n",
" <td>5</td>\n",
" <td>6</td>\n",
" <td>5</td>\n",
" <td>5</td>\n",
" <td>4</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>...</td>\n",
" <td>8</td>\n",
" <td>8</td>\n",
" <td>7</td>\n",
" <td>9</td>\n",
" <td>2</td>\n",
" <td>1</td>\n",
" <td>4</td>\n",
" <td>6</td>\n",
" <td>7</td>\n",
" <td>2</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>1000 rows × 23 columns</p>\n",
"</div>"
],
"text/plain": [
" age gender air_pollution alcohol_use dust_allergy \\\n",
"0 33 1 2 4 5 \n",
"1 17 1 3 1 5 \n",
"2 44 1 6 7 7 \n",
"3 39 2 6 8 7 \n",
"4 38 2 2 1 5 \n",
"5 49 1 6 5 6 \n",
"6 37 1 8 8 7 \n",
"7 26 2 7 7 7 \n",
"8 37 2 7 7 7 \n",
"9 33 1 6 7 7 \n",
"10 44 1 6 7 7 \n",
"11 37 2 6 8 7 \n",
"12 25 2 4 5 6 \n",
"13 64 2 6 8 7 \n",
"14 18 2 6 8 7 \n",
"15 47 1 6 5 6 \n",
"16 25 2 3 1 4 \n",
"17 19 1 3 2 4 \n",
"18 26 2 8 8 7 \n",
"19 37 1 7 7 7 \n",
"20 35 2 4 5 6 \n",
"21 33 1 2 4 5 \n",
"22 25 2 3 1 4 \n",
"23 35 2 4 5 6 \n",
"24 39 2 4 5 6 \n",
"25 27 2 2 3 4 \n",
"26 48 1 6 7 7 \n",
"27 64 1 6 8 7 \n",
"28 39 1 4 5 6 \n",
"29 33 1 6 7 7 \n",
".. ... ... ... ... ... \n",
"970 31 2 3 2 4 \n",
"971 38 2 1 2 3 \n",
"972 35 1 6 8 7 \n",
"973 44 1 6 7 7 \n",
"974 33 1 2 4 5 \n",
"975 45 1 3 1 4 \n",
"976 26 2 8 8 7 \n",
"977 53 1 3 1 4 \n",
"978 19 1 6 8 7 \n",
"979 35 2 4 5 6 \n",
"980 46 1 6 8 7 \n",
"981 27 1 6 7 7 \n",
"982 26 1 3 2 4 \n",
"983 37 1 1 2 3 \n",
"984 28 1 6 7 7 \n",
"985 19 1 6 8 7 \n",
"986 29 2 4 5 6 \n",
"987 39 2 6 8 7 \n",
"988 37 1 7 7 7 \n",
"989 29 2 4 5 6 \n",
"990 49 1 6 5 6 \n",
"991 37 1 8 8 7 \n",
"992 26 2 7 7 7 \n",
"993 37 2 7 7 7 \n",
"994 33 1 6 7 7 \n",
"995 44 1 6 7 7 \n",
"996 37 2 6 8 7 \n",
"997 25 2 4 5 6 \n",
"998 18 2 6 8 7 \n",
"999 47 1 6 5 6 \n",
"\n",
" occupational_hazards genetic_risk chronic_lung_disease balanced_diet \\\n",
"0 4 3 2 2 \n",
"1 3 4 2 2 \n",
"2 7 7 6 7 \n",
"3 7 7 6 7 \n",
"4 3 2 3 2 \n",
"5 5 5 4 6 \n",
"6 7 7 6 7 \n",
"7 7 7 6 7 \n",
"8 7 6 7 7 \n",
"9 7 7 7 6 \n",
"10 7 7 6 7 \n",
"11 7 7 6 7 \n",
"12 5 5 4 6 \n",
"13 7 7 6 7 \n",
"14 7 7 6 7 \n",
"15 5 5 4 6 \n",
"16 3 2 3 4 \n",
"17 2 3 2 3 \n",
"18 7 7 6 7 \n",
"19 7 6 7 7 \n",
"20 5 5 4 6 \n",
"21 4 3 2 2 \n",
"22 3 2 3 4 \n",
"23 5 6 5 5 \n",
"24 6 5 4 6 \n",
"25 2 4 3 3 \n",
"26 7 7 6 7 \n",
"27 7 7 6 7 \n",
"28 6 5 4 6 \n",
"29 7 7 6 7 \n",
".. ... ... ... ... \n",
"970 2 3 2 3 \n",
"971 4 2 4 3 \n",
"972 7 7 6 2 \n",
"973 7 7 6 7 \n",
"974 4 3 2 2 \n",
"975 3 2 3 4 \n",
"976 7 7 6 7 \n",
"977 2 3 2 3 \n",
"978 7 7 6 7 \n",
"979 5 5 4 6 \n",
"980 7 7 6 7 \n",
"981 7 7 6 7 \n",
"982 2 3 2 3 \n",
"983 4 2 4 3 \n",
"984 7 7 6 7 \n",
"985 7 7 6 7 \n",
"986 5 5 4 6 \n",
"987 7 7 6 7 \n",
"988 7 6 7 7 \n",
"989 5 5 4 6 \n",
"990 5 5 4 6 \n",
"991 7 7 6 7 \n",
"992 7 7 6 7 \n",
"993 7 6 7 7 \n",
"994 7 7 7 6 \n",
"995 7 7 6 7 \n",
"996 7 7 6 7 \n",
"997 5 5 4 6 \n",
"998 7 7 6 7 \n",
"999 5 5 4 6 \n",
"\n",
" obesity ... coughing_of_blood fatigue weight_loss \\\n",
"0 4 ... 4 3 4 \n",
"1 2 ... 3 1 3 \n",
"2 7 ... 7 5 3 \n",
"3 7 ... 9 3 2 \n",
"4 4 ... 4 6 7 \n",
"5 7 ... 8 8 7 \n",
"6 7 ... 9 3 2 \n",
"7 7 ... 7 2 7 \n",
"8 7 ... 8 4 2 \n",
"9 7 ... 7 8 5 \n",
"10 7 ... 7 5 3 \n",
"11 7 ... 7 9 6 \n",
"12 7 ... 8 8 7 \n",
"13 7 ... 7 9 6 \n",
"14 7 ... 9 3 2 \n",
"15 7 ... 8 8 7 \n",
"16 3 ... 1 3 2 \n",
"17 3 ... 3 4 5 \n",
"18 7 ... 9 3 2 \n",
"19 7 ... 8 4 2 \n",
"20 7 ... 8 8 7 \n",
"21 4 ... 4 3 4 \n",
"22 3 ... 1 3 2 \n",
"23 5 ... 5 1 4 \n",
"24 6 ... 6 5 3 \n",
"25 3 ... 4 1 2 \n",
"26 7 ... 7 5 3 \n",
"27 7 ... 7 9 6 \n",
"28 6 ... 6 5 3 \n",
"29 7 ... 7 4 4 \n",
".. ... ... ... ... ... \n",
"970 3 ... 3 4 5 \n",
"971 3 ... 4 4 1 \n",
"972 4 ... 3 2 7 \n",
"973 7 ... 7 5 3 \n",
"974 4 ... 4 3 4 \n",
"975 3 ... 1 3 2 \n",
"976 7 ... 9 3 2 \n",
"977 3 ... 2 2 2 \n",
"978 7 ... 7 9 6 \n",
"979 7 ... 8 8 7 \n",
"980 7 ... 9 3 2 \n",
"981 7 ... 7 2 7 \n",
"982 3 ... 3 4 5 \n",
"983 3 ... 4 4 1 \n",
"984 7 ... 7 5 3 \n",
"985 7 ... 7 9 6 \n",
"986 7 ... 8 8 7 \n",
"987 7 ... 9 3 2 \n",
"988 7 ... 8 4 2 \n",
"989 7 ... 8 8 7 \n",
"990 7 ... 8 8 7 \n",
"991 7 ... 9 3 2 \n",
"992 7 ... 7 2 7 \n",
"993 7 ... 8 4 2 \n",
"994 7 ... 7 8 5 \n",
"995 7 ... 7 5 3 \n",
"996 7 ... 7 9 6 \n",
"997 7 ... 8 8 7 \n",
"998 7 ... 9 3 2 \n",
"999 7 ... 8 8 7 \n",
"\n",
" shortness_of_breath wheezing swallowing_difficulty \\\n",
"0 2 2 3 \n",
"1 7 8 6 \n",
"2 2 7 8 \n",
"3 4 1 4 \n",
"4 2 5 8 \n",
"5 9 2 1 \n",
"6 4 1 4 \n",
"7 6 7 6 \n",
"8 3 1 4 \n",
"9 7 6 7 \n",
"10 2 7 8 \n",
"11 5 7 2 \n",
"12 9 2 1 \n",
"13 5 7 2 \n",
"14 4 1 4 \n",
"15 9 2 1 \n",
"16 2 4 2 \n",
"17 6 5 5 \n",
"18 4 1 4 \n",
"19 3 1 4 \n",
"20 9 2 1 \n",
"21 2 2 3 \n",
"22 2 4 2 \n",
"23 3 2 4 \n",
"24 2 4 3 \n",
"25 4 6 5 \n",
"26 2 7 8 \n",
"27 5 7 2 \n",
"28 2 4 3 \n",
"29 5 6 5 \n",
".. ... ... ... \n",
"970 6 5 5 \n",
"971 2 4 6 \n",
"972 6 5 1 \n",
"973 2 7 8 \n",
"974 2 2 3 \n",
"975 2 4 2 \n",
"976 4 1 4 \n",
"977 3 4 1 \n",
"978 5 7 2 \n",
"979 9 2 1 \n",
"980 4 1 4 \n",
"981 6 7 6 \n",
"982 6 5 5 \n",
"983 2 4 6 \n",
"984 2 7 8 \n",
"985 5 7 2 \n",
"986 9 2 1 \n",
"987 4 1 4 \n",
"988 3 1 4 \n",
"989 9 2 1 \n",
"990 9 2 1 \n",
"991 4 1 4 \n",
"992 6 7 6 \n",
"993 3 1 4 \n",
"994 7 6 7 \n",
"995 2 7 8 \n",
"996 5 7 2 \n",
"997 9 2 1 \n",
"998 4 1 4 \n",
"999 9 2 1 \n",
"\n",
" clubbing_of_finger_nails frequent_cold dry_cough snoring \n",
"0 1 2 3 4 \n",
"1 2 1 7 2 \n",
"2 2 4 5 3 \n",
"3 2 4 2 3 \n",
"4 1 3 2 3 \n",
"5 4 6 7 2 \n",
"6 2 4 2 3 \n",
"7 7 2 3 1 \n",
"8 5 6 7 5 \n",
"9 8 7 6 2 \n",
"10 2 4 5 3 \n",
"11 4 3 1 4 \n",
"12 4 6 7 2 \n",
"13 4 3 1 4 \n",
"14 2 4 2 3 \n",
"15 4 6 7 2 \n",
"16 2 3 4 3 \n",
"17 4 6 5 4 \n",
"18 2 4 2 3 \n",
"19 5 6 7 5 \n",
"20 4 6 7 2 \n",
"21 1 2 3 4 \n",
"22 2 3 4 3 \n",
"23 6 2 4 1 \n",
"24 1 7 5 6 \n",
"25 4 2 1 5 \n",
"26 2 4 5 3 \n",
"27 4 3 1 4 \n",
"28 1 7 5 6 \n",
"29 5 4 6 5 \n",
".. ... ... ... ... \n",
"970 4 6 5 4 \n",
"971 5 4 2 5 \n",
"972 9 3 4 2 \n",
"973 2 4 5 3 \n",
"974 1 2 3 4 \n",
"975 2 3 4 3 \n",
"976 2 4 2 3 \n",
"977 5 2 6 2 \n",
"978 4 3 1 4 \n",
"979 4 6 7 2 \n",
"980 2 4 2 3 \n",
"981 7 2 3 1 \n",
"982 4 6 5 4 \n",
"983 5 4 2 5 \n",
"984 2 4 5 3 \n",
"985 4 3 1 4 \n",
"986 4 6 7 2 \n",
"987 2 4 2 3 \n",
"988 5 6 7 5 \n",
"989 4 6 7 2 \n",
"990 4 6 7 2 \n",
"991 2 4 2 3 \n",
"992 7 2 3 1 \n",
"993 5 6 7 5 \n",
"994 8 7 6 2 \n",
"995 2 4 5 3 \n",
"996 4 3 1 4 \n",
"997 4 6 7 2 \n",
"998 2 4 2 3 \n",
"999 4 6 7 2 \n",
"\n",
"[1000 rows x 23 columns]"
]
},
"execution_count": 56,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"X"
]
},
{
"cell_type": "code",
"execution_count": 57,
"metadata": {},
"outputs": [],
"source": [
"# Split data into training and testing sets\n",
"X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=15)"
]
},
{
"cell_type": "code",
"execution_count": 58,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"800 200\n",
"800 200\n"
]
}
],
"source": [
"print(len(X_train), len(X_test))\n",
"print(len(y_train), len(y_test))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 3. Build a Decision Tree\n",
"We will use sklearn's implementation of a Decision Tree Classification."
]
},
{
"cell_type": "code",
"execution_count": 59,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"sklearn.tree.tree.DecisionTreeClassifier"
]
},
"execution_count": 59,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"DecisionTreeClassifier"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Many of the sklearn algorithms are implemented using the same standard steps: \n",
"- **Step 1: Initiate the algorithm** Define the parameters (& hyperparameters of the algorithm) of the algorithm.\n",
"\n",
"- **Step 2: Train the algorithm** Train the algorithm by fitting it to the X_train and y_train datasets.\n",
"\n",
"- **Step 3: Evaluating the algorithm** Evaluate the predictive power of the algorithm by comparing the predictive Level values to the true values. We can do this for the training and testing dataset."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Random Forest"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Here is a function which encapsulates the 3 model implementation steps; Initialize, Train, Evaluate our Random Forest Classifier. "
]
},
{
"cell_type": "code",
"execution_count": 60,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0.86625\n",
"0.825\n"
]
}
],
"source": [
"my_rf = RandomForestClassifier(random_state = 0, min_samples_leaf = 150)\n",
"my_rf.fit(X_train, y_train)\n",
"score_train_rf = my_rf.score(X_train, y_train)\n",
"print(score_train_rf)\n",
"score_test_rf = my_rf.score(X_test, y_test)\n",
"print(score_test_rf)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"we observe that our score train is almost the same as our score test so our model is quite perfect"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Here is a function which encapsulates the 3 model implementation steps; Initialize, Train, Evaluate our Decision tree Classifier. "
]
},
{
"cell_type": "code",
"execution_count": 61,
"metadata": {
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0.91125\n",
"0.825\n"
]
}
],
"source": [
"my_tree = DecisionTreeClassifier(random_state = 0, min_samples_leaf = 50)\n",
"my_tree.fit(X_train, y_train)\n",
"score_train = my_tree.score(X_train, y_train)\n",
"print(score_train)\n",
"score_test_dt = my_rf.score(X_test, y_test)\n",
"print(score_test_rf)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" we observe the same thing as random forest, we have run these two models to make sure that our score train and our score test are almost similar."
]
},
{
"cell_type": "code",
"execution_count": 62,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[0.87724551 0.89820359 0.87951807]\n"
]
}
],
"source": [
"from sklearn.model_selection import cross_val_score\n",
"print(cross_val_score(my_tree, X, y, cv=3))"
]
},
{
"cell_type": "code",
"execution_count": 63,
"metadata": {},
"outputs": [],
"source": [
"def train_score_Classifier(sklearn_Classifier, X_train, y_train, X_test, y_test, model_parameters, print_oob_score=False):\n",
" \"\"\"A helper function that:\n",
" - Trains a regressor on training data\n",
" - Scores data on training and test data\n",
" - Returns a trained model\n",
" \"\"\"\n",
" # Step 1: Initializing the sklearn regressor \n",
" Classifier = sklearn_Classifier(**model_parameters)\n",
" \n",
" # Step 2: Training the algorithm using the X_train dataset of features and y_train, the associated target features\n",
" Classifier.fit(X_train, y_train)\n",
" \n",
" # Step 3: Calculating the score of the predictive power on the training and testing dataset.\n",
" training_score = Classifier.score(X_train, y_train)\n",
" testing_score = Classifier.score(X_test, y_test)\n",
" \n",
" # Print the results!\n",
" print(f\"Train score: {training_score:>5.4f}\")\n",
" print(f\"Test score: {testing_score:>7.4f}\")\n",
" if print_oob_score:\n",
" print(f\"OOB score: {classifier.oob_score_:>8.4f}\")\n",
" \n",
" return Classifier"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"With all tree algorithms the major challenge is using the parameters to balance the bias vs variance trade-off. \n",
"\n",
"To start, check how the model preforms when using different parameters."
]
},
{
"cell_type": "code",
"execution_count": 64,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Train score: 0.9900\n",
"Test score: 0.9900\n"
]
}
],
"source": [
"trained_Classifier = train_score_Classifier(sklearn_Classifier=DecisionTreeClassifier,\n",
" X_train=X_train, \n",
" y_train=y_train, \n",
" X_test=X_test, \n",
" y_test=y_test, \n",
" model_parameters={'min_samples_leaf':5,'max_depth': 4, 'random_state':20})"
]
},
{
"cell_type": "code",
"execution_count": 65,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([[<matplotlib.axes._subplots.AxesSubplot object at 0x000000000DFBBC18>,\n",
" <matplotlib.axes._subplots.AxesSubplot object at 0x000000000DFDB710>,\n",
" <matplotlib.axes._subplots.AxesSubplot object at 0x000000000DFB1DA0>,\n",
" <matplotlib.axes._subplots.AxesSubplot object at 0x000000000E009470>,\n",
" <matplotlib.axes._subplots.AxesSubplot object at 0x000000000E024B00>],\n",
" [<matplotlib.axes._subplots.AxesSubplot object at 0x000000000E024B38>,\n",
" <matplotlib.axes._subplots.AxesSubplot object at 0x000000000E075860>,\n",
" <matplotlib.axes._subplots.AxesSubplot object at 0x000000000E09FEF0>,\n",
" <matplotlib.axes._subplots.AxesSubplot object at 0x000000000DF40860>,\n",
" <matplotlib.axes._subplots.AxesSubplot object at 0x000000000E0D6EF0>],\n",
" [<matplotlib.axes._subplots.AxesSubplot object at 0x000000000E1075C0>,\n",
" <matplotlib.axes._subplots.AxesSubplot object at 0x000000000E12EC50>,\n",
" <matplotlib.axes._subplots.AxesSubplot object at 0x000000000E161320>,\n",
" <matplotlib.axes._subplots.AxesSubplot object at 0x000000000E1889B0>,\n",
" <matplotlib.axes._subplots.AxesSubplot object at 0x000000000E1BA080>],\n",
" [<matplotlib.axes._subplots.AxesSubplot object at 0x000000000E1E1710>,\n",
" <matplotlib.axes._subplots.AxesSubplot object at 0x000000000E209DA0>,\n",
" <matplotlib.axes._subplots.AxesSubplot object at 0x000000000E23D470>,\n",
" <matplotlib.axes._subplots.AxesSubplot object at 0x000000000E265B00>,\n",
" <matplotlib.axes._subplots.AxesSubplot object at 0x000000000E2981D0>],\n",
" [<matplotlib.axes._subplots.AxesSubplot object at 0x000000000E2BF860>,\n",
" <matplotlib.axes._subplots.AxesSubplot object at 0x000000000E2E8EF0>,\n",
" <matplotlib.axes._subplots.AxesSubplot object at 0x000000000E3185C0>,\n",
" <matplotlib.axes._subplots.AxesSubplot object at 0x000000000E340C50>,\n",
" <matplotlib.axes._subplots.AxesSubplot object at 0x000000000E373320>]],\n",
" dtype=object)"
]
},
"execution_count": 65,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 25 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"df.hist(color='blue', alpha=0.5, bins=16)"
]
},
{
"cell_type": "code",
"execution_count": 66,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Train score: 0.9825\n",
"Test score: 0.9750\n",
"\n",
"\n",
"Train score: 0.9800\n",
"Test score: 0.9800\n",
"\n",
"\n",
"Train score: 0.9250\n",
"Test score: 0.9050\n",
"\n",
"\n",
"Train score: 0.9250\n",
"Test score: 0.9050\n",
"\n",
"\n",
"Train score: 0.9113\n",
"Test score: 0.9100\n",
"\n",
"\n",
"Train score: 0.9012\n",
"Test score: 0.8950\n",
"\n",
"\n",
"Train score: 0.9012\n",
"Test score: 0.8950\n",
"\n",
"\n",
"Train score: 0.8650\n",
"Test score: 0.8350\n",
"\n",
"\n",
"Train score: 0.8650\n",
"Test score: 0.8350\n",
"\n",
"\n",
"Train score: 0.8650\n",
"Test score: 0.8350\n",
"\n",
"\n",
"Train score: 0.8650\n",
"Test score: 0.8350\n",
"\n",
"\n",
"Train score: 0.8650\n",
"Test score: 0.8350\n",
"\n",
"\n"
]
}
],
"source": [
"# Define the model parameters \n",
"# We are fixing the random state so that the results are reproducible and consistent.\n",
"parameters = {\"max_depth\":6,'min_samples_leaf': 50,'random_state':42}\n",
"\n",
"for x in [10,20,30,40,50,60,70,80,90,100,110,120]:\n",
" # Train and evaluate the model\n",
" trained_Classifier = train_score_Classifier(sklearn_Classifier=DecisionTreeClassifier,\n",
" X_train=X_train, \n",
" y_train=y_train, \n",
" X_test=X_test, \n",
" y_test=y_test, \n",
" model_parameters={\"max_depth\":6,'min_samples_leaf': x,'random_state':42})\n",
" print(\"\\n\")"
]
},
{
"cell_type": "code",
"execution_count": 67,
"metadata": {},
"outputs": [
{
"ename": "TypeError",
"evalue": "can only concatenate str (not \"numpy.int64\") to str",
"output_type": "error",
"traceback": [
"\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[1;31mTypeError\u001b[0m Traceback (most recent call last)",
"\u001b[1;32m<ipython-input-67-c5dafc314c6f>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m()\u001b[0m\n\u001b[0;32m 4\u001b[0m \u001b[0mclass_names\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0my_train\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mvalues\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 5\u001b[0m \u001b[0mfilled\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;32mTrue\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mrounded\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;32mTrue\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 6\u001b[1;33m special_characters=True) \n\u001b[0m\u001b[0;32m 7\u001b[0m \u001b[1;31m# use graphviz to render the image\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 8\u001b[0m \u001b[0mgraph\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mgraphviz\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mSource\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mdot_data\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
"\u001b[1;32m~\\Anaconda3\\lib\\site-packages\\sklearn\\tree\\export.py\u001b[0m in \u001b[0;36mexport_graphviz\u001b[1;34m(decision_tree, out_file, max_depth, feature_names, class_names, label, filled, leaves_parallel, impurity, node_ids, proportion, rotate, rounded, special_characters, precision)\u001b[0m\n\u001b[0;32m 462\u001b[0m \u001b[0mrecurse\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mdecision_tree\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;36m0\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mcriterion\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;34m\"impurity\"\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 463\u001b[0m \u001b[1;32melse\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 464\u001b[1;33m \u001b[0mrecurse\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mdecision_tree\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mtree_\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;36m0\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mcriterion\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mdecision_tree\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mcriterion\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 465\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 466\u001b[0m \u001b[1;31m# If required, draw leaf nodes at same depth as each other\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
"\u001b[1;32m~\\Anaconda3\\lib\\site-packages\\sklearn\\tree\\export.py\u001b[0m in \u001b[0;36mrecurse\u001b[1;34m(tree, node_id, criterion, parent, depth)\u001b[0m\n\u001b[0;32m 330\u001b[0m out_file.write('%d [label=%s'\n\u001b[0;32m 331\u001b[0m % (node_id,\n\u001b[1;32m--> 332\u001b[1;33m node_to_str(tree, node_id, criterion)))\n\u001b[0m\u001b[0;32m 333\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 334\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mfilled\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
"\u001b[1;32m~\\Anaconda3\\lib\\site-packages\\sklearn\\tree\\export.py\u001b[0m in \u001b[0;36mnode_to_str\u001b[1;34m(tree, node_id, criterion)\u001b[0m\n\u001b[0;32m 300\u001b[0m \u001b[0mnp\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0margmax\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mvalue\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 301\u001b[0m characters[2])\n\u001b[1;32m--> 302\u001b[1;33m \u001b[0mnode_string\u001b[0m \u001b[1;33m+=\u001b[0m \u001b[0mclass_name\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 303\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 304\u001b[0m \u001b[1;31m# Clean up any trailing newlines\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
"\u001b[1;31mTypeError\u001b[0m: can only concatenate str (not \"numpy.int64\") to str"
]
}
],
"source": [
"# from the sklearn tree library, create image of trained decision tree\n",
"dot_data = tree.export_graphviz(trained_Classifier, out_file='tree.dot', \n",
" feature_names=X_train.columns, \n",
" class_names=y_train.values, \n",
" filled=True, rounded=True, \n",
" special_characters=True) \n",
"# use graphviz to render the image\n",
"graph = graphviz.Source(dot_data)\n",
"graph"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<span style=\"color:red\"> In a final report, try not to include code that isn't being used.</span>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# You will find attached tree.dot that makes us print our decision tree and a capture of it is displayed below"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<img src=\"./images/decisionTree.png\" alt=\"Drawing\" style=\"width: 1000px;height=500\"/>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<span style=\"color:red\"> Great! Make sure you include text explaining the tree to prove you understand what's happening. Basically the value = [x, y, z] list represents the number of leafs in each class. The tree takes the highest voted classification as the answer. So everyone in this dataset has lung cancer? And the ones that have the highest degree are those who have coughing of blood, don't have occupational hazards, are obese, and have clubbing of finger nails. Is that right?</span>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# trained_classifier"
]
},
{
"cell_type": "code",
"execution_count": 68,
"metadata": {},
"outputs": [],
"source": [
"tree.export_graphviz(trained_Classifier, out_file='tree.dot', feature_names=X_train.columns)"
]
},
{
"cell_type": "code",
"execution_count": 69,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"GridSearchCV(cv=None, error_score='raise',\n",
" estimator=DecisionTreeClassifier(class_weight=None, criterion='gini', max_depth=None,\n",
" max_features=None, max_leaf_nodes=None,\n",
" min_impurity_decrease=0.0, min_impurity_split=None,\n",
" min_samples_leaf=1, min_samples_split=2,\n",
" min_weight_fraction_leaf=0.0, presort=False, random_state=42,\n",
" splitter='best'),\n",
" fit_params=None, iid=True, n_jobs=1,\n",
" param_grid={'max_depth': [8, 10, 14], 'min_impurity_decrease': [0.1, 0.01, 0.0], 'min_samples_split': [10, 50, 2]},\n",
" pre_dispatch='2*n_jobs', refit=True, return_train_score='warn',\n",
" scoring=None, verbose=0)"
]
},
"execution_count": 69,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Set parameters to search through - known as parameter grid\n",
"parameters = {'max_depth':[8,10,14], \n",
" 'min_impurity_decrease': [.1,.01, 0.0],\n",
" 'min_samples_split': [10, 50, 2]}\n",
"# Initialize model\n",
"decision_Classifier= DecisionTreeClassifier(random_state=42)\n",
"\n",
"# Initialize GridSearch and then fit\n",
"Classifier = GridSearchCV(decision_Classifier, parameters)\n",
"Classifier.fit(X_train, y_train)"
]
},
{
"cell_type": "code",
"execution_count": 70,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"{'class_weight': None,\n",
" 'criterion': 'gini',\n",
" 'max_depth': 8,\n",
" 'max_features': None,\n",
" 'max_leaf_nodes': None,\n",
" 'min_impurity_decrease': 0.0,\n",
" 'min_impurity_split': None,\n",
" 'min_samples_leaf': 1,\n",
" 'min_samples_split': 10,\n",
" 'min_weight_fraction_leaf': 0.0,\n",
" 'presort': False,\n",
" 'random_state': 42,\n",
" 'splitter': 'best'}"
]
},
"execution_count": 70,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# print out what GridSearchCV found to be the best parameters \n",
"Classifier.best_estimator_.get_params()"
]
},
{
"cell_type": "code",
"execution_count": 71,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Train score: 1.0000\n",
"Test score: 1.0000\n"
]
}
],
"source": [
"# evaluate the tuned model\n",
"trained_Classifier = train_score_Classifier(sklearn_Classifier=DecisionTreeClassifier,\n",
" X_train=X_train, \n",
" y_train=y_train, \n",
" X_test=X_test, \n",
" y_test=y_test, \n",
" model_parameters=Classifier.best_estimator_.get_params())"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Performance that our train data and test data are similar-that's great\n",
"\n",
"we will visualise how these look in a scattor plot."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<span style=\"color:red\">In the case of having 100% on both train and test data, bootstrapping and k-fold cross validation should usually provide more reliable performance numbers. I sent code on k-folds earlier.</span>"
]
},
{
"cell_type": "code",
"execution_count": 72,
"metadata": {},
"outputs": [],
"source": [
"# plotting a graph of the true values vs the predicted values for the training and test datasets\n",
"def plot_y_yhat_scatter(y_actual,y_predicted,train_test):\n",
" ax = sns.regplot(x=y_actual, y=y_predicted, fit_reg=False)\n",
" ax.set_xlabel('true values')\n",
" ax.set_ylabel('predicted values')\n",
" ax.set_title('Relationship between true and predicted Level of Lung cancer: '+train_test+' results')\n",
" pass"
]
},
{
"cell_type": "code",
"execution_count": 73,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plot_y_yhat_scatter(y_train, trained_Classifier.predict(X_train),train_test = \"training\")"
]
},
{
"cell_type": "code",
"execution_count": 74,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plot_y_yhat_scatter(y_test, trained_Classifier.predict(X_test),train_test = \"test\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"the relationship between our predected values and true values is high(our data is fit)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Feature Importance\n",
"\n",
"We can look at which features are driving our model's predictions by examining the feature importance."
]
},
{
"cell_type": "code",
"execution_count": 75,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([0. , 0. , 0.06980933, 0. , 0. ,\n",
" 0. , 0. , 0. , 0. , 0.11364043,\n",
" 0. , 0. , 0. , 0.41225448, 0. ,\n",
" 0. , 0. , 0.26339052, 0. , 0.02929909,\n",
" 0. , 0. , 0.11160615])"
]
},
"execution_count": 75,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"importances = trained_Classifier.feature_importances_\n",
"importances"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<pre>\n",
"0.06980933--->air_pollution \n",
"0.11364043--->obesity\n",
"0.41225448--->coughing_of_blood \n",
"0.26339052--->wheezing\n",
"0.02929909--->clubbing_of_finger_nails \n",
"0.11160615--->snoring \n",
"this are the most important features in predecting Lung cancer\n",
"<pre>"
]
},
{
"cell_type": "code",
"execution_count": 76,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Index(['age', 'gender', 'air_pollution', 'alcohol_use', 'dust_allergy',\n",
" 'occupational_hazards', 'genetic_risk', 'chronic_lung_disease',\n",
" 'balanced_diet', 'obesity', 'smoking', 'passive_smoker', 'chest_pain',\n",
" 'coughing_of_blood', 'fatigue', 'weight_loss', 'shortness_of_breath',\n",
" 'wheezing', 'swallowing_difficulty', 'clubbing_of_finger_nails',\n",
" 'frequent_cold', 'dry_cough', 'snoring'],\n",
" dtype='object')"
]
},
"execution_count": 76,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"X.columns"
]
},
{
"cell_type": "code",
"execution_count": 77,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 864x504 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# Get the feature importances from our final trained model...\n",
"importances = trained_Classifier.feature_importances_\n",
"\n",
"# Find the indices of the feature importances in descending order\n",
"indices = np.argsort(importances)[::-1]\n",
"\n",
"# Plotting a bar chart of feature importances in descending order\n",
"plt.figure(figsize=(12,7))\n",
"sns.barplot(y=X_train.columns[indices],x=importances[indices]);"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<span style=\"color:red\"> Interesting that air pollution makes it to the list this time, as opposed to the tree from earlier. What are the parameters that you changed to make this happen? Why did you change the parameters?</span>"
]
},
{
"cell_type": "code",
"execution_count": 81,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Feature ranking:\n",
"1. feature 9 (0.104505)\n",
"2. feature 13 (0.092689)\n",
"3. feature 11 (0.064121)\n",
"4. feature 8 (0.061259)\n",
"5. feature 17 (0.053987)\n",
"6. feature 3 (0.053947)\n",
"7. feature 14 (0.051066)\n",
"8. feature 18 (0.046122)\n",
"9. feature 4 (0.045952)\n",
"10. feature 10 (0.042849)\n",
"11. feature 6 (0.042549)\n",
"12. feature 2 (0.040003)\n",
"13. feature 16 (0.038493)\n",
"14. feature 22 (0.037226)\n",
"15. feature 12 (0.034225)\n",
"16. feature 19 (0.033471)\n",
"17. feature 5 (0.032807)\n",
"18. feature 7 (0.032128)\n",
"19. feature 20 (0.031667)\n",
"20. feature 15 (0.030936)\n",
"21. feature 21 (0.024520)\n",
"22. feature 0 (0.004499)\n",
"23. feature 1 (0.000979)\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"\n",
"from sklearn.datasets import make_classification\n",
"from sklearn.ensemble import ExtraTreesClassifier\n",
"\n",
"\n",
"\n",
"# Build a forest and compute the feature importances\n",
"forest = ExtraTreesClassifier(n_estimators=250,\n",
" random_state=0)\n",
"\n",
"forest.fit(X, y)\n",
"importances = forest.feature_importances_\n",
"std = np.std([tree.feature_importances_ for tree in forest.estimators_],\n",
" axis=0)\n",
"indices = np.argsort(importances)[::-1]\n",
"\n",
"# Print the feature ranking\n",
"print(\"Feature ranking:\")\n",
"\n",
"for f in range(X.shape[1]):\n",
" print(\"%d. feature %d (%f)\" % (f + 1, indices[f], importances[indices[f]]))\n",
"\n",
"# Plot the feature importances of the forest\n",
"plt.figure()\n",
"plt.title(\"Feature importances\")\n",
"plt.bar(range(X_train.shape[1]), importances[indices],\n",
" color=\"r\", yerr=std[indices], align=\"center\")\n",
"plt.xticks(range(X_train.shape[1]), indices)\n",
"plt.xlim([-1, X.shape[1]])\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 6. Advanced Material: Optimising the algorithm\n",
"<a id='AdvancedCV'></a>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### K-folds example for finding optimal parameters "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"K-folds is a method of evaluating and tuning a model on the given dataset without overfitting to either the training dataset or the testing dataset. It finds the optimal balance between bias and variance in the model. \n",
"\n",
"Below we show how the model performs on the training and test datasets while varying the max tree depth. "
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Text(0.5,0,'Max depth of the tree')"
]
},
"execution_count": 28,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAYsAAAEiCAYAAAAI8/6tAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvIxREBQAAIABJREFUeJzs3Xl4lOXV+PHvmewhgYQk7DsEEUEWAQEVAUWFum9V69uqbdVqLa3Vqm/dW9+61Z9L3bdqVSzuqLgLgiKyg2yyQ8JOICFkz8z5/fE8gQGyPJCZzCScz3XNNc9+n0kg99y7qCrGGGNMbXyRDsAYY0z0s8zCGGNMnSyzMMYYUyfLLIwxxtTJMgtjjDF1sszCGGNMnSyzMMYYU6dDyixEJF1Ejg1XMMYYY6JTnZmFiEwVkeYi0hJYCLwsIo+EPzRjjDHRwkvJooWq7gbOB15W1eOAU8MbljHGmGjiJbOIFZG2wMXAR2GOxxhjTBTyklncC3wGrFbV2SLSDVgZ3rCMMcZEE7GJBI0xxtTFSwN3TxH5SkQWu/vHisjt4Q/NGGNMtPBSDfU8cBtQAaCqi4BLwhmUMcaY6OIls0hW1VkHHKsMRzDGGGOik5fMYoeIdAcUQEQuBDaHNSpjjDFRpc4Gbrf303PAcGAXsBa4XFXXhT06Y4wxUcFzbygRaQb4VLUwvCEZY4yJNl5KFndWd1xV7w1LRMYYY6JOrIdrioK2E4EzgWXhCccYY0w0OuRBeSKSAExS1dPDE5IxxphoczjrWSQD3UIdiDHGmOhVZzWUiPyI220WiAGycOaLMsYYc4Tw0sDdOWi3EtiqqjYozxhjjiA1ZhbuYkc1UtWdYYnIGGNM1Kkts1iLU/0k1ZxWVbV2C2OMOULYFOXGGGPq5GWcBSKSDmTjjLMAQFWnhSsoY4wx0cVLb6jfAOOBDsACYCjwPTA6vKEZY4yJFl7GWYwHBgPrVXUUMADYHtaojDHGRBUvmUWpqpaCM3pbVZcDR4U3LGOMMdHES5tFroikAe8DX4jILmBTeMMyxhgTTQ6pN5SInAy0AD5V1fKwRXUYMjMztUuXLpEOwxhjGpW5c+fuUNWsuq7z0sD9GPBfVZ2hqt+EJLow6NKlC3PmzIl0GMYY06iIyHov13lps5gH3C4iq0TkIREZVL/QjDHGNDZ1Zhaq+oqqjgOGACuAB0RkZV33ichLIrJNRBbXcF5E5HE3E1okIgODzvlFZIH7mnQIn8cYY0wYHMoU5T2AXkAXYLmH6/8NnFHL+bE4A/2ygauBp4POlahqf/d19iHEaIwxJgy8tFk8AJwPrAb+C/xNVfPruk9Vp4lIl1ouOQd4VZ0W9pkikiYibVV1s6fIPaioqCA3N5fS0tJQPTJqJSYm0qFDB+Li4iIdijGmCfLSdXYtMExVd4Q47fZATtB+rntsM5AoInNwpkS/X1Xfr+4BInI1TqmETp06HXQ+NzeX1NRUunTpgkh18yE2DapKXl4eubm5dO3aNdLhGGOaIC9tFs+EIaOAGmazdd87qeog4DLgURHpXkNsz6nqIFUdlJV1cM+v0tJSMjIymnRGASAiZGRkHBElKGNMZBzOsqqhkgt0DNrvgDvYT1Wr3tcAU3GmGDksTT2jqHKkfE5jTAhVlnm+NJKZxSTgl26vqKFAgapuFpF0EUkAEJFM4ARgaQTjNMaYpmnyzZ4vrTGzEJGWtb3qerCITMCZnfYoEckVkV+LyLUicm1VmMAaYBXwPHCde/xoYI6ILASm4LRZNNrMIj8/n6eeeuqQ7xs3bhz5+XX2IzDGmMMz71WY94rny2tr4J7LvpXyOgG73O00YANQa0uqql5ax3kFrq/m+Aygb61RNyJVmcV1112333G/309MTEyN902ePDncoRljjlQb58HHNx3SLTVmFqraFUBEngEmqepkd38scGo9woxaU5dv49lpa8jZVUzH9GSuGdGNkb1a1euZt956K6tXr6Z///7ExcWRkpJC27ZtWbBgAUuXLuXcc88lJyeH0tJSxo8fz9VXXw3sm75kz549jB07lhNPPJEZM2bQvn17PvjgA5KSkkLxkY0xR5qiPJj4S/CXQcvuwHxPt3lpsxhclVEAqOonwMmHF2X0mrp8G3dOWsK2wlLSkuLYVljKnZOWMHX5tno99/7776d79+4sWLCAhx56iFmzZnHfffexdKlTs/bSSy8xd+5c5syZw+OPP05eXt5Bz1i5ciXXX389S5YsIS0tjXfeeadeMRljjlABP7zzayjIgbhk+Plrnm/1klnsEJHbRaSLiHQWkb8CB/9Fa+SenbaGuBghOT4WEec9LkZ4dtqakKYzZMiQ/cZCPP744/Tr14+hQ4eSk5PDypUHz6TStWtX+vfvD8Bxxx3HunXrQhqTMeYI8fkdsGaKs33Ov6B1b8+3esksLgWygPfcV5Z7rEnJ2VVMUtz+bQhJcTHk7ioOaTrNmjXbuz116lS+/PJLvv/+exYuXMiAAQOqHSuRkJCwdzsmJobKysqQxmSMOQLMfQVmPulsD78B+lxwSLfXOYJbVXcC40UkRVX3HE6MjUHH9GS2FZaSHL/vR1JS4adDenK9npuamkphYWG15woKCkhPTyc5OZnly5czc+bMeqVljDHVWjsdPr7R2e55Bpx6zyE/os6ShYgMF5GluGMdRKSfiBx6X9Aod82IblT4leLySlSd9wq/cs2IbvV6bkZGBieccAJ9+vTh5pv379N8xhlnUFlZybHHHssdd9zB0KFD65WWMcYcZOcamPg/EKiEVr3h/OfBV3NPzJrUuVKeiPwAXIjTI2qAe2yxqvY5nLjDZdCgQXrg4kfLli3j6KOP9vyMqt5QubuK6RCi3lAN6VA/rzGmiSvKgxfHwM7VkJwBv50C6Z33u0RE5rrTK9XKy0SCqGrOAdNJ+A8p4EZiZK9WjSpzMMaYGpUXw4SfOxlFTAJc8sZBGcWh8JJZ5IjIcEBFJB74A7DssFM0xhgTXv5Kp4ts7mxA4IIXoFP9qrm99Ia6FmekdXucyf/6s29qDmOMMdFEFSbfBD+5w+PGPgi967+GnJeSxVGq+ovgAyJyAvBdvVM3xhgTOqrw5d0w92Vn/4TxcPzVIXm0l5LFEx6PGWOMiaTpD8N3jzrb/X8Bp9wdskfXWLIQkWHAcCBLRG4MOtUcOPR+V8YYY8Ln+6fg678728ecB2c/Ab7QrUJR25PigRScDCU16LUbpyut8eBwpygHePTRRykuDu0IcmNMEzT7BfjsNmc7+3Q477nDGktRmxozC1X9RlXvAYaq6j1Br0dU9eAJjEy1LLMwxoTVD8/Cx392truOgItfgdj4kCfjpYH7BRG5SFXzAUQkHXhTVU8PeTSRtuILmPEY5K+HtM4wfDz0HFOvRwZPUT5mzBhatWrFxIkTKSsr47zzzuOee+6hqKiIiy++mNzcXPx+P3fccQdbt25l06ZNjBo1iszMTKZMmRKiD2mMaTK+fxI++19nu9tIuGQCxIVn+QIvmUVmVUYBoKq7RKTpjVxb8QV8chP44iExHQq3Ovs8XK8M4/7772fx4sUsWLCAzz//nLfffptZs2ahqpx99tlMmzaN7du3065dOz7++GPAmTOqRYsWPPLII0yZMoXMzMwQfUhjTJOgCt/+P/jKmeNJu5+CXPJ62DIK8NYbKiAinap2RKQzzgp6TcuMx5yMIj4ZRJx3X7xzPEQ+//xzPv/8cwYMGMDAgQNZvnw5K1eupG/fvnz55ZfccsstTJ8+nRYtWoQsTWNMExMIwOe3780o1qafwF9ib0FjE8OarJeSxV+Bb0XkG3d/BBCajrvRJH+9U6IIFpcE+RtCloSqctttt3HNNdccdG7u3LlMnjyZ2267jdNOO40777wzZOkaY5oIfwVMugEWTgBgTrOTuWzzVZRv3sGwozZy/sAOYUu6zpKFqn4KDAT+C0wEjlPVz8IWUaSkdYaKkv2PVZRAWqfqr/coeIry008/nZdeeok9e5yZ3jdu3Mi2bdvYtGkTycnJXH755dx0003MmzfvoHuNMUe4sj3w5i/2ZhQfxo/l4rzfUk4clx3fiTOPbRfW5GsbZ9FLVZeLyED30Cb3vZOIdFLVeWGNrKENH++0UZTjlCgqSiBQ7hyvh+ApyseOHctll13GsGHDAEhJSeG1115j1apV3Hzzzfh8PuLi4nj66acBuPrqqxk7dixt27a1Bm5jjmQFufDGJbD1RwCe5iIe2H0usT4f9559DJcPPfwJAr2qcYpyEXleVX8rItX9lVJVHR3e0A5NKKYo39cbaoNToghBb6iGZFOUG9MEbZwHEy6FPVsIEMPtFVfwhv8UMprF8/TlxzGka8t6Pb7eU5Sr6m/d91H1iqQx6TmmUWUO5gCBABRth90bYc9WKN4JJTuhZBeUFzmlxYoS8JeDBtjbTyMm3pnCOTYe4lMgIRUSmkNiC2iWBc0ynPeUNmHpv25MjRa/A+9fD5UlFEkzrin7A98G+jK4SzpPXDqQNi3C26gdrLZqqPNru1FV3w19OMZ4ULYHti52XjtWQZ77KsiFQEV4027WCpq3gxYdoGVXSO8C6V0hMxuadwjp9ArmCOavgC/u2rtmdi6t+FXpzazW9lxzcjduOu0o4mIa9t9abb2hznLfW+HMEfW1uz8KmAo0isxCVTlg4aYmqa4VDxutQAB2/AQbvocNM2HjXMhbTV29t8t9iezxtWC3pFBACns0kWKNpzgQR5nGEEAIqCBAvFSSIJUkSgUpUkaKlJBKMalaRGognzgNyoCKtjmvzQsOTjQ2CTJ7QFYvZ/nK1sc4r+btne7YxnhRuBXevhLWOxN7T/f34Q8VvycmJZOXLjyW0b1aRySs2qqhrgQQkY+A3qq62d1vCzzZMOHVT2JiInl5eWRkZDTpDENVycvLIzGx4YqkYbV7E6z+GlZ9BWumOlVJ1djmy2KFvz0r/G1Yo23J0VZs0gy2aEsKSQJC8TtXUighQ3bThl20lTzaSR7tZQcdZRtdY7bTjm3EEIDKEtjyo/MKlpwBbY6Ftv2g/UBof5xlIKZ6q76E937nfCEBnqw8m39WXszJR7XmwQv7kZWaELHQvIyz6FKVUbi2Aj3DFE9IdejQgdzcXLZv3x7pUMIuMTGRDh3C18c67PJWw9IPYNkk2DT/4NO0YJa/J/MC2SzWriwNdKaAlP2uSY6PoXXzRI5OSSAzNZ4WSfG0SIqjeVIszeJjSYqLISHOR1yMD58IMT4hoEogoFQElPLKAKUVfkor/BSV+SksrWB3aQX5xRXsLCpne1E5S/eUUVhauS/RCoijkk6yle6yiR6yiZ6+HI6SHLrLJuLFD8V5sGaK86qS0hraD4KOg6HDEGg3wBkIao5MlWXw1b3w/b8A2K1J3FRxLd/GDuWec4/m8uM7RfwLr5fMYqqIfAZMwCn7XwI0in6ccXFxdO3aNdJhmJoU7YAf34IFb8CWRfud2qNJfBc4hm8C/ZgR6M06bQMI8TE+stukMKpVCt2zUuiWlUKnlsl0SE8iLTmuQf5DlZT72V5YxuaCEjYVlLApv5ScnV3J2VXMpLxiNuWXEFAnE+khGznGt45jZB19fWvpI2tJlAqnAf6nj50XoL5YpG1/6DwMOg13lsBMrl8vF9NIbF2Cvnct4v4fmBvIZnzF9XTp3pvPzu9Lx5bR8SWixq6z+10kch7OyG2Aaar6XlijOgzVdZ01USgQcL5hz3kJXfEpEtj3LX2LpvOpfzCfBQYzO3AUAYmlZ+tUjuucTv+OafRp34IerVIavGHvUJVV+snZWcya7UWs2r6HVduc18qte6ioKKOn5NLft5oBspKBvpV0920+6BmKoK164+tyIlS9LPNoWvwVMP0RAtMewheowK/Cv/zn8krsz7nlZ8dw8aCODfLlx2vXWa+ZRWcgW1W/FJFkIEZVo2posWUWUa6sEBa8QeCH5/DtXLX38G5N5kP/MN71n8g8zeaoNi04oUcmw7tnMKRrS1IT4yIYdGgFAsqGncUs31LI8i27WbZ5N0s372bPzq0M9K1ksG8Fg33L6StrnOqrIIpQltmbhO4nI91HQufhThdf0zhtmk/5u9cTv2MJAGsDrbm54hq6HXcqt5zRi4yUhmubCFlmISK/xZkLqqWqdheRbOAZVT0lNKGGhmUWUaooD354Bv/MZ4gp37338Pf+3kzwj+ZrGczgHu045ejWjO7VinZp4Zs1M1oVlFSwZGMBP7qvn3K2kVmwiKG+ZQz1LaW/rCJBKve7xy8x7MnoR0L2KBJ7neq0f9gYkOhXvJPiz+4maeGrCIpfhRf94/i89VXcetZABnVp+NJjKDOLBcAQ4AdVHeAe+1FV+4Yk0hCxzCLKFO2gctojMOclYv3OnFslGs97/hP5j55Omx4DOfPYdpzauzUtkppO6SFUdhWVs2hjAQtz8lmyfiuS+wPHlC9iuG8J/WQ1sRLY7/oyXxJ5mYOI73kKGX1PR1odbb2toom/kj0//Bvf1/eSXFkAwLJAR/6ZcB0/G3c25/Rrj88Xmd9XvUdwBylT1fKqujMRicXDFOUi8hJwJrBNVftUc16Ax4BxQDFwRdV8UyLyK+B299K/q+orHuI0Ybbw67eImfkELSs2szOuLf6hN9Bv9EX7X1RWSPE3jxPzw5Mk+IsAp6rp3/7TmJ5+AacN7sMrA9rRKvXQuvl6SjsMIpVuerN40nKnMvqHJ7iwYjN5sW3ZOPQP5LT/Pz5dm0vl2m/plD+LYbKEXr4cEgIltNs2HbZNh2/vJj8mg62Zw4jrOZp2A8eSmH5ok8xF6nNHMu2wpKtK3vxJ+D+/i1alawEo1CSe9v2c9NHX8cTwHiTFx0T05+2Vl5LFg0A+8EvgBuA6YKmq/rWO+0YAe4BXa8gsxrnPGwccDzymqseLSEtgDjAIJ1OaizPT7a7a0rOSRXgt/PotMqf/lQpiqZBE4rSUOCrZcdJ9zj/qgJ9d3z5P3LR/kFLprJWVr814wX8mW3v9kotP7M2gzumH1WBXZ9phEql0vaZdXF7JwpwClq9cQeWqKbTeMZPjdSGtJf+g562L6cLWrGHE9BhN54FjyGqZftA1h5J2uDSZ37UqK2d9gkz9Bz1KnF5OARU+kpPYdvz/csnowaQkxIYn7UMUypLFrcCvgR+Ba4DJwAt13aSq00SkSy2XnIOTkSgwU0TS3AF/I4EvVHUngIh8AZyB03XXREjMzCecf8w+p02hQpIgUELMzCfY0aYV5R/eRLuSFYBT3fS6jKNkyA388qQ+tGpev8GCtaVNGP8zRSpdr2knx8cyrHsGw7oPA4YRCChrthcyd/EcKlZ+Revt39O3cjHNpIwu/nV02bIOtkygbHos82N6sSljKL7uo+jS9wR6tk0jxq0GifbPHc3pFpdVMPvrd8ic+zjHVC7Ze/x76c+mwbdy+qlj9mYSoU473GrNLEQkBnhFVS8Hng9x2u2BnKD9XPdYTceri+9q3IWYOnWq37oTpnYtKzZTJPv3vsnXVPylxWROPHvvsQ9lFIUn3solJw066D9FKNOukERaVhzc5TSUIpXu4abt8wk9WjenR+vRcIozKfSOgkKWzJ9KxYqvyNo+g+7lK0iQSgYEFjNg+2LY/gK7v0/mG3qTmzaYQJcRNCtNo0tMgDT2re8SzZ870ukGAsr8tVtYPfU/HLPhDU6WtXvPLYnpzfbBNzLs1PMZFhsT8rQbUq3/m1XVLyJZIhKvquUhTru6+git5fjBB1WfA54DpxoqdKGZA+2Ma0tKxQ4qJInygI+V/jacJPPJ8Dk9qJdID9YMvosxY35GYlz1/ylCkXaVOC1lZ1xbwrncS6TSDWXamS1SyRx5Fox0pnorK8xj3bzPKV3xNZnbvqN1xUaaSzGjmQMFc2Dh0+yQ5sysPJopgd7sIpUWMaX0Zi3tEtIbzecOd7qBgLJ4UwHTZ88ncfEEzq78lOOkYO9frxVJ/QmM+Au9jx+L1DG5ZCT/nR0KL1/91gHficgkoKjqoKo+Us+0c4GOQfsdcBZYysWpigo+PrWeaZl68g+9gbjpf2VhRWtaagHnxkwDnMa6uUf9iaEX3sgx8eHp1VSVNoGS/ep0/UNvCEt6kU43nGknpGbQ/eRL4eRLAdD8Dexa/CVFy7+mxZYZNK/MI1N2c2bMD5wZ8wMAO7Q5swK9+Lj4aF56+GWadTyWo9u3pE/7FhzdNjWkY2Gi+XddVFbJD2vz+GZJDhVLP+aM8i/4nW8xPlEQ8ONjQ+sxZJ46np7ZJ4Q07WjgpYH7ruqOq+o9dT7cabP4qIYG7p8Bv2dfA/fjqjrEbeCei7OUK8A8nAbu6meTc1kDd3jl7irm9ece4DfFL5IhTmliUXx/Ol71Kultwr9KV5PqIROtaavCjpVUrP6Gzd+/SUb+YppJ6UGX7dFE5gWyma/ZzAtks71FXzq2a0uvNs05qk0qR7VJpXPLZGIPc6R9tPyuiwbdgL/bKGat28nsVZtonvsNZ8hMTvHNIyXo51IU15LyPpeRPvJ3ztT1IUi7If+dhXQEt/vA5jgr5HkauS0iE3BKCJk4kw/eBcThPOQZt+vsv3Aar4uBK1V1jnvvVcD/uo+6T1Vfris9yyzCwx9QXp++jMSvb+di+QqAPZJC4Sn30/aEy60vf1OmCjtWwPrvKF89HV0/g4TiLdVeuibQhkXajUWB7iwKdGW1rytZmRlkt0qlW1YzumQ0o6v7nt5Ac3gdiqKySlZt28OSTbv5cWMBi3Pz2bNlFSfKAkb6FjLct4Qk2VcTH5AYSjqfQrOhV0L2GIhpvGOFQjkobxDwMlDVAlMAXKWqc+sdZQgdKZlFQ34DWbWtkMfe/IgbdvyNnr6NAOzIPJ6My19E0jrWcbdpkvJznHVFcn7Av+EHfNuWIOo/6LKACuu0NUu1C8sDHVmhHfhJO5KjrUiKj6OjO/lj2xZJtE1LpE3zRLJSE8hKTSAzJYG0pLjDLplUp8IfYMeeMrYUlLJ1dym5u0rYsLOY9XnFrNq2h635hWTLRvr7VjHEt5whvuW0l7z9P5PEEOh8ErF9z4deZzorKDYBocwsFgHXq+p0d/9E4ClVPTYkkYbIkZBZNFR/7EBAeXnGOn787CXu8z1LMynDTwzlI28nacQfbTU4s095kTOl/MZ5sGk+umkesmtdjZeXaSzrtTVrtB1rtQ052ooczSJHs9isGZSxb8qS1MRY0pLjSEmIIzUhluSEGBJifSTExhAf68Mn4HNLKJUBpdIfoCKglJT7KSqrpLjcT35JOfnFFXunlY/BT1vZSXfZ5E4pv5HevvX0kg3ObMAHCCRl4Ms+FXqMgR6nNMnJHEM5zqKwKqMAUNVvRSSqJhE8UjREf+xN+SXcMnEuozc8zqOxnwFQltyGhEtfI6nj4JCkYZqQ+Gb7ZsXF7QxUkr9vEagtP8L2ZbBtOVSWkCCV9JSN9GRjtY/L12Zs1XS2aRq7/Kns3J1KPins0SSKSKRIkygjlj3EUkkMAXy46x4SS4BkymglpTSjlBayh5YU0lIKyYrPp53k0YadxEgtX5CTM51p4jufAJ2H42vdB3yh7d3XWHnJLGaJyLPsW8/i5zhrXAwEqJqiw4RfuPtjf7l0K3dP/I77/Q9zYqwzoKiyy0gSLnoRmmWGJA1zBEhKg64nOa8qAT/sWueslb5jJeSthJ1rYNd6Z+10tyorTYpIkyKOIje8MfpioWU3yOwJrY6Gtv2hXX9bwbAWXjKL/u77gb2ihuNkHqNDGpGpUbj6Y5dXBnjw0+V89d0MXol7mO4xbuZz4o3Ejr7dvlmZ+vPFQEZ359Xz9P3P+Sth90Yo3OwsqVu4GYq2OysMFu90XuWFULYHyveAv9xZC8JfARpwni0xzntcslPaiW8GiWlOu0JyBjTLcnoqtejovNI62Sy9h6jOzEJVRzVEIKZu4eiPvaWglN+9PpeE3Bm8H/8ILaQYjUlAzvkXHHtxCKM3pgYxsZDe2XmZqBWa+RhMg+g3+iIWQsh6Q81et5PfvTaPIcXf8P/iniJBKtFmrZBL3nDWhjbGGJdlFo1Mv9EX7W3Mrk/V039mrueeSUv4hXzKXfGv4kMhsydy+TtOEd0YY4JYZnGE8QeUv320lH/PWMufY9/ihtj3nRMdhsBl/22SXQONMfVXY2YhIufXdqOqvhv6cEw47Smr5A8T5vP18q3cEfsav479xDlx1Di44EWIT45sgMaYqFVbyeIs970VTs+nr939UTgT+1lm0Yhs3V3KFS/PZvnmfP4e+zKXxzpTd3DsJXDOk04jozHG1KDGvxCqeiWAiHwE9FbVze5+W+DJhgnPhMKa7Xv4nxdnsTm/iAfjnueimG+cEwN/CWc+ZiOyjTF18vJ1sktVRuHaCvQMUzwmxBbk5HPVv2ezq6iUhxJe5EJxM4ohV8MZD1hGYYzxxEtmMVVEPmPfCO5LgClhjcqExIzVO/jNK3MoLq/kgaTXuFDdX9vQ6+H0+2ykqjHGMy+D8n7vNnZXjd1/TlXfC29Ypr6m/rSNa/4zl7JKP//XbCI/93/qnBj0a8sojDGHzFOrptvzyRq0G4nPlmzh92/Mo8Kv3Jn6EZdVfOCc6H85jHvYMgpjzCGrs8JaRM4XkZUiUiAiu0WkUER2N0Rw5tB9ungL17/uZBR/TPuWqyomOCf6XABnP25tFMaYw+KlZPEgcJaqLgt3MKZ+vly6lRsmzKMyoFyVsYTxxc84J3qcCuc9axMCGmMOm5evmVsto4h+U5Zv4zq3RHFB5gbuKH0Y0QC0GwgXvdKol300xkSel5LFHBH5L/A+UFZ10EZwR48Zq3ZwzWtzKfcHGJWRz0MV/0D8ZdCyO/ziLUhIiXSIxphGzktm0RwoBk4LOqZYg3dUWJiTz29fnUN5ZYD+GX6ej3sIX1EBNGsF//OuLVpkjAkJL11nr2yIQMyhW7WtkCtenkVRuZ9OzWP4b9oTxG5cC7GJcOkESO8S6RCNMU1EnZmFiCQCvwaOARKrjqvqVWGMy9RhU34Jl78wi13FFWQkx/FRt7dJWP69c/Lcp6FDneuvG2OMZ14auP8DtAFOB74BOgCF4QzK1K6gpIIrXp7Flt2lpCbE8tGQH2m+/L9LHpb/AAAgAElEQVTOyVG3Q59aJww2xphD5iWz6KGqdwBFqvoK8DOgb3jDMjUpq/Rz7X/msmLrHuJihAmnldP2h/uck30vghE3RTZAY0yT5KWBu8J9zxeRPsAWoEvYIjI1UlVueXsR36/JA+Bf47Lo893PQf3Q5lg463EbnW2MCQsvmcVzIpIO3A5MAlKAO8IalanW//tyJe8v2ATArad25vTF10NxHiS1hJ+/ZosXGWPCxktvqBfczWlAt/CGY2oyaeEmHv9qJQCXDunENXuehs0LQHxw4UuQ3jnCERpjmjKbKKgRWJCTz81vLQRgePcM/tblR2TBa87JU+6C7qMiGJ0x5khgmUWU21JQytWvzqGsMkCXjGSeOSOF2E/+7JzsORZOGB/ZAI0xRwRbeDmKlVX6ufa1uWwrLCM1MZYXL+tD8/fPgopiaNERzn3KGrSNMQ3CyxTlySJyh4g87+5ni8iZ4Q/N3D1pKQty8hGBxy8dQPc5d8P2ZeCLddopkltGOkRjzBHCSzXUyzgTCA5z93OBv4ctIgPAm7M2MGHWBgD+PKYnoyqmw/ygdoqOQyIYnTHmSOMls+iuqg/ijrdQ1RLAU92HiJwhIj+JyCoRubWa851F5CsRWSQiU0WkQ9A5v4gscF+TPH6eJmFBTj53frAEgNN6t+a6AYnw0Z+ckz3GwLDfRzA6Y8yRyEubRbmIJOHMNIuIdCdoqvKaiEgM8CQwBqc0MltEJqnq0qDLHgZeVdVXRGQ08A/gf9xzJara3/tHaRryi8u5/vV5lPsDdM9qxj8v6ovvvxdAaQEkZ8A5T9pqd8aYBuflr85dwKdARxF5HfgK+IuH+4YAq1R1jaqWA28C5xxwTW/3eQBTqjl/RFFVbnprIRvzS0iKi+GZy48jdd4zsG66c8E5T0Jq68gGaYw5ItWZWajqF8D5wBXABGCQqk718Oz2QE7Qfq57LNhC4AJ3+zwgVUQy3P1EEZkjIjNF5NzqEhCRq91r5mzfvt1DSNHt+elr+HLZNgD+fm4fsgNr4au/OSePuxKOGhvB6IwxRzIvvaFG4ExPXgjsBnq7x+q8tZpjesD+TcDJIjIfOBnYCFS65zqp6iDgMuBRt/pr/4epPqeqg1R1UFZWloeQotfc9Tt54NOfALjouA5c0K8VvHctBCogowecfl+EIzTGHMm8tFncHLSdiFO9NBcYXcd9uUDHoP0OwKbgC1R1E06pBRFJAS5Q1YKgc6jqGhGZCgwAVnuIt9EpKKngDxMW4A8oPVuncO85fWDaP2DbEmc6j/OehfhmkQ7TGHME8zI31FnB+yLSEXjQw7NnA9ki0hWnxHAJTikh+FmZwE5VDQC3AS+5x9OBYlUtc685wWOajY6qcvv7i9mYX0JCrI8nLxtI0o5FMP0R54Lhf7CFjIwxEXc43WpygT51XaSqlcDvgc+AZcBEVV0iIveKyNnuZSOBn0RkBdAaqKprORqYIyILcRq+7z+gF1WT8e68jXy40Clw3XFmb7Iz4uH965xpx7N6wcjbIhyhMcZ4W1b1Cfa1NfiA/jgN03VS1cnA5AOO3Rm0/TbwdjX3zeAIWGBp3Y4i7vxgMQBjerfmF8d3gin3wbalTvXTOU9BXGIdTzHGmPDz0mYxJ2i7Epigqt+FKZ4jRqU/wJ8mLqCo3E/r5gk8cMGxyNYl8O3/cy44YTx0OC6yQRpjjKvWzMIdWDdGVS9voHiOGM9OW8P8DfkA/POi/rRMioE3/gCBSsjIhpMPGvBujDERU2ubhar6gSwRiW+geI4ISzft5tEvVwBwxfAunJidCbNfgI1znQvOetSqn4wxUcVLNdQ64Dt3fqaiqoOq+ki4gmrKyir93DhxARV+pVtmM245oxcU5MJX9zoXDPwldDkxskEaY8wBvGQWm9yXD0h1jx04uM549OiXK1m+pRCfwD8v7kdSnA/evgnK90CzVjDm3kiHaIwxB/GSWSxV1beCD4jIRWGKp0lblJvPs9844wqvG9mDAZ3SYdmHsOIT54Kx90NSegQjNMaY6nkZZ1FdR3/r/H+IyisD/OXtRQQUerZO4Q+nZEN5MXzq/ih7nArHnB/ZII0xpgY1lixEZCwwDmgvIo8HnWrOvvmbjEdPT129t/rpwQv7ER/rg6/+CQU5EBMPYx+0JVKNMVGrtmqoTThjLM7GmQuqSiHwp3AG1dT8tKWQf01ZCcBvTupG/45psGMVzHDz4BP+CBkHzZNojDFRo8bMQlUXAgtF5A1VrWjAmJoUf0D5yzuLqPArXTObceOYnqAKn/wF/OXQohOcaHmvMSa6eVnPwjKKenht5noW5jiD7+4/vy+JcTGw/CNY7a75NPZ+iE+OYITGGFM3W58zjLYUlPLQZ84aFZcM7sjx3TKgohQ++1/nguzT4KhxEYzQGGO8scwijO75cAl7yirJaBbPrWN7OQdnPgX5G8AXB6f/wxq1jTGNgpdZZ3viLIDUOfh6Va1r8aMj2pdLt/LJ4i2AM/V4WnI8FG6F6f90Ljj+GsjsEcEIjTHGOy+D8t4CngGeB/zhDadpKCn3c9ekJQCclJ3JOf3bOSe+/pszUjupJYy4uZYnGGNMdPGSWVSq6tNhj6QJeXLKKjbmlxAf6+Nv5/RBRGDzQpj/mnPB6L9CUlpkgzTGmEPgpc3iQxG5TkTaikjLqlfYI2uk1u4o4rlpawC4dkQ3umQ2c7rKfnoboJB1NAy8IqIxGmPMofJSsviV+x5cb6JAt9CH07ipKndNWkK5P0D7tCR+N9Jtk/jpE1jvrhd1+n0Q4+XHbowx0aPOv1qq2rUhAmkKPluylWkrtgNw11m9SYqPAX8lfHm3c0GPU6HHKZEL0BhjDlOd1VAikiwit4vIc+5+toicGf7QGpfSCj9/+2gpACOPymJM79bOiQWvw46fAIFT745UeMYYUy9e2ixeBsqB4e5+LvD3sEXUSD03bQ0b80uIixHuOusYp1G7vBim/sO54NifQ5u+kQ3SGGMOk5fMoruqPghUAKhqCWAjyYJsKSjl6anOOhVXndCVrpnNnBMzn4LCzc6ssqP/GsEIjTGmfrxkFuUikoS7Op6IdAfKwhpVI/PAp8spqfCTmRLP70e7jdpFefDdY872kKshrVPkAjTGmHry0i3nLuBToKOIvA6cAFwRzqAak3kbdvHe/I0A3HTaUaQmxjknvn0EynZDYgs46c8RjNAYY+rPS2+oL0RkHjAUp/ppvKruCHtkjYCq7m3U7t22ORcN6uic2L0JZr/gbJ/wR0i2YSnGmMbNS28oAcYCx6nqR0CyiAwJe2SNwEeLNjN/gzP9+J1n9SbG5zblTHsYKkuhWZYzB5QxxjRyXtosngKGAZe6+4XAk2GLqJEoq/Tz4GfLATitd2uGdstwTuxaB/NedbZP+jPEN4tMgMYYE0Je2iyOV9WBIjIfQFV3iUh8mOOKev/5fj05O0uI8Qm3VE0/DvDNQxCogObt4bgrIxegMcaEkJeSRYWIxLCvN1QWEAhrVFGuoLiCJ75eBcBlQzrRPSvFObFjJSx8w9kecTPEJUYoQmOMCS0vmcXjwHtAKxG5D/gW+L+wRhXlnpy6ioKSClISYhl/ava+E1P/ARqA9C4w4PKIxWeMMaHmpTfU6yIyFzgFpzfUuaq6LOyRRamN+SX8+7t1AFx7cjcyUxKcE9t/gsXvOtsn3woxcZEJ0BhjwsDLSnn3AtOBf6tqUfhDim6PfrGCcn+AVqkJ/PrEoIl3pz0EKLTsBn0vilh8xhgTDl6qodbh9ISaIyKzROSfInKOl4eLyBki8pOIrBKRW6s531lEvhKRRSIyVUQ6BJ37lYisdF+/OvDeSFi5tZB35uUCMP7UbGdWWXDaKha/42yfdJNNQW6MaXLqzCxU9SVVvQoYBbwGXOS+18ptFH8SZ4xGb+BSEel9wGUPA6+q6rHAvcA/3Htb4owcPx4YAtwlIuleP1S4/PPzFQQUumQkc3HVADxw1tWuaqs49uKIxWeMMeHiZVDeCyIyA3gap9rqQsDLH+4hwCpVXaOq5cCbwIElkt7AV+72lKDzpwNfqOpOVd0FfAGc4SHNsFmYk8+nS7YAcONpRxEX4/7o8lbDoonO9kl/trYKY0yT5KUaKgOIAfKBncAOVa30cF97ICdoP9c9FmwhcIG7fR6QKiIZHu9FRK4WkTkiMmf79u0eQjp8VQPwerdtzpl92+47Mf0RUD+06AT9Lq3hbmOMady8VEOdp6rHAw8CacAUEcn18OzqpjHXA/ZvAk52B/ydDGwEKj3ei6o+p6qDVHVQVlaWh5AOz4xVO/huVR4AN59xFL6qaT12rYOFE5ztk260UoUxpsny0hvqTOAkYARO9dPXOL2j6pILBFXs0wHYFHyBqm4CznfTSQEuUNUCNzMaecC9Uz2kGXKqyiNfrABgUOd0RvYMypRmPOGUKpq3h/6/iER4xhjTILxUQ40F5uH8Ie+lqleq6kse7psNZItIV3d6kEuAScEXiEimiFTFcBtQ9dzPgNNEJN1t2D7NPdbgpq/cwZz1uwC48bSezgp4wHcLllI+25kD6hXOYuqq/EiEZ4wxDcJLZrFHVf/rlgIAEJEH6rrJbdf4Pc4f+WXARFVdIiL3isjZ7mUjgZ9EZAXQGrjPvXcn8DecDGc2cK97rEEFlyqGdmvJ8O6ZAExdvo21Hz1MPOUUSHMmBkZx56QlTF2+raFDNMaYBuFlQMAY4JYDjo2t5thBVHUyMPmAY3cGbb8NvF3DvS+xr6QREVN/2s6CHKfE8KdTe+49/urUH3m88hMAPkw8G19CCnHllTw7bQ0je7WKSKzGGBNONWYWIvI74Dqgu4gsCjqVCnwX7sAiLbhUcWKPTI6vmoIcGLLjXVIoppgkPk48E4CkuBhydxVHJFZjjAm32koWbwCf4AyUCx59XRiJKqGG9tWybfy4sQCAP40JmiywooRLAx8B8FniGezxpQJQUuGnQ3pyg8dpjDENocY2C1UtUNV1qnopTq+m0aq6HvCJSNcGizACVJUnvl4JwEnZmRzXOWhZ1AWv0yKQTwWxvBlzFqpKcXklFX7lmhHdaniiMcY0bl66zt4FDAKOAl4G4nGm+zghvKFFzjcrtrMw1ylVjD8lqFQR8MOMfwGwo9t5+ErbU7CrmA7pyVwzopu1VxhjmiwvDdznAQNwus+iqptEJDWsUUWQU6pwFjYa1i2DQV2CShXLP4ZdawFoO/YvTMjqWd0jjDGmyfHSdbZcVZV9K+U16UWlv1+dx1x3XMUNp/Q44KRTqqDnGWAZhTHmCOIls5goIs8CaSLyW+BL4PnwhhU5j7ttFYM6pzMsqAcUObMg5wdne9jvIxCZMcZEjpeV8h4WkTHAbqAncKeqfhH2yCJg9rqdzFzjdPT6wynZe0drA87UHgBt+0OXEyMQnTHGRI7XVXp+BJJwqqJ+DF84kfXUFKetol+HFpyUnbnvxM41sOxDZ3v4DSDVzXNojDFNl5f1LH4DzMKZ8O9CYKaIXBXuwBrass27mfKTM835daN67F+qmPk0oNC8A/T2tEigMcY0KV5KFjcDA1Q1D8Bdb2IGEZ6KI9SenroagB6tUhhzdOt9J0p2wXx3YcChv7NpyI0xRyQvmUUuUBi0X8j+CxM1ehvyivlokTNP4rUnd9+3XgXAvP9ARTHEp8DA/9l3fMUXMOMxyF8PaZ1h+HjoOaaBIzfGmIZR29xQN7qbG4EfROQDnDaLc3CqpZqM56avJqDQrkUiZ/drt+9EwA+z3I5f/X8BiS2c7RVfwCc3gS8eEtOhcKuzz8OWYRhjmqTa2ixS3ddq4H32rVT3AbA5zHE1mG2FpUyc4yz895uTuhEfG/Qj+WkyFGxwto+/Zt/xGY85GUV8stPYHZ/s7M94rAEjN8aYhlNjyUJV72nIQCLl5e/WUV4ZID05jkuGdNz/5A/POu/Zp0FG933H89c7JYpgcUmQvyG8wRpjTIR47TrbZA3tlsEPa/I4uWcrkuODfhxbFsM6d/XY46/d/6a0zk7VU3zQLLMVJZDWKfwBG2NMBBzxmcXJPbMYkZ2JP6D7n/jhaec9syd0H73/ueHjnTaKcpwSRUUJBMqd48YY0wR5me6jyRMRYmOCfhRFebDoLWf7+GsOHoTXcwyMfRhSW0NpvvM+1hq3jTFNl5cpyrOA3wJdgq9X1SY3MG+vea+AvwwSWsCxl1R/Tc8xljkYY44YXqqhPgCm40wg6A9vOFEg4Ie5LzvbAy6HhJTIxmOMMVHAS2aRrKq3hD2SaLHqy329mgY13cKTMcYcCi9tFh+JyLiwRxItZr/gvHcbCZk9arvSGGOOGF4yi/E4GUapiBS6r93hDiwidq6Fle7s64N/E9lYjDEminhZz6LJLqF6kLkvAwqp7aDn2EhHY4wxUcPTOAsRORsY4e5OVdWPwhdShFSUOpMGAgy6EmKO+CEoxhizl5f1LO7HqYpa6r7Gu8ealqUfQMlO8MXCwF9GOhpjjIkqXr4+jwP6q2oAQEReAeYDt4YzsAY350Xn/eizILVNZGMxxpgo43UEd1rQdotwBBJRW5dCzg/O9nFXRjYWY4yJQl5KFv8A5ovIFEBw2i5uC2tUDW3eK857y27QdUTt1xpjzBHIS2+oCSIyFRiMk1ncoqpbwh1Yg6kogYVvOtsDf3XwPFDGGGNqroYSkV7u+0CgLc7yqjlAO/dY07B0kjMZoC/OWQ3PGGPMQWorWdwIXA38s5pzCoyu5vh+ROQM4DEgBnhBVe8/4Hwn4BWcNpEY4FZVnSwiXYBlwE/upTNV9YBFJUKkqgqq1zhIyQpLEsYY09jVtlLe1e77qMN5sIjEAE8CY3BKJbNFZJKqLg267HZgoqo+LSK9gck4s9sCrFbV/oeTtmfbV8D675zt464Ia1LGGNOYeRlncZGIpLrbt4vIuyIywMOzhwCrVHWNqpYDbwLnHHCNAs3d7RbAJu+hh0BVqSKtM3Qd2aBJG2NMY+Kl6+wdqlooIicCp+NUGz3j4b72OG0cVXLdY8HuBi4XkVycUsUNQee6ish8EflGRE6qLgERuVpE5ojInO3bt3sIKUhlGSx4w9ke+Evw2TpQxhhTEy9/IavWsPgZ8LSqfgDEe7ivum5FB6xdyqXAv1W1A87gv/+IiA/YDHRS1QE4bSdviEjzA+5FVZ9T1UGqOigr6xDbG36a7IzYlhhr2DbGmDp4ySw2isizwMXAZBFJ8HhfLtAxaL8DB1cz/RqYCKCq3wOJQKaqlqlqnnt8LrAa6OkhTe/mv+a8Z58GzduG9NHGGNPUePmjfzHwGXCGquYDLYGbPdw3G8gWka4iEg9cAkw64JoNwCkAInI0TmaxXUSy3AZyRKQbkA2s8ZCmNwUbYfXXzvYAK1UYY0xdvIzgbgt8rKplIjISOBZ4ta6bVLVSRH6Pk9HEAC+p6hIRuReYo6qTgD8Dz4vIn3CqqK5QVRWREcC9IlKJUw12raruPJwPWK2FE0ADkJwJ2aeH7LHGGNNUecks3gEGiUgP4EWc0sEbOG0MtVLVyTgN18HH7gzaXgqcUM1977jphp4qLHjd2T725xDrpfnFGGOObF6qoQKqWgmcDzyqqn/CKW00Thu+h51ujdaAyyMbizHGNBJeMosKEbkU+CVQtehRXPhCCrP5bqmi3UBo3TuysRhjTCPhJbO4EhgG3Keqa0WkK/BaeMMKk7I9sOQ9Z9sato0xxjMvs84uFZFbgE7u/lqgca6Ut/R9qCiC2EToc2GkozHGmEbDy3QfZwELgE/d/f4icmAX2MZhwQTnvdfPICmt9muNMcbs5aUa6m6ceZ7yAVR1AdA1jDGFR/4GWP+ts93vssjGYowxjYyXzKJSVQsOOHbgtB3Rb9F/nfeU1tBtZCQjMcaYRsfLOIvFInIZECMi2cAfgBnhDSvEVPethtf3Iojx8rGNMcZU8VKyuAE4BijDGYxXAPwxnEGF3Ma5kLfK2e53SWRjMcaYRqjWr9ju/Ez3qOrNwF8bJqQwqCpVtO4DbfpGNhZjjGmEai1ZqKofOK6BYgmPynJY/LazbaUKY4w5LF4q7+e7XWXfAoqqDqrqu2GLKpRWfg4lu0B8TnuFMcaYQ+Yls2gJ5AGjg44p0Dgyi0VuFVS3UZDaJrKxGGNMI+VlBPeVDRFIWJTsghWfOdtWBWWMMYetzsxCRB6v5nABzpoUH4Q+pBBa9iH4yyEu2Rm1bYwx5rB46TqbCPQHVrqvY3Gqpn4tIo+GMbb6WzTRee/1M4hvFtlYjDGmEfPSZtEDGO2uaYGIPA18DowBfgxjbPWzexOsc6f3sIZtY4ypFy8li/ZA8NfyZkA7t1ttWViiCoXF7wIKSS2h++g6LzfGGFMzLyWLB4EFIjIVEGAE8H8i0gz4Moyx1c+Pbznvx5wHMY13rSZjjIkGXnpDvSgik3FmnhXgf1V1k3v65nAGd9h2rITNC5xtq4Iyxph687KehQCnAP1U9X0gVkSGhD2y+qgqVbToCB2Pj2wsxhjTBHhps3gKZ1nVS939QuDJsEVUX6r7Mos+F4DPy0c0xhhTGy9tFser6kARmQ+gqrtEJD7McR2+TfNg5xpn26qgjDEmJLx87a5wZ59VABHJAgJhjao+FruzkGT1gjZ9IhuLMcY0EV4yi8eB94BWInIf8C3wf2GN6nAFArDkfWe7zwWRjcUYY5oQL72hXheRuTiN3AKcq6rLwh7Z4cidDbtzne1jzotsLMYY04TUtfiRD1ikqn2A5Q0TUj0scaugWveFzOzIxmKMMU1IXYsfBYCFItKpgeKpn71VUFaqMMaYUPLSG6otsEREZrH/4kdnhy2qw1G+B/ZscbaPOT+ysRhjTBPjJbO4J+xRhEJJvvPebgC07BrZWIwxponx0sD9TUMEUm8l+UCCNWwbY0wYNJ3hzYEK590yC2OMCbmwZhYicoaI/CQiq0Tk1mrOdxKRKSIyX0QWici4oHO3uff9JCKne0qww2BIaxxt8cYY05h4abM4LO6o7ydxFknKBWaLyCRVXRp02e3ARFV9WkR6A5OBLu72JcAxQDvgSxHp6a6hUTNr2DbGmLDwMuvsme43/50isltECkVkt4dnDwFWqeoaVS0H3gTOOeAaBZq72y2AqqnPzwHeVNUyVV0LrHKfV7PWx0C/SzyEZYwx5lB5qYZ6FPgVkKGqzVU1VVWb13UTzgp7OUH7ue6xYHcDl4tILk6p4oZDuBcRuVpE5ojInO07CyC5pYewjDHGHCovmUUOsFhV9RCfLdUcO/AZlwL/VtUOwDjgP+6ocS/3oqrPqeogVR2UlZV1iOEZY4zxykubxV+AySLyDUFrbqvqI3Xclwt0DNrvwL5qpiq/Bs5wn/e9iCQCmR7vNcYY00C8lCzuA4qBRCA16FWX2UC2iHR117+4BJh0wDUbcCYoRESOdtPY7l53iYgkiEhXIBuY5SFNY4wxYeClZNFSVU871AeraqWI/B74DIgBXlLVJSJyLzBHVScBfwaeF5E/4VQzXeFWdy0RkYnAUqASuL7OnlDGGGPCRupqihCR+4GvVfXzhgnp8AwaNEjnzJkT6TCMMaZREZG5qjqoruu8VENdD3wqIqVut1mvXWeNMcY0EV7mhvLSPmGMMaYJq7MaCkBEzgZGuLtTVfWjsEZ1GERkO7A+0nEcIBPYEekgahCtsVlchy5aY4vWuCB6Y4tEXJ1Vtc6xB17bLAYDr7uHLgXmqupBcz2Z/YnIHC91gZEQrbFZXIcuWmOL1rggemOL1rjAW2+ocUB/d9U8ROQVYD5gmYUxxhwhvM46mxa03SIcgRhjjIleXkoW/wDmi8gUnGk4RgC3hTWqpuO5SAdQi2iNzeI6dNEaW7TGBdEbW7TGVXubhYgIzlQblTjtFgL8oKpbGiY8Y4wx0cBLA/dcVT2ugeIxxhgThby0WcwUkcFhj8QYY0zU8pJZjAK+F5HV7tKnP4rIonAH1liISEd3adhlIrJERMZXc81IESkQkQXu684GjG+d+ztbICIHzYcijsfdJWwXicjABojpqKCfxQJ3Ua0/HnBNg/3MROQlEdkmIouDjrUUkS9EZKX7nl7Dvb9yr1kpIr9qgLgeEpHl7u/qPRFJq+HeWn/vYYjrbhHZGPT7GlfDvbUutRym2P4bFNc6EVlQw73h/JlV+3ciGv6deaaq1b6Aru575+peNd13pL2AtsBAdzsVWAH0PuCakcBHEYpvHZBZy/lxwCc47VFDcdqkGjK+GGDLgf+mGvJnhtNpYyDOui1Vxx4EbnW3bwUeqOa+lsAa9z3d3U4Pc1ynAbHu9gPVxeXl9x6GuO4GbvLwu14N/P/2zj32q7KO4683F4t7hUSYNYaizQApyQEqo2mk1BCMQNZmSlvaspVs6NKt6x9q5JxdvGUMYoRFpFLDAV2ADbmUGKB5r2wUoWUrtOUQPv3xfL7jdDjnfL/A7/s9P/l9Xtuzc85zOc/n+3yf7/N8n9vnMwo4CdiZ/620Q7Zc+G3Al2oos8J2ojvUs1Zd1cjiJ35dbGYv5F1Fuh6Fme01sx1+vx94kgKrft2YS4EfWGIr8BZJIzqY/4XA83XWKTPbBLyc874UWOr3S4GZBUk/DKw3s5fN7J/Aetw+S7vkMrN1Zva6P24lbUDpKCXl1QqtmFpum2y+YWcOsKIr82yFinai9nrWKlWdRS9JXwbOkLQg7zol4BsJSSOB9wHbCoInSdop6WFJ7+2gWAask/SopE8XhLdkwraNXE75j7euMgMYbmZ7If3QgbcXxKm77OaTRoVFNPve28G1Pj22uGQ6pe7yugDYZ2bPloR3pMxy7cQboZ4B1Z3F5cB/SWcxBhW4IIOkgcAq4AtmltfKu4M0zXI28G3gwQ6Kdp6ZvR+4BPispCm58JZM2LYDJaNYM4CVBcF1llmr1Fl2N5G2tC8vidLse+9q7gJOA8YDe0nTPXlqKy9nHtWjih7BqPcAAAaDSURBVLaXWZN2ojRZgV8nyw2oOJRnZk8Dt0raZWZl/14CQFJfUgVYbmY/zYdnK4WZrZF0p6STzaztCsPM7K9+fVHSA6SpgE2ZKHWasL0E2GFm+/IBdZaZs0/SCDPb69NyLxbE2UNaW2lwKrCh3YL5AudHgQvNJ7XztPC9dynZ71DS94AiZaO11TVJfYDLgNJjAO0us5J2otvWszxNd0NFR1GNz4N+H3jSSuySS3qHx0PSuaRy/0cHZBsgaVDjnrQ4+ngu2mrgCiUmAv9qDIs7QOk/vbrKLMNqoLHr5JPAQwVx1gLTJL3Vp12muV/bkHQxcAMww8z+UxKnle+9q+XKrnPNKsmvFVPL7eIi4Ckz21MU2O4yq2gnumU9K6TTK+onmgPOJw0JdwG/czcduAa4xuNcCzxB2v2xFZjcIdlGeZ47Pf+b3D8rm4Dvknap7AYmdEi2/qTGf0jGr5YyI3VYe4EDpH9xnwKGAr8EnvXr2zzuBOC+TNr5wHPuruqAXM+R5q8bde1uj3sKsKbqe2+zXMu8/uwiNYAj8nL583TSTqDnu1quMtncf0mjbmXidrLMytqJ2utZq64lexZBEARBz6ZyGkrSYEmnFfiPa59IQRAEQXejtLOQNAd4CljlJw6zKj+WtFuwIAiCoPtQNbK4ETjHzMYDVwHLJF3mYUVbuYIgCIITlCp7Fr3t8GGR7ZI+CPxc0qnUsMc3CIIgqI+qkcX+7HqFdxxTScfTO32aNgiCIKiRqs7iM/lwSzpNLiZt4wqCtiDJJC3LPPeR9JKkooNex5vXBkkTjjHtTElndcW7PP0iXx9clPOfKmly5nmJpNnHkc+Nx5o26LmUdhZmttOKdagcaqM8QQDwKjBGUj9//hDwlxrlKWMmSXNoV3E1STPpwpz/VGDykdGPmcLOwg9mtmK2IOiBVO2GGizpi5K+I2maV6TPkdTjzumciEEP5WHgI37/fye9JZ0r6RFJj/n1TPdfIGmx34+V9Lik/tmXSuon6X5XePcjoF8mbJqkLZJ2SFrpenwadg5ulbTd3en+T38GsEjJ/kFjyvbjHucZSRfkP5T/jha5bLslzXX/1cAAYFvDz/1Hkg4rXuf5NN45xT/7H7KjDEkLJf3GP99XC/K/Bejn71ouaaSSjYU7Sfq43lVRDudI2qikaG+tOqudOKibihOHD5G2yF4N/JikFncjML6O04Pheo4DXgHGkdTkv5l02nUqbt8CGMxhmw4XAav8vhdJl88s4LckxXD5dy8gqd3H83iddFr2ZE87wMNuwO0ekOwcNE6/X5GRYwkwO/PuDcBtfj8d+EVB/h/z31JvYDjwZw6fdn6lpDy+QsZWhOe70j/vWSS135DUQNxL2q3Yi6SfaUpR+WbuR5JmCyb6c2E5AH2BR4Bh7j+3UY7heoar2g01yszGAki6D/g78G5L6xZB0FbMbJf/q54HrMkFDwGWShpN2pnX19McknQlSaXCPWa2ueDVU4BvZfJoWH2cSGp4Nyc1PpwEbMmkW5G53l4hekNB3KOkhjjP+cAKMztIUiK3EfgAR68j6UEzOwT8XtJw95vm7jF/HgiMprkyvBcs2TKB8nI4ExgDrHf/3iS1GkEPoaqzONC4MbODkv4YHUXQYVYD3ySNKoZm/L8O/NrMZnmHsiETNpo0Mjml4r1FW79FMjAzr4U0VVvHX/PrQYp/X111Rum1zL0y15vN7J6jfNeruXcdUQ6SxgJPmNmko5Y0OCGoWsw6W8k28r8l7QfGNe4ltaqHPQiOh8XA18xsd85/CIcXvK9seEoaAtxBGj0MLdkxtAn4hMcfQ5qKgqSs8DxJp3tYf0lnZNLNzVwbI479HL1tl03AXEm9JQ1zWbc3SdNqPmuB+Zk1hndKKjKmc0BJXXYRZeXwNDBM0iT376vOG6QKaqRqN1RvMxvsbpCZ9cncD+6kkEHPxMz2mNkdBUHfAG6WtJk0HdLgduBOM3uGpAn1loLG8i5goE8/XY831Gb2EqnjWeFhW4H3ZNK9SdI24PPAde53P7DQF9qP0KFWwgOkabKdwK+A683sb03S/AyYlVvgPgIzWwf8ENgiaTdpzaeok7kX2CXpCMNJZeVgyQzqbJKNm52kdaSu3KEVdHNC62wQNEHSn0iq2ztleCkIuh2xpzoIgiBoSowsgiAIgqbEyCIIgiBoSnQWQRAEQVOiswiCIAiaEp1FEARB0JToLIIgCIKm/A954XhFysf85QAAAABJRU5ErkJggg==\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# define max depth range\n",
"depth_range = np.asarray(range(2,22,2))\n",
"\n",
"# initialize empty arrays to store the results\n",
"scores_train = np.zeros(len(depth_range))\n",
"scores_test = np.zeros(len(depth_range))\n",
"\n",
"for i in range(len(depth_range)):\n",
" # train DTR with given max depth\n",
" dt_Classifier = DecisionTreeClassifier(max_depth=depth_range[i], random_state=42)\n",
" model = dt_Classifier.fit(X_train, y_train)\n",
" # evaluate on both training and test datasets\n",
" scores_train[i] = model.score(X_train, y_train)\n",
" scores_test[i] = model.score(X_test, y_test)\n",
"\n",
"# plot the results on the same graph\n",
"ax = sns.regplot(x=depth_range, y=scores_train, order=3, ci=None,label='train')\n",
"sns.regplot(x=depth_range, y=scores_test,order=3, ci=None, label='test', ax=ax)\n",
"ax.legend(loc='best')\n",
"ax.set_ylabel('R2 from regression between true and predicted values')\n",
"ax.set_xlabel('Max depth of the tree')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"As the depth increases:\n",
"Both of training score and test score are increasing similary, we are not in the case of overfitting\n",
"\n",
"This method does the following:\n",
"- Splits the dataset K equal random subsests\n",
"- Trains the data on K-1 subsets\n",
"- Evaluates performance on Kth left out subset\n",
"- Stores evaluation metric\n",
"- Repeats for K times for each random subset\n"
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {},
"outputs": [],
"source": [
"# initialize empty array to store results\n",
"scores_cv = np.empty(len(depth_range))\n",
"for i in range(len(depth_range)):\n",
" # initialize model\n",
" dt_Classifier = DecisionTreeClassifier(max_depth=depth_range[i], random_state=42)\n",
" # calculate the cross val scores. This returns an array where each element corresponds to the performance on each k-fold.\n",
" cv_scores = cross_val_score(dt_Classifier, X_train, y_train,cv=5, n_jobs=-1)\n",
" # calculate mean cross validation score and save\n",
" scores_cv[i] = np.mean(cv_scores)"
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# plot results\n",
"ax = sns.regplot(x=depth_range, y=scores_cv, ci=None, order=3);\n",
"ax.set_xlabel('Max depth of the tree');\n",
"ax.set_ylabel('Average cross validated R2');"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.5"
}
},
"nbformat": 4,
"nbformat_minor": 2
}