1.10 树(tree)
1.10.1 决策树(Decision Tree)
首先,Mllib认为,决策树时随机森林(Random Forest)的一种特殊情况,也就是只有一棵树并且不采取特征抽样的随机森林。所以在训练决策树的时候,其实是训练随机森林,最后从随机森林中抽出一棵树。
决策树时一个数结构(可以是二叉树或非二叉树),由节点和有向边组成。决策树学习的本质是从训练数据集上归纳出一组分类规则,通常采用启发式的方法,即局部最优。具体的做法就是,在每次选择feature时,都挑选当前条件下最优的那个feature作为划分规则,即局部最优的feature。决策树学习通常分为3个步骤:特征选择、决策树生成和决策树的剪枝。
特征选择:特征选择的标准是找出局部最优的特征,判断一个特征对于当前数据集的分类效果,也就是按照这个特征进行分类后数据集是否更加有序(不同类的数据被尽量分开)。当前节点用哪个特征作为判断进行切分(也称分裂规则),取决于切分后节点数据集合中类别的有序程度,划分后的分区数越纯,那么当前分裂规则就越合适。衡量节点数据集合的有序性(纯度)有:熵、基尼和方差。
其中b是对数的底,b的取值决定信息熵的单位。
条件熵公式:
下面介绍三种衡量节点数据集合有序性的方法,分别对应三种生成决策树的算法:
信息增益(ID3算法):
定义: 特征A对训练数据集D的信息增益g(D, A),定义为集合D的经验熵H(D)与特征A给定条件下D的经验