python绘制决策树

python 复制代码
from sklearn.datasets import load_iris
from sklearn.tree import DecisionTreeClassifier 
from sklearn.model_selection import train_test_split
from sklearn.tree import export_graphviz
from IPython.display import Image  
import matplotlib.pyplot as plt
import pydotplus

# 1.定义X和y
X = df_churn.iloc[:, :-1]
y = df_churn.Status


# 2. 建立决策树模型
dt_model = DecisionTreeClassifier(max_depth=30, min_samples_split=50, min_samples_leaf=25, 
                                  max_leaf_nodes=100, class_weight='balanced', ccp_alpha=0.0001)
# Fit model to training data
dt_model.fit(X_train, y_train)

# 3. 决策树的可视化
tmp_dot_file = 'decision_tree_tmp.dot'
export_graphviz(dt_model, out_file=tmp_dot_file,filled=True,feature_names=X.columns, class_names=list(set(y)),impurity=False)
with open(tmp_dot_file) as f:
    dot_graph = f.read()
graph = pydotplus.graph_from_dot_data(dot_graph)
graph.write_pdf('example.pdf')    #保存图像为pdf格式
Image(graph.create_png())   #绘制图像为png格式

就可以得到这样的结果啦:

相关推荐
JaydenAI8 小时前
[LangChain之链]Runnable,不仅要可执行,还要可存储、可传输、可重建、可配置和可替换
python·langchain
躲在云朵里`8 小时前
Jeecgboot框架-权限控制
java·开发语言
江西理工大学小杨8 小时前
高性能 C++ 社交平台1:微服务架构设计
开发语言·c++·微服务
lihao lihao8 小时前
接口自动化测试—request模块
开发语言·python
lintax8 小时前
计算π值-割圆法
python·公式推导·计算π·割圆法
升讯威在线客服系统8 小时前
从 GC 抖动到稳定低延迟:在升讯威客服系统中实践 Span 与 Memory 的高性能优化
java·javascript·python·算法·性能优化·php·swift
Coisinilove9 小时前
MATLAB微分方程求解
开发语言·matlab·微分方程
鲨辣椒100869 小时前
线程函数接口补充
java·开发语言·算法
workflower9 小时前
需求-技术需求
python·测试用例·需求分析·软件需求
沐知全栈开发9 小时前
Java 枚举
开发语言