我们在学每一种语言的时候,都会学习语言中的逻辑结构,即if-else结构。基于现有的信息依次做出判断。今天要介绍的决策树就是起源于这种想法,利用这类结构分割数据的一种分类学习方法。
比如说有媒婆跟一个女孩的母亲拉红线:
母亲:多大年纪了?
媒婆:26。
母亲:长的帅不帅?
媒婆:挺帅的。
母亲:收入高不?
媒婆:不算很高,中等情况。
母亲:是公务员不?
媒婆:是,在税务局上班呢。
母亲:那好,我去问问我女儿。
母亲的心里是有一个判断过程的,例如:
类型这种情况就是决策树的一种。那么我们如何去构造这个树呢,先判断什么条件最好呢。
信息论
能消除不确定性的内容才能叫信息,而告诉你一个想都不用想的事实,那不叫信息。
比如数据分析师的工作经常是要用数据中发现信息,有一天上班你告诉老大从数据中发现我们的用户性别有男有女(废话)这不叫信息,但是如果你告诉老大女性用户的登录频次、加购率,浏览商品数量远高于男性,且年龄段在25岁~30岁的女性用户消费金额最多,15-20岁最少,这就叫信息。
1948年有一位科学家香农从引入热力学中的熵概念,得到了信息量的数据公式:
Pk代表信息发生的可能性,发生的可能性越大,概率越大,则信息越少,通常将这种可能性叫为不确定性,越有可能则越能确定则信息越少。
信息熵
信息熵是信息量的数学期望,是信源发出信息前的先验不确定性,信息熵的数学定义为:
可见,如果信息熵等于0,表示只存在唯一的信息发送可能,即,没有发送的不确定性;如果信源的k个信号有相同的发送概率,即所有的
有
,即信息熵达到最大,不确定性最大。所以
差别越小,信息熵越大,平均不确定性最大。
差别越大,信息熵就越小,平均不确定性越小。
信息增益
当已知信号U的概率分布P(U)且收到信号,发出信号的概率变为
,于是信源的不确定性变为:
称为后验熵,表示信宿收到后对发出信号U的度量值。由于收到信号
是个随机变量,后验熵的期望为:
称为条件熵,表示信宿收到所有V后,对发出信号U任然存在的不确定性(后验不确定性),这是由随机干扰引起的。
通常,于是
就称为信息增益,反映的是信息消除随机不确定性的程度。
那么信息增益表示得知特征X的信息而是的类Y的信息的不确定性减少的程度,所以我们对于选择特征进行分类的时候,当然选择信息增益较大的特征,这样具有较强的分类能力。
根据信息增益的准则的特征选择方法是:对于训练数据集D,计算其每个特征的信息增益,并比较它们的阿笑,选择信息增益最大的特征。
决策树特征选择举例
下面举个例子:
ID | 年龄 | 有工作 | 有自己的房子 | 信贷情况 | 类别 |
---|---|---|---|---|---|
1 | 青年 | 否 | 否 | 一般 | 否 |
2 | 青年 | 否 | 否 | 好 | 否 |
3 | 青年 | 是 | 否 | 好 | 是 |
4 | 青年 | 是 | 是 | 一般 | 是 |
5 | 青年 | 否 | 否 | 一般 | 否 |
6 | 中年 | 否 | 否 | 一般 | 否 |
7 | 中年 | 否 | 否 | 好 | 否 |
8 | 中年 | 是 | 是 | 好 | 是 |
9 | 中年 | 否 | 是 | 非常好 | 是 |
10 | 中年 | 否 | 是 | 非常好 | 是 |
11 | 老年 | 否 | 是 | 非常好 | 是 |
12 | 老年 | 否 | 是 | 好 | 是 |
13 | 老年 | 是 | 否 | 好 | 是 |
14 | 老年 | 是 | 否 | 非常好 | 是 |
15 | 老年 | 否 | 否 | 一般 | 否 |
上面是一个贷款申请的资料,我们先来计算总的经验熵为:
然后我们让A_1,A_2,A_3,A_4A1,A2,A3,A4分别表示年龄、有工作、有自己的房子和信贷情况4个特征,则计算出年龄的信息增益为:
同理其他的也可以计算出来,g(D,A2)=0.324,g(D,A3)=0.420,g(D,A4)=0.363,相比较来说其中特征A3(有自己的房子)的信息增益最大,所以我们选择特征A3为最有特征。
下面的特征选择在去掉A3的情况下再次计算以此类推。
决策树的一些优点是:
-
简单的理解和解释。树木可视化。
-
需要很少的数据准备。其他技术通常需要数据归一化,需要创建虚拟变量,并删除空值。但请注意,此模块不支持缺少值。
-
使用树的成本(即,预测数据)在用于训练树的数据点的数量上是对数的。
决策树的缺点包括:
-
决策树学习者可以创建不能很好地推广数据的过于复杂的树。这被称为过拟合。修剪(目前不支持)的机制,设置叶节点所需的最小采样数或设置树的最大深度是避免此问题的必要条件。
-
决策树可能不稳定,因为数据的小变化可能会导致完全不同的树被生成。通过使用合奏中的决策树来减轻这个问题。
集成方法
成学习通过建立几个模型组合的来解决单一预测问题。它的工作原理是生成多个分类器/模型,各自独立地学习和作出预测。这些预测最后结合成单预测,因此优于任何一个单分类的做出预测。例如上面的贷款分析,我们做了三个模型,一个决策树模型,一个knn分类,一个神经网络分类。再次进来一个数据,我们使用三个模型分别判断是否贷款,每个模型算作一票,根据票数多少确定最后究竟是否贷款。这就是一种集成方法的模型。
随机森林
在机器学习中,随机森林是一个包含多个决策树的分类器,并且其输出的类别是由个别树输出的类别的众数而定。
在前面的决策当中我们提到,一个标准的决策树会根据每维特征对预测结果的影响程度进行排序,进而决定不同的特征从上至下构建分裂节点的顺序,如此以来,所有在随机森林中的决策树都会受这一策略影响而构建的完全一致,从而丧失的多样性。所以在随机森林分类器的构建过程中,每一棵决策树都会放弃这一固定的排序算法,转而随机选取特征。
在随机森林中根据下列算法而建造每棵树:
- 用N来表示训练用例(样本)的个数,M表示特征数目。
- 输入特征数目m,用于确定决策树上一个节点的决策结果;其中m应远小于M。
- 从N个训练用例(样本)中以有放回抽样的方式,取样N次,形成一个训练集(即bootstrap取样),并用未抽到的用例(样本)作预测,评估其误差。
- 对于每一个节点,随机选择m个特征,决策树上每个节点的决定都是基于这些特征确定的。根据这m个特征,计算其最佳的分裂方式。
这种方法几乎没有缺点,在当前所有算法中,具有极好的准确率。能够有效地运行在大数据集上。还能够处理具有高维特征的输入样本,而且不需要降维。能够评估各个特征在分类问题上的重要性,对于缺省值问题也能够获得很好得结果。