在Python中使用决策树进行预测的可视化方法

2023-04-14 00:00:00 方法 预测 可视化

Python中可以使用Graphviz库将决策树可视化。
首先需要安装Graphviz库,可以使用pip命令进行安装:pip install graphviz
然后在代码中导入需要的库:

from sklearn import tree
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from graphviz import Source

接着加载数据,划分训练集和测试集:

iris = load_iris()
X, y = iris.data, iris.target
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)

使用决策树模型进行训练:

clf = tree.DecisionTreeClassifier()
clf.fit(X_train, y_train)

生成决策树图形:

graph = Source(tree.export_graphviz(clf, out_file=None))
graph.format = 'png'
graph.render('decision_tree')

上面的代码将生成一个名为decision_tree.png的文件,是决策树的图形。如果需要在notebook中显示图形则用:

from IPython.display import Image
Image(graph.pipe(format='png'))

这样就能够显示决策树了。
例如,我们可以使用上述代码来构建一个决策树,用于预测某个字符串是否属于“pidancode.com”或“皮蛋编程”:

import pandas as pd
data = [['pidancode', 1], ['编程皮蛋', 0], ['piandengyouxiji', 0], ['baidu.com', 0], ['pidancode.com', 1], ['皮蛋编程', 1], ['pidan', 1]]
df = pd.DataFrame(data, columns=['text', 'label'])
X = df.drop(['label'], axis=1)
y = df['label']
clf = tree.DecisionTreeClassifier()
clf.fit(X, y)
graph = Source(tree.export_graphviz(clf, out_file=None, feature_names=X.columns))
graph.format = 'png'
graph.render('decision_tree')
Image(graph.pipe(format='png'))

运行上述代码后生成的决策树如下所示:
decision_tree.png

相关文章