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 相关文章推荐
python3简单实现微信爬虫
Apr 09 Python
Python中的choice()方法使用详解
May 15 Python
举例讲解Python中metaclass元类的创建与使用
Jun 30 Python
python奇偶行分开存储实现代码
Mar 19 Python
Python基于最小二乘法实现曲线拟合示例
Jun 14 Python
python与caffe改变通道顺序的方法
Aug 04 Python
python读写csv文件的方法
Aug 13 Python
利用python实现PSO算法优化二元函数
Nov 13 Python
对Pytorch中Tensor的各种池化操作解析
Jan 03 Python
Django中的DateTimeField和DateField实现
Feb 24 Python
Python WSGI 规范简介
Apr 11 Python
Python还能这么玩之用Python修改了班花的开机密码
Jun 04 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异常处理Exception类
2015/12/11 PHP
laravel框架使用阿里云短信发送消息操作示例
2020/02/15 PHP
jquery插件珍藏(图片局部放大/信息提示框)
2013/01/08 Javascript
IE8对JS通过属性和数组遍历解析不一样的地方探讨
2013/05/06 Javascript
javascript实现获取浏览器版本、操作系统类型
2015/01/29 Javascript
js中判断变量类型函数typeof的用法总结
2016/08/09 Javascript
浅谈javascript:两种注释,声明变量,定义函数
2016/10/05 Javascript
JavaScript中最常用的10种代码简写技巧总结
2017/06/28 Javascript
详解nodejs的express如何自动生成项目框架
2017/07/12 NodeJs
基于node.js express mvc轻量级框架实践
2017/09/14 Javascript
解决webpack无法通过IP地址访问localhost的问题
2018/02/22 Javascript
JS与jQuery实现ListBox上移,下移,左移,右移操作功能示例
2018/05/31 jQuery
bootstrap 弹出框modal添加垂直方向滚轴效果
2018/07/09 Javascript
react.js组件实现拖拽复制和可排序的示例代码
2018/08/20 Javascript
webpack4与babel配合使es6代码可运行于低版本浏览器的方法
2018/10/12 Javascript
Echart折线图手柄触发事件示例详解
2018/12/16 Javascript
微信sdk实现禁止微信分享(使用原生php实现)
2019/11/15 Javascript
js实现课堂随机点名系统
2019/11/21 Javascript
Python3 正在毁灭 Python的原因分析
2014/11/28 Python
Python迭代器和生成器介绍
2015/03/06 Python
python xlsxwriter库生成图表的应用示例
2018/03/16 Python
python3+PyQt5图形项的自定义和交互 python3实现page Designer应用程序
2020/07/20 Python
利用python开发app实战的方法
2019/07/09 Python
Django shell调试models输出的SQL语句方法
2019/08/29 Python
Python configparser模块封装及构造配置文件
2020/08/07 Python
Html5剪切板功能的实现代码
2018/06/29 HTML / CSS
Html5实现文件异步上传功能
2017/05/19 HTML / CSS
Laura Geller官网:美国彩妆品牌
2018/12/29 全球购物
工商管理专业实习大学生自我鉴定
2013/09/19 职场文书
个人简历自荐信
2013/12/05 职场文书
应届生求职自荐信范文
2015/03/04 职场文书
葬礼主持词
2015/07/02 职场文书
2016特色励志班级口号
2015/12/24 职场文书
成功的商业计划书这样写才最靠谱
2019/07/12 职场文书
python中出现invalid syntax报错的几种原因分析
2022/02/12 Python
使用CSS定位HTML元素的实现方法
2022/07/07 HTML / CSS