决策树算法

一、算法概念 

  决策树(Decision Tree)是在已知各种情况发生概率的基础上,通过构成决策树来求取净现值的期望值大于等于零的概率,评价项目风险,判断其可行性的决策分析方法,是直观运用概率分析的一种图解法。由于这种决策分支画成图形很像一棵树的枝干,故称决策树。在机器学习中,决策树是一个预测模型,他代表的是对象属性与对象值之间的一种映射关系。

  决策树是一个贪心算法,即在特性空间上执行递归的二元分割。决策树为每个最底部(叶)分区预测相同的标签。为了在每个树节点上获取最大的信息,每个分区是一组可能的划分中选择的最佳分裂。

  其中有个概念叫特征选择,那么什么是特征选择呢?特征选择指选择最大化所定义目标函数的特征。比如下面三种特征分裂的例子:

  图中有两类类别,C0:6是对C0类别的计数。直观上,应该选择Car Type特征进行分裂,因为其类别的分布概率具有更大的倾斜程度,类别不确定程度更小。衡量类别分布概率的倾斜程度,定义决策树节点t的不纯度(impurity),其满足:不纯度越小,则类别的分布概率越倾斜,不纯度的度量有三种:

  1、Entropy(t)=kp(ck|t)logp(ck|t)     熵(分类)

  2、Gini(t)=1k[p(ck|t)]  基尼不纯度(Gini impurity)

  3、Classification error(t)=1maxk[p(ck|t)

  其中,p(ck|t)p(ck|t)表示对于决策树节点tt类别ckck的概率。这三种不纯度的度量是等价的,在等概率分布是达到最大值。

   信息增益:是父节点不纯度与两个子节点不纯度的加权总和之间的差。假设将有s个分区,大小为N的数据集D划分为两个数据集D(left)和D(right),那么信息增益为:

  

  划分候选人:对于单机上实现的小数据集,给每个连续特征划分的候选人在此特征上有唯一值。有些实现了对特征值排序,为了加速计算。使用这些有序的唯一值划分候选人。对于大的分布式数据集,排序是很昂贵的。通过在样本数据分数上执行位运算,实现了计算近似的划分候选人的集合。有序划分创建了“箱”,可使用maxBins参数指定这样的容器的最大数量。

posted on 2016-12-04 16:20  松伯  阅读(1896)  评论(0)    收藏  举报