【问题标题】:One Class Classifier Training一类分类器训练
【发布时间】:2013-04-11 20:59:48
【问题描述】:

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

我需要为“异常值”类提供训练数据吗?如果是,有什么办法可以解决这个问题,因为我只有 Target 类的数据。

【问题讨论】:

    标签: machine-learning classification weka libsvm outliers


    【解决方案1】:

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

    【讨论】:

    • 我们如何评估核密度估计器本身?比如什么内核好,设置什么带宽。 (我们确实有计算带宽的函数,但我们知道它们是否最适合吗?)
    【解决方案2】:

    你可以使用 一种用于新奇检测的类 Svm,您只需在目标类上对其进行训练,它就会将您的数据分类为与受过训练的类相似或不同
    您可以阅读 One Class Svm here 的 scikit 文档

    【讨论】:

      【解决方案3】:

      一类分类器的要点是没有来自异常值类的数据可用。所有 1C 算法都是基于这个假设设计的。使用 1C 分类器的常见情况是机器的健康预测。在这种情况下,通常只有来自健康类的数据,因为从故障类收集数据非常昂贵且难以准确获取,因为它需要破坏设备才能查看传感器的反应。

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

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

      -神经网络 1C-分类器。

      -HELM-1C 网络

      【讨论】:

        猜你喜欢
        • 2013-06-13
        • 2017-08-10
        • 2015-09-21
        • 1970-01-01
        • 2017-11-21
        • 2016-07-03
        • 2019-08-08
        • 2015-12-16
        • 1970-01-01
        相关资源
        最近更新 更多