顾名思义,决策树是基于树结构进行决策。决策树的训练通常由三部分组成:特征选择树的生成剪枝

1.ID3决策树

以最大化信息增益为准则来选择划分属性。
假设离散属性a上有V个可能的取值{a1,...,aV}\{a^1,...,a^V\}{a1,...,aV},若使用a对样本集D进行划分,则会产生V个分支节点。其中第v个分支节点包含了D中所有在属性a上取值为ava^vav的样本,记为DvD^vDv。
maxGain(D,a)=Entropy(D)−Entropy(D∣a)=Entropy(D)−∑v=1V∣Dv∣∣D∣Entropy(Dv)max \quad Gain(D,a)=Entropy(D)-Entropy(D|a) =Entropy(D)-\sum_{v=1}^V\frac{|D^v|}{|D|}Entropy(D^v)maxGain(D,a)=Entropy(D)−Entropy(D∣a)=Entropy(D)−v=1∑V​∣D∣∣Dv∣​Entropy(Dv)信息增益Gain(D,a)Gain(D,a)Gain(D,a)越大,则表示使用属性a进行划分所获得的纯度提升越大。
信息熵:越小则X的纯度越高。Entropy(X)=−∑x∈Xp(x)logp(x)Entropy(X)=-\sum_{x\in X} p(x)logp(x)Entropy(X)=−x∈X∑​p(x)logp(x)条件熵:Entropy(Y∣X)=∑x∈Xp(x)Entropy(Y∣X=x)Entropy(Y|X) =\sum_{x\in X}p(x)Entropy(Y|X=x)Entropy(Y∣X)=x∈X∑​p(x)Entropy(Y∣X=x)

2.C4.5决策树

信息增益准则对取值数目较多的属性有所偏好,为了减少这种偏好可能带来的不利影响,C4.5决策树以最大化信息增益率为准则来选择划分属性。信息增益率代表单位代价所取得的信息量。maxGain_ratio(D,a)=Gain(D,a)Entropy(D,a)=Gain(D,a)−∑v=1V∣Dv∣∣D∣log∣Dv∣∣D∣max \quad Gain\_ratio(D,a)=\frac{Gain(D,a)}{Entropy(D,a)}=\frac{Gain(D,a)}{-\sum_{v=1}^V\frac{|D^v|}{|D|}log\frac{|D^v|}{|D|}}maxGain_ratio(D,a)=Entropy(D,a)Gain(D,a)​=−∑v=1V​∣D∣∣Dv∣​log∣D∣∣Dv∣​Gain(D,a)​
联合熵:Entropy(X,Y)=−∑p(x,y)logp(x,y)Entropy(X,Y)=-\sum p(x,y)logp(x,y)Entropy(X,Y)=−∑p(x,y)logp(x,y)

3.CART决策树

以最小化基尼指数为准则来选择划分属性。
minGini_index(D,a)=∣DL∣∣D∣Gini(DL)+∣DR∣∣D∣Gini(DR)min \quad Gini\_index(D,a)=\frac{|D^L|}{|D|}Gini(D^L)+\frac{|D^R|}{|D|}Gini(D^R)minGini_index(D,a)=∣D∣∣DL∣​Gini(DL)+∣D∣∣DR∣​Gini(DR)
基尼值=样本被选中的概率*样本被分错的概率,基尼值越小则D的纯度越高。
Gini(D)=∑k=1Kpk(1−pk)=1−∑k=1Kpk2Gini(D)=\sum_{k=1}^Kp_k(1-p_k)=1-\sum_{k=1}^Kp_k^2Gini(D)=k=1∑K​pk​(1−pk​)=1−k=1∑K​pk2​
CART 决策树既可以用于分类,也可以用于回归; 对回归树 CART 算法用平方误差最小化准则来选择特征,对分类树用基尼指数最小化准则选择特征
【例题1】:

【例题2】:

4.剪枝处理

  • 预剪枝
    事先给定阈值,使得很多分支没有展开,从而降低过拟合的风险
  • 后剪枝
    对多种不同的剪枝结果进行评价,选出最好的剪枝形式,评价方法是在训练误差和模型复杂度之间寻找一个平衡点。

5.特殊情况

  • 连续变量:离散化处理(最简单:二分法,取中位点作为候选划分点)
  • 缺失值:对每个样本赋予一个权重,推广信息增益公式

【ML小结5】决策树(ID3、C4.5、CART)相关推荐

  1. 决策树ID3 C4.5 CART代码

    ID3 # encoding: gbkimport pandas as pd import numpy as npclass DecisionTree:def __init__(self):self. ...

  2. 决策树数学原理(ID3,c4.5,cart算法)

    上面这个图就是一棵典型的决策树.我们在做决策树的时候,会经历两个阶段:构造和剪枝. 构造 简单来说,构造的过程就是选择什么属性作为节点的过程,那么在构造过程中,会存在三种节点: 根节点:就是树的最顶端 ...

  3. 决策树 基于python实现ID3,C4.5,CART算法

    实验目录 实验环境 简介 决策树(decision tree) 信息熵 信息增益(应用于ID3算法) 信息增益率(在C4.5算法中使用) 基尼指数(被用于CART算法) 实验准备 数据集 算法大体流程 ...

  4. 【机器学习】通过ID3,C4.5,CART算法构建决策树

    决策树 (一).决策树的简介 (二).构造决策树的三种构造方法 1.基于信息增益生成决策树(ID3算法) 2.基于信息增益率生成决策树(C4.5算法) 3.基于基尼指数生成决策树(CART算法) 总结 ...

  5. 【机器学习实战】构建/绘制决策树(ID3/C4.5)

    近来想要整理一下机器学习实验的代码,将一些基本算法的过程重新整理实现,并完善注释. 一.构建决策树 1.计算信息熵calculate_entropy(dataset) 2.按某一特征划分数据集spli ...

  6. 机器学习:决策树及ID3,C4.5,CART算法描述

    文章目录 概念理解 熵: 条件熵: 信息增益,互信息: 信息增益比 基尼指数 ID3算法描述 C4.5算法描述 CART (Classification and Regression Tree)算法描 ...

  7. 【机器学习】 ID3,C4.5,CART决策树

    决策树模型在监督学习中非常常见,可用于分类(二分类.多分类)和回归.虽然将多棵弱决策树的Bagging.Random Forest.Boosting等tree ensembel 模型更为常见,但是&q ...

  8. cart算法_【统计学】决策树模型大比拼!ID3/C4.5/CART算法哪个更好用?

    - 点击上方"中国统计网"订阅我吧!- 决策树模型在监督学习中非常常见,可用于分类(二分类.多分类)和回归.虽然将多棵弱决策树的Bagging.Random Forest.Boos ...

  9. 决策树模型(ID3/C4.5/CART)原理和底层代码解读 学习笔记

    本文作者:合肥工业大学 管理学院 钱洋 email:1563178220@qq.com 内容可能有不到之处,欢迎交流. 未经本人允许禁止转载 如下为个人的学习笔记,使用latex编写,再写成文本太麻烦 ...

  10. 通过实例理解决策树算法(ID3,C4.5,Cart算法)

    (一)实例:使用ID3算法给出"好苹果"的决策树 (二)决策树的工作原理 我们在做决策树的时候,会经历两个阶段:构造和剪枝. 构造原理--构造的过程就是选择什么属性作为节点的过程, ...

最新文章

  1. delphi创建和读取xml(xml简单操作举例)
  2. Java 自定义线程池
  3. Primer c++ 第5版pdf
  4. 飞畅科技-千兆/百兆/核心/PoE/光纤交换机选型指南
  5. 东华大学考研计算机难度,东华大学计算机考研难不难
  6. MAC OS 如何安装命令行工具:Command Line Tools
  7. linux安装python_最基础:如何安装Python?
  8. 疯狂的程序员 1-10
  9. python列表查找元素用什么运算符_【Python】第012课,定义和使用列表,列表的运算符,列表元素的遍历i,列表的方法,元素位置和次数,元素排序和反转。...
  10. 微信使用技巧 - 收集整理
  11. 定了!自考还没有报名的每人补贴8000元!政策扶持,名额有限,速看!!!!...
  12. 禅道mysql怎么在本地配置_本地安装部署禅道
  13. 联想Y430p win8.1装win7双系统
  14. Tab层切换02-兼容IE8和Chrome浏览器
  15. UE4 后期处理 PostProcess
  16. 你了解什么是Web服务器吗?
  17. 我自己曾经经历的CMMI3认证通过关于软件测试的访谈
  18. 可恶的动态代理!!!!我要消灭你
  19. 如何layui下select下拉框不显示或没有效果怎么办
  20. 计算机是一种能够预先,第1章计算机基础知识 一级msoffice电子教案

热门文章

  1. soltrace教程(2)旧版本项目导入新版本
  2. 试试Navicat和Axere RP Pro吧
  3. ssl自签名证书生成脚本
  4. IOS错误---“A valid provisioning profile for this executable was not found”
  5. 计算两个路径的父亲路径
  6. HTML是由____构成的____文件,JSP填空题
  7. sql server根据年查询日期_SQL根据日期条件使用between查询数据集应注意事项
  8. 创建data文件_剑指信奥 | C++ 之文件操作
  9. 博弈论——威佐夫博弈 Wythoff Game
  10. string字符串比较