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
- 输出回归树的pdf
tree_pic = export_graphviz(dtr, out_file="mytree.pdf")
但是输出结果,我截图如下:
这妥妥的没有树的感觉呀!所以我搜寻了第二种回归树的可视化的方法:
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")
结果是下面这样的
这样才是一个树的感觉嘛。
但是,第二种方法需要安装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.—完美解决
上一篇: Task1——两数之和
下一篇: 决策树可视化graphviz