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获取图片颜色信息的方法
Mar 18 Python
按日期打印Python的Tornado框架中的日志的方法
May 02 Python
Python中生成Epoch的方法
Apr 26 Python
对pandas中apply函数的用法详解
Apr 10 Python
Python Flask前后端Ajax交互的方法示例
Jul 31 Python
pandas 对日期类型数据的处理方法详解
Aug 08 Python
使用OpCode绕过Python沙箱的方法详解
Sep 03 Python
TensorFlow内存管理bfc算法实例
Feb 03 Python
在Windows上安装和配置 Jupyter Lab 作为桌面级应用程序教程
Apr 22 Python
Python如何输出整数
Jun 07 Python
什么是python的必选参数
Jun 21 Python
Django filter动态过滤与排序实现过程解析
Nov 26 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实现文本数据导入SQL SERVER
2015/05/17 PHP
详解PHP的Yii框架中日志的相关配置及使用
2015/12/08 PHP
PHP+MySql+jQuery实现的"顶"和"踩"投票功能
2016/05/21 PHP
php+js实现百度地图多点标注的方法
2016/11/30 PHP
php使用 readfile() 函数设置文件大小大小的方法
2017/08/11 PHP
PHP实现一个多功能购物网站的案例
2017/09/13 PHP
最短的IE判断代码
2011/03/13 Javascript
为原生js Array增加each方法
2012/04/07 Javascript
JS实现从顶部下拉显示的带动画QQ客服特效代码
2015/10/24 Javascript
Angular.js回顾ng-app和ng-model使用技巧
2016/04/26 Javascript
vue2.x+webpack快速搭建前端项目框架详解
2017/11/30 Javascript
详解vuex的简单使用
2018/03/12 Javascript
jquery引入外部CDN 加载失败则引入本地jq库
2018/05/23 jQuery
微信小程序多音频播放进度条问题
2018/08/28 Javascript
jQuery实现模拟搜索引擎的智能提示功能简单示例
2019/01/27 jQuery
JavaScript前端实现压缩图片功能
2020/03/06 Javascript
js基于canvas实现时钟组件
2021/02/07 Javascript
Python实现正弦信号的时域波形和频谱图示例【基于matplotlib】
2018/05/04 Python
selenium+python 对输入框的输入处理方法
2018/10/11 Python
对Python获取屏幕截图的4种方法详解
2019/08/27 Python
pandas to_excel 添加颜色操作
2020/07/14 Python
Python的信号库Blinker用法详解
2020/12/31 Python
HTML5在canvas中绘制复杂形状附效果截图
2014/06/23 HTML / CSS
详解如何在登录过期后跳出Ifram框架
2020/09/10 HTML / CSS
美国网上鞋城:Shoeline.com
2016/11/17 全球购物
某公司C#程序员面试题笔试题
2014/05/26 面试题
大学生求职简历的自我评价
2013/10/21 职场文书
大学生就业自荐信
2013/10/26 职场文书
网络编辑求职信
2014/04/30 职场文书
求职信结尾怎么写
2014/05/26 职场文书
销售人员工作自我评价
2014/09/21 职场文书
2016年高校自主招生自荐信范文
2015/03/24 职场文书
2016年6月份红领巾广播稿
2015/12/21 职场文书
WordPress多语言翻译插件 - WPML使用教程
2021/04/01 PHP
html+css实现赛博朋克风格按钮
2021/05/26 HTML / CSS
阿里面试Nacos配置中心交互模型是push还是pull原理解析
2022/07/23 Java/Android