决策树(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(D∣A)之差, 即:
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(D∣A)
显然, 这即为训练数据集 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(y∣x)
= − ∑ x ∑ y p ( x , y ) log p ( y ∣ x ) =-\sum_{x} \sum_{y} p(x, y) \log p(y \mid x) =−∑x∑yp(x,y)logp(y∣x)
= − ∑ 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) =−∑x∑yp(x)p(y∣x)logp(y∣x)
= − ∑ 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(y∣x)logp(y∣x)
= ∑ 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(y∣x)logp(y∣x))
= ∑ x p ( x ) H ( Y ∣ X = x ) =\sum_{x} p(x) H(Y \mid X=x) =∑xp(x)H(Y∣X=x)
= H ( Y ∣ X ) =H(Y \mid X) =H(Y∣X)
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(D∣A)=−∑i,kp(Dk,Ai)logp(Dk∣Ai)
= − ∑ 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(Dk∣Ai)logp(Dk∣Ai)
= − ∑ 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=1n∑k=1Kp(Ai)p(Dk∣Ai)logp(Dk∣Ai)
= − ∑ 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(Dk∣Ai)logp(Dk∣Ai)
= − ∑ 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=1n∣D∣∣Di∣∑k=1K∣Di∣∣Dik∣log∣Di∣∣Dik∣
□ \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(1−pk)=1−∑k=1Kpk2=1−∑k=1K(∣D∣∣Ck∣)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)≈1−x
□ \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=n而n1,…,nj−1,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)=∑t∈leafNt⋅H(t)。
由于该评价函数越小越好,所以,可以称之为“损失函数”。
解决决策树过拟合问题
可以使用决策树作为基本分类器,也可以使用SVM、Logistic回归等其他分类器,习惯上,这些分类器组成的“总分类器”,仍然叫做随机森林。
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)。它可以用于取代测试集用于误差估计。