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中Iterator迭代器的使用杂谈
Jun 20 Python
Python使用SocketServer模块编写基本服务器程序的教程
Jul 12 Python
Python 基于Twisted框架的文件夹网络传输源码
Aug 28 Python
解决python3爬虫无法显示中文的问题
Apr 12 Python
tensorflow学习笔记之简单的神经网络训练和测试
Apr 15 Python
Python实现base64编码的图片保存到本地功能示例
Jun 22 Python
浅述python2与python3的简单区别
Sep 19 Python
Django异步任务之Celery的基本使用
Mar 23 Python
Python3实现的回文数判断及罗马数字转整数算法示例
Mar 27 Python
Python logging日志模块 配置文件方式
Jul 12 Python
PyTorch预训练Bert模型的示例
Nov 17 Python
python3 kubernetes api的使用示例
Jan 12 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你的验证码安全码?
2007/01/02 PHP
PHP中读写文件实现代码
2011/10/20 PHP
领悟php接口中interface存在的意义
2013/06/27 PHP
PHP实现限制IP访问的方法
2017/04/20 PHP
js计数器代码
2006/11/04 Javascript
img标签中onerror用法
2009/08/13 Javascript
关于html+ashx开发中几个问题的解决方法
2011/07/18 Javascript
alert出数组中的随即值代码
2014/09/25 Javascript
JS 新增Cookie 取cookie值 删除cookie 举例详解
2014/10/10 Javascript
JS组件Bootstrap Table使用方法详解
2016/02/02 Javascript
解决wx.onMenuShareTimeline出现的问题
2016/08/16 Javascript
js实现html table 行,列锁定的简单实例
2016/10/13 Javascript
JS Select下拉框(支持输入模糊查询)
2017/02/04 Javascript
JS代码实现电脑配置检测功能
2018/03/21 Javascript
JavaScript基于对象方法实现数组去重及排序操作示例
2018/07/10 Javascript
JavaScript表格隔行变色和Tab标签页特效示例【附jQuery版】
2019/07/11 jQuery
python中使用enumerate函数遍历元素实例
2014/06/16 Python
python简单实现基于SSL的IRC bot实例
2015/06/15 Python
利用Python如何实现一个小说网站雏形
2018/11/23 Python
Python3.6中Twisted模块安装的问题与解决
2019/04/15 Python
Python数据类型之List列表实例详解
2019/05/08 Python
python实现对象列表根据某个属性排序的方法详解
2019/06/11 Python
python如果快速判断数字奇数偶数
2019/11/13 Python
Django操作session 的方法
2020/03/09 Python
python自动脚本的pyautogui入门学习
2020/04/01 Python
python爬虫学习笔记之Beautifulsoup模块用法详解
2020/04/09 Python
浅谈keras中自定义二分类任务评价指标metrics的方法以及代码
2020/06/11 Python
详解CSS3新增的背景属性
2019/12/25 HTML / CSS
英国最大的海报商店:GB Posters
2018/03/20 全球购物
老公给老婆的道歉信
2014/01/10 职场文书
学生操行评语大全
2014/04/24 职场文书
处级干部考察材料
2014/12/24 职场文书
保证书格式
2015/01/16 职场文书
升学宴家长答谢词
2015/09/29 职场文书
高中物理教学反思
2016/02/19 职场文书
SpringBoot项目多数据源及mybatis 驼峰失效的问题解决方法
2022/07/07 Java/Android