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实现DES加密解密方法实例详解
Jun 30 Python
python 打印出所有的对象/模块的属性(实例代码)
Sep 11 Python
python中模块查找的原理与方法详解
Aug 11 Python
python导出chrome书签到markdown文件的实例代码
Dec 27 Python
使用python编写udp协议的ping程序方法
Apr 22 Python
python爬虫自动创建文件夹的功能
Aug 01 Python
python实现矩阵打印
Mar 02 Python
Kali Linux安装ipython2 和 ipython3的方法
Jul 11 Python
python opencv实现证件照换底功能
Aug 19 Python
python爬虫学习笔记之Beautifulsoup模块用法详解
Apr 09 Python
python 多线程爬取壁纸网站的示例
Feb 20 Python
python如何读取.mtx文件
Apr 22 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
xajax写的留言本
2006/11/25 PHP
PHP set_time_limit(0)长连接的实现分析
2010/03/02 PHP
深入解析PHP垃圾回收机制对内存泄露的处理
2013/06/14 PHP
weiphp微信公众平台授权设置
2016/01/04 PHP
firefox插件Firebug的使用教程
2010/01/02 Javascript
jquery中通过过滤器获取表单元素的实现代码
2011/07/05 Javascript
StringTemplate遇见jQuery冲突的解决方法
2011/09/22 Javascript
js 可拖动列表实现代码
2011/12/13 Javascript
Json对象与Json字符串互转(4种转换方式)
2013/03/27 Javascript
JS实现鼠标经过好友列表中的好友头像时显示资料卡的效果
2014/07/02 Javascript
对JavaScript的全文搜索实现相关度评分的功能的方法
2015/06/24 Javascript
jQuery 1.9.1源码分析系列(十)事件系统之绑定事件
2015/11/19 Javascript
基于MVC4+EasyUI的Web开发框架形成之旅之界面控件的使用
2015/12/16 Javascript
Three.js如何实现雾化效果示例代码
2017/09/27 Javascript
详解JS函数stack size计算方法
2018/06/18 Javascript
Vue动态加载异步组件的方法
2018/11/21 Javascript
每天学点Vue源码之vm.$mount挂载函数
2019/03/11 Javascript
浅析 Vue 3.0 的组装式 API(一)
2020/08/31 Javascript
小程序实现左滑删除的效果的实例代码
2020/10/19 Javascript
JavaScript缓动动画函数的封装方法
2020/11/25 Javascript
[14:20]刀塔大凶女神互压各路奇葩屌丝
2014/05/16 DOTA
[00:02]DOTA2新版本使用PA至宝后暴击展示
2014/11/19 DOTA
[59:32]Liquid vs Fnatic 2019国际邀请赛淘汰赛败者组BO1 8.20.mp4
2020/07/19 DOTA
一个基于flask的web应用诞生 组织结构调整(7)
2017/04/11 Python
python opencv之SIFT算法示例
2018/02/24 Python
Appium+Python自动化测试之运行App程序示例
2019/01/23 Python
python 处理telnet返回的More,以及get想要的那个参数方法
2019/02/14 Python
浅谈python中get pass用法
2019/03/19 Python
python函数的万能参数传参详解
2019/07/26 Python
Python多线程获取返回值代码实例
2020/02/17 Python
解决Keras使用GPU资源耗尽的问题
2020/06/22 Python
详解基于python的全局与局部序列比对的实现(DNA)
2020/10/07 Python
New Balance德国官方网站:购买鞋子和服装
2019/08/31 全球购物
Ashford台湾:以折扣价提供奢华的男女用表款
2019/12/04 全球购物
会计电算化个人自我评价
2013/11/17 职场文书
伦敦奥运会的口号
2014/06/21 职场文书