![](/img/trans.png)
[英]Custom scorer in SciKit-Learn - allow grid search optimisation for a particular class
[英]Why is scorer import unnecessary for parameter search in scikit-learn?
如果要基于ROC曲线下的面积为逻辑回归模型(例如)优化正则化参数,可以使用GridSearchCV
作为合适的参数范围并设置scoring='roc_auc'
。
这可以使用from sklearn.model_selection import GridSearchCV
来完成,并且不需要包括from sklearn.metrics import roc_auc_score
。
但是,如果要为特定的拟合数据集手动计算ROC曲线下的面积,则需要from sklearn.metrics import roc_auc_score
。
GridSearchCV
我们可以在后台导入roc_auc_score
吗? 不幸的是,我似乎无法在源代码中完全遵循它-我真的很感谢一个解释。 GridSearchCV
我们最终将所有可能的计分方法导入幕后? GridSearchCV
而不是roc_auc_score
本身,为什么为什么roc_auc_score
“手动”使用roc_auc_score
? 它不是在幕后暗中“存在”吗? 我赞赏这可能是关于python导入的更一般的问题,而不是特定于scikit-learn ...
GridSearchCV扩展了BaseSearchCV类。 这意味着它将使用BaseSearchCV中定义的fit()
函数 。
...
...
scorers, self.multimetric_ = _check_multimetric_scoring(
self.estimator, scoring=self.scoring)
...
...
它在此处检查GridSearchCV构建期间提供的所有参数。 对于'scoring'
参数,其调用方法_check_multimetric_scoring()
。 现在,在此文件的顶部,您将看到许多导入。
_check_multimetric_scoring
方法指向scorer.py
文件 :
同样跟踪方法调用,我们将到达此处 :
SCORERS = dict(explained_variance=explained_variance_scorer,
r2=r2_scorer,
neg_median_absolute_error=neg_median_absolute_error_scorer,
neg_mean_absolute_error=neg_mean_absolute_error_scorer,
neg_mean_squared_error=neg_mean_squared_error_scorer,
neg_mean_squared_log_error=neg_mean_squared_log_error_scorer,
accuracy=accuracy_scorer, roc_auc=roc_auc_scorer,
...
...
...
...
查看roc_auc
,我们将到达此处 :
roc_auc_scorer = make_scorer(roc_auc_score, greater_is_better=True,
needs_threshold=True)
现在在这里查看参数, roc_auc_score
发送到make_scorer
。 那么它是从哪里进口的呢? 查看此文件的顶部,您将看到以下内容:
from . import (r2_score, median_absolute_error, mean_absolute_error,
mean_squared_error, mean_squared_log_error, accuracy_score,
f1_score, roc_auc_score, average_precision_score,
precision_score, recall_score, log_loss,
balanced_accuracy_score, explained_variance_score,
brier_score_loss)
因此,从这里开始,实际的计分对象将返回到GridSearchCV。
现在,该库正在使用相对和绝对导入,正如@Denziloe正确说的那样,这些导入在该模块中是本地的,而不是全局导入。
有关导入范围和名称空间的更多信息,请参见以下答案:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.