决策树的工作原理
决策树(Decision Tree)是一种非参数的有监督学习方法,它能够从一系列有特征和标签的数据中总结出决策规则,并用树状图的结构来呈现这些规则,以解决分类和回归问题。决策树算法容易理解,适用各种数据,在解决各种问题时都有良好表现,尤其是以树模型为核心的各种集成算法,在各个行业和领域都有广泛的应用。
例如,根据物种的所有特征来判断属于什么物种

我们的目标是将物种分为哺乳类与非哺乳类,决策树的计算结果如下:

根据决策树,要判断一种动物是不是哺乳动物,只需要看它的体温是不是恒温,胎生还是卵生就可以了,体温与胎生就是判断的特征。

综上,可以看出,在这个决策过程中,我们一直在对记录的特征进行提问。最初的问题所在的地方叫做根节点,在得到结论前的每一个问题都是中间节点,而得到的每一个结论(动物的类别)都叫做叶子节点

决策树算法的核心就是解决两个问题:
1、如何在数据表中找出最佳节点与分支
2、如何限制树的大小,防止过拟合
过拟合:即在训练集中表现得很好,在测试集中表现得非常糟糕;原理为树长得太大,包含了很多的训练集噪声等,不具有普遍性)

sklearn中的决策树
模块sklearn.tree

tree.DecisionTreeClassifier 分类树
tree.DecisionTreeRegressor 回归树
tree.export_graphviz 将生成的决策树导出为DOT格式,画图专用
tree.ExtraTreeClassifier 高随机版本的分类树
tree.ExtraTreeRegressor 高随机版本的回归树

接下来,我们介绍一下sklearn的基本建模流程
1、实例化,建立评估对象模型【确定模型需要用到的参数】
2、通过模型接口训练模型【输入数据】
3、通过模型接口提取需要的信息【输出决策树结果】

然后我们实战建立一棵分类树:
第一步,导入相应的库

#导入sklearn的树模块
from sklearn import tree
#导入sklearn的红酒数据集
from sklearn.datasets import load_wine
#导入分类模块,把数据集分为训练集与测试集
from sklearn.model_selection import train_test_split

第二步,实例化数据集

#将红酒数据集实例化
wine = load_wine()
#并且查看数据集的维度
wine.data.shape


返回的结果如上,表示数据共有13个特征,共有178行数据(数据的长度)

Xtrain, Xtest, Ytrain, Ytest = train_test_split(wine.data,wine.target,test_size = 0.3)
#返回训练集的数据维度
Xtrain.shape
#返回测试集的数据维度
Xtest.shape

#实例化
clf = tree.DecisionTreeClassifier(criterion="entropy")
#用训练集数据训练模型
clf = clf.fit(Xtrain, Ytrain)
#导入测试集,从接口中调用需要的信息
score = clf.score(Xtest, Ytest) #返回预测的准确度
score


我们求得的准确度为94.4%

#为数据集的特征命名,并且作图观察
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

决策树如下所示:

到这里,一棵决策树就算完成啦,从树中,我们可以观察到,根据特征的精确划分,越往下,颜色越深,代表酒的品种准确度越高。

sklearn(一)、决策树相关推荐

  1. 【机器学习入门】(5) 决策树算法实战:sklearn实现决策树,实例应用(沉船幸存者预测)附python完整代码及数据集

    各位同学好,今天和大家分享一下python机器学习中的决策树算法,在上一节中我介绍了决策树算法的基本原理,这一节,我将通过实例应用带大家进一步认识这个算法.文末有完整代码和数据集,需要的自取.那我们开 ...

  2. python中sklearn实现决策树及模型评估_sklearn实现决策树

    sklearn是一个功能非常强大的工具,可以用几行代码实现丰富的机器学习算法. 本文介绍使用sklearn实现决策树 决策树是经典的机器学习算法,很多复杂的机器学习算法都是由决策时演变而来.它是一种使 ...

  3. ID3决策树 Python实现 + sklearn库决策树模型的应用

    本文介绍机器学习中决策树算法的python实现过程 共介绍两类方法: (1)亲手实习Python ID3决策树经典算法 (2)利用sklearn库实现决策树算法 关于决策树的原理,指路:机器学习 第四 ...

  4. 【Python-ML】SKlearn库决策树(DecisionRegression) 使用

    # -*- coding: utf-8 -*- ''' Created on 2018年1月15日 @author: Jason.F @summary: Scikit-Learn库决策树算法 '''f ...

  5. python sklearn 绘制决策树模型的节点图

    绘制决策树的图片可以使用sklearn.tree.plot_tree这个方法 详情可以参考官方文档:https://scikit-learn.org/stable/modules/generated/ ...

  6. sklearn 决策树例子_使用 sklearn 构建决策树并使用 Graphviz 绘制树结构

    决策树最大的优点是我们可以查看最终的树结构,上一篇日志中,我们通过 matplotlib 展示了我们自己的树结构 但是 matplotlib 绘制树结构较为复杂,我们这里来了解一个更为易用的绘图工具  ...

  7. Python 机器学习 利用sklearn构建决策树的实现 2

    决策树 import numpy as npimport os%matplotlib inlineimport matplotlibimport matplotlib.pyplot as pltplt ...

  8. 机器学习之使用sklearn构造决策树模型

    一.任务基础 导入所需要的库 import matplotlib.pyplot as plt import pandas as pd%matplotlib inline 加载sklearn内置数据集 ...

  9. python中sklearn实现决策树及模型评估_Python sklearn决策树算法实践

    scikit-learn简称sklearn,支持包括分类.回归.降维和聚类四大机器学习算法.还包含了特征提取.数据处理和模型评估三大模块.sklearn是Scipy科学计算库的扩展,建立在NumPy和 ...

  10. sklearn实现决策树,随机森林,逻辑回归,KNN,贝叶斯,SVM,以葡萄干数据集为例

    数据集介绍 本次使用的数据集为葡萄干数据集,来源于UCI中: https://archive.ics.uci.edu/ml/datasets/Raisin+Dataset 介绍为: Images of ...

最新文章

  1. 所有类是object的子类,但是又可以继承一个其他类解析
  2. 我到底要选择一种什么样的生活方式,度过这一辈子呢:人生自由与职业发展方向(下)...
  3. Java on Windows Mobile
  4. zemax评价函数编辑器_ZEMAX与光学设计案例:激光扩束系统详细设计与公差分析(二)...
  5. 去除Xcode6创建工程时自带的storyboard
  6. [转载] Python 完整实现的简单遗传算法(SGA)
  7. Android LoaderManager原理剖析
  8. 分布式文件存储FastDFS之基础知识篇
  9. JAVA输入输出流实现文件复制
  10. mysql如何自定义分组_mysql 使用自定义规则分组
  11. 小型微型计算机系统杂志好投么,小型微型计算机系统杂志
  12. Unity图片闪烁效果
  13. linux 目录 问号 原因,linux – 在目录的ls中显示的问号. IO错误也是如此
  14. 正则表达式常用语法速查+一个简单使用案例
  15. 自编码器(Autoencoder)基本原理与模型实现
  16. office右键没有新建word,Visio等解决办法
  17. win7 android usb驱动,在win7系统下安装手机usb驱动软件的教程
  18. 用python画象棋棋盘_Python turtle绘画象棋棋盘
  19. (ch9) Deep Learning for Anomaly Detection: A Survey
  20. 怎么卸载mac上的软件

热门文章

  1. 如何记录访问自己网站的访客ip
  2. python读取csv求平均数_利用Python读取CSV文件并计算某一列的均值和方差
  3. 打印机(联网)连接无线网路,设置共享 mac
  4. 【并查集】B017_LC_婴儿名字(非常难搞)
  5. nslookup:查看IP地址
  6. 连发消息小代码(vbs)
  7. python信息连发
  8. 基于色彩空间的油菜花图像分割
  9. 数据库中间件(转载)
  10. 怎么用ABBYY识别文档里包含的条码