gpt4 book ai didi

python - 在交叉验证中,是否有必要在预定义分数对象的评分参数中使用 make_scorer ?

转载 作者:行者123 更新时间:2023-11-30 08:57:05 25 4
gpt4 key购买 nike

我在交叉验证的分类问题中使用不同的超参数调整函数。特别是,我正在比较 GridSearchCV 的性能, RandomizedSearchCVBayesSearchCV .

所有这些函数都有参数“scoring”,您可以在其中指定一个带有 predefined scoring parameter 的字符串。 ,或可调用来评估测试集上的预测。我知道有时您需要使用 make_scorer 通过此可调用定义自己的评分函数。这很好,没问题。

我的问题是是否最好通过适合模型选择的 make_scorer 将给定的预定义分数(例如average_ precision_score、f1_score等)转换为记分器。

例如,这两段代码的作用相同吗?

1) 在“评分”参数中使用字符串:

    opt = BayesSearchCV(clf,
search_spaces,
scoring='average_precision',
cv=4,
n_iter=40,
n_jobs=-1)

2) 在“评分”参数中使用 make_scorer:

    # define scorer
avg_prec = make_scorer(average_precision_score, greater_is_better=True, needs_proba=True)

opt = BayesSearchCV(clf,
search_spaces,
scoring=avg_prec,
cv=4,
n_iter=40,
n_jobs=-1)

最佳答案

不需要自己做。 Scikit-learn 内部也做同样的事情。因此,当您在 'scoring' 参数中提供字符串值时,它会在内部与包含 make_scorer(scorer, ...) 的预定义评分方法的字典匹配> 作为值(value)观。请参阅source code here :

SCORERS = dict(explained_variance=explained_variance_scorer,
...
...
average_precision=average_precision_scorer,
...
...

关于python - 在交叉验证中,是否有必要在预定义分数对象的评分参数中使用 make_scorer ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56273016/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com