使用scikit-learn进行机器学习分类器之旅
1. 决策树学习
1.1 决策树概述
决策树分类器在注重可解释性的场景中是极具吸引力的模型。可以将其视为通过一系列问题对数据进行划分的模型。例如,在鸢尾花数据集里,可沿萼片宽度特征轴定义一个截断值,提出类似“萼片宽度是否≥2.8 cm?”的二元问题。
决策树从根节点开始,依据能带来最大信息增益(IG)的特征对数据进行划分。在迭代过程中,对每个子节点重复此划分过程,直至叶子节点纯净,即每个节点的训练样本都属于同一类别。不过,实际操作中这可能会导致树过深、节点过多,从而容易引发过拟合。因此,通常会通过设置树的最大深度来对树进行剪枝。
1.2 最大化信息增益
为了在最具信息价值的特征上划分节点,需要定义一个目标函数,通过树学习算法对其进行优化。目标是在每次划分时最大化信息增益,其定义如下:
[IG(D_p, f) = I(D_p) - \sum_{j=1}^{m} \frac{N_j}{N_p} I(D_j)]
其中,$f$ 是用于划分的特征;$D_p$ 和 $D_j$ 分别是父节点和第 $j$ 个子节点的数据集;$I$ 是杂质度量;$N_p$ 是父节点的训练样本总数;$N_j$ 是第 $j$ 个子节点的样本数。信息增益就是父节点杂质与子节点杂质总和的差值,子节点杂质越低,信息增益越大。
为简化并减少组合搜索空间,大多数库(包括scikit-learn)采用二叉决策树,即每个父节点划分为两个子节点 $D_{left}$ 和 $D_{right}$ ,此时信息增益公式为:
[IG(D_p, f) = I(D_p) - \frac{N_{le
超级会员免费看
订阅专栏 解锁全文
1230

被折叠的 条评论
为什么被折叠?



