一类分类器训练



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

我是否需要提供Outlier类的训练数据?如果是,有没有办法解决这个问题,因为我只有关于Target类的数据。

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

您可以使用一个类支持向量机用于新颖性检测你只需要在目标类上训练它它会将你的数据分类为与训练过的类相似或不同
您可以在这里阅读One Class Svm的scikit文档

单类分类器的关键在于没有来自离群值类的数据可用。所有1C算法都是基于这一假设设计的。使用1c分类器的常见情况是机器的健康预测。在这种情况下,通常只使用来自健康类的数据,因为从有故障的类收集数据是非常昂贵的。很难获得准确的数据,因为需要拆开设备来观察传感器的反应。

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

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

-神经网络c -分类器。

-HELM-1C网络

最新更新