基本流程
首先我们认识一下什么是决策树?我的认识来说,决策树就像是一棵树,问题从根部出发,每到达一个分支就进行一次“道路选择”,继续往下走,指导找到最后的叶子,而这个叶子就是我们要的答案。
一般的,一棵决策树包含一个根节点、若干个内部节点和若干个叶节点;叶节点对应于决策结果。决策树学习的目的是为了产生以可泛化能力强,即处理未见示例能力强的决策树,其基本流程遵循简单且只管的“分而治之”策略。以下是决策树学习最基本的算法:
在决策树基本算法中,有三种情况导致递归返回:①样本全部是一种类别;②属性集为空,或者所有的样本都是同一属性;③样本为空;在我的理解来看,①和②的区别举一个例子来解释:在一个样本集合(1,2,3,4,5,6,7,8,9,10)中,他们的属性就是(1,2,3,4,5,6,7,8,9,10)但是判断的条件是属性是否>50,那么这十个样本集合就是同一种"类别“,为第一种情况。但是如果这十个样本的属性都为(1,1,1,1,1,1,1,1,1,1),那么就是”同一属性“,属于第二种类别。
总的来看,决策树就像电影中的决策版一样,问题从最顶端进入,每下到一层就要进行一次判断是不是符合该节点的判断特征,一直到最下面。那么在这个过程中就存在很多问题,应该怎么划分每个节点的判断调剂(属性),怎么样可以提高决策树的泛化能力(防止过拟合),如果遇到连续的情况怎么办?
划分选择
划分选择直白来说就是怎么样选择判断条件。当你挑选一件衣服是否是自己想买东西时,说先看颜色、款式还是价格呢?机器也需要有个“思考”的先后顺序,这里我们依据结点的“纯度”进行比较。越纯的东西,我们越喜欢,越容易想到,就越先进行判断。
1.信息增益
“信息熵”( D D D)时度量样本集合纯度最常用的一种指标。信息熵 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_k log_2 ^{P^k} Ent(D)=−∑k=1∣y∣Pklog2Pk
p k p_k pk是指样本所占的比例;比如,18个苹果中有红苹果(属性)8个,青苹果(属性)10个,那么这里面有红、青两种苹果,即 ∣ y ∣ = 2 |y|=2 ∣y∣=2,红苹果占总数的 8 18 \frac{8}{18} 188,青苹果占总数的 10 18 \frac{10}{18} 1810,即 P 1 = 8 18 , P 2 = 10 18 P_1=\frac{8}{18},P_2=\frac{10}{18} P1=</