决策树算法
一、算法概念
决策树(Decision Tree)是在已知各种情况发生概率的基础上,通过构成决策树来求取净现值的期望值大于等于零的概率,评价项目风险,判断其可行性的决策分析方法,是直观运用概率分析的一种图解法。由于这种决策分支画成图形很像一棵树的枝干,故称决策树。在机器学习中,决策树是一个预测模型,他代表的是对象属性与对象值之间的一种映射关系。
决策树是一个贪心算法,即在特性空间上执行递归的二元分割。决策树为每个最底部(叶)分区预测相同的标签。为了在每个树节点上获取最大的信息,每个分区是一组可能的划分中选择的最佳分裂。
其中有个概念叫特征选择,那么什么是特征选择呢?特征选择指选择最大化所定义目标函数的特征。比如下面三种特征分裂的例子:

图中有两类类别,C0:6是对C0类别的计数。直观上,应该选择Car Type特征进行分裂,因为其类别的分布概率具有更大的倾斜程度,类别不确定程度更小。衡量类别分布概率的倾斜程度,定义决策树节点t的不纯度(impurity),其满足:不纯度越小,则类别的分布概率越倾斜,不纯度的度量有三种:
1、Entropy(t)=−∑kp(ck|t)logp(ck|t) 熵(分类)
2、Gini(t)=1−∑k[p(ck|t)] 基尼不纯度(Gini impurity)
3、Classification error(t)=1−maxk[p(ck|t)]
其中,p(ck|t)p(ck|t)表示对于决策树节点tt类别ckck的概率。这三种不纯度的度量是等价的,在等概率分布是达到最大值。
信息增益:是父节点不纯度与两个子节点不纯度的加权总和之间的差。假设将有s个分区,大小为N的数据集D划分为两个数据集D(left)和D(right),那么信息增益为:

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