OneClassSVM 性能不可重复。为什么?

问题描述 投票:0回答:0

我使用 GridSearchCV 训练 OneClassSVM 进行异常检测以进行超参数调整。

我所做的是 1 倍交叉验证,将我感兴趣的类别传递给每个 HP 配置进行训练,并混合我感兴趣的类别和其他类别进行验证。 我在 GridSearchCV 中设置“refit=False”,因为我不希望它对所有内容进行重新训练(我感兴趣的类别的所有观察结果加上其余的观察结果)。

HP 调整的结果为我提供了最佳指标。

之后,为了进行验证,我使用简单的 model.fit() 训练一个没有 GridSearchCV 的 OneClassSVM,并将训练集传递给 GridSearchCV,并在我也通过的相同验证集上对其进行评估。这给了我一个稍微不同的指标。

所以我的问题是:OneClassSVM 中是否存在一些随机性?我从旧版本的 SkLearn 文档中看到,该模型有一个“random_state”参数,该参数不再可用。我认为这个参数与“max_iter=-1”相结合可能是导致这种不可重复性的原因。

我对折叠创建等代码进行了三次检查...所以我认为这部分不是错误。

提前非常感谢。

干杯

安托万

scikit-learn svm gridsearchcv one-class-classification
© www.soinside.com 2019 - 2024. All rights reserved.