machine-learning - 当一个/多个特征值超出范围时,可以丢弃实例吗?

标签 machine-learning svm libsvm

我正在构建血细胞图像中抗体的识别器。它基于 libsvm。当识别属于训练类别之一的实例时,原型(prototype)效果很好。 但是,当我给出任何图像,甚至不包含血细胞时(例如显微镜的偏移/聚焦不良),它仍然表明模型已知的类别之一。

我首先考虑实现“Unknown”类,但我担心使用所有噪声图像对其进行训练会使模型性能变得更差。

所以我的想法是检查要识别的实例的一个/多个特征是否超出值范围并丢弃它。

这是一个好方法吗? 如果是,应该如何选择截止值(例如标准差)?

非常感谢!

最佳答案

在“可能的非类样本”问题中,最明显的解决方案似乎是通过以下两种方式之一创建一类 SVM(异常值检测算法):

  • 训练两个一类 SVM(每个类一个)并丢弃被两个模型标记为“异常值”的样本
  • 在整个数据集(两个类的实例)上训练一个单类 SVM,并丢弃标记为异常值的数据

只要存在明显的阈值,建议的“超出范围检查”方法就很好 - 正如您在这里询问什么是最佳选择 - 这意味着它不是一个好方法。如果您(作为专家)自己无法弄清楚,那么按照之前的建议训练异常值检测方法似乎是更好、更安全的选择,这实际上会做同样的事情,但是以自动的方式(因为它会找到规则丢弃“坏数据”而不对任何“坏图像”进行训练)。

关于machine-learning - 当一个/多个特征值超出范围时,可以丢弃实例吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19384564/

相关文章:

algorithm - 帮助我理解二进制 SVM 中的线性可分性

c++ - 这种标准化适合摆动曲线吗?

python - 测试数据和训练数据的列数不一样

python - 如何使用 scikit-learn 加载之前保存的模型并使用新的训练数据扩展模型

statistics - 分类分数 : SVM

java - 如何在 Java Spark MLLib 中使用映射和归约合并文本文件?

opencv - 网格搜索(libsvm)中的交叉验证非常慢

python-3.x - 未安装错误: TfidfVectorizer - Vocabulary wasn't fitted python

java - 在 Windows 上从 weka 包管理器安装 libsvm 后,无法在 weka 3.7.10 中使用 libsvm

python - 在python中调用Libsvm模型