摘要: 代价敏感学习是将代价作为输入与优化目标时的机器学习.

1. 常见的几类代价

代价是基础数据, 与应用有紧密联系.

  • 测试代价. 很多数据不是免费的, 如体检时, 测血常规花 20 20 20 元, 心电图花 15 15 15 元, B 超花 200 200 200 元. 这些代价被称为测试代价 (test cost).
  • 标记代价. 在主动学习场景下, 请专家给数据打标签需要付钱, 如每个标签花费 100 元. 这被称为标记代价 (label cost).
  • 误分类代价. 将患有流感的病人叫回家, 医院要赔偿 10 , 000 10,000 10,000 元, 即 c ( F N ) = 10 , 000 c(FN) = 10,000 c(FN)=10,000; 将没有流感的就诊者留着住院治疗, 医院要赔偿 500 500 500 元, 即 c ( F P ) = 500 c(FP) = 500 c(FP)=500. 相应地, 可以给出一个误分类代价矩阵.
  • 延迟代价. 不清楚就诊者是否患病, 让其留院观察, 就诊者的误工开销为 200 200 200 元.

特别注意!代价作为基础数据, 都应该事先给出, 要么专家给出, 要么制度给出. 它们必须是输入, 而绝不会是输出 (被机器学习出来). 这点常识都弄错, 就不要研究代价敏感学习, 甚至不要做机器学习! 说起来一肚子的气!

2. 代价敏感分类问题

  • 输入: 数据, 标签, 误分类代价矩阵;
  • 输出: 分类器;
  • 优化目标: 平均误分类代价.

对于二分类问题, 当 c ( F N ) = c ( F P ) > 0 c(FN) = c(FP) > 0 c(FN)=c(FP)>0 时, 代价敏感二分类问题退化为最大化准确率的二分类问题 (即不考虑代价).

3. 代价敏感冷启动封闭世界主动学习问题

  • 输入: 数据, 标签, 标记代价, 误分类代价矩阵;
  • 输出: 分类器, 以及相应的预测值;
  • 优化目标: 总代价.

假设总共有 800 800 800 个样本, 如果全让专家 (主治医生) 来打标签, 就要花 800 × 100 = 80 , 000 800 \times 100 = 80,000 800×100=80,000 元. 正确的做法是让专家给某些重要样本打标签, 建立一个好的分类器, 冒着一定的误分类的风险, 对其它样本打标签.

4. 小结

  • 代价是一类数据, 本质上与机器学习常识 2: 数据的类型应该放在一起讨论. 可以把它与不同的机器学习问题结合, 形成新的问题.
  • 输入为代价, 优化目标应该也由代价定义.