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 第一步 hello world
Sep 25 Python
Python循环语句中else的用法总结
Sep 11 Python
python2.7+selenium2实现淘宝滑块自动认证功能
Feb 24 Python
python logging日志模块以及多进程日志详解
Apr 18 Python
python向已存在的excel中新增表,不覆盖原数据的实例
May 02 Python
Python第三方库face_recognition在windows上的安装过程
May 03 Python
PyQt5实现让QScrollArea支持鼠标拖动的操作方法
Jun 19 Python
python for循环remove同一个list过程解析
Aug 14 Python
Python搭建代理IP池实现接口设置与整体调度
Oct 27 Python
Python流程控制常用工具详解
Feb 24 Python
浅谈TensorFlow之稀疏张量表示
Jun 30 Python
如何使用Python进行PDF图片识别OCR
Jan 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
PHP在引号前面添加反斜杠(PHP去除反斜杠)
2013/09/28 PHP
PHP入门教程之会话控制技巧(cookie与session)
2016/09/11 PHP
Laravel 自定命令以及生成文件的例子
2019/10/23 PHP
jQuery实现回车键(Enter)切换文本框焦点的代码实例
2014/05/05 Javascript
无缝滚动的简单实现代码(推荐)
2016/06/07 Javascript
vue日期组件 支持vue1.0和2.0
2017/01/09 Javascript
protractor的安装与基本使用教程
2017/07/07 Javascript
浅谈JavaScript中的属性:如何遍历属性
2017/09/14 Javascript
JS获取数组中出现次数最多及第二多元素的方法
2017/10/27 Javascript
AngularJS中重新加载当前路由页面的方法
2018/03/09 Javascript
微信小程序常用的3种提示弹窗实现详解
2019/09/19 Javascript
原生JS无缝滑动轮播图
2019/10/22 Javascript
google广告之另类js调用实现代码
2020/08/22 Javascript
从局部变量和全局变量开始全面解析Python中变量的作用域
2016/06/16 Python
python3.5使用tkinter制作记事本
2016/06/20 Python
python 简单的绘图工具turtle使用详解
2017/06/21 Python
Python cookbook(数据结构与算法)找出序列中出现次数最多的元素算法示例
2018/03/15 Python
python编辑用户登入界面的实现代码
2018/07/16 Python
配置 Pycharm 默认 Test runner 的图文教程
2018/11/30 Python
Python3爬虫学习之爬虫利器Beautiful Soup用法分析
2018/12/12 Python
对python过滤器和lambda函数的用法详解
2019/01/21 Python
Django项目中实现使用qq第三方登录功能
2019/08/13 Python
Python Scrapy框架第一个入门程序示例
2020/02/05 Python
Pycharm如何自动生成头文件注释
2020/11/14 Python
美国Randolph太阳镜官网:美国制造的飞行员太阳镜和射击眼镜
2018/06/15 全球购物
马来西亚在线药房:RoyalePharma
2019/12/01 全球购物
奥巴马英文演讲稿
2014/05/15 职场文书
党员群众路线对照检查材料
2014/08/31 职场文书
焦裕禄精神心得体会
2014/09/02 职场文书
公务员处分决定书
2015/06/25 职场文书
大学生学习十八届五中全会精神心得体会
2016/01/05 职场文书
《正比例》教学反思
2016/02/23 职场文书
护理自荐信
2019/05/14 职场文书
Python中Selenium对Cookie的操作方法
2021/07/09 Python
python实现双链表
2022/05/25 Python
Win11如何默认打开软件界面最大化?Win11默认打开软件界面最大化的方法
2022/07/15 数码科技