ID3 Decision Tree Algorithm
ID3 is a Machine Learning Decision Tree Classification Algorithm that uses two methods to build the model. The two methods are Information Gain and Gini Index.
- Version 1.0.0 - Information Gain Only
- Version 2.0.0 - Gini Index added
- Version 2.0.1 - Documentation Sorted
- Version 2.0.2 - All Sorted
Installation
Install directly from my PyPi
pip install classic-ID3-DecisionTree
Or Clone the Repository and install
python3 setup.py install
Parameters
* X_train
The Training Set array consisting of Features.
* y_train
The Training Set array consisting of Outcome.
* dataset
The Entire DataSet.
Attributes
* DecisionTreeClassifier()
Initialise the instance of Decision Tree Classifier class.
* add_features(dataset, result_col_name)
Add the features to the model by sending the dataset. The model will fetch the column features. The second parameter is the column name of outcome array.
* information_gain(X_train, y_train)
To build the decision tree using Information Gain
* gini_index(X_train, y_train)
To build the decision tree using Gini Index
* predict(y_test)
Predict the Test Set Results
Documentation
1. Install the package
pip install classic-ID3-DecisionTree
2. Import the library
from classic_ID3_decision_tree import DecisionTreeClassifier
3. Create an object for Decision Tree Classifier class
id3 = DecisionTreeClassifier()
4. Add Column Features to the model
id3.add_features(dataset, result_col_name)
5. Build the Decision Tree Model using Information Gain
id3.information_gain(X_train, y_train)
OR
5. Build the Decision Tree Model using Gini Index
id3.gini_index(X_train, y_train)
6. Predict the Test Set Results
y_pred = id3.predict(X_test)
Example Code
0. Download the dataset
Download dataset from here
1. Import the dataset and Preprocess
- import numpy as np
- import matplotlib.pyplot as plt
- import pandas as pd
- dataset = pd.read_csv('house-votes-84.csv')
- rawdataset = pd.read_csv('house-votes-84.csv')
- party = {'republican':0, 'democrat':1}
- vote = {'y':1, 'n':0, '?':0}
- for col in dataset.columns:
- if col != 'party':
- dataset[col] = dataset[col].map(vote)
- dataset['party'] = dataset['party'].map(party)
- X = dataset.iloc[:, 1:17].values
- y = dataset.iloc[:, 0].values
- from sklearn.model_selection import KFold
- kf = KFold(n_splits=5)
- for train_index, test_index in kf.split(X,y):
- X_train, X_test = X[train_index], X[test_index]
- y_train, y_test = y[train_index], y[test_index]
2. Use the ID3 Library
- from classic_ID3_decision_tree import DecisionTreeClassifier
- id3 = DecisionTreeClassifier()
- id3.add_features(dataset, 'party')
- print(id3.features)
- id3.information_gain(X_train, y_train)
- OR
- id3.gini_index(X_train, y_train)
- y_pred = ig.predict(X_test)
Footnotes
You can find the code at my Github.
Connect with me on Social Media
Metadata
Release files for classic-ID3-DecisionTree 2.0.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| classic_ID3_DecisionTree-2.0.3.tar.gz | 7.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| classic_ID3_DecisionTree-2.0.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 15.5 kB
Release files / classic_ID3_DecisionTree-2.0.3.tar.gz
| Download URL | classic_ID3_DecisionTree-2.0.3.tar.gz |
|---|---|
| Size | 7.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
2e932b8281fe95727472c16f0c20d6d78ff3316932efdc3780646a0e9c7687f3
|
|
BLAKE2b-256 checksum How to use checksums |
ba62f6f88898f31a3a6c31f37325c3a584f79372f25339bac30cb03ec678419e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/50.3.0 requests-toolbelt/0.9.1 tqdm/4.47.0 CPython/3.8.3
|
Release files / classic_ID3_DecisionTree-2.0.3-py3-none-any.whl
| Download URL | classic_ID3_DecisionTree-2.0.3-py3-none-any.whl |
|---|---|
| Size | 8.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
f03a8702d59c99d4a5b5fe27009e3b86f052ad285b0733961aaf163c4d714047
|
|
BLAKE2b-256 checksum How to use checksums |
f35db36dc83b9df4da3ef762f11b24408e02b0b504416243b1e1c6babf9e4867
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/50.3.0 requests-toolbelt/0.9.1 tqdm/4.47.0 CPython/3.8.3
|