《统计学习方法》读书笔记——决策树

(仅记录自己的学习心得,默认记录自己之前不太清楚或者有新的心得的部分,所以可能并不全面。)

ID3 算法:依据信息增益选择作为结点的特征,且不能重复选取。

C4.5 算法: 依据信息增益比选择结点的特征,也不能重复选特征。

剪枝【重要的部分】:通过极小化决策树整体的损失函数或代价函数实现。

【介绍损失函数】

一些概念:

经验熵:H_{t}(T) = -\sum_{k} \frac{N_{tk} }{N_{t} }log\frac{N_{tk} }{N_{t} }          

某个叶子的样本个数为N_{t} , 其中属于第k类的有N_{tk} 个。

这个形式跟熵的定义很像:H(X)=-\sum_{i=1}^np_{i}logp_{i}   p_{i} 为随机变量X取不同值的概率。(如果仅有两种取值,概率为0或1时熵的值最小是0,因为是确定情况,0.5时熵的值最大,因为不确定性最大,因此熵越大代表随机变量取值不确定性越强,如下图:)(我猜公式里取log也是因为需要在自变量为1时需要为0,又因为log函数小于1时是负数,所以整个公式需要取负号)


继续看经验熵的公式,可以看出概率的位置为每个叶子里第k类样本占整个叶子样本的比例,也就可以将经验熵理解为以类别为随机变量的熵,而因为是在同一个叶子里,所以我们希望这个熵越小越好。因为一个叶子的类别由里面大多数的类别决定,所以经验熵越小,预测误差越小。

损失函数的概念:

整个决策树T的损失函数:\sum_{t=1}^TN_{t} H_{t}(T)+\alpha \vert T \vert   ,        \vert T \vert 为叶结点的个数,t为叶结点

公式第一项为每个叶子的结点数*经验熵,书中说这表明了模型对训练数据的预测误差。由此可以推测经验熵表示了对每一个样本的预测误差,(因为我理解的熵的含义一直是一个度量的概念,我不太清楚这是否是一个量化的值,所以这块理解不是很透彻)

公式的第二项表示模型的复杂程度。

剪枝的过程就是在\alpha 确定时,选择损失函数最小的子树。因此:

\alpha 较大意味着会选择复杂度低的子树,简单的模型;\alpha 较小意味着选择较复杂的子树;\alpha =0意味着只考虑模型对训练数据的拟合程度,不考虑复杂度。因此损失函数平衡了拟合效果和复杂度两种因素。

【CART算法】:分类与回归树,二叉树,包括决策树生成和剪枝过程。

1)生成树:

回归树:依据平方误差最小化准则进行最优特征的最优分割点。

寻找最优特征的最优分割点:对第j个特征(书里说是第j个变量,我理解就是特征),假设切分点为s,使得把该特征的所有取值分成两个部分:R_{1} (j,s)=\left\{ x\vert x^j\leq s   \right\} ,R_{1} (j,s)=\left\{ x\vert x^j > s   \right\} 。根据平方误差最小准则,每个区域上的最优输出值应为:

c_{1}=\frac{1}{N_{1} }  \sum_{x_{i}\in N_{1} } y_{i} ,c_{2}=\frac{1}{N_{2} }  \sum_{x_{i}\in N_{2} } y_{i} 。总体的平方误差为:

m(s)=min[min_{c1} \sum_{x_{i} \in R_{1} }(y_{i} -c1)^2+min_{c2} \sum_{x_{i} \in R_{2} }(y_{i} -c2)^2   ]

则选取的步骤是:将该特征的取值按大小排序,通常在两个相邻值之间取一个划分点s,计算m(s),找到最小的对应的s,就是该特征下的最优划分点;遍历所有的特征,找到所有特征中最小的m(s),构成的(j,s)就是最优切分变量的最优划分点。

找到最优划分点后,分别对每一个区域重复上述步骤,直至平方误差低于设定的阈值,整个树构建完毕。

(回归树这里参考了https://blog.csdn.net/aaa_aaa1sdf/article/details/81588382这篇里的例子,就很好懂了。)

分类树:依据基尼指数选择最优划分特征。

假设样本为第k类的概率为p_{k} ,则基尼指数为:

Gini(p)=\sum_{k=1}^K p_{k} (1-p_{k}), 反应了从一个数据集中随机抽取两个样本,其类别不一致的概率。由此可知,基尼指数越小,说明数据集纯度越高(与熵类似)。

CART分类树选取特征不同于ID3等算法直接选某一个特征作为划分点,它是根据某个特征是否取其中某个值划分成两个叉(因为是二叉树)。所以它的步骤是:

对每个特征的每个取值,根据是否将数据集分成两份,计算基尼指数:

Gini(D,A)=\frac{\vert D1 \vert }{\vert D \vert } Gini(D1)+\frac{\vert D2 \vert }{\vert D \vert } Gini(D2),

选择基尼指数最小的特征及最优划分点,将数据集D分割到两个子结点中,对每个结点重复上述步骤。

2)CART剪枝:

拢共分两步:从底向上不断剪枝,形成子树序列;选择损失函数值最小的子树。

先说怎么生成子树序列吧,我觉得他这个思考的过程很牛的:

从整体树T_{0} 开始剪枝。对于T_{0} 内部任意结点t,

以t为单结点树的损失函数:C_{\alpha }(t)=C(t)+\alpha ,

以t为根结点的子树T_{t} 的损失函数:C_{\alpha }(T_{t} )=C(T_{t} )+\alpha\vert T_{t}  \vert ,可知,

\alpha 等于0或者充分小时,C_{\alpha }(T_{t} )< C_{\alpha }(t ),

\alpha 增大,到某一值时,有,C_{\alpha }(T_{t} )= C_{\alpha }(t )

\alpha 继续增大,有C_{\alpha }(T_{t} )> C_{\alpha }(t )

即当\alpha =\frac{C_{\alpha }(t )-C_{\alpha }(T_{t} )}{\vert T_{t} \vert-1 } 时,T_{t} 与t有相同的损失函数,而t比T_{t} 的结点少,所以可以剪枝。

因此我们如果找到一些这样的\alpha 值,就可以剪枝了。

所以具体的步骤是:对T_{0} 的每一个内部节点t,计算g(t) =\frac{C_{\alpha }(t )-C_{\alpha }(T_{t} )}{\vert T_{t} \vert-1 } ,先减去g(t)最小的T_{t} (从小到大一点一点剪),得到子树T_{1} ,这个g(t)设为\alpha _{1} 。依次减去所有g(t)的T_{t} ,得到一个子树序列\left\{ T_{0},T_{1},...,T_{n}    \right\}

选择最优子树:

使用验证集,计算子树序列中各棵子树的平方误差或基尼指数,最小的子树为最优子树,对应的\alpha 也确定了。

本章完。


一点补充:

书中说,决策树学习的损失函数通常是正则化的极大似然函数。不是很理解,看到有大佬推导出,经验误差函数(也就是损失函数的第一项)是通过对数极大似然函数取反得到的。在概率模型中,二者是相同的概念(只有符号不一样)。其意义作者个人理解为:先对各叶节点之间进行极大似然估计,再对各叶节点内部进行极大似然估计,由此得到决策树模型中的极大似然函数。

妈耶,最后一句没看懂,还要去补一补极大似然估计的概念……

大佬链接在这里https://blog.csdn.net/wzk1996/article/details/81941572

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,869评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,716评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 166,223评论 0 357
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,047评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,089评论 6 395
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,839评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,516评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,410评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,920评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,052评论 3 340
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,179评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,868评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,522评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,070评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,186评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,487评论 3 375
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,162评论 2 356