如何使用 GridSearchCV 进行一类分类

Posted

技术标签:

【中文标题】如何使用 GridSearchCV 进行一类分类【英文标题】:How to use GridSearchCV for one-class classification 【发布时间】:2019-09-22 04:30:11 【问题描述】:

我尝试使用 GridSearchCV 以便为我的分类器提供最佳参数。我用的是一类SVM,我的代码是:

tuned_parameters = ['kernel': ['rbf'], 'gamma': [1e-2, 1e-3, 1e-4, 1e-5],
                 'nu': [0.001, 0.10, 0.1, 10, 25, 50, 100, 1000],
                'kernel': ['linear'], 'nu': [0.001, 0.10, 0.1, 10, 25, 50, 100, 1000]
               ] 

scores = ['precision', 'recall']

for score in scores:
  print("# Tuning hyper-parameters for %s" % score)
  print()

 clf = GridSearchCV(svm.OneClassSVM(), tuned_parameters,
                   scoring='%s_macro' % score)
 clf.fit(input_dataN)

我遇到了错误:

TypeError: __call__() missing 1 required positional argument: 'y_true'

请问如何解决?

【问题讨论】:

【参考方案1】:

当您应用拟合方法时,您需要提供特征 (X_train) 以及目标类标签 (y_train):

修正这一行:

clf.fit(input_dataN)

【讨论】:

我用的是一类分类,我没有y_train。 如果您只有正面标签,那么您可以做的事情就会受到限制。 this link might be useful

以上是关于如何使用 GridSearchCV 进行一类分类的主要内容,如果未能解决你的问题,请参考以下文章

在 python 中使用 gridsearchcv 进行梯度提升分类器的参数调整

如何使用不同的数据集进行 GridSearchCV 训练和测试?

GridSearchCV 参数不能改善分类

Keras训练神经网络进行分类并使用GridSearchCV进行参数寻优

sklearn GridSearchCV:如何获得分类报告?

如何在 scikit-learn 的分类问题中为 F1 分数做 GridSearchCV?