决策树相关学习

决策树

信息熵: 随机变量的不确定性的度量.
H ( X ) = − ∑ i = 1 n p i log ⁡ p i H(X)=-\sum_{i=1}^{n} p_{i} \log p_{i} H(X)=i=1npilogpi
0 ≤ H ( X ) ≤ log ⁡ n 0 \leq H(X) \leq \log n 0H(X)logn
信息增益: 得知特征X的信息而使得类Y的信息的不确定性减少的程度.
g ( Y , X ) = H ( Y ) − H ( Y │ X ) g(Y,X)=H(Y)-H(Y│X) g(Y,X)=H(Y)H(YX)

信息增益算法

输入:训练数据集D和特征A
输出:特征A对训练数据集D的信息增益g(D,A)

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

  2. 计算特征A对数据D的经验条件熵H(D|A)
    H ( D ) = − ∑ i = 1 n ∣ C k ∣ ∣ D ∣ log ⁡ 2 ∣ C k ∣ ∣ D ∣ H(D)=-\sum_{i=1}^{n} \frac{\left|C_{k}\right|}{|D|} \log _{2} \frac{\left|C_{k}\right|}{|D|} H(D)=i=1nDCklog2DCk

  3. 计算信息增益
    g ( D , A ) = H ( D ) − H ( D │ A ) g(D,A)=H(D)-H(D│A) g(D,A)=H(D)H(DA)

ID3算法

思想: 在决策树各个节点上应用信息增益准则选择特征, 递归地构建决策树.
方法:从根节点出发, 对结点计算所有可能的特征的信息增益, 选择信息增益最大的特征作为节点的特征, 并递归构建决策树.
(ID3相当于用极大似然法进行概率模型的选择)
输入: 训练数据集D, 特征集A, 阈值ε
输出: 决策树T

  1. 若D中所有实例属于同一类 C k C_k Ck, 则T为单节点数, 并将类 C k C_k Ck作为该节点的类标记,返回T.
  2. 若A=∅, 则T为单节点树, 并将D中实例数最大的类 C k C_k Ck作为该节点的类标记, 返回T.
  3. 否则,安装信息增益算法, 计算A中各特征对D的信息增益, 选择信息增益最大的特征 A g A_g Ag.
  4. 若A_g的信息增益小于阈值ε,则设置T为单节点树, 并将D 中实例数最大的类C_k作为该节点的类标记, 返回T.
  5. 否则,对 A g A_g Ag的每一可能值 a i a_i ai, 依 A g = a i A_g=a_i Ag=ai将D分割为若干非空子集 D i D_i Di, 将 D i D_i Di中实例数最大的类作为标记,构建子节点, 由结点及其子结点构成树T, 返回T.
  6. 对第i个子结点, 以 D i D_i Di为训练集, 以A- A g {A_g} Ag为特征集, 递归调用(1)~(5), 得到子树 T i T_i Ti, 返回 T i T_i Ti

Cart 树

Cart树是二叉树,每次分裂产生两个子节点.

Cart 分类树

采用Gini指数选择最优特征, Gini指数反应样本集合的不确定性
Gini ⁡ ( p ) = ∑ i = 1 n p k ( 1 − p k ) = 1 − ∑ k = 1 K p k 2 \operatorname{Gini}(p)=\sum_{i=1}^{n} p_{k}\left(1-p_{k}\right)=1-\sum_{k=1}^{K} p_{k}^{2} Gini(p)=i=1npk(1pk)=1k=1Kpk2
其中假设有k个类, p k p_k pk表样本点属于第k个类的概率.
在特征A的条件下,集合D的基尼指数定义为:
Gini ⁡ ( D , A ) = ∣ D 1 ∣ ∣ D ∣ Gini ⁡ ( D 1 ) + ∣ D 2 ∣ ∣ D ∣ Gini ⁡ ( D 2 ) \operatorname{Gini}(D, A)=\frac{\left|D_{1}\right|}{|D|} \operatorname{Gini}\left(D_{1}\right)+\frac{\left|D_{2}\right|}{|D|} \operatorname{Gini}\left(D_{2}\right) Gini(D,A)=DD1Gini(D1)+DD2Gini(D2)
选取Gini指数最小的特征作为划分特征

CART回归树

思想: 将输入空间划分为M个单元(R1, R2, …, R M R_M RM), 并且在每个单元 R m R_m Rm上有一个固定的输出值 c m c_m cm
回归模型:
f ( x ) = ∑ m = 1 M c m I ( x ∈ R m ) f(x)=\sum_{m=1}^{M} c_{m} I\left(x \in R_{m}\right) f(x)=m=1McmI(xRm)
训练误差:
∑ x i ∈ R m ( y i − f ( x i ) ) 2 \sum_{x_{i} \in R_{m}}\left(y_{i}-f\left(x_{i}\right)\right)^{2} xiRm(yif(xi))2
单元 R m R_m Rm上的最优输出值 c m ∗ c_m^* cm
c m ∗ = ave ⁡ ( y i ∣ x i ∈ R m ) c_{m}^{*}=\operatorname{ave}\left(y_{i} \mid x_{i} \in R_{m}\right) cm=ave(yixiRm)
空间划分
采用启发式,选择第j个变量 x j x^{j} xj和它取值s, 作为切分变量和切分点,并定义两个区域
R 1 ( j , s ) = { x ∣ x ( j ) ≤ s } , R 2 ( j , s ) = { x ∣ x ( j ) ≥ s } R_{1}(j, s)=\left\{x \mid x^{(j)} \leq s\right\}, \quad R_{2}(j, s)=\left\{x \mid x^{(j)} \geq s\right\} R1(j,s)={xx(j)s},R2(j,s)={xx(j)s}
最优化切分点
min ⁡ j , s [ min ⁡ c 1 ∑ x i ∈ R 1 ( j , s ) ( y i − c 1 ) 2 + min ⁡ c 2 ∑ x i ∈ R 2 ( j , s ) ( y i − c 2 ) 2 ] \min _{j, s}\left[\min _{c_{1}} \sum_{x_{i} \in R_{1}(j, s)}\left(y_{i}-c_{1}\right)^{2}+\min _{c_{2}} \sum_{x_{i} \in R_{2}(j, s)}\left(y_{i}-c_{2}\right)^{2}\right] j,sminc1minxiR1(j,s)(yic1)2+c2minxiR2(j,s)(yic2)2

附录

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值