【Data Procession】基于sklearn的决策树

本文详细介绍了决策树在分类和回归中的应用,包括决策树的组成、作用,以及如何在Python中使用sklearn库实现,包括数据导入、决策树生成、结果测试和可视化。以威斯康星乳腺癌数据集为例,展示了如何构建和评估决策树模型。
摘要由CSDN通过智能技术生成

决策树模型

第五章 基于sklearn的决策树



一、什么是决策树?

决策树是一种用于分类和回归的机器学习算法。它模拟了人类决策的过程,通过一系列的问题和条件判断从输入数据中推断出相应的输出。

1、决策树组成

决策树由一个根节点若干个内部节点若干个叶节点组成:
根节点表示开始的问题或条件;
内部节点表示根据特征或条件进行的判断;
叶节点表示最终的分类或回归结果
决策树的构建过程是通过选择最优的属性划分数据集,使得每个子节点包含尽可能纯的数据。

2、决策树的作用

分类问题中,决策树可以帮助我们根据特征对数据进行分类;
回归问题中,决策树可以帮助我们根据特征预测数据的数值。
决策树算法简单易懂,可解释性强,适用于处理多类别和数值型数据。


二、决策树的python实现

1、引入库

#-*- coding:utf-8 -*-
from sklearn.tree import export_graphviz
from sklearn.tree import DecisionTreeClassifier
import pydot # 引入可视化库

2、导入数据集

本文使用威斯康辛州乳腺癌数据集,数据集包含了威斯康辛州记录的569个病人的乳腺癌恶性/良性(1/0)类别型数据,以及与之对应的30个维度的生理指标数据,适用于二分类问题。

# 乳腺癌数据集
from sklearn.datasets import load_breast_cancer
cancer = load_breast_cancer()
# 划分数据集
from sklearn.model_selection import train_test_split
X_train,X_test,y_train,y_test = train_test_split(cancer['data'],cancer['target'],random_state=1) # 参数random_state是指随机生成器,1表示函数输出是固定不变的,但填0或不填,每次都会不一样

3、生成决策树

Scikit-learn涉及决策树生成的函数有:
分类决策树的类对应的是DecisionTreeClassifier;
回归决策树的类对应的是DecisionTreeRegressor
两者的参数定义几乎完全相同,但是意义不全相同。

tree = DecisionTreeClassifier() # 每次生成决策树不同
tree.fit(X_train,y_train)

4、结果测试

print('Train score:{:.3f}'.format(tree.score(X_train,y_train)))
print('Test score:{:.3f}'.format(tree.score(X_test,y_test)))

5、可视化

生成过程可能会报错:
FileNotFoundError: [Errno 2] "dot" not found in path.
可以通过:
1、从官网下载安装合适版本的graphviz:
graphviz下载网址
2、在终端中运行下面一行代码,找到pydot.py文件路径

python -c "import pydot; print(pydot.__file__)"

用编辑器打开 pydot.py,利用搜索找到

self.prog = 'dot'

所在位置,将其改为

self.prog = 'dot.exe'

python代码为:

#生成可视化图
export_graphviz(tree,out_file="tree.dot",class_names=['严重','轻微'],feature_names=cancer.feature_names,impurity=False,filled=True)
#展示可视化图
(graph,) = pydot.graph_from_dot_file('tree.dot')
graph.write_png('tree.png')

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值