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 相关文章推荐
Python2.x与Python3.x的区别
Jan 14 Python
Python使用matplotlib简单绘图示例
Feb 01 Python
pandas数据分组和聚合操作方法
Apr 11 Python
TensorFlow实现简单卷积神经网络
May 24 Python
解决tensorflow1.x版本加载saver.restore目录报错的问题
Jul 26 Python
在Pandas中给多层索引降级的方法
Nov 16 Python
python中sort和sorted排序的实例方法
Aug 26 Python
超全Python图像处理讲解(多模块实现)
Apr 13 Python
python 30行代码实现蚂蚁森林自动偷能量
Feb 08 Python
简述python四种分词工具,盘点哪个更好用?
Apr 13 Python
pytorch fine-tune 预训练的模型操作
Jun 03 Python
Python中可变和不可变对象的深入讲解
Aug 02 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
《神奇女侠:血脉》神力女超人大战犯罪公司
2020/04/09 欧美动漫
跟我学Laravel之路由
2014/10/15 PHP
ThinkPHP在新浪SAE平台的部署实例
2014/10/31 PHP
php实现的任意进制互转类分享
2015/07/07 PHP
javascript循环变量注册dom事件 之强大的闭包
2010/09/08 Javascript
通过jquery还原含有rowspan、colspan的table的实现方法
2012/02/10 Javascript
JS比较两个时间大小的简单示例代码
2013/12/20 Javascript
jQuery修改class属性和CSS样式整理
2015/01/30 Javascript
JavaScript中用toString()方法返回时间为字符串
2015/06/12 Javascript
jquery实现滑屏大图定时收缩为小banner图片的广告代码
2015/09/02 Javascript
jQuery实现选项联动轮播效果【附实例】
2016/04/19 Javascript
js基本算法:冒泡排序,二分查找的简单实例
2016/10/08 Javascript
JavaScript简单生成 N~M 之间随机数的方法
2017/01/13 Javascript
详解JavaScript对象的深浅复制
2017/03/30 Javascript
基于vue监听滚动事件实现锚点链接平滑滚动的方法
2018/01/17 Javascript
js中apply和Math.max()函数的问题及区别介绍
2018/03/27 Javascript
Vue 中mixin 的用法详解
2018/04/23 Javascript
jquery实现自定义树形表格的方法【自定义树形结构table】
2019/07/12 jQuery
对vue中的事件穿透与禁止穿透实例详解
2019/10/28 Javascript
javascript实现移动端上传图片功能
2020/08/18 Javascript
vue v-model的用法解析
2020/10/19 Javascript
el-table表头根据内容自适应完美解决表头错位和固定列错位
2021/01/07 Javascript
[03:22]DAC最前线(第二期)—DOTA2亚洲邀请赛主赛场周边及线路探访
2015/01/24 DOTA
python里大整数相乘相关技巧指南
2014/09/12 Python
Python使用email模块对邮件进行编码和解码的实例教程
2016/07/01 Python
python自定义线程池控制线程数量的示例
2019/02/22 Python
pytorch 使用单个GPU与多个GPU进行训练与测试的方法
2019/08/19 Python
使用pyplot.matshow()函数添加绘图标题
2020/06/16 Python
浅谈Python 命令行参数argparse写入图片路径操作
2020/07/12 Python
Python实现敏感词过滤的4种方法
2020/09/12 Python
python集合的新增元素方法整理
2020/12/07 Python
html5应用缓存_动力节点Java学院整理
2017/07/13 HTML / CSS
澳洲的服装老品牌:SABA
2018/02/06 全球购物
工商管理实习自我鉴定
2013/09/28 职场文书
货物运输服务质量承诺书
2014/05/29 职场文书
婚礼迎宾词大全
2015/08/10 职场文书