决策树算法既可用于分类也可用于回归,常见的三个版本:ID3,C4.5,CART。scikit-learn使用了优化版的CART算法作为其决策树算法的实现。
ID3:
信息熵表示了信息的混乱程度:
信息增益:
比如我们有15个样本D,输出为0(6个)或者1(9个)。 样本有个特征A,取值为A1(5个),A2(5个),A3(5个)。在取值为A1的样本的输出中,有3个输出为1, 2个输出为0,取值为A2的样本输出中,2个输出为1,3个输出为0, 在取值为A3的样本中,4个输出为1,1个输出为0。则:
ID3的不足:
- 无法处理连续值特征
- 无法处理缺失值
- 没有考虑过拟合
- 信息增益对可取值数目多的特征有偏好
C4.5:
C4.5针对ID3的四个问题做了改进。用信息增益比代替了信息增益,并引入正则化系数进行初步剪枝。但是还存在问题:
- 由于决策树算法非常容易过拟合,因此对于生成的决策树必须要进行剪枝
- C4.5生成的是多叉树,计算机中二叉树模型会比多叉树运算效率高
- C4.5只能用于分类
- C4.5由于使用了熵模型,有大量耗时的对数运算,如果是连续值还有大量的排序运算
CART:
CART分类树使用基尼系数来代替信息增益比。基尼系数代表了模型的不纯度,基尼系数越小,则不纯度越低,特征越好。这和信息增益(比)是相反的。具体的,在分类问题中,假设D中有K个类别,第k个类别的概率为pk, 则基尼系数的表达式为:
CART采用了后剪枝+交叉验证;二叉树模型;既能用于分类又能用于回归