Lecture 7.2 - DTC Algorithm Implementation
Lecture 7.2 - DTC Algorithm Implementation
1. # importing libraries
2. import numpy as nm
3. import matplotlib.pyplot as mtp
4. import pandas as pd
5.
6. #importing datasets
7. data_set= pd.read_csv('user_data.csv')
8.
9. #Extracting Independent and dependent Variable
10. x= data_set.iloc[:, [2,3]].values
11. y= data_set.iloc[:, 4].values
12.
13. # Splitting the dataset into training and test set.
14. from sklearn.model_selection import train_test_split
15. x_train, x_test, y_train, y_test= train_test_split(x, y, test_size= 0.25, random_state=0)
16.
17. #feature Scaling
18. from sklearn.preprocessing import StandardScaler
19. st_x= StandardScaler()
20. x_train= st_x.fit_transform(x_train)
21. x_test= st_x.transform(x_test)
In the above code, we have pre-processed the data. Where we have loaded the dataset, which is
given as:
2. Fitting a Decision-Tree algorithm to the Training set
• Now we will fit the model to the training set. For this, we will import
the DecisionTreeClassifier class from sklearn.tree library.
• Below is the code for it:
In the above code, we have created a classifier object, in which we have passed two main
parameters;
o "criterion='entropy': Criterion is used to measure the quality of split, which is calculated by
information gain given by entropy.
o random_state=0": For generating the random states.
Out[8]:
DecisionTreeClassifier(class_weight=None, criterion='entropy', max_depth=None,
max_features=None, max_leaf_nodes=None,
min_impurity_decrease=0.0, min_impurity_split=None,
min_samples_leaf=1, min_samples_split=2,
min_weight_fraction_leaf=0.0, presort=False,
random_state=0, splitter='best')
Output:
• In the below output image, the predicted output and real test output are given.
• We can clearly see that there are some values in the prediction vector, which are different
from the real vector values. These are prediction errors.
4. Test accuracy of the result (Creation of Confusion matrix)
• In the above output, we have seen that there were some incorrect predictions, so if we want
to know the number of correct and incorrect predictions, we need to use the confusion
matrix.
• Below is the code for it:
Output:
In the above output image, we can see the confusion matrix, which has 6+3= 9 incorrect
predictions and62+29=91 correct predictions.
Therefore, we can say that compared to other classification models, the Decision Tree
classifier made a good prediction.
Output:
• The above output is completely different from the rest classification models.
• It has both vertical and horizontal lines that are splitting the dataset according to the age
and estimated salary variable.
• As we can see, the tree is trying to capture each dataset, which is the case of overfitting.
6. Visualizing the test set result:
Visualization of test set result will be similar to the visualization of the training set except that the
training set will be replaced with the test set.
Output:
• As we can see in the above image that there are some green data points within the purple
region and vice versa.
• So, these are the incorrect predictions which we have discussed in the confusion matrix.