我是靠谱客的博主 专注超短裙,最近开发中收集的这篇文章主要介绍吃瓜笔记task3第四章 决策树,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

第四章 决策树

算法原理

逻辑角度

if-else的组合

集合角度

根据某种准则划分特征空间

信息熵

自信息

I ( X ) = − l o g b p ( x ) I(X)=-log_bp(x) I(X)=logbp(x)

当b=2时单位为bit,当b=e时单位为nat

信息熵(自信息的期望)

度量随机变量X的不确定性,信息熵越大越不确定
H ( X ) = E [ I ( X ) ] = − ∑ x p ( x ) l o g b p ( x ) H(X) = mathbb{E}[I(X)]=-sum_xp(x)log_bp(x) H(X)=E[I(X)]=xp(x)logbp(x)
当X取的某个值概率为1时信息熵最小,值为0.

当X各取值概率均等时信息熵最大,值为 l o g b X log_bX logbX

假定当前样本集合 D D D 中第 k k k类样本所站比例为 p k ( k = 1 , 2 , . . . , ∣ y ∣ ) p_k(k=1,2,...,|y|) pk(k=1,2,...,y) ,则 D D D的信息熵定义为:
E n t ( D ) = − ∑ k = 1 ∣ y ∣ p k l o g 2 p k Ent(D)=-sum_{k=1}^{|y|}p_klog_2p_k Ent(D)=k=1ypklog2pk
E n t ( D ) Ent(D) Ent(D)的值越小,则D纯度越高

条件熵(Y的信息熵关于概率X的期望)

在已知X后Y的不确定性
H ( Y ∣ X ) = ∑ x p ( X ) H ( Y ∣ X = x ) H(Y|X) = sum_xp(X)H(Y|X=x) H(YX)=xp(X)H(YX=x)
假定离散属性 个可能的取值 a a a V V V个可能的取值 { a 1 , a 1 , . . . , a V } {a^1,a^1,...,a^V} {a1,a1,...,aV} D v D^v Dv表示属性 a a a取值为 a v ∈ { a 1 , a 1 , . . . , a V } a^vin{a^1,a^1,...,a^V} av{a1,a1,...,aV} 的样本集合, ∣ D v ∣ D frac{|D^v|}{D} DDv表示占比,那么在已知属性 a a a的取值后,样本集合 D D D的条件熵为
− ∑ v = 1 V ∣ D v ∣ D E n t ( D v ) -sum_{v=1}^{V}frac{|D^v|}{D}Ent(D^v) v=1VDDvEnt(Dv)

信息增益

信息熵-条件熵
G a i n ( D , a ) = E n t ( D ) − ∑ v = 1 V ∣ D v ∣ D E n t ( D v ) Gain(D,a)=Ent(D)-sum_{v=1}^{V}frac{|D^v|}{D}Ent(D^v) Gain(D,a)=Ent(D)v=1VDDvEnt(Dv)

ID3决策树

以信息增益为准则来划分属性的决策树
a ∗ = arg ⁡ max ⁡ a ∈ A G a i n ( D , a ) a_*= mathop{argmax}limits_{ain{A}}Gain(D,a) a=aAargmaxGain(D,a)

C4.5决策树

由于信息增益准则对可能取值数目较多的属性有所偏好,为减少这种偏好带来的不利营销,C4.5使用’‘增益率’‘代替’‘信息增益’‘

增益率

G a i n r a t i o ( D , a ) = G a i n ( D , a ) I V ( a ) Gain_ratio(D,a) = frac{Gain(D,a)}{IV(a)} Gainratio(D,a)=IV(a)Gain(D,a)

其中
I V ( a ) = − ∑ v = 1 V ∣ D v ∣ ∣ D ∣ l o g 2 ∣ D v ∣ ∣ D ∣ IV(a) = -sum_{v=1}^{V}frac{|D^v|}{|D|}log_2frac{|D^v|}{|D|} IV(a)=v=1VDDvlog2DDv
但增益率对取值数目较少的属性有所偏好。

因此,C4.5采样启发式的方法,先选出信息熵高于平均水平的属性,再从中选择增益率最高的。

CART决策树

基尼值

从样本集合随机抽两个样本,其类别标记不一致的概率。
G i n i ( D ) = ∑ k = 1 ∣ y ∣ ∑ k ′ ≠ k p k p k ′ = ∑ k = 1 ∣ y ∣ p k ( 1 − p k ) = 1 − ∑ k = 1 ∣ y ∣ p k 2 Gini(D)=sum_{k=1}^{|y|}sum_{k^{'}neq{k}}p_kp_{k^{'}}\=sum_{k=1}^{|y|}p_k(1-p_k)\=1-sum_{k=1}^{|y|}p_k^2 Gini(D)=k=1yk=kpkpk=k=1ypk(1pk)=1k=1ypk2

基尼指数

​ Gini_index ( D , q ) = − ∑ v = 1 V ∣ D v ∣ ∣ D ∣ (D,q) = -sum_{v=1}^{V}frac{|D^v|}{|D|} (D,q)=v=1VDDvGini ( D v ) (D^v) (Dv)

剪枝

预剪枝

计算每次分裂在验证集的准确性是否有提升,当不再提升或有所下降时,停止生长。

优点

思想简单,算法高效,采用了贪心的思想,适合大规模问题。

缺点

提前停止生长,有可能存在欠拟合的风险

后剪枝

将树上的每个节点都作为剪枝的候选对象,通过如下步骤进行剪枝操作:
step1:删除以此节点为根节点的树,
step2:使其成为叶子结点,赋予该节点最常见的分类
step3:对比删除前和删除后的性能是否有所提升,如果有则进行删除,没有则保留

连续值与缺失值处理

连续值

将连续数据按从小到大排序,以步长n从左到右移动,分割线左边为类别1,分割线右边为类别2,分别计算每次的信息增益。选取信息增益最大的为划分节点。

缺失值

通过无缺失值项的数据计算数据集的熵,依次计算每一个特征的熵值(去掉缺失值项计算)并计算信息增益,在信息增益前乘以一个比例(无缺失值条数/总数据量)得到最终信息增益。选择信息增益最大的一个特征进行决策树构造,缺失值数据分别以(选取特征中,未缺失数据量/总数据量)的比例进入每一个子结点。

参考
周志华,机器学习,清华大学出版社,2016
https://www.bilibili.com/video/BV1Mh411e7VU?p=6&spm_id_from=333.1007.top_right_bar_window_history.content.click&vd_source=ae6a9270751fdffac8724e71e288e0ec
《机器学习公式详解》

最后

以上就是专注超短裙为你收集整理的吃瓜笔记task3第四章 决策树的全部内容,希望文章能够帮你解决吃瓜笔记task3第四章 决策树所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(43)

评论列表共有 0 条评论

立即
投稿
返回
顶部