Machine learning 当一个/多个特征值超出范围时,是否可以丢弃实例?

Machine learning 当一个/多个特征值超出范围时,是否可以丢弃实例?,machine-learning,svm,libsvm,Machine Learning,Svm,Libsvm,我正在构建一个识别blod细胞图像中抗体的识别器。它基于libsvm。当涉及到识别属于某个训练类的实例时,原型工作得很好。 但当我给出任何图像时,即使不包含blod细胞(例如,显微镜的偏移/焦点不好),它仍然表明模型已知的类别之一 我首先考虑实现类“Unknown”,但我害怕用所有的噪声图像来训练它会使模型性能更差 因此,我的想法是检查要识别的实例的一个/多个特征是否超出值范围,并将其丢弃 这是一个好方法吗? 如果是,应如何选择截止值(例如标准偏差) 多谢各位 在“可能的非类样本”问题中,最明显

我正在构建一个识别blod细胞图像中抗体的识别器。它基于libsvm。当涉及到识别属于某个训练类的实例时,原型工作得很好。 但当我给出任何图像时,即使不包含blod细胞(例如,显微镜的偏移/焦点不好),它仍然表明模型已知的类别之一

我首先考虑实现类“Unknown”,但我害怕用所有的噪声图像来训练它会使模型性能更差

因此,我的想法是检查要识别的实例的一个/多个特征是否超出值范围,并将其丢弃

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

多谢各位

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

  • 训练两个一类支持向量机(每类一个),并丢弃两个模型标记为“异常值”的样本
  • 对整个数据集(两个类的实例)训练一个一类SVM,并丢弃标记为异常值的数据

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

+1:太好了!我不知道离群点检测的这种实际用法。我试试看。不幸的是,libsvm似乎不支持异常检测。它确实支持,只需将svm_type设置为2(这是一个类svm的代码),查看libsvmThanks中实现的方法列表!但是我错过了一些东西。精度始终为50%。无论我如何设置其他参数,它似乎将训练集划分为50/50(1和-1)以进行识别。这样就形成了两个聚类,而不是一个主聚类和离群值。你能推荐一些参数吗?没有“建议参数”这样的东西。参数是依赖于数据的值,在没有分析和许多尝试和错误的情况下无法猜测。如果您有特殊问题,请提出单独的问题,包括您的代码和数据,然后就可以以某种方式为您提供指导/帮助;也许问题不在于参数