from sklearn import tree
from sklearn.datasets import load_wine
from sklearn.model_selection import train_test_split
import pandas as pd
#加载数据集
wine=load_wine()
#如果wine是一张表,应该长这样:
print(wine.data.shape,wine.target)#打印数据的维度,lables类别
pd_wine=pd.concat([pd.DataFrame(wine.data),pd.DataFrame(wine.target)],axis=1)#使用concat方法合并两个DataFrame
print(wine.feature_names,wine.target_names)
print(pd_wine.describe())#划分数据集:分训练集和测试集xtrain,xtest,ytrain,ytest=train_test_split(wine.data,wine.target,test_size=0.3)#建立模型#不从使用全部特征,而是随机选取一部分特征,从中选取不纯度相关指标最优的作为分枝用的节点。这样,每次生成的树也就不同了。
clf=tree.DecisionTreeClassifier(criterion="entropy",random_state=30)
clf=clf.fit(xtrain,ytrain)#训练
score=clf.score(xtest,ytest)#测试,返回准确度
print("准确度:",score)
#从中选取最优的树   #可视化
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)
print(graph)

输出结果:

(178, 13) [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 11 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 11 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 22 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2]
['alcohol', 'malic_acid', 'ash', 'alcalinity_of_ash', 'magnesium', 'total_phenols', 'flavanoids', 'nonflavanoid_phenols', 'proanthocyanins', 'color_intensity', 'hue', 'od280/od315_of_diluted_wines', 'proline'] ['class_0' 'class_1' 'class_2']0           1           2   ...          11           12          0
count  178.000000  178.000000  178.000000  ...  178.000000   178.000000  178.000000
mean    13.000618    2.336348    2.366517  ...    2.611685   746.893258    0.938202
std      0.811827    1.117146    0.274344  ...    0.709990   314.907474    0.775035
min     11.030000    0.740000    1.360000  ...    1.270000   278.000000    0.000000
25%     12.362500    1.602500    2.210000  ...    1.937500   500.500000    0.000000
50%     13.050000    1.865000    2.360000  ...    2.780000   673.500000    1.000000
75%     13.677500    3.082500    2.557500  ...    3.170000   985.000000    2.000000
max     14.830000    5.800000    3.230000  ...    4.000000  1680.000000    2.000000[8 rows x 14 columns]
准确度: 0.9444444444444444
digraph Tree {node [shape=box, style="filled, rounded", color="black", fontname="helvetica"] ;
edge [fontname="helvetica"] ;
0 [label="类黄酮 <= 2.3\nentropy = 1.56\nsamples = 124\nvalue = [44, 49, 31]\nclass = 雪莉", fillcolor="#f3fdf7"] ;
1 [label="颜色强度 <= 3.825\nentropy = 0.993\nsamples = 69\nvalue = [0, 38, 31]\nclass = 雪莉", fillcolor="#dbfae8"] ;
0 -> 1 [labeldistance=2.5, labelangle=45, headlabel="True"] ;
2 [label="entropy = 0.0\nsamples = 35\nvalue = [0, 35, 0]\nclass = 雪莉", fillcolor="#39e581"] ;
1 -> 2 ;
3 [label="类黄酮 <= 1.4\nentropy = 0.431\nsamples = 34\nvalue = [0, 3, 31]\nclass = 贝尔摩德", fillcolor="#8d4ce8"] ;
1 -> 3 ;
4 [label="entropy = 0.0\nsamples = 31\nvalue = [0, 0, 31]\nclass = 贝尔摩德", fillcolor="#8139e5"] ;
3 -> 4 ;
5 [label="entropy = 0.0\nsamples = 3\nvalue = [0, 3, 0]\nclass = 雪莉", fillcolor="#39e581"] ;
3 -> 5 ;
6 [label="脯氨酸 <= 679.0\nentropy = 0.722\nsamples = 55\nvalue = [44, 11, 0]\nclass = 琴酒", fillcolor="#eca06a"] ;
0 -> 6 [labeldistance=2.5, labelangle=-45, headlabel="False"] ;
7 [label="entropy = 0.0\nsamples = 10\nvalue = [0, 10, 0]\nclass = 雪莉", fillcolor="#39e581"] ;
6 -> 7 ;
8 [label="颜色强度 <= 3.435\nentropy = 0.154\nsamples = 45\nvalue = [44, 1, 0]\nclass = 琴酒", fillcolor="#e6843d"] ;
6 -> 8 ;
9 [label="entropy = 0.0\nsamples = 1\nvalue = [0, 1, 0]\nclass = 雪莉", fillcolor="#39e581"] ;
8 -> 9 ;
10 [label="entropy = 0.0\nsamples = 44\nvalue = [44, 0, 0]\nclass = 琴酒", fillcolor="#e58139"] ;
8 -> 10 ;
}进程已结束,退出代码为 0

决策树---红酒分类相关推荐

  1. 机器学习Sklearn——红酒分类案例详解决策树模型参数

    目录 1 分类树 1.1 红酒分类案例 1.1.1 导入包 1.1.2 观察.分割数据 1.1.3 三段论 2 参数介绍 2.1 重要参数 2.2 控制随机选项参数 2.3 剪枝参数 3 批量测试合适 ...

  2. 【sklearn入门】决策树在sklearn中的实现--实战红酒分类案例

    scikit-learn简介 scikit-learn,又写作sklearn,是一个开源的基于python语言的机器学习工具包.它通过NumPy, SciPy和 Matplotlib等python数值 ...

  3. 机器学习-决策树算法ID3实现,含例子(红酒分类)

    决策树原理实现代码如下所示:(参考自机器学习实践 Peter Harrington). import mathx=[[0,1,"no"],[0,1,"no"], ...

  4. Python 基于SVM和KNN算法的红酒分类

    Python 机器学习之红酒分类问题 文章目录 Python 机器学习之红酒分类问题 前言 一.问题和目标是什么 1.原题 2.题目分析 二.算法简介 三.代码实现 1.算法流程框架 2.第三方库调用 ...

  5. 【机器学习入门】(1) K近邻算法:原理、实例应用(红酒分类预测)附python完整代码及数据集

    各位同学好,今天我向大家介绍一下python机器学习中的K近邻算法.内容有:K近邻算法的原理解析:实战案例--红酒分类预测.红酒数据集.完整代码在文章最下面. 案例简介:有178个红酒样本,每一款红酒 ...

  6. CART决策树(分类回归树)分析及应用建模

    一.CART决策树模型概述(Classification And Regression Trees)   决策树是使用类似于一棵树的结构来表示类的划分,树的构建可以看成是变量(属性)选择的过程,内部节 ...

  7. 【2016年第1期】基于大数据的小麦蚜虫发生程度决策树预测分类模型

    张晴晴,刘勇,牟少敏,温孚江 山东农业大学农业大数据研究中心,山东 泰安 271018 摘要:小麦蚜虫是危害小麦的主要害虫.其发生程度预测特别是短期预测一直是植物保护领域难以解决的科学问题.传统预测方 ...

  8. python机器学习——决策树(分类)及“泰坦尼克号沉船事故”数据集案例操作

    决策树(分类)及具体案例操作 一.决策树(分类)算法 (1)算法原理(类似于"分段函数") (2)决策树的变量类型 (3)量化纯度 (4)基本步骤 (5)决策树的优缺点 二.决策树 ...

  9. 【活动打卡】【Datawhale】第16期 机器学习算法梳理(AI入门体验) Task02:基于决策树的分类预测

    1.决策树的介绍和应用 1.1 决策树的介绍 决策树是一种常见的分类模型,在金融风控.医疗辅助诊断等诸多行业具有较为广泛的应用.决策树的核心思想是基于树结构对数据进行划分,这种思想是人类处理问题时的本 ...

最新文章

  1. 事件绑定在IE下this是window的问题
  2. 能量平衡_巴夏:平衡自己的能量,疗愈自己,疗愈世界
  3. Alluxio及其典型应用场景
  4. 走进STM32世界之Hex程序烧写
  5. 一出好戏不止是部电影,它也正接近你的生活。
  6. I2C驱动程序框架probe道路
  7. Angular 默认的Change detection策略及缺陷
  8. 下列不属于html5语义元素,HTML5 新的语义元素
  9. SAP License:SAP Query操作手册
  10. 你的城市撒币了吗?Python 爬取分析全国消费券发放数据
  11. Paragon NTFS Mac官网版的下载安装与激活教程分享
  12. 2d模型文件_Supergiant美术师:如何将2D美术做成3D游戏模型?
  13. HoverTree.Model.ArticleSelect类的作用
  14. 【高速PCB电路设计】1.高速PCB设计概述
  15. 在线URLEncode编码,URLDecode解码工具
  16. caxa发生文件读写异常_常见socket读写异常及错误
  17. 雅虎邮箱2022年2月28日起停止中国大陆服务后的收信方法
  18. 如何用Vegas制作故障特效
  19. IAR 开发Zigbee 下载调试时总是出现target selection对话框
  20. 《跑步人生》 作者:村上春树

热门文章

  1. 金仓数据库KingbaseES使用ksql连接认证失败
  2. c++ opencv 彩色图rgb 转换hsv 再通道分离
  3. 基于javaweb+jsp的设备维修管理系统(JavaWeb MySQL JSP Bootstrap Servlet SSM SpringBoot)
  4. 修改CheckBox选择框、设置选择框颜色
  5. zxing换行_让文字自动换行
  6. 华为云容器镜像服务 SWR 加速镜像的拉取和推送
  7. studio配置java环境,AndroidStudio安装及环境配置
  8. 十年HRD总结3个逆向思维的招聘方法
  9. Apache Beam开发指南
  10. uni-app生成分享图片( 使用 Painter 生成分享海报)