欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

python可视化决策树

程序员文章站 2022-04-08 12:59:25
...

直接上代码把:

import pandas as pd
from sklearn.tree import DecisionTreeRegressor
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_squared_error,r2_score,mean_absolute_error

读取数据:

df=pd.read_csv('housing_data.csv')  #数据是我自己以前爬的房价数据,这里用来演示

切分特征集和标签:

features=df[[column for column in list(df.columns) if column!='ln_unitprice']]
price=df['ln_unitprice']

构造训练集和测试集:

train_f,test_f,train_p,test_p=train_test_split(features,price,test_size=0.33)

构建回归树模型:

dtr=DecisionTreeRegressor()
dtr.fit(train_f,train_p)

接下来就是涉及到怎么将回归树进行可视化的步骤。一般采用的是graphviz软件。
首先,导入响应的包,如果每安装的话,可以先安装,一般在cmd中键入pip install 包名,就可以安装。

from sklearn.tree import export_graphviz
import graphviz
  1. 输出回归树的pdf
tree_pic = export_graphviz(dtr, out_file="mytree.pdf")

但是输出结果,我截图如下:
python可视化决策树
这妥妥的没有树的感觉呀!所以我搜寻了第二种回归树的可视化的方法:
2. 使用pydot进行可视化

from sklearn.externals.six import StringIO
import pydot
dot_data = StringIO()
tree.export_graphviz(dtr, out_file=dot_data,
                        feature_names=features.columns,
                        class_names=price.columns,
                        filled=True, rounded=True,
                        special_characters=True)
graph = pydot.graph_from_dot_data(dot_data.getvalue())
graph[0].write_pdf("housing.pdf")

结果是下面这样的
python可视化决策树
这样才是一个树的感觉嘛。

但是,第二种方法需要安装graphviz。不然在代码graph[0].write_pdf("housing.pdf")后会报错:FileNotFoundError: [WinError 2] “dot” not found in path。具体的操作方法可以借鉴:windows python3库pydot运行出现:FileNotFoundError: [WinError 2] “dot” not found in path.—完美解决

相关标签: 机器学习