CART决策树使用“基尼指数”(Gini index)来选择划分属性。
我们希望决策树的分支结点所包含的样本尽可能属于同一类别,即节点的纯度越来越高。
数据集D的纯度可用基尼值来度量:
Gini(D)越小,则数据集D的纯度越高。
属性a的基尼指数定义为:
在候选属性集合A中,选择那个使得划分后基尼指数最小的属性作为最优划分属性,即
前面讲完了ID3、C4.5算法和CART决策树算法怎么选择最优划分属性,下面讲解决策树通用算法流程:
输入:训练集D={{x1,y1},{x2,y2},...,{xm,ym}}
属性集A={a1,a2,...,ad}
过程:函数TreeGenerate(D,A)
生成节点node;
if D中样本全属于同一类别C then
将node标记为C的叶节点;return
end if
if A≠ OR D中样本在A上取值相同 then
将node标记为叶节点,其类别标记为D中样本数最多的类;return
end if
从A中选择最优划分属性
for 的每一个值do
为node生成一个分支;令表示D中在上取值为的样本子集;
if 为空 then
将分支节点标记为叶节点,其类别标记为D中样本最多的类;return
else
以TreeGenerate(,A\{}) 为分支节点
end if
end for
输出:以node为根节点的一颗决策树。
下一章讲解决策树的剪枝处理。