我使用 GridSearchCV 训练 OneClassSVM 进行异常检测以进行超参数调整。
我所做的是 1 倍交叉验证,将我感兴趣的类别传递给每个 HP 配置进行训练,并混合我感兴趣的类别和其他类别进行验证。 我在 GridSearchCV 中设置“refit=False”,因为我不希望它对所有内容进行重新训练(我感兴趣的类别的所有观察结果加上其余的观察结果)。
HP 调整的结果为我提供了最佳指标。
之后,为了进行验证,我使用简单的 model.fit() 训练一个没有 GridSearchCV 的 OneClassSVM,并将训练集传递给 GridSearchCV,并在我也通过的相同验证集上对其进行评估。这给了我一个稍微不同的指标。
所以我的问题是:OneClassSVM 中是否存在一些随机性?我从旧版本的 SkLearn 文档中看到,该模型有一个“random_state”参数,该参数不再可用。我认为这个参数与“max_iter=-1”相结合可能是导致这种不可重复性的原因。
我对折叠创建等代码进行了三次检查...所以我认为这部分不是错误。
提前非常感谢。
干杯
安托万