ID3 C4.5 CART
特征选择 信息增益 信息增益比 基尼不纯度
连续值处理 只能处理离散值 二分 二分
树形式 多叉 多叉 二叉树
剪枝
适用问题 分类 分类 分类/回归
  • 关于特征选择方式与熵?

    熵反映了信息量大小(混乱程度),熵越大信息量越大。我们的目标是熵减少方向

树模型原理

ID3

(1)计算数据集D 的经验熵 H(D)

\[H(D)=-\sum_{k=1}^{K} \frac{\left|C_{k}\right|}{|D|} \log _{2} \frac{\left|C_{k}\right|}{|D|}
\]

​ \(K\) 表示数据类别,\(C_k\) 表示第 \(k\) 类样本的个数

(2)计算特征 A 对数据集 D 的经验条件熵 \(H(D | A)\)

\[H(D | A)=\sum_{i=1}^{n} \frac{\left|D_{i}\right|}{|D|} H\left(D_{i}\right)=-\sum_{i=1}^{n} \frac{\left|D_{i}\right|}{D |} \sum_{k=1}^{K} \frac{\left|D_{k}\right|}{\left|D_{i}\right|} \log _{2} \frac{\left|D_{k}\right|}{\left|D_{i}\right|}
\]

​ \(D_i\) 表示根据特征 \(A\) 划分后的数据子集

(3)计算信息增益

\[g(D, A)=H(D)-H(D | A)
\]

C4.5

信息增益比

\[\begin{array}{c}
H_A(D)=-\sum_{j=1}^{n} \frac{N\left(D_{j}\right)}{N(D)} \log \left(\frac{N\left(D_{j}\right)}{N(D)}\right) \\
g_r(D,A)=\frac{g(D,A)}{H_A(D)}
\end{array}
\]

其中 n表示特征 A取值的个数

CART

分类树

基尼不纯度(gini impurity)

\[gini(p) = \sum_{i=1}^Kp_k(1-p_k)=1-\sum_{i=1}^Kp_k^2
\]

\(p_k\) 表示两个第 k类样本的数量比。

基尼不纯度的\((1-p_k)\) 相当于信息熵中log项的泰勒展开

根据特征 A的取值a划分两个子集(二叉)

\[gini(D) = 1-\sum^K_{i=1}(\frac{|C_k|}{|D|})^2 \\
gini(D,A) = \frac{|D_1|}{|D|}gini(D_1)+\frac{|D_2|}{|D|}gini(D_2)\\
D_1 = \{(x,y)\in D | A(x)=a\},D_2 = D-D-1
\]

回归树
  • 回归树如何选择节点分裂方式?

    使用平方误差 \(\sum(y_i - f(x_i))^2\)

  • 树模型怎么得到平方误差呢?

    根据叶子节点值作为作为输出。将输入空间划分为多个单元,每个单元有一个固定输出值(对应输入空间输出值的平均)

  • 具体怎么划分?

    类似分类树,根据划分前后的误差选取。选取切分变量和切分点(特征及特征取值)

回归树构建流程:

  1. 选择切分变量j和切分点s,划分子区域:

    \[R_1(j,s) = \{x|x^{(j)} \leq s\},\quad R_2(j,s) = \{x|x^{(j)} > s\}
    \]

  2. 计算对应特征与特征值下的误差:

    \[\sum_{x_i\in R_1(j,s)}(y_i-c_1)^2 + \sum_{x_i\in R_2(j,s)}(y_i-c_2)^2
    \]

    其中 \(c_1 = ave(y_i|x_i\in R_1(j,s))\)

    1. 遍历,寻找最优切分变量j和最优切分点s(使平方误差最小)

    2. 根据选定的(j,s)划分区域:

    \[R_1,R_2,c_m = \frac{1}{N_m}\sum_{x_i\in R_m(j,s)}y_i ,m\in \{1,2\}
    \]

树创建

ID3、C4.5 多叉树

CART分类树(二叉)

CART回归树

不同树的基本创建过程只有两点不同:

  • 划分节点的评价方式
  • 子集的划分

references:

[1] 统计学习方法

[2] 机器学习实战

ID3\C4.5\CART的更多相关文章

  1. 决策树(ID3,C4.5,CART)原理以及实现

    决策树 决策树是一种基本的分类和回归方法.决策树顾名思义,模型可以表示为树型结构,可以认为是if-then的集合,也可以认为是定义在特征空间与类空间上的条件概率分布. [图片上传失败...(image ...

  2. 决策树模型 ID3/C4.5/CART算法比较

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

  3. 机器学习算法总结(二)——决策树(ID3, C4.5, CART)

    决策树是既可以作为分类算法,又可以作为回归算法,而且在经常被用作为集成算法中的基学习器.决策树是一种很古老的算法,也是很好理解的一种算法,构建决策树的过程本质上是一个递归的过程,采用if-then的规 ...

  4. 决策树 ID3 C4.5 CART(未完)

    1.决策树 :监督学习 决策树是一种依托决策而建立起来的一种树. 在机器学习中,决策树是一种预测模型,代表的是一种对象属性与对象值之间的一种映射关系,每一个节点代表某个对象,树中的每一个分叉路径代表某 ...

  5. 机器学习相关知识整理系列之一:决策树算法原理及剪枝(ID3,C4.5,CART)

    决策树是一种基本的分类与回归方法.分类决策树是一种描述对实例进行分类的树形结构,决策树由结点和有向边组成.结点由两种类型,内部结点表示一个特征或属性,叶结点表示一个类. 1. 基础知识 熵 在信息学和 ...

  6. 21.决策树(ID3/C4.5/CART)

    总览 算法   功能  树结构  特征选择  连续值处理 缺失值处理  剪枝  ID3  分类  多叉树  信息增益   不支持 不支持  不支持 C4.5  分类  多叉树  信息增益比   支持 ...

  7. ID3/C4.5/Gini Index

    ID3/C4.5/Gini Index */--> ID3/C4.5/Gini Index 1 ID3 Select the attribute with the highest informa ...

  8. ID3,C4.5和CART三种决策树的区别

    ID3决策树优先选择信息增益大的属性来对样本进行划分,但是这样的分裂节点方法有一个很大的缺点,当一个属性可取值数目较多时,可能在这个属性对应值下的样本只有一个或者很少个,此时它的信息增益将很高,ID3 ...

  9. 用于分类的决策树(Decision Tree)-ID3 C4.5

    决策树(Decision Tree)是一种基本的分类与回归方法(ID3.C4.5和基于 Gini 的 CART 可用于分类,CART还可用于回归).决策树在分类过程中,表示的是基于特征对实例进行划分, ...

随机推荐

  1. PHP array_values() 函数

    实例 返回数组中所有的值(不保留键名): <?php$a=array("Name"=>"Peter","Age"=>&qu ...

  2. PHP imagecharup - 垂直地画一个字符

    imagecharup — 垂直地画一个字符.高佣联盟 www.cgewang.com 语法 bool imagecharup ( resource $image , int $font , int ...

  3. PHP strtolower() 函数

    实例 把所有字符转换为小写: <?php高佣联盟 www.cgewang.comecho strtolower("Hello WORLD.");?> 定义和用法 str ...

  4. PHP strnatcmp() 函数

    实例 使用"自然"算法来比较两个字符串(区分大小写): <?php高佣联盟 www.cgewang.comecho strnatcmp("2Hello world! ...

  5. 最新 laravel5.8 连接redis集群

    简介 Redis 是一个开源的,高级键值对存储数据库.由于它包含 字符串 , 哈希 , 列表 , 集合 , 和 有序集合 这些数据类型,所以它通常被称为数据结构服务器. 在使用 Laravel 的 R ...

  6. C/C++编程笔记:C语言入门知识点(二),请收藏C语言最全笔记!

    今天我们继续来学习C语言的入门知识点 11. 作用域规则 任何一种编程中,作用域是程序中定义的变量所存在的区域,超过该区域变量就不能被访问.C 语言中有三个地方可以声明变量: 在函数或块内部的局部变量 ...

  7. 7.18 NOI模拟赛 树论 线段树 树链剖分 树的直径的中心 SG函数 换根

    LINK:树论 不愧是我认识的出题人 出的题就是牛掰 == 他好像不认识我 考试的时候 只会写42 还有两个subtask写挂了 拿了37 确实两个subtask合起来只有5分的好成绩 父亲能转移到自 ...

  8. bzoj 2125 最短路 点双 圆方树

    LINK:最短路 一张仙人掌图 求图中两点最短路. \(n<=10000,Q<=10000,w>=1\) 考虑边数是多少 m>=n-1 对于一张仙人掌图 考虑先构建出来dfs树 ...

  9. Java异步之《我call(),Future在哪里》

    我们大家都知道,在 Java 中创建线程主要有三种方式: 继承 Thread 类: 实现 Runnable 接口: 实现 Callable 接口. 而后两者的区别在于 Callable 接口中的 ca ...

  10. 【译】10 款国外实用、有趣的 GitHub 简介 README

    本文翻译自 dev.to 文章<10 Standout GitHub Profile READMEs> 原文链接见:https://dev.to/github/10-standout-gi ...