一 基本流程
1. 决策树思想
在生活中,我们如何判别一个学生是否优秀?我们可能先会判断其成绩如何、再判断其能力如何、再判断其形象如何,判断等等属性,最后得出结论他优秀或不优秀。而且判别流程因人而异,不唯一。
决策树思想也是如此: 根据当前结点的数据集和属性集,选择一个最佳的属性将数据集划分出几个子集作为当前结点的孩子结点,孩子结点数据集和属性集是父结点的子集且再重复上述过程,直到产生叶节点,此时叶结点的数据尽可能地属于同一类。如下图是一个决策树的例子:
可以观察到,判断一个学生是否优秀有多条路径,这与我们生活中做判别是同样的。决策树的增长是不断选取不同的属性值进行数据划分的过程,而这个过程中子集的纯度(集合中同类所占的比例)越来越高,从而达到分类的效果,从根到叶子结点的一条路径就是一条判别序列。 决策树算法就是要从已知分类的数据集中学得一颗判别树,属于监督学习算法。
2. 基本算法
这是决策树最基本的算法,是个递归模型。该算法中最重要的一步就是13:选择最佳的划分属性,根据选择规则的不同决策树算法有ID3、CART和C4.5。另外,注意递归结束的条件:
(2行) D中样本属于同一类,这时已经找到一个判别类型了,无须再划分子集了。
(8行) A为空集,这时表明已经使用了所有属性来划分子集依然不能将类别完全分开,那么采用投票法,即样本数最多的分类为判别结果,不再继续划分;D中样本在A上的取值相同,这表明再按A中的属性来划分结果依然是D或空集,没有必要再划分下去了,此时D中存在多个类别,那么采用投票法。
(16行) D v D_v Dv为空,这表明D没有属性 a ∗ a_* a∗值为 a ∗ v a_*^v a∗v的数据,那么判别到这儿如何分类呢?生成子节点,子节点的分类标记为父节点数据集D的投票结果。
二 划分属性选择
1.ID3的选择
ID3是最基本的决策树算法,其采用信息增益准则来选择最佳的划分属性。
信息熵(Information Entroyp):是度量样本集合纯度的一种量化标准。有Y是样本集D上的随机变量,令 P k P_k Pk为随机变量Y=k(k=1,2,…,|Y|) 时的概率,样本集D的信息熵为:
E n t ( D ) = − ∑ k = 1 ∣ Y ∣ P k log 2 P k \begin{aligned} Ent(D) = - \sum_{k=1}^{|Y|} P_k \log_2 P_k \end{aligned} Ent(D)=−k=1∑∣Y∣Pklog2Pk
举个例子来理解信息熵,假设随机变量Y={
0 , 1 0,1 0,1},假设有如下三种情况:
若两类在集合D上分布均匀,即 P 0 = P 1 = 1 2 P_0=P_1=\frac{1}{2} P0=P1=21,则信息熵为: − ( P 0 log 2 P 0 + P 1 log 2 P 1 ) = − log 2 1 2 = 1 -(P_0\log_2P_0+P_1\log_2P_1)=-\log_2\frac{1}{2}=1 −(P0log2P