用于二进制分类的 OneClassSVM
Posted
技术标签:
【中文标题】用于二进制分类的 OneClassSVM【英文标题】:OneClassSVM for binary classification 【发布时间】:2020-02-18 20:53:26 【问题描述】:我正在使用 OneClassSVM 来解决二元分类问题。我有一个数据集,其中目标变量标记为 0 或 1。我不知道 OneClassSVM 是否可用于二分类或多分类问题,但是当我尝试预测时,我得到以下信息: y_true:
[0 0 0 1 1 0 0 1 1 0 1 1 0 0 0 1 1 1 0 1 0 0 1 1 0 0 1 1 1 0 1 0 1 1 1 0 1
1 1 0 1 0 0 0 1 1 0 1 0 1 0 0 1 0 1 1 0 1 1 0 1 1 1 0 0 1 1 1 0 0 0 0 0 1
0 1 1 1 0 1 0 0 1 0 0 0 0 0 1 0 1 1 0 1 0 1 1 0 0 0 0 1 1 0 1 0 1 0 0 1 1
0 1 0 0 1 0 0 0 1 0 1 1 1 1 1]
y_pred:
[-1 1 1 1 -1 1 1 1 1 1 1 1 1 1 -1 1 1 1 1 1 1 -1 1 1
1 1 -1 1 1 1 1 1 1 -1 1 1 1 1 -1 1 1 1 1 1 -1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1
y_pred中有很多 -1 值,我假设这些是模型试图预测类 0 但无法预测的实例?
主要问题: OneClassSVM 可以用于二分类吗?
【问题讨论】:
【参考方案1】:下面的链接解释得很好:
https://stats.stackexchange.com/questions/99162/what-is-one-class-svm-and-how-does-it-work
总而言之,如果您的任务是简单地执行二进制分类,您应该使用sklearn.svm.SVC
。
【讨论】:
【参考方案2】:您的输出不是 1 和 0,而是 1 和 -1。
【讨论】:
以上是关于用于二进制分类的 OneClassSVM的主要内容,如果未能解决你的问题,请参考以下文章
如何在 sklearn 中获取用于二进制分类的 roc auc
一个简单的单层感知器实现,用于具有 sigmoid 激活函数的二进制分类