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实现哈希表
Feb 07 Python
python中快速进行多个字符替换的方法小结
Dec 15 Python
详谈Python2.6和Python3.0中对除法操作的异同
Apr 28 Python
浅谈python中拼接路径os.path.join斜杠的问题
Oct 23 Python
pycharm恢复默认设置或者是替换pycharm的解释器实例
Oct 29 Python
详解如何管理多个Python版本和虚拟环境
May 10 Python
使用pandas读取文件的实现
Jul 31 Python
通过实例了解python property属性
Nov 01 Python
Django通用类视图实现忘记密码重置密码功能示例
Dec 17 Python
python装饰器代替set get方法实例
Dec 19 Python
在win64上使用bypy进行百度网盘文件上传功能
Jan 02 Python
Python 语言实现六大查找算法
Jun 30 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游戏编程25个脚本代码
2011/02/08 PHP
JoshChen_php新手进阶高手不可或缺的规范介绍
2013/08/16 PHP
封装ThinkPHP的一个文件上传方法实例
2014/10/31 PHP
php获取发送给用户的header信息的方法
2015/03/16 PHP
Yii2设置默认控制器的两种方法
2017/05/19 PHP
laravel框架模型中非静态方法也能静态调用的原理分析
2019/11/23 PHP
让getElementsByName适应IE和firefox的方法
2007/09/24 Javascript
js单词形式的运算符
2014/05/06 Javascript
javascript实现随时变化着的背景颜色
2015/04/02 Javascript
JavaScript判断手机号运营商是移动、联通、电信还是其他(代码简单)
2015/09/25 Javascript
Javascript中replace()小结
2015/09/30 Javascript
js生成随机数的过程解析
2015/11/24 Javascript
谈谈AngularJs中的隐藏和显示
2015/12/09 Javascript
jQuery判断是否存在滚动条的简单方法
2016/09/17 Javascript
原生JS实现循环Nodelist Dom列表的4种方式示例
2018/02/11 Javascript
JavaScript中filter的用法实例分析
2019/02/27 Javascript
vue router 组件的高级应用实例代码
2019/04/08 Javascript
jQuery实现聊天对话框
2020/02/08 jQuery
javascript实现画板功能
2020/04/12 Javascript
Node.js API详解之 string_decoder用法实例分析
2020/04/29 Javascript
VSCode搭建React Native环境
2020/05/07 Javascript
vue:el-input输入时限制输入的类型操作
2020/08/05 Javascript
Python FTP操作类代码分享
2014/05/13 Python
Python读取和处理文件后缀为.sqlite的数据文件(实例讲解)
2017/06/27 Python
Python实现的txt文件去重功能示例
2018/07/07 Python
pyinstaller打包程序exe踩过的坑
2019/11/19 Python
Python PyQt5运行程序把输出信息展示到GUI图形界面上
2020/04/27 Python
python支持多继承吗
2020/06/19 Python
波兰最大的电商平台:Allegro.pl
2021/02/06 全球购物
Why do we need Unit test
2013/01/03 面试题
师范生教师实习自我鉴定
2013/09/27 职场文书
高二物理教学反思
2014/02/08 职场文书
教师敬业奉献模范事迹材料
2014/05/18 职场文书
地球上的星星观后感
2015/06/02 职场文书
SqlServer 垂直分表(减少程序改动)
2021/04/16 SQL Server
Moment的feature导致线上bug解决分析
2022/09/23 Javascript