决策树实例-红酒数据集

无参数模型

from sklearn import tree
from sklearn.datasets import load_wine
from sklearn.model_selection import train_test_split
import pandas as pdwine = load_wine()
df1 = pd.concat([pd.DataFrame(wine.data), pd.DataFrame(wine.target)], axis=1)
print(df1)
#查看特征
print(wine.feature_names)
#查看标签
print(wine.target_names)
#分割数据集
x_train, x_test, y_train, y_test = train_test_split(wine.data, wine.target, test_size=0.3)
print(x_train.shape)
print(wine.data.shape)
# 实例化classifier
clf = tree.DecisionTreeClassifier(criterion='entropy')
clf = clf.fit(x_train, y_train)
score = clf.score(x_test, y_test)
print(score)# feature_names 数据集的特征
feature_name=['酒精','苹果酸','灰','灰的碱性','镁','总酚','类黄酮','非黄烷类酚类','花青素','颜色强度','色调','od280/od315稀释葡萄酒','脯氨酸']
import graphviz
dot_data=tree.export_graphviz(clf,feature_names=feature_name,class_names=['琴酒','雪莉','贝尔摩德'],filled=True,rounded=True)
graph=graphviz.Source(dot_data)
graph.render('tree')
print(clf.feature_importances_)
print([*zip(feature_name,clf.feature_importances_)])

参数选择

random_state

clf = tree.DecisionTreeClassifier(criterion='entropy', random_state=30)
clf = clf.fit(x_train, y_train)
score = clf.score(x_test, y_test)
print(score)

splitter

#splitter有best,random两种参数
#best:模型会优先选择较为重要的特征进行分支
#random:分支随机选择,树会更深,降低过拟合
clf = tree.DecisionTreeClassifier(criterion='entropy', random_state=30,splitter='random')
clf = clf.fit(x_train, y_train)
score = clf.score(x_test, y_test)
print(score)# feature_names 数据集的特征
feature_name=['酒精','苹果酸','灰','灰的碱性','镁','总酚','类黄酮','非黄烷类酚类','花青素','颜色强度','色调','od280/od315稀释葡萄酒','脯氨酸']
import graphviz
dot_data=tree.export_graphviz(clf,feature_names=feature_name,class_names=['琴酒','雪莉','贝尔摩德'],filled=True,rounded=True)
graph=graphviz.Source(dot_data)
graph.render('tree')

剪枝策略

max_depth:限制深度

min_samples_leaf:每个叶子节点包含的最少样本数

min_samples_split至少包括多少个训练样本才允许分支

clf = tree.DecisionTreeClassifier(criterion='entropy', random_state=30,splitter='random', max_depth=3, min_samples_leaf=10,min_samples_split=10)
clf = clf.fit(x_train, y_train)
score = clf.score(x_test, y_test)
print(score)

超参数学习曲线

通过图像更加直观反映max_depth对结果的影响,确定调参区间

import matplotlib.pyplot as plttest = []
for i in range(10):clf = tree.DecisionTreeClassifier(criterion='entropy',max_depth=i+1, random_state=30,splitter='random')clf = clf.fit(x_train, y_train)score = clf.score(x_test, y_test)test.append(score)
plt.plot(range(1,11),test,color='r',label='max_depth')
plt.legend()
plt.show()
# apply返回每个测试样本所在的叶子节点索引
print(clf.apply(x_test))
# predict返回每个测试样本的分类/回归结果
print(clf.predict(x_test))

参考

https://www.bilibili.com/video/BV1sb411c7S6

决策树实例load_wine数据集相关推荐

  1. Embrapa酿酒葡萄实例分割数据集-Embrapa WGISD

    Embrapa酿酒葡萄实例分割数据集-Embrapa WGISD 数据集 目的 描述 组成 链接 数据集 点击下载数据集 目的 研究基于图像监控和葡萄栽培现场机器人的目标检测和实例分割.它提供了五个不 ...

  2. 【机器学习】决策树案例二:利用决策树进行鸢尾花数据集分类预测

    利用决策树进行鸢尾花数据集分类预测 2 利用决策树进行鸢尾花数据集分类预测 2.1 导入模块与加载数据 2.2 划分数据 2.3 模型创建与应用 2.4 模型可视化 手动反爬虫,禁止转载: 原博地址 ...

  3. 化学实验室自动化 - 1. 深度学习视觉检测(实例分割) - COCO格式的化学实验室常见物体实例分割数据集制作

    前言 随着自动化.智能化技术在各行各业获得了广泛应用,化学实验室领域也不可避免的迎来了变革.视觉检测是自动化和智能化的基础,本文将介绍化学实验室常见物体的COCO格式的实例分割数据集的制作方法,后续将 ...

  4. 1.决策树 实例:泰坦尼克号幸存者的预测

    决策树 文章目录 决策树 1.概述 1.1决策树是如何工作的 2 DecisionTreeClassififier与红酒数据集 2.1重要参数 2.1.1 criterion 2.1.2 random ...

  5. 【10月31日】机器学习实战(二)决策树:隐形眼镜数据集

    决策树的优点:计算的复杂度不高,输出的结果易于理解,对中间值的确实不敏感,可以处理不相关的特征数据 决策树的缺点:可能会产生过度匹配的问题. 其本质的思想是通过寻找区分度最好的特征(属性),用于支持分 ...

  6. python决策树实例_Python机器学习之决策树算法实例详解

    本文实例讲述了Python机器学习之决策树算法.分享给大家供大家参考,具体如下: 决策树学习是应用最广泛的归纳推理算法之一,是一种逼近离散值目标函数的方法,在这种方法中学习到的函数被表示为一棵决策树. ...

  7. 决策树实例之预测隐形眼镜类型

    本节我们将通过一个例子讲解决策树如何预测患者需要佩戴的隐形眼镜类别,使用小数据集,我们就可以利用决策树学到很多知识 使用决策树预测隐形眼镜类型 收集数据:提供的文本文件 准备数据:解析tab键分隔的数 ...

  8. 【机器学习实战】使用sklearn中的决策树对红酒数据集进行分类(Jupyter)

    1. sklearn中的决策树 2. sklearn基本建模流程 3.决策树的基本流程 4.代码实现 4.1 数据集 -- 红酒 特征值(前13列) 目标值(3类) 4.2 代码及结果 4.2.1 预 ...

  9. Facebook 开源高质量实例分割数据集 LVIS

    acebook 近日开源了一个具有高质量实例分割的数据集,LVIS.v0.5 包含了用于训练以及验证的 82k 图像中的 1230 个对象类别,注释有超过 700k 的分割掩码.即将到来的 ICCV ...

最新文章

  1. web服务器和应用服务器的区别以及负载均衡---学习笔记
  2. C. Divisibility by Eight【暴力枚举】
  3. MATLAB中的randi函数
  4. 面了三次字节,他的一些感悟
  5. mysql插入另一个表中数据_MySql中把一个表的数据插入到另一个表中的实现
  6. 音视频技术(25)---MPEG-2、MPEG-4、H.264 与视频带宽
  7. Linux内核使用的字符串转整形数和16进制数
  8. 解决看网课鼠标不能移开,视频不能加速
  9. matlab生成的图片有边,科学网—图片空白边缘处理/统计直方图---matlab/保存生成高质量的清晰图 - 杨小林的博文...
  10. 如何刷新微信服务器小程序版本,微信小程序线上更新版本流程及如何运用
  11. 五个美观好用的全能性IDE推荐(更新)
  12. matlab tdb,计算相图中的TDB文件 - 计算模拟 - 小木虫 - 学术 科研 互动社区
  13. 书单丨流量成本越来越高,6本书带你实现爆发式增长!
  14. 前端安全须知(淘宝)
  15. 应用宝新增大王卡购买渠道入口 下载、更新应用全免流量
  16. MySQL生成36位、32位UUID以及32位大写的UUID
  17. 孩子心脏发育不好,我要存孩子的心电数据
  18. python求两个数的最大公约数穷举法_五十九、如何求N个数的最大公约数和最小公倍数...
  19. 大数据具有哪些特征?大数据具有哪些特征?
  20. 51Nod 2075 图书管理员 c/c++题解

热门文章

  1. 大话如何从一个电机发展成机器人本体加机器人控制器
  2. 福利篇 之 移动开发者福音。。。
  3. 2.1下Email附件邮件通知
  4. 如何利用免费网站采集程序打造一个高权重的站
  5. OpenCV-6-ANN_MLP神经网络模型训练
  6. RNG与EDG关键战 LNG生死战!
  7. dbt3 mysql create db_DB开发之mysql
  8. 苹果x有android文件夹,iOS有大变化:新增像安卓手机的文件管理夹
  9. 淘宝网正式宣布向全球开放淘宝原始数据
  10. java 导入dmp_impdp如何导入dmp文件