Generate png output from decision tree
OS: Windows 7 +
import pandas as pd
import numpy as np
from sklearn import *
from sklearn.tree import export_graphviz
from mlxtend.plotting import plot_confusion_matrix
import matplotlib.pyplot as plt
df = pd.read_csv("https://raw.githubusercontent.com/abulbasar/data/master/credit-default.csv")
target = "default"
y = np.where(df[target] == 2, 1, 0)
X = df.copy() # features ... label is not included
del X[target]
X = pd.get_dummies(X, drop_first=True) # handle catergorical variables ... one hot encoding
X_train, X_test, y_train, y_test = model_selection.train_test_split(X, y
, test_size = 0.3, random_state = 1)
pipe = pipeline.Pipeline([
#("poly", preprocessing.PolynomialFeatures(degree=5, include_bias=False)),
#("scaler", preprocessing.StandardScaler()),
("est", tree.DecisionTreeClassifier(max_depth=3))
])
pipe.fit(X_train, y_train)
y_train_pred = pipe.predict(X_train)
y_test_pred = pipe.predict(X_test)
print("accuracy", metrics.accuracy_score(y_test, y_test_pred),
"\nprecision", metrics.precision_score(y_test, y_test_pred),
"\nrecall", metrics.recall_score(y_test, y_test_pred))
plot_confusion_matrix(metrics.confusion_matrix(y_test, y_test_pred))
est = pipe.steps[-1][-1]
export_graphviz(est, out_file = "tree.dot", feature_names = X.columns, filled=True)
Install graphviz using MSI on windows machine
https://graphviz.gitlab.io/_pages/Download/Download_windows.html
For the dot command to work, make sure you include the dot executable in the environment PATH variable. To do this, open command prompt and run the following command.
c:/> set PATH=%PATH%;”C:\Program Files (x86)\Graphviz2.38\bin\”
c:/> dot -Tpng tree.dot -o tree.png