一类分类训练

时间:2013-04-18 16:18:18

标签: machine-learning classification weka libsvm outliers

我正在研究一个分类问题,其中我只有一个类的数据,所以我想在“目标”类与所有其他可能性之间进行分类,即“异常值”类。因此,我打算使用One Class Classifier或LibSVM分类器。但问题是:

我是否需要提供“异常”课程的培训数据?如果是的话,有什么方法可以解决这个问题,因为我只有关于Target类的数据。

3 个答案:

答案 0 :(得分:4)

使用仅来自正类的样本来实现此目的的一种方法是density estimation。您可以将参数模型拟合到数据中(例如,多变量法线)或使用核密度估计器(有点像最近邻居的单类版本,具有核心化距离度量)。然后,在学习模型下评估新数据的概率,如果它足够低,则拒绝它作为该类的成员。

答案 1 :(得分:1)

你可以使用 用于新奇检测的一级Svm,您只需要在目标班级进行训练,它会将您的数据分类为与训练班级相似或不同 您可以阅读One Class Svm here

的scikit文档

答案 2 :(得分:0)

一类分类器中的要点是,没有来自异常类的数据。所有1C算法都是基于此假设而设计的。使用1C分类器的常见情况是机器的运行状况预测。在这种情况下,通常只有健康类的数据,因为从故障类中收集数据非常昂贵,而且很难准确获取,因为要看传感器如何反应就需要破坏设备。

排除上述1C-SVM的可能算法是:

-神经网络自动编码器。在这种情况下,重建误差可用于量化输入是否不再是一类的一部分。还可以将其扩展到可变自动编码器,以准确隔离潜在变量(异常情况的无监督分类)。

-神经网络1C分类器。

-HELM-1C网络