Skip to content

Instantly share code, notes, and snippets.

@psambit9791
Last active December 21, 2022 02:43
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 2 You must be signed in to fork a gist
  • Save psambit9791/dc0eead27e39e5abfed70677b914891b to your computer and use it in GitHub Desktop.
Save psambit9791/dc0eead27e39e5abfed70677b914891b to your computer and use it in GitHub Desktop.
A Basic Implementation of a Recursive ID3 Decision Tree
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"import pandas as pd\n",
"import operator\n",
"import pprint\n",
"\n",
"pp = pprint.PrettyPrinter(indent=2)\n",
"### Good Explanation: https://www.youtube.com/watch?v=UdTKxGQvYdc"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Data Preparation\n",
"\n",
"This basically involves converting the different fields into categorical variables\n",
"For example, in the following example: the feature **outlook** has three options that it can have: *Sunny*, *Rain* & *Overcast*. These 3 options can be converted into catefories."
]
},
{
"cell_type": "code",
"execution_count": 2,
"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>outlook</th>\n",
" <th>temp</th>\n",
" <th>humidity</th>\n",
" <th>wind</th>\n",
" <th>play</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>Sunny</td>\n",
" <td>Hot</td>\n",
" <td>High</td>\n",
" <td>Weak</td>\n",
" <td>No</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>Sunny</td>\n",
" <td>Hot</td>\n",
" <td>High</td>\n",
" <td>Strong</td>\n",
" <td>No</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>Overcast</td>\n",
" <td>Hot</td>\n",
" <td>High</td>\n",
" <td>Weak</td>\n",
" <td>Yes</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>Rain</td>\n",
" <td>Mild</td>\n",
" <td>High</td>\n",
" <td>Weak</td>\n",
" <td>Yes</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>Rain</td>\n",
" <td>Cool</td>\n",
" <td>Normal</td>\n",
" <td>Weak</td>\n",
" <td>Yes</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>Rain</td>\n",
" <td>Cool</td>\n",
" <td>Normal</td>\n",
" <td>Strong</td>\n",
" <td>No</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>Overcast</td>\n",
" <td>Cool</td>\n",
" <td>Normal</td>\n",
" <td>Strong</td>\n",
" <td>Yes</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>Sunny</td>\n",
" <td>Mild</td>\n",
" <td>High</td>\n",
" <td>Weak</td>\n",
" <td>No</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>Sunny</td>\n",
" <td>Cool</td>\n",
" <td>Normal</td>\n",
" <td>Weak</td>\n",
" <td>Yes</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>Rain</td>\n",
" <td>Mild</td>\n",
" <td>Normal</td>\n",
" <td>Weak</td>\n",
" <td>Yes</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>Sunny</td>\n",
" <td>Mild</td>\n",
" <td>Normal</td>\n",
" <td>Strong</td>\n",
" <td>Yes</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td>Overcast</td>\n",
" <td>Mild</td>\n",
" <td>High</td>\n",
" <td>Strong</td>\n",
" <td>Yes</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td>Overcast</td>\n",
" <td>Hot</td>\n",
" <td>Normal</td>\n",
" <td>Weak</td>\n",
" <td>Yes</td>\n",
" </tr>\n",
" <tr>\n",
" <th>13</th>\n",
" <td>Rain</td>\n",
" <td>Mild</td>\n",
" <td>High</td>\n",
" <td>Strong</td>\n",
" <td>No</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" outlook temp humidity wind play\n",
"0 Sunny Hot High Weak No\n",
"1 Sunny Hot High Strong No\n",
"2 Overcast Hot High Weak Yes\n",
"3 Rain Mild High Weak Yes\n",
"4 Rain Cool Normal Weak Yes\n",
"5 Rain Cool Normal Strong No\n",
"6 Overcast Cool Normal Strong Yes\n",
"7 Sunny Mild High Weak No\n",
"8 Sunny Cool Normal Weak Yes\n",
"9 Rain Mild Normal Weak Yes\n",
"10 Sunny Mild Normal Strong Yes\n",
"11 Overcast Mild High Strong Yes\n",
"12 Overcast Hot Normal Weak Yes\n",
"13 Rain Mild High Strong No"
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# dataset = pd.read_csv('data/car_eval_data/car.data').dropna()\n",
"dataset = pd.read_csv('data/play_tennis/play_tennis.csv').dropna()\n",
"dataset"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"outlook object\n",
"temp object\n",
"humidity object\n",
"wind object\n",
"play object\n",
"dtype: object\n"
]
}
],
"source": [
"print(dataset.dtypes)"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"outlook category\n",
"temp category\n",
"humidity category\n",
"wind category\n",
"play category\n",
"dtype: object\n",
"Determiner Class: play\n"
]
}
],
"source": [
"categorical_feats = list(dataset.columns)\n",
"for c in categorical_feats:\n",
" dataset[c] = dataset[c].astype('category')\n",
"determiner = categorical_feats[-1]\n",
"features = categorical_feats[:-1]\n",
"print(dataset.dtypes)\n",
"print(\"Determiner Class: \", determiner)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The variables as you can see are initially **objects** but after categorising them, their type changes to **category**."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Writing Utility Functions\n",
"\n",
"This section contains all the functions that are needed to actually determine the decisions in a decison tree. As you have read, decision tree works on the fundamental concept of entropy and the objective is to reduce the overall entropy of the dataset and what is the best way of splitting them.\n",
"\n",
"For this we need three important concepts:\n",
"* Entropy = $-\\sum_{n=1}^{i}p_i \\times log(p_i)$ where $p_i$ is probability of being in class i\n",
"* Average Information = $-\\sum_{c}p_c \\times \\sum_{n=1}^{i}p(i|c) \\times log(p(i|c))$ where $p_c$ is probability of being in class c and $p(i|c)$ is the probability of being in class i while also being in class c.\n",
"* Information Gain = Entropy - Average Information\n",
"\n",
"We aim to choose features which have the highest information gain for each split in the tree."
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [],
"source": [
"def calculate_entropy(feature):\n",
" entropy = 0\n",
" element, count = np.unique(feature, return_counts=True)\n",
" for i in range(len(element)):\n",
" prob = count[i]/np.sum(count)\n",
" entropy -= prob*np.log2(prob)\n",
" return entropy"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [],
"source": [
"def information_gain(data, split_feature, root_feature):\n",
" E_S = calculate_entropy(data[root_feature])\n",
" average_information = 0\n",
" attributes, count = np.unique(data[split_feature], return_counts=True)\n",
" for i in range(len(attributes)):\n",
" split_data = data.where(data[split_feature] == attributes[i]).dropna()[root_feature]\n",
" average_information += (count[i]/np.sum(count))*calculate_entropy(split_data)\n",
" information_gain = E_S - average_information\n",
" return information_gain"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [],
"source": [
"def split_dataset(data, feature, param):\n",
" holder = data.where(data[feature] == param).dropna()\n",
" return holder"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Entropy: 0.9402859586706309\n",
"Class: outlook \t IF: 0.2467498197744391\n",
"Class: temp \t IF: 0.029222565658954647\n",
"Class: humidity \t IF: 0.15183550136234136\n",
"Class: wind \t IF: 0.04812703040826927\n"
]
}
],
"source": [
"print(\"Entropy: \", calculate_entropy(dataset[determiner]))\n",
"for i in range(len(features)):\n",
" print(\"Class: \", features[i], \"\\t IF: \", information_gain(dataset, features[i], determiner))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Recursive ID3 Algorithm"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [],
"source": [
"def ID3(data, features, target_name=determiner):\n",
" if len(np.unique(data[target_name])) <= 1:\n",
" return np.unique(data[target_name])[0]\n",
" else:\n",
" #Identify which feature to use for splitting\n",
" feature_info_gain = [information_gain(data,feature,target_name) for feature in features]\n",
" best_feature = features[np.argmax(feature_info_gain)]\n",
" tree = {best_feature:{}}\n",
" \n",
" #create a new feature list\n",
" feats = [i for i in features if i != best_feature]\n",
" for param in np.unique(data[best_feature]):\n",
" # Build a subdata splitting them based on the categories of the best feature\n",
" subdata = split_dataset(data, best_feature, param)\n",
" # Create sub-trees for that feature\n",
" branch = ID3(subdata, feats, target_name)\n",
" # Add the branch to the tree\n",
" tree[best_feature][param] = branch\n",
" return tree"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"{ 'outlook': { 'Overcast': 'Yes',\n",
" 'Rain': {'wind': {'Strong': 'No', 'Weak': 'Yes'}},\n",
" 'Sunny': {'humidity': {'High': 'No', 'Normal': 'Yes'}}}}\n"
]
}
],
"source": [
"dtree = ID3(dataset, features)\n",
"pp.pprint(dtree)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Plotting the Decision Tree"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [],
"source": [
"import pydot\n",
"from IPython.display import Image, display"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {
"scrolled": false
},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<IPython.core.display.Image object>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"def draw(parent_name, child_name):\n",
" edge = pydot.Edge(parent_name, child_name)\n",
" graph.add_edge(edge)\n",
"\n",
"def visit(node, parent=None):\n",
" for k,v in node.items():\n",
" if isinstance(v, dict):\n",
" if parent:\n",
" draw(parent, k)\n",
" visit(v, k)\n",
" else:\n",
" draw(parent, k)\n",
" draw(k, k+\"_\"+v)\n",
"\n",
"graph = pydot.Dot(graph_type='graph')\n",
"visit(dtree)\n",
"tree_plot = Image(graph.create_png())\n",
"display(tree_plot)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"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.9"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment