机器学习算法进阶学习笔记——决策树与随机森林

机器学习算法进阶学习笔记——决策树与随机森林

  • 决策树与随机森林
    • 信息增益
    • 条件熵
      • 经验条件熵 H ( D ∣ A ) \mathrm{H}(\mathrm{D} \mid \mathrm{A}) H(DA)
    • 信息增益率
    • 基尼系数
    • 决策树评价
  • 随机森林
    • Bootstrap
    • 投票机制

决策树与随机森林

决策树(Decision Tree)
囗决策树是一种树型结构,其中每个内部结点表示在一个属性上的测试,每个分支代表一
个测试输出,每个叶结点代表一种类别。
囗决策树学习是以实例为基础的归纳学习。
口决策树学习采用的是自顶向下的递归方法,其基本思想是以信息熵为度量构造一棵熵值下降最快的树,到叶子节点处的熵值为零,此时每个叶节点中的实例都属于同一类。

信息增益

概念:当熵和条件熵中的概率由数据估计(特别是极大似然估计)得到时,所对应的熵和条件熵分别称为经验熵和经验条件熵。

信息增益表示得知特征A的信息而使得类X的信息的不确定性减少的程度。

定义: 特征 A A A对训练数据集 D D D的信息增益 g ( D , A ) \mathrm{g}(\mathrm{D}, \mathrm{A}) g(D,A),的经验条件熵 H ( D ∣ A ) H(D|A) H(DA)之差, 即:
g ( D , A ) = H ( D ) − H ( D ∣ A ) \mathrm{g}(\mathrm{D}, \mathrm{A})=\mathrm{H}(\mathrm{D})-\mathrm{H}(\mathrm{D} \mid \mathrm{A}) g(D,A)=H(D)H(DA)
显然, 这即为训练数据集 D D D和特征 A A A的互信息。

条件熵

H ( X , Y ) − H ( X ) H(X, Y)-H(X) H(X,Y)H(X)
= − ∑ x , y p ( x , y ) log ⁡ p ( x , y ) + ∑ x p ( x ) log ⁡ p ( x ) =-\sum_{x, y} p(x, y) \log p(x, y)+\sum_{x} p(x) \log p(x) =x,yp(x,y)logp(x,y)+xp(x)logp(x)
= − ∑ x , y p ( x , y ) log ⁡ p ( x , y ) + ∑ x ( ∑ y p ( x , y ) ) log ⁡ p ( x ) =-\sum_{x, y} p(x, y) \log p(x, y)+\sum_{x}\left(\sum_{y} p(x, y)\right) \log p(x) =x,yp(x,y)logp(x,y)+x(yp(x,y))logp(x)
= − ∑ x , y p ( x , y ) log ⁡ p ( x , y ) + ∑ x , y p ( x , y ) log ⁡ p ( x ) =-\sum_{x, y} p(x, y) \log p(x, y)+\sum_{x, y} p(x, y) \log p(x) =x,yp(x,y)logp(x,y)+x,yp(x,y)logp(x)
= − ∑ x , y p ( x , y ) log ⁡ p ( x , y ) p ( x ) =-\sum_{x, y} p(x, y) \log \frac{p(x, y)}{p(x)} =x,yp(x,y)logp(x)p(x,y)
= − ∑ x , y p ( x , y ) log ⁡ p ( y ∣ x ) =-\sum_{x, y} p(x, y) \log p(y \mid x) =x,yp(x,y)logp(yx)
= − ∑ x ∑ y p ( x , y ) log ⁡ p ( y ∣ x ) =-\sum_{x} \sum_{y} p(x, y) \log p(y \mid x) =xyp(x,y)logp(yx)
= − ∑ x ∑ y p ( x ) p ( y ∣ x ) log ⁡ p ( y ∣ x ) =-\sum_{x} \sum_{y} p(x) p(y \mid x) \log p(y \mid x) =xyp(x)p(yx)logp(yx)
= − ∑ x p ( x ) ∑ y p ( y ∣ x ) log ⁡ p ( y ∣ x ) =-\sum_{x} p(x) \sum_{y} p(y \mid x) \log p(y \mid x) =xp(x)yp(yx)logp(yx)
= ∑ x p ( x ) ( − ∑ y p ( y ∣ x ) log ⁡ p ( y ∣ x ) ) =\sum_{x} p(x)\left(-\sum_{y} p(y \mid x) \log p(y \mid x)\right) =xp(x)(yp(yx)logp(yx))
= ∑ x p ( x ) H ( Y ∣ X = x ) =\sum_{x} p(x) H(Y \mid X=x) =xp(x)H(YX=x)
= H ( Y ∣ X ) =H(Y \mid X) =H(YX)

经验条件熵 H ( D ∣ A ) \mathrm{H}(\mathrm{D} \mid \mathrm{A}) H(DA)

H ( D ∣ A ) = − ∑ i , k p ( D k , A i ) log ⁡ p ( D k ∣ A i ) H(D \mid A)=-\sum_{i, k} p\left(D_{k}, A_{i}\right) \log p\left(D_{k} \mid A_{i}\right) H(DA)=i,kp(Dk,Ai)logp(DkAi)
= − ∑ i , k p ( A i ) p ( D k ∣ A i ) log ⁡ p ( D k ∣ A i ) =-\sum_{i, k} p\left(A_{i}\right) p\left(D_{k} \mid A_{i}\right) \log p\left(D_{k} \mid A_{i}\right) =i,kp(Ai)p(DkAi)logp(DkAi)
= − ∑ i = 1 n ∑ k = 1 K p ( A i ) p ( D k ∣ A i ) log ⁡ p ( D k ∣ A i ) =-\sum_{i=1}^{n} \sum_{k=1}^{K} p\left(A_{i}\right) p\left(D_{k} \mid A_{i}\right) \log p\left(D_{k} \mid A_{i}\right) =i=1nk=1Kp(Ai)p(DkAi)logp(DkAi)
= − ∑ i = 1 n p ( A i ) ∑ k = 1 K p ( D k ∣ A i ) log ⁡ p ( D k ∣ A i ) =-\sum_{i=1}^{n} p\left(A_{i}\right) \sum_{k=1}^{K} p\left(D_{k} \mid A_{i}\right) \log p\left(D_{k} \mid A_{i}\right) =i=1np(Ai)k=1Kp(DkAi)logp(DkAi)
= − ∑ i = 1 n ∣ D i ∣ ∣ D ∣ ∑ k = 1 K ∣ D i k ∣ ∣ D i ∣ log ⁡ ∣ D i k ∣ ∣ D i ∣ =-\sum_{i=1}^{n} \frac{\left|D_{i}\right|}{|D|} \sum_{k=1}^{K} \frac{\left|D_{i k}\right|}{\left|D_{i}\right|} \log \frac{\left|D_{i k}\right|}{\left|D_{i}\right|} =i=1nDDik=1KDiDiklogDiDik

信息增益率

□ \square 信息增益率 : g r ( D , A ) = g ( D , A ) / H ( A ) : \mathrm{g}_{\mathrm{r}}(\mathrm{D}, \mathrm{A})=\mathrm{g}(\mathrm{D}, \mathrm{A}) / \mathrm{H}(\mathrm{A}) :gr(D,A)=g(D,A)/H(A)

基尼系数

□ \square Gini 系数:
Gini ⁡ ( p ) = ∑ k = 1 K p k ( 1 − p k ) = 1 − ∑ k = 1 K p k 2 = 1 − ∑ k = 1 K ( ∣ C k ∣ ∣ D ∣ ) 2 \begin{array}{l} \operatorname{Gini}(p)=\sum_{k=1}^{K} p_{k}\left(1-p_{k}\right)=1-\sum_{k=1}^{K} p_{k}^{2} \\ =1-\sum_{k=1}^{K}\left(\frac{\left|C_{k}\right|}{|D|}\right)^{2} \end{array} Gini(p)=k=1Kpk(1pk)=1k=1Kpk2=1k=1K(DCk)2

f ( x ) = − l n x \mathrm{f}(\mathrm{x})= -lnx f(x)=lnx x = 1 \mathrm{x}=1 x=1 处一阶展开, 忽略高阶无穷小, 得 到 f ( x ) ≈ 1 − x \mathrm{f}(\mathrm{x}) \approx 1-\mathrm{x} f(x)1x

决策树评价

□ \square 假定样本的总类别为K个。
□ \square 对于决策树的某叶结点,若某类样本 n j = n 而 n 1 , … , n j − 1 , n j + 1 , … , n K = 0 n_{\mathrm{j}}=\mathrm{n} 而\mathrm{n}_{1}, \ldots, \mathrm{n}_{\mathrm{j}-1}, \mathrm{n}_{\mathrm{j}+1}, \ldots, \mathrm{n}_{\mathrm{K}}=0 nj=nn1,,nj1,nj+1,,nK=0 ,称该结点为纯结点:
若各类样本数目 n 1 = n 2 = … = n k = n / K \mathrm{n}_{1}=\mathrm{n}_{2}=\ldots=\mathrm{n}_{\mathrm{k}}=\mathrm{n} / \mathrm{K} n1=n2==nk=n/K, 称该样本为均结点。
□ \square 纯节点的熵 H p = 0 \mathrm{H}_p=0 Hp=0最小
□ \square 均结点的熵 H u = ln ⁡ K , \mathrm{H}_{\mathrm{u}}=\ln \mathrm{K}, \quad Hu=lnK, 最大
□ \square 对所有叶节点的熵求和,该值越小说明对样本的分类越精确。
□ \square 各叶结点包含的样本数目不同,可使用样本数加权求和。
□ \square 评价函数: C ( T ) = ∑ t ∈ l e a f N t ⋅ H ( t ) \quad C(T)=\sum_{t \in l e a f} N_{t} \cdot H(t) C(T)=tleafNtH(t)
由于该评价函数越小越好,所以,可以称之为“损失函数”。

随机森林

解决决策树过拟合问题

可以使用决策树作为基本分类器,也可以使用SVM、Logistic回归等其他分类器,习惯上,这些分类器组成的“总分类器”,仍然叫做随机森林。

Bootstrap

Bootstraping的名称来自成语“pull up by your own bootstraps”,意思是依靠你自己的资源,称为自助
法,它是一种有放回的抽样方法。

bootstrap aggregation从样本集中重系样(有重复的)选出n个样本在所有属性上,对这n个样本建立分类器(ID3、C4.5、CART、SVM、Logistic回归等)重复以上两步m次,即获得了m个分类器将数据放在这m个分类器上,最后根据这m个分类器的投票结果,决定数据属于哪一类。

可以发现,Bootstrap每次约有36.79%的样本不会出现在Bootstrap所采集的样本集合中,将未参与模型训练的数据称为袋外数据OOB(Out Of Bag)。它可以用于取代测试集用于误差估计。

投票机制

  • 简单投票机制
    • 一票否决(一致表决)
    • 少数服从多数
      • 有效多数(加权)
    • 阈值表决
  • 贝叶斯投票机制

你可能感兴趣的:(机器学习算法进阶,机器学习)