真实面经题目 · 原创解析
决策树的分裂准则有哪些?最大信息增益和最大信息增益比有什么不同,为什么最大信息增益有缺陷?
决策树分裂准则用于选择让子节点更纯的特征和切分点。信息增益看熵下降,容易偏向取值多的特征;信息增益比用特征自身的分裂信息做归一化,缓解多值特征偏置,但也可能偏向分裂信息过小的特征,需要结合阈值和验证效果判断。
真实面经题目 · 原创解析
决策树分裂准则用于选择让子节点更纯的特征和切分点。信息增益看熵下降,容易偏向取值多的特征;信息增益比用特征自身的分裂信息做归一化,缓解多值特征偏置,但也可能偏向分裂信息过小的特征,需要结合阈值和验证效果判断。
决策树分裂准则本质是在每个节点选择一个特征或切分点,让划分后的子节点更纯。常见准则包括 ID3 的信息增益、C4.5 的信息增益比、CART 分类树的 Gini 指数,以及回归树中的平方误差下降。信息增益等于划分前熵减去划分后的加权熵,偏好让熵下降最多的特征;问题是它天然偏向取值多的特征,例如用户 ID 这类几乎每个样本都不同的字段会把节点切得很碎,训练熵下降很大但泛化差。信息增益比在信息增益基础上除以 split information,对取值多导致的碎片化分裂做惩罚,因此能缓解偏置,但也要防止分母过小带来的不稳定。
决策树每次分裂都在局部选择最能提升节点纯度的特征。分类树通常希望子节点类别更单一,回归树希望子节点目标值方差更小。分裂准则不是最终指标本身,而是训练树结构时的贪心近似目标。
信息增益来自熵的下降:父节点熵越高表示类别越混乱,按某特征划分后计算各子节点加权熵,下降越多表示该特征越能减少不确定性。ID3 会选择信息增益最大的特征作为当前节点分裂特征。
信息增益的主要缺陷是偏向取值数量多的特征。极端情况下,用样本 ID 分裂可以让每个叶子几乎只包含一个样本,训练集熵大幅下降,但这种划分没有泛化能力。类别很多、频次很低的离散特征也容易出现类似问题。
信息增益比用信息增益除以 SplitInfo,也就是该特征自身把样本切得多碎所带来的信息量。取值越多、划分越碎,SplitInfo 往往越大,归一化后得分会被压低,从而减少对多值特征的无脑偏好。
CART 分类树常用 Gini impurity,衡量随机抽两个样本类别不同的概率,计算比熵更简单;回归树常用平方误差或方差下降。实际实现还会配合最小样本数、最大深度、最小增益、剪枝和缺失值处理控制复杂度。
信息增益比不是绝对更好,因为当 SplitInfo 很小的时候比值可能不稳定,也可能偏向取值少但实际增益一般的特征。成熟回答应说明各种准则的偏好和边界,再补充用验证集、剪枝和正则化避免过拟合。
两者都衡量节点不纯度。熵来自信息论,Gini 计算更简单,CART 常用 Gini 做分类分裂。多数场景选择结果相近,但具体偏好和计算代价不同。
用户 ID 取值极多,容易把训练样本切得很碎,让训练熵下降很大,但叶子缺少可泛化统计规律,测试集上通常表现差。
通常先按特征值排序,枚举相邻取值之间的候选阈值,计算每个阈值带来的增益、Gini 下降或平方误差下降,再选最优切分点。
可以限制最大深度、叶子最小样本数、最小分裂增益,做预剪枝或后剪枝,并用验证集评估树复杂度。集成方法还可通过 bagging 或 boosting 改善泛化。