← 返回题目列表

决策树如何处理不同错误成本?

中等 第 23 / 25 题 更新于 2026/09/19
决策树机器学习面试题模型训练

简化版

错误成本不对称时,决策树可在训练中使用类别/样本权重改变切分与叶预测,也可在概率较可信时按成本矩阵调整决策阈值。前者改变模型学到的边界,后者只改变决策规则,两者不能混为一谈。

详细版

  • 先定义成本矩阵,例如漏诊 FN 成本 10、误报 FP 成本 1。

  • class_weight 使高成本样本对节点不纯度和叶分布贡献更大。

  • 后处理阈值根据条件风险选择动作,不必固定 0.5。

  • 阈值法依赖概率校准;概率失真时理论最优阈值也会失效。

  • 评估应报告总成本、召回、精确率和不同成本假设下的敏感性。

完整版教学

一、业务目标是最小化期望损失

准确率默认每种错误代价相同,但欺诈漏检和正常用户误拦截显然不同。

成本敏感学习把业务损失显式写进训练或决策。

训练加权适合希望树结构更多关注高成本区域;阈值移动适合已有概率模型并且成本经常变化的场景,更新阈值比重训更灵活。

二、数学机制怎么落到节点上

risk(predict 1) = C_FP * P(y=0|x);risk(predict 0) = C_FN * P(y=1|x)。

risk(predict 1) = C_FP * P(y=0|x)
risk(predict 0) = C_FN * P(y=1|x)
predict 1 if p > C_FP / (C_FP + C_FN)

三、带数字的推演

C_FN=9、C_FP=1,在无其他成本时阈值为 1/(1+9)=0.1

预测正类概率 0.2 的样本虽然低于 0.5,仍应判正,因为漏掉它的期望损失更高。

四、方法对比

方法/对象核心特点代价或限制
类别/样本权重改变切分和叶值需重新训练
阈值移动改变最终决策灵活但依赖校准
重采样改变训练分布概率需先验修正

五、从训练到验证的执行链

明确 FP/FN/拒绝成本 -> 选训练加权或阈值策略 -> 交叉验证
-> 独立集校准概率 -> 计算总成本曲线 -> 按线上容量确定操作点

六、边界条件与工程代价

真实成本可能依赖金额、用户或时间,单一 class_weight 无法表达。

可对每个样本传入损失权重,或建立收益模型直接优化期望价值。

召回提升会增加人工审核量。

若系统每天只能处理 1000 个告警,最终阈值还必须满足容量约束,不能只按理论成本比选择。

记忆钩子:先把成本写成矩阵,再区分“训练时改边界”和“预测时改阈值”。

七、常见误区与追问

  • 误区:类别不均衡就一定设置 balanced 权重。 不均衡是频率,成本是决策代价,二者不是同一概念。

  • 追问:训练加权与阈值调整有何不同? 前者改变模型边界,后者只改变已有分数的决策点。

  • 误区:成本比 9:1 就把正类权重设 9 后仍用 0.5 必然最优。 权重会改变概率含义,仍需在验证集按真实成本选阈值。

  • 追问:阈值公式何时成立? 二分类、概率已校准且成本定义完整时成立。

  • 追问:如何上线监控? 跟踪每类错误数量、实际损失和审核容量,而非只看准确率。

八、加强记忆

先把成本写成矩阵,再区分“训练时改边界”和“预测时改阈值”。

用 FN=9、FP=1 得到阈值 0.1 的推演最直观,同时提醒概率校准与容量约束。