【问题标题】:How to fix the error "For multi-metric scoring" for OneClassSVM and GridSearchCV如何修复 OneClassSVM 和 GridSearchCV 的错误“对于多指标评分”
【发布时间】:2020-01-19 00:48:35
【问题描述】:

我正在尝试使用 OnClassSVM 进行异常检测,并使用 GridSearchCV() 调整其参数,如下所示:

我已经搜索了很多网站,包括https://stackoverflow.com/,但找不到适合我的方案的任何解决方案。 代码在这里:

nus = [0.001, 0.01, 0.1, 1]
gammas = [0.001, 0.01, 0.1, 1]
scorers = {
  'precision_score': make_scorer(precision_score),
  'recall_score': make_scorer(recall_score),
 'accuracy_score': make_scorer(accuracy_score)
}

tuned_parameters = {'C': [1, 10, 100, 1000], 'kernel' : ['rbf','linear'], 
'gamma' : gammas, 'nu': nus}
tuned_ocsvm = svm.OneClassSVM()
ocsvm = GridSearchCV(estimator=svm.OneClassSVM(), 
param_grid=tuned_parameters, scoring=scorers,refit='false')

但它给我的错误如下

对于多指标评分,必须将参数 refit 设置为 scorer 键或可调用函数,以使用整个数据上的最佳参数设置重新拟合估计器,并使 best_* 属性可用于该指标。如果不需要,则应将 refit 显式设置为 False。 'false' 已通过

【问题讨论】:

    标签: python machine-learning scikit-learn gridsearchcv


    【解决方案1】:

    最好将您的scorers 设置为得分手之一,不要将其作为字典传递。

    scorers = make_scorer(precision_score)
    

    如果您设置了refit=False,那么您将失去best_estimator_,这是网格搜索最重要的输出之一。

    【讨论】:

      【解决方案2】:

      在GridSearchCV's doc上,refit定义为:

      refit : boolean, string, or callable, default=True

      使用在整个数据集上找到的最佳参数重新调整估计器。 对于多指标评估,这需要是一个字符串,表示得分器,用于找到最后重新拟合估计器的最佳参数。 在选择最佳估计器时除了最大分数之外还有其他考虑因素,可以将 refit 设置为一个函数,该函数在给定 cv_results_ 的情况下返回所选的 best_index_。 重新调整的估计器在 best_estimator_ 属性中可用,并允许直接在此 GridSearchCV 实例上使用 predict。 同样对于多指标评估,属性 best_index_、best_score_ 和 best_params_ 仅在设置了 refit 时才可用,并且所有这些属性都将根据这个特定的记分器来确定。如果 refit 是可调用的,则不会返回 best_score_。 查看评分参数以了解有关多指标评估的更多信息。

      如果您不想重新拟合估算器,可以设置refit=False(作为布尔值)。另一方面,要使用其中一个记分器重新调整估算器,您可以使用 refit='precision_score' 为例。

      【讨论】:

      • 感谢 phoenix 重播我使用 refit='precision_score'。但现在它给出的错误是“缺少 1 个必需的位置参数:'y_true'”
      • OneClassSVM 是无监督的,你没有 y_true。所以你不能以这种方式评估模型。您要解决的问题是什么?
      猜你喜欢
      • 2018-11-05
      • 1970-01-01
      • 2018-04-19
      • 2015-10-15
      • 2019-05-27
      • 1970-01-01
      • 2019-01-02
      • 1970-01-01
      • 2020-03-07
      相关资源
      最近更新 更多