MLE / Research · ML Fundamentals

TikTok 决策树分裂:Gini、Entropy 与 Classification Error

把加权不纯度下降和剪枝区分,说明分类错误率也是指标但区分细微改善较弱。

题目重点:把加权不纯度下降和剪枝区分,说明分类错误率也是指标但区分细微改善较弱。

题意与假设

这道练习题保留了面经中值得训练的核心约束,并将需要澄清的条件单独列出。现场拿到变体时,先和面试官确认这些条件。

  • 训练分类树类别比例p,分裂评分用父不纯度减按子节点样本量加权不纯度。
  • 并不根据缺失题库答案把Classification Error排除为“不是不纯度”;需区分数学有效与常用选型。

解题路线

  1. Gini=1−Σp_k²,Entropy=−Σp_klogp_k(0log0取0),Classification Error=1−maxp_k,三者都在纯节点为0,可描述节点混杂程度。Pruning是结构复杂度控制,不是节点impurity公式。
  2. 分裂要按子样本数加权,不是两子简单平均(仅等样本时可)。评分Δ=I(parent)−Σ(n_child/n)I(child),检查最小叶样本和增益等约束。
  3. 分类错误率对多数类不变的比例调整可能平坦;Gini/Entropy更平滑,因此训练split常用它们。不能由“不常用于split”推出“不属于impurity measure”。
  4. 例如父[7,3]误差0.3,等大子[4,1]与[3,2]误差加权仍0.3;Gini父0.42、子平均0.4,能看到纯度小幅提升。该例已数值核对。
  5. 熵log底改变尺度不改同一底下分裂排序;多类别和不平衡时需一致规则,missing值与类别特征的分支分配按实现。
  6. 剪枝限制深度/叶数或删除弱分支,防训练过拟合,与如何计当前节点纯度是不同层;只有训练增益更大也不能保证验证效果更好。

手动走一遍

纯节点[10,0]三种不纯度都是0;均匀二类Gini0.5、以2为底Entropy1、错误率0.5。父[7,3]的例子说明error平坦而Gini下降。

规模与取舍

给计数K类计算O(K);寻找候选split还需排序/扫描特征数据,不能把公式常量界当完整树训练成本。

易错点与追问

容易失分的边界

  • classification error绝对不是impurity。
  • 两子不等大仍简单平均。
  • pruning当分裂不纯度。

继续深挖

  • 连续特征怎样增量维护计数?
  • 不同impurity可能选不同split吗?
  • 如何防小样本纯叶过拟合?
✓已复制微信号!