有监督学习——决策树

任务

1、基于iris_data.csv数据,建立决策树模型,评估模型表现;

2、可视化决策树结构;

3、修改min_samples_leaf参数,对比模型结果

代码工具:jupyter notebook

参考资料

20.23 决策树(1)_哔哩哔哩_bilibili

21.24 决策树(2)_哔哩哔哩_bilibili

博文:https://www.cnblogs.com/zwh0910/p/18708363

数据准备

数据集名称:iris_data.csv

点我转到百度网盘获取数据集 提取码: 8497

复制代码
#加载数据
import pandas as pd
data = pd.read_csv('iris_data.csv')
data.head()
复制代码
X= data.drop(['target','label'], axis = 1)
y = data.loc[:,'label']
print(X.shape, y.shape) #(150, 4) (150,)

建立模型

复制代码
#建立决策树模型
from sklearn import tree
dc_tree = tree.DecisionTreeClassifier(criterion = 'entropy', min_samples_leaf = 5)
#criterion='entropy'也就是采用ID3。min_samples_leaf:叶子节点最少样本数,少于最少样本数就没必要往下分了。
#决策树分裂出来的叶子最少要有5个样本,如果再往下分发现少于5个样本节点就没有必要往下分了
dc_tree.fit(X, y) #
复制代码
#预测
y_predict = dc_tree.predict(X)

from sklearn.metrics import accuracy_score
accuracy = accuracy_score(y, y_predict)
print(accuracy)#0.9733333333333334

决策树可视化

复制代码
import matplotlib.pyplot as plt
fig1 = plt.figure(figsize=(10,10))
tree.plot_tree(dc_tree, filled=True, feature_names 
               = ['SepalLength', 'SepalWidth', 'PetalLength','PetalLength','PetalWidth']
               , class_names=['setosa','versicolor','virginica'])
#填充底色, 分类名称
# filled=True表示根据不同的分类加上不同的背景颜色。feature_names是修改属性名称。class_names显示输出类别。

plt.show()
相关推荐
码界奇点7 小时前
Python从0到100一站式学习路线图与实战指南
开发语言·python·学习·青少年编程·贴图
智者知已应修善业7 小时前
【求中位数】2024-1-23
c语言·c++·经验分享·笔记·算法
地平线开发者7 小时前
PTQ 量化数值范围与优化
算法·自动驾驶
sali-tec7 小时前
C# 基于halcon的视觉工作流-章68 深度学习-对象检测
开发语言·算法·计算机视觉·重构·c#
测试人社区-小明8 小时前
智能弹性伸缩算法在测试环境中的实践与验证
人工智能·测试工具·算法·机器学习·金融·机器人·量子计算
罗西的思考8 小时前
【Agent】MemOS 源码笔记---(5)---记忆分类
人工智能·深度学习·算法
YJlio9 小时前
Active Directory 工具学习笔记(10.8):AdInsight——保存与导出(证据留存、共享与二次分析)
数据库·笔记·学习
qq_4335545411 小时前
C++数位DP
c++·算法·图论
噗噗夹的TA之旅11 小时前
Unity Shader 学习20:URP LitForwardPass PBR 解析
学习·unity·游戏引擎·图形渲染·技术美术
AshinGau11 小时前
Softmax 与 交叉熵损失
神经网络·算法