决策树
- 决策树是一种基本的分类与回归方法,决策过程中提出的每一个判定问题都是对某一个属性的“测试”,每个测试结果或是导出最终结论,或是导出进一步的判定问题,其考虑范围在上次决策结果的限定范围之内。
- 决策树学习的目的是 为了产生一颗泛化能力强,即处理未见示例能力强的决策树。决策树图形如下图所示
- 决策树在分类问题中,表示基于特征对实例进行分类的过程,可以认为它是if-then规则,也可以认为他是定义在特征空间与类空间上的条件概率分布
假设给定训练数据集 D = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , ⋯ , ( x N , y N ) } \boldsymbol{D=\{(x_1,y_1),(x_2,y_2),\cdots,(x_N,y_N)\}} D={
(x1,y1),(x2,y2),⋯,(xN,yN)}
其中, x i = ( x i ( 1 ) , x i ( 2 ) , ⋯ , x i ( n ) ) T \boldsymbol{x_i=(x_i^{(1)},x_i^{(2)},\cdots,x_i^{(n)})^T} xi=(xi(1),xi(2),⋯,xi(n))T 为输入实例,也叫做特征向量, n \boldsymbol{n} n 为特征个数, y i ∈ { 1 , 2 , ⋯ , K } \boldsymbol{y_i\in\{1,2,\cdots,K\}} yi∈{
1,2,⋯,K} 为类标记, i = 1 , 2 , ⋯ , N \boldsymbol{i=1,2,\cdots,N} i=1,2,⋯,N, N \boldsymbol{N} N为样本容量。
以去食堂吃饭为例:
它的特征空间分布如下图:
在上例中特征向量的维数为2,也就是只有两个判断特征,那么它的特征空间就是二维平面的,类别数也只有两个:去吃饭和吃nm,其中 ω 1 , ω 2 \omega_1,\omega_2 ω1,ω2 为实例的两个类别(去吃饭和吃nm),假定特征 x 1 \boldsymbol{x_1} x1 的阈值为 ϵ 1 \boldsymbol{\epsilon_1} ϵ1 ,特征 x 2 \boldsymbol{x_2} x2 的阈值为 ϵ 2 \boldsymbol{\epsilon_2} ϵ2 ,根据阈值将特征空间划分为几个部分
上图就是本人每天去食堂的心理决策图,可以看出先进行决断的指标是在我看来最重要的,也就是在我心中占比最大的,之后的指标的重要程度一层层降低。这在决策树中也是一样的,这些指标在决策树中被称为规则。
特征选择
计算机通过一些特别的算法能理解数据中所蕴含的知识信息,这些数据被称为特征,划分数据集中实例的规则就是从这些特征中选出来。那么在数据集中实例的特征会有一些对划分实例有比较重要的作用,有一些特征对于划分实例没什么作用,那么就会产生一些问题。
数据集哪个特征在划分数据分类时起决定作用?
为了找到决定性的特征,划分出最好的结果,我们必须评估每个特征,使杂乱无章的数据变得更加有序,原始数据集被划分为几个数据子集。
这些数据子集会分布在第一个决策点的所有分支上,如果某个分支下的数据属于同一个类型,则无需进一步对数据集进行分割。如果数据子集内的数据不属于同一类型,则需要重复分割数据子集的过程,划分数据子集的算法和划分原始数据集的算法相同,直到所有具有相同类型的数据均在一个数据子集。
如何判断划分的子集属于父集?
首先引入一个概念信息增益(在划分数据集之前之后信息发生的变化),可以使用信息论量化度量信息的内容。
信息熵
- 一条信息的信息量与其不确定性有着直接的联系。例如:我们要搞清楚一件不确定的的事,一无所知的事,就需要大量的信息,相反如果对某件事了解较多,则不需要太多的信息就能把它搞清楚。从这个角度来看,可以认为,信息量等于不确定性的多少。系统不确定性越多,信息熵就越大。
- 信息熵表示为: E n t ( D ) = − ∑ k = 1 K p k log 2 ( p k ) \boldsymbol{Ent(D)=-\sum^K_{k=1}p_k\log_2(p_k)} Ent(D)=−k=1∑Kpklog2(pk)单位是比特(bit)
K \boldsymbol{K} K 表示数据集中有 K \boldsymbol{K} K个类别, p i \boldsymbol{p_i} pi表示第 i \boldsymbol{i} i 类样本在样本集合 D \boldsymbol{D} D 中所占比例为
信息论中的冗余度:表示信息重复的指标,重复的信息越多,信息量就越小,冗余度就越高。
条件熵
- 在阅读的过程中,我们联系上下文去理解某段话的深层次的含义,这是个寻找相关信息的过程。事实证明,“相关的”信息也能够消除不确定性
现在假设X和Y是两个随机变量。Y是我们想要了解的,它的熵是 H ( X ) = − ∑ i = 1 n p ( x i ) log p ( x i ) \boldsymbol{H(X) = -\sum^n_{i=1}p(x_i) \log p(x_i)} H(X)=−i=1∑np(xi)logp(xi)
而且我们还知道Y和X一起出现的概率,也就是X,Y的联合概率分布 p ( X = x i , Y = y i ) = p i j , i = 1 , 2 , . . . , n ; j = 1 , 2 , . . . , n \boldsymbol{p(X=x_i,Y=y_i)=p_{ij},i=1,2,...,n;j=1,2,...,n} p(X=xi,Y=yi)=pij,i<