@Bruce1Tone
2020-02-22T09:51:46.000000Z
字数 1779
阅读 444
机器学习 python
决策树算法的目的
如何选择最优划分属性,即分支结点所包含的样本尽可能属于同一类别,即结点的“纯度”(purity)越来越高
经典的属性划分方法包括:
- 信息增益
- 增益率
- 基尼指数
其中,如果p=0,则=0
例如,要计算根节点的信息熵Ent(D):
其中,表示结果为真占的比例,表示结果为假占的比例
该式子计算了某种属性a的信息增益Gain(D,a),而则是该属性a的其中一种状态
为真例的概率,
1.计算:
2.计算:
3.计算:
计算出各个属性的Gain值之后,选择Gain值最大的作为一级指标
选择好一级指标后,再在此基础上计算新的Gain值,再依此选择新的指标
增益率定义:
划分标准:基尼指数(Gini index)
基尼值定义:
判断标准:分别计算该节点划分前后的验证集精度,如果该节点划分前后的验证集精度差别较大,则预剪枝决策为划分
优点:降低过拟合风险;显著减少训练时间和测试时间开销
缺点:欠拟合风险
判断标准:自下而上考察非叶子结点的分类性能,即将之替换为叶子节点能带来的泛化性能提升的程度。如果将该节点替换为叶子节点,能够带来验证集精度的提升,则后剪枝决策为剪枝
优点:欠拟合风险小,泛化性能往往优于预剪枝决策树
缺点:训练时间开销大,因为后剪枝是在决策树完全建立之后进行的,需要自下向上对所有非叶子节点逐一考察
1.估计类的先验概率P(c):
计算出P(True)和P(False)
2.为每个属性估计条件概率:
即
对于数值类的属性,条件概率的计算方法为:
其中为标准差,为均值
3.计算:为真的概率和为假的概率:
真概率 =
假概率 =
4.判断:
若:为真的概率>为假的概率,则判定结果为真
对于样本量较少的情况,需要采用拉普拉斯修正,来避免样本数量较少影响训练结果:
N表示真、假的情况个数(如果只有真假,则N=2)
N_i表示该属性取值的个数