【发布时间】:2020-01-30 07:01:09
【问题描述】:
据我了解,One-Class SVM 是在没有目标/标签数据的情况下进行训练的。
Use of OneClassSVM with GridSearchCV 的一个答案建议当分类器是 OneClassSVM 时将目标/标签数据传递给 GridSearchCV 的 fit 方法。
GridSearchCV 方法如何处理这些数据?
它是否真的在没有目标/标签数据的情况下训练OneClassSVM,而只使用目标/标签数据进行评估?
我尝试关注GridSearchCV source code,但找不到答案。
【问题讨论】:
-
如果你有标签数据,那你为什么要训练一个 OneClassSVM?
-
测试 OneClassSVM。 :) 如果我训练一个带有训练数据和我的测试数据的系统,系统将了解测试数据。我创建了一个综合测试用例,我想用它来评估 OneClassSVM 在遇到数据类型时的表现。
-
如果目的是测试 OneClassSVM,那么您可以在没有 GridSearchCV 的情况下执行此操作,因为您不会调整算法。但是,如果您也有火车标签,那么与使用监督分类器从您的火车标签中学习相比,这样做有什么好处?
-
使用 GridSearchCV 的原因是为了揭示该算法在示例假设合成测试子类上的执行情况。我可以编写自己的代码来做到这一点,但如果可能的话,我想使用 scikit-learn 框架。这样做而不是使用监督分类器的好处是我想训练一个系统来学习关于 1 个普通类的东西并执行新奇检测。同样,我的测试用例是假设的,不包括所有类型的数据。
-
“GridSearchCV 旨在调整参数以使模型最适合火车标签”的陈述至少并不总是正确的。我相信,但可能是错误的,它使用了完全不使用训练数据的交叉验证。此外,GridSearchCV 支持无监督学习,在训练过程中不使用训练标签。这在documentation for the GridSearchCV's fit method 中有描述
标签: scikit-learn svm unsupervised-learning gridsearchcv one-class-classification