Python sklearn分类决策树方法详解


Posted in Python onSeptember 23, 2022

决策树模型

  决策树(decision tree)是一种基本的分类与回归方法。

  分类决策树模型是一种描述对实例进行分类的树形结构。决策树由结点(node)和有向边(directed edge)组成。结点有两种类型:内部结点(internal node)和叶结点(leaf node)。内部结点表示一个特征或属性,叶结点表示一个类。

  用决策树分类,从根结点开始,对实例的某一特征进行测试,根据测试结果,将实例分配到其子结点;这时,每一个子结点对应着该特征的一个取值。如此递归地对实例进行测试并分配,直至达到叶结点。最后将实例分到叶结点的类中。

Python sklearn分类决策树方法详解

     用于预测一个人是否肥胖或不肥胖的决策树

决策树学习

  决策树学习算法包括3部分:特征选择、树的生成和树的剪枝。常用的算法有ID3、 C4.5和CART。

  1、特征选择的目的在于选取对训练数据能够分类的特征。特征选择的关键是其准则。常用的准则如下:

  (1)样本集合D对特征A的信息增益(ID3)

  (2)样本集合D对特征A的信息增益比(C4.5)

  (3)样本集合D的基尼指数(CART)

  2.决策树的生成。通常使用信息增益最大、信息增益比最大或基尼指数最小作为特征选择的准则。决策树的生成往往通过计算信息增益或其他指标,从根结点开始,递归地产生决策树。这相当于用信息增益或其他准则不断地选取局部最优的特征,或将训练集分割为能够基本正确分类的子集。

   3.决策树的剪枝。由于生成的决策树存在过拟合问题,需要对它进行剪枝,以简化学到的决策树。决策树的剪枝,往往从已生成的树上剪掉一些叶结点或叶结点以上的子树,并将其父结点或根结点作为新的叶结点,从而简化生成的决策树。

使用Scikit-learn进行决策树分类

import numpy as np
from sklearn.datasets import load_iris
from sklearn import tree
import matplotlib.pyplot as plt
iris=load_iris()
print(iris.feature_names)
print(iris.target_names)
#划分数据集
removed =[0,50,100]
new_target = np.delete(iris.target,removed)
new_data = np.delete(iris.data,removed, axis=0)
#训练分类器
clf = tree.DecisionTreeClassifier() # 定义决策树分类器
clf=clf.fit(new_data,new_target)
prediction = clf.predict(iris.data[removed])
print("Original Labels",iris.target[removed])
print("Labels Predicted",prediction)
#绘制决策树
plt.figure(figsize=(15, 10))
tree.plot_tree(clf, feature_names=iris.feature_names, filled=True)
plt.show()

Python sklearn分类决策树方法详解

参考链接传送门

到此这篇关于Python sklearn分类决策树方法详解的文章就介绍到这了,更多相关Python sklearn决策树内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python中max函数用法实例分析
Jul 17 Python
Python json 错误xx is not JSON serializable解决办法
Mar 15 Python
Python3 适合初学者学习的银行账户登录系统实例
Aug 08 Python
Python实现嵌套列表去重方法示例
Dec 28 Python
判断python字典中key是否存在的两种方法
Aug 10 Python
Python重新加载模块的实现方法
Oct 16 Python
Python List cmp()知识点总结
Feb 18 Python
Python + Flask 实现简单的验证码系统
Oct 01 Python
pytorch 实现张量tensor,图片,CPU,GPU,数组等的转换
Jan 13 Python
python多项式拟合之np.polyfit 和 np.polyld详解
Feb 18 Python
keras K.function获取某层的输出操作
Jun 29 Python
Python爬虫如何破解JS加密的Cookie
Nov 19 Python
详解Golang如何实现支持随机删除元素的堆
python中validators库的使用方法详解
Sep 23 #Python
Python pyecharts案例超市4年数据可视化分析
Aug 14 #Python
Python编写车票订购系统 Python实现快递收费系统
Aug 14 #Python
Golang Web 框架Iris安装部署
Aug 14 #Python
python manim实现排序算法动画示例
Python 操作pdf pdfplumber读取PDF写入Exce
Aug 14 #Python
You might like
PHP新手入门学习方法
2011/05/08 PHP
基于PHP字符串的比较函数strcmp()与strcasecmp()的使用详解
2013/05/15 PHP
php画图实例
2014/11/05 PHP
Yii2.0框架模型添加/修改/删除数据操作示例
2019/07/18 PHP
PHP超级全局变量【$GLOBALS,$_SERVER,$_REQUEST等】用法实例分析
2019/12/11 PHP
如何用javascript控制上传文件的大小
2006/10/26 Javascript
javascript一些实用技巧小结
2011/03/18 Javascript
基于jquery的代码显示区域自动拉长效果
2011/12/07 Javascript
Windows8下搭建Node.js开发环境教程
2014/09/03 Javascript
封装好的js判断操作系统与浏览器代码分享
2015/01/09 Javascript
javascript动态修改Li节点值的方法
2015/01/20 Javascript
JS解析XML实例分析
2015/01/30 Javascript
jQuery内部原理和实现方式浅析
2015/02/03 Javascript
jQuery.form插件的使用及跨域异步上传文件
2016/04/27 Javascript
BootStrap Progressbar 实现大文件上传的进度条的实例代码
2016/06/27 Javascript
AngularJS入门教程中SQL实例详解
2016/07/27 Javascript
javascript实现的左右无缝滚动效果
2016/09/19 Javascript
巧用数组制作图片切换js代码
2016/11/29 Javascript
jQuery中复合选择器简单用法示例
2018/03/31 jQuery
vue移动端路由切换实例分析
2018/05/14 Javascript
微信小程序登录数据解密及状态维持实例详解
2019/05/06 Javascript
js 函数性能比较方法
2020/08/24 Javascript
Python彩色化Linux的命令行终端界面的代码实例分享
2016/07/02 Python
Python:Scrapy框架中Item Pipeline组件使用详解
2017/12/27 Python
Django中间件实现拦截器的方法
2018/06/01 Python
解决python打不开文件(文件不存在)的问题
2019/02/18 Python
python画图把时间作为横坐标的方法
2019/07/07 Python
Python 合并多个TXT文件并统计词频的实现
2019/08/23 Python
Python %r和%s区别代码实例解析
2020/04/03 Python
SISLEY希思黎官方旗舰店:享誉全球的奢华植物美容品牌
2018/04/25 全球购物
JACK & JONES荷兰官网:男士服装和鞋子
2021/03/07 全球购物
轻金属冶金专业毕业生自荐信
2013/11/02 职场文书
《雨霖铃》教学反思
2014/02/22 职场文书
爱国主义电影观后感
2015/06/18 职场文书
任命书格式范文
2015/09/22 职场文书
Java 超详细讲解hashCode方法
2022/04/07 Java/Android