Create a DecisionTreeClassifier
instance with depth of 2:
clf = DecisionTreeClassifier(criterion='entropy',max_depth=2)
clf = clf.fit(X_train,y_train)
Confusion_matrix : (by using the builtin scikit-learn class)
cm = confusion_matrix(y, tr_pred)
#normalised confusion matrix
cm_normalised = cm/cm.sum(axis=1)[:, np.newaxis]
Visualise the normalised confusion matrix with heatmap:
def plot_confusion_matrix(cm, classes=None, title='Confusion matrix'):
"""Plots a confusion matrix."""
if classes is not None:
sns.heatmap(cm, xticklabels=classes, yticklabels=classes, vmin=0., vmax=1., annot=True)
else:
sns.heatmap(cm, vmin=0., vmax=1.)
plt.title(title)
plt.ylabel('True label')
plt.xlabel('Predicted label')
plt.figure()
plot_confusion_matrix(cm_norm, classes=clf.classes_)
rdf_clf = RandomForestClassifier(criterion='entropy',n_estimators=100)
rdf_clf.fit(X_train,y_train)