我正在构建血细胞图像中抗体的识别器。它基于 libsvm。当识别属于训练类别之一的实例时,原型(prototype)效果很好。 但是,当我给出任何图像,甚至不包含血细胞时(例如显微镜的偏移/聚焦不良),它仍然表明模型已知的类别之一。
我首先考虑实现“Unknown”类,但我担心使用所有噪声图像对其进行训练会使模型性能变得更差。
所以我的想法是检查要识别的实例的一个/多个特征是否超出值范围并丢弃它。
这是一个好方法吗? 如果是,应该如何选择截止值(例如标准差)?
非常感谢!
最佳答案
在“可能的非类样本”问题中,最明显的解决方案似乎是通过以下两种方式之一创建一类 SVM(异常值检测算法):
- 训练两个一类 SVM(每个类一个)并丢弃被两个模型标记为“异常值”的样本
- 在整个数据集(两个类的实例)上训练一个单类 SVM,并丢弃标记为异常值的数据
只要存在明显的阈值,建议的“超出范围检查”方法就很好 - 正如您在这里询问什么是最佳选择 - 这意味着它不是一个好方法强>。如果您(作为专家)自己无法弄清楚,那么按照之前的建议训练异常值检测方法似乎是更好、更安全的选择,这实际上会做同样的事情,但是以自动的方式(因为它会找到规则丢弃“坏数据”而不对任何“坏图像”进行训练)。
关于machine-learning - 当一个/多个特征值超出范围时,可以丢弃实例吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19384564/