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使用Socket(Https)Post登录百度的实现代码
May 18 Python
python中的yield使用方法
Feb 11 Python
用Python写一个无界面的2048小游戏
May 24 Python
Python进阶之递归函数的用法及其示例
Jan 31 Python
浅谈flask源码之请求过程
Jul 26 Python
python bmp转换为jpg 并删除原图的方法
Oct 25 Python
python写程序统计词频的方法
Jul 29 Python
Python学习笔记之列表推导式实例分析
Aug 13 Python
django自带调试服务器的使用详解
Aug 29 Python
python调用matplotlib模块绘制柱状图
Oct 18 Python
在django中使用post方法时,需要增加csrftoken的例子
Mar 13 Python
python之pygame模块实现飞机大战完整代码
Nov 29 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动态创建Web站点的方法
2011/08/14 PHP
js和php邮箱地址验证的实现方法
2014/01/09 PHP
Symfony2在Nginx下的配置方法图文教程
2016/02/04 PHP
PHP多种序列化/反序列化的方法详解
2017/06/23 PHP
JS解密入门之凭直觉解
2008/06/25 Javascript
浅析jQuery中常用的元素查找方法总结
2013/07/04 Javascript
js+jquery常用知识点汇总
2015/03/03 Javascript
JS和css实现检测移动设备方向的变化并判断横竖屏幕
2015/05/25 Javascript
利用bootstrapValidator验证UEditor
2016/09/14 Javascript
利用n 升级工具升级Node.js版本及在mac环境下的坑
2017/02/15 Javascript
利用angularjs1.4制作的简易滑动门效果
2017/02/28 Javascript
设置cookie指定时间失效(实例代码)
2017/05/28 Javascript
浅谈react-router@4.0 使用方法和源码分析
2019/06/04 Javascript
Vue实现简单的跑马灯
2020/05/25 Javascript
javascript前端和后台进行数据交互方法示例
2020/08/07 Javascript
js实现简易计算器小功能
2020/11/18 Javascript
Vue 修改网站图标的方法
2020/12/31 Vue.js
详解Python设计模式编程中观察者模式与策略模式的运用
2016/03/02 Python
简介Python的collections模块中defaultdict类型的用法
2016/07/07 Python
基于wxPython的GUI实现输入对话框(2)
2019/02/27 Python
python使用matplotlib画柱状图、散点图
2019/03/18 Python
Python中@property的理解和使用示例
2019/06/11 Python
python绘制彩虹图
2019/12/16 Python
pytorch实现线性拟合方式
2020/01/15 Python
Python基于smtplib协议实现发送邮件
2020/06/03 Python
python--shutil移动文件到另一个路径的操作
2020/07/13 Python
详解Canvas事件绑定
2018/06/27 HTML / CSS
基于zepto的插件之移动端无缝向上滚动并上下触摸滑动实例代码
2016/12/20 HTML / CSS
HTML5的Video标签有部分MP4无法播放的问题解析(多图)
2017/08/18 HTML / CSS
英国大码女性时装零售商:Evans
2018/08/29 全球购物
Nordgreen手表德国官方网站:丹麦极简主义手表
2019/10/31 全球购物
laravel使用redis队列实例讲解
2021/03/23 PHP
大学生创业事迹材料
2014/12/30 职场文书
锦旗赠语
2015/06/23 职场文书
植树节新闻稿
2015/07/17 职场文书
MySQL中int (10) 和 int (11) 的区别
2022/01/22 MySQL