各类决策树算法的对比

ID3算法

ID3算法基本原理

算法的核心是在决策树各个节点上应用信息增益准则选择特征,递归的构建决策树。具体方法是:从根节点开始,对结点计算所有可能的特征的信息增益,选择信息增益最大的特征作为结点的特征,由该特征的不同取值建立子节点;再对子节点递归的调用以上方法,构建决策树;直到所有特征的信息增益均很小或者没有特征可以选择为止。
信息增益的公式:

C4.5算法

C4.5算法原理

算法用信息增益率选择特征,在树的构造过程中会进行剪枝操作优化,能够自动完成对连续属性的离散化处理;在选择分割属性时选择信息增益率最大的属性。选择信息增益率的原因时,如果特征有很多取值,使用取值多的特征会有更大的信息增益,这个问题是出现很多分支,将数据划分更细,模型复杂度高,出现过拟合的几率更大。使用信息增益比就是为了解决偏向于选择取值较多的特征的问题。使用信息增益比对取值多的特征加上的惩罚,对这个问题进行了校正。
信息增益率的计算

CART算法

CART树原理

CART树可以分为分类树和回归树,使用的是二元切分法来处理连续型数值。使用Gini最为分割属性选择的标准。
Gini数值越大,数据的不确定性越大。信息熵需要计算对数,计算量大;信息熵是可以处理多个类别,基尼指数就是针对两个类别计算的,由于CART树是一个二叉树,从这个角度也是应该选择简单的基尼指数进行计算。

三种决策树的对比

决策树的剪枝

决策树的剪枝分为预剪枝和后剪枝,预剪枝是在决策树的构建过程中加入限制,比如控制叶子节点最少的样本个数,提前停止:
后剪枝是在决策树构建完成之后,根据加上正则项的结构风险最小化自下向上进行的剪枝操作

Python决策树的调参

criterion: 特征选择的标准,分类树默认是gini,回归树默认是mse
splitter:best在所有特征中找出最优切分点,适用于样本量不大的情景,random在部分特征中随机选出最优划分点。默认是random
max_depth: 树的最大深度,默认是None。常用可以在10-100之间选择
min_sample_split:划分节点需要的最小样本数
min_samples_leaf:叶子节点最少样本数
min_weight_fraction_leaf:叶子节点最小的样本权重和,默认是0,就是不考虑样本的权重问题。一般来说,如果我们有较多样本有缺失值,或者有类别不平衡的状况,我们就会引入权重,这时候我们就会考虑这个值了
max_features: 默认None也就是所有,还可以选择log2,sqrt,N,特征值表小的时候一般使用所有
min_impurity_decrease:节点划分最小不纯度,默认是0
class_weight:权重,默认是None

首先调max_features,发现20的时候是最大值

首先调max_depth,发现10的时候是最大值

调整min_sample_leaf,min_sample_split

min_samples_leaf=0.01,min_samples_split=0.005时,效果最好

各类决策树算法的对比相关推荐

  1. ML之DT:基于DT决策树算法(对比是否经特征筛选FS处理)对Titanic(泰坦尼克号)数据集进行二分类预测

    ML之DT:基于DT决策树算法(对比是否经特征筛选FS处理)对Titanic(泰坦尼克号)数据集进行二分类预测 目录 输出结果 设计思路 核心代码 输出结果 初步处理后的 X_train: (984, ...

  2. 企业级用户画像:用户购物性别模型-USG和决策树算法

    絮叨两句: 博主是一名数据分析实习生,利用博客记录自己所学的知识,也希望能帮助到正在学习的同学们 人的一生中会遇到各种各样的困难和折磨,逃避是解决不了问题的,唯有以乐观的精神去迎接生活的挑战 少年易老 ...

  3. 机器学习-有监督学习-分类算法:决策树算法【CART树:分类树(基于信息熵;分类依据:信息增益、信息增益率、基尼系数)、回归树(基于均方误差)】【损失函数:叶节点信息熵和】【对特征具有很好的分析能力】

    一.决策树概述 注:生产实践中,不使用决策树,太简单,而是使用决策树的升级版:集成学习算法. 集成学习算法有: Random Forest(随机森林) Extremely Randomized For ...

  4. c5.0决策树算法_决策树算法

    决策树算法,从名字中也可以理解到该算法是以树形结构建立模型的,该算法主要根据分层和分割的方式将预测变量空间划分为一系列简单区域.对某个给定的待预测的观测值,用它所属区域中训练的平均值或众数进行预测.决 ...

  5. matlab粗集系统评估wine,C4.5 决策树算法对UCI wine数据集分类的实现(MATLAB)

    一.功能实现与样本分析 在数据挖掘领域,能够利用相应的算法对数据集进行训练,即对样本的特征进行分析,从而概括出相同类别的样本之间存在的内在特征联系,进一步对未知类别的样本进行预测,判断出该样本所属的类 ...

  6. 决策树算法模型的归类与整理(ID3&C4.5&CART&线性二分类&非线性二分类)

    决策树算法模型的归类与整理(ID3&C4.5&CART&线性二分类&非线性二分类) 一. 总结摘要 决策树模型在监督学习中非常常见,可用于分类(二分类.多分类)和回归. ...

  7. Python机器学习--算法--决策树算法

    决策树算法 决策树算法类型: 决策树是一系列算法,而不是一个算法. 决策树包含了 ID3分类算法,C4.5分类算法,Cart分类树算法,Cart回归树算法. 决策树既可以做分类算法,也可以做回归算法. ...

  8. Python机器学习--分类\回归--决策树算法

    决策树算法类型 决策树是一系列算法,而不是一个算法. 决策树包含了 ID3分类算法,C4.5分类算法,Cart分类树算法,Cart回归树算法. 决策树既可以做分类算法,也可以做回归算法.因此决策树既可 ...

  9. 【机器学习入门】(4) 决策树算法理论:算法原理、信息熵、信息增益、预剪枝、后剪枝、算法选择

    各位同学好,今天我向大家介绍一下python机器学习中的决策树算法的基本原理.内容主要有: (1) 概念理解:(2) 信息熵:(3) 信息增益:(4) 算法选择:(5) 预剪枝和后剪枝. python ...

最新文章

  1. 马化腾:微信将被谁颠覆,领衔下一代互联网的终端居然是?
  2. 算法 - 输出一个字符串的全排列(C++)
  3. 全方位讲解硬件防火墙的选择
  4. 斯坦福大学深度学习与自然语言处理第一讲:引言
  5. 第一章 TensorFlow基础——python语法(三)
  6. mysql计算1天后的时间_mysql 计算某个时间,多少天后,多少个月后时间戳
  7. 从案例角度解析建模平台动态规则引擎
  8. mysql zip 还原_mysql 压缩还原数据库
  9. 使用反射调用构造器创建对象
  10. 深度学习主机攒机小记
  11. jmeter解决不同线程组之间传递参数问题
  12. 解决firefox和IE9对icon font字体的跨域访问问题
  13. 使用工具安装,运行,停止,卸载Window服务
  14. 里恩eLearning在线培训考核系统介绍
  15. 如何选择适合你的兴趣爱好(六),钢琴
  16. php解析mpp文件中的多级任务
  17. 标准更新|这次是OTA的EN301908-13即增加TRP和TRS的测试要求
  18. AUI素材网-网站模板源码下载
  19. 为什么很多聪明的人,却一辈子在社会最底层?
  20. axure 8 表格合并_Word页面布局、“插入”选项卡及表格部分考点梳理

热门文章

  1. 【IT】武汉一网店店主欲删除差评 反被骗3.5万余元
  2. Ubuntu死机解决办法
  3. 3d全景手机端导航菜单js特效
  4. 创成汇创业者投融资对接应该注意点什么?
  5. Netty源码(十五):Recycler工具类
  6. 计算机硬件最长寿,哪个品牌的笔记本使用寿命最长(一般使用条件下)?
  7. 葵花宝典 先要练功,必先自宫(横扫职场的葵花宝典)
  8. Idea提交代码报错:Push rejected: Push master to origin/master was rejected by remote
  9. 英语中常见100个句型
  10. 全屏9999朵玫瑰表白源码 易语言