【问题标题】:How to deal with label that not included in training set when doing prediction进行预测时如何处理未包含在训练集中的标签
【发布时间】:2019-10-31 10:23:50
【问题描述】:

例如,使用监督学习对 5 个不同的人脸进行分类。 但是当第 6 个人测试时,面对不在训练集中的那个,模型仍然会在 5 个人内预测它。 在模型之前没有训练过人的情况下,如何让模型将第 6 次及以后的人的脸预测为未知?

【问题讨论】:

  • 您可以在分类过程中使用额外的“未知”类。用负样本(随机人脸)填充它。

标签: python machine-learning


【解决方案1】:

您可以为预测已知类别设置一定的阈值。您的模型只有在使用某个阈值进行预测时才应该从已知类别中进行预测,否则,它将被归类为 unknown

解决这个问题的另一种(也是不太可取的)方法是,即使在训练期间也有另一个名为 unknown 的类,并将一些随机面孔作为该类的对应示例。

【讨论】:

  • 我认为为预测设置一个阈值是我想要的答案。有什么标准可以设定门槛吗?
  • 现在我有一个大问题,目前我正在使用出院摘要进行诊断代码分类。一些诊断代码没有足够数量的数据,它迫使我在训练中忽略它,即使忽略它们是错误的。比如心脏病有4种诊断代码(例如A、B、C、D),出院总结的数量明显不平衡(例如C的大小和D没有数据),那么我只训练模型其中两个(例如 A 和 B)。现在我希望模型将 C 和 D 测试数据识别为未知,而不是预测为 A 和 B。
  • 尝试不同的阈值值并查看验证集的准确度变化是解决此问题的唯一方法。
  • 对于您的其他问题,“估算缺失值”是要走的路。有多种插补方法。根据我的经验,一个名为 MissForest 的基于随机森林的方法效果很好,并且捆绑为 R 包。如果您的应用程序是精确诊断,并且如果您有很多缺失值,请小心,因为您只是在估计缺失值,并且将在半合成数据上训练您的模型。
猜你喜欢
  • 2020-03-03
  • 2018-06-21
  • 2016-07-08
  • 2020-01-13
  • 2020-03-09
  • 1970-01-01
  • 2019-11-04
  • 2019-06-22
  • 2022-12-05
相关资源
最近更新 更多