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的Flask框架中使用模版的入门教程
Apr 20 Python
Python新手入门最容易犯的错误总结
Apr 24 Python
Python判断一个文件夹内哪些文件是图片的实例
Dec 07 Python
python中open函数的基本用法示例
Sep 07 Python
Python用input输入列表的实例代码
Feb 07 Python
Python对象的属性访问过程详解
Mar 05 Python
jupyter 中文乱码设置编码格式 避免控制台输出的解决
Apr 20 Python
Python实现查找数据库最接近的数据
Jun 08 Python
基于django2.2连oracle11g解决版本冲突的问题
Jul 02 Python
Python基于gevent实现文件字符串查找器
Aug 11 Python
分享一个python的aes加密代码
Dec 22 Python
Django框架中模型的用法
Jun 10 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防注
2007/01/15 PHP
asp函数split()对应php函数explode()
2019/02/27 PHP
解放web程序员的输入验证
2006/10/06 Javascript
JavaScript获取GridView选择的行内容
2009/04/14 Javascript
JavaScript 函数式编程的原理
2009/10/16 Javascript
javascript之Partial Application学习
2013/01/10 Javascript
使用js对select动态添加和删除OPTION示例代码
2013/08/12 Javascript
AngularJS基础知识笔记之过滤器
2015/05/10 Javascript
Bootstrap table使用方法详细介绍
2016/12/09 Javascript
一篇看懂vuejs的状态管理神器 vuex状态管理模式
2017/04/20 Javascript
jQuery实现简单的抽奖游戏
2017/05/05 jQuery
node.js将MongoDB数据同步到MySQL的步骤
2017/12/10 Javascript
深入理解Vue.js轻量高效的前端组件化方案
2018/12/10 Javascript
深入理解vue中的slot与slot-scope
2019/04/22 Javascript
element中的$confirm的使用
2020/04/26 Javascript
解决React在安装antd之后出现的Can't resolve './locale'问题(推荐)
2020/05/03 Javascript
vue中选中多个选项并且改变选中的样式的实例代码
2020/09/16 Javascript
Javascript文本框脚本实现方法解析
2020/10/30 Javascript
itchat和matplotlib的结合使用爬取微信信息的实例
2017/08/25 Python
django admin 后台实现三级联动的示例代码
2018/06/22 Python
Python框架Flask的基本数据库操作方法分析
2018/07/13 Python
Python实现随机取一个矩阵数组的某几行
2019/11/26 Python
Python常用模块sys,os,time,random功能与用法实例分析
2020/01/07 Python
TensorFlow实现保存训练模型为pd文件并恢复
2020/02/06 Python
python实现堆排序的实例讲解
2020/02/21 Python
CSS3实例分享--超炫checkbox复选框和radio单选框
2014/09/01 HTML / CSS
HTML5添加禁止缩放功能
2017/11/03 HTML / CSS
美国在线鲜花速递:ProFlowers
2017/01/05 全球购物
大学生四个方面的自我评价
2013/09/19 职场文书
给交警的表扬信
2014/01/12 职场文书
学校领导干部民主生活会整改方案
2014/09/29 职场文书
2015年学校精神文明工作总结
2015/05/27 职场文书
表扬信范文
2019/04/22 职场文书
react使用antd的上传组件实现文件表单一起提交功能(完整代码)
2021/06/29 Javascript
Python实现猜拳与猜数字游戏的方法详解
2022/04/06 Python