机器学习评分器的创建与使用

机器学习领域,评估模型性能是一个至关重要的步骤。scikit-learn库提供了一个名为make_scorer的函数,它允许根据任意的性能度量或损失函数来创建一个评分器。这个评分器可以被用在所有支持scoring参数的scikit-learn估计器或函数中。

通过make_scorer函数,可以指定一个估计器的方法来获取预测结果,以供评分或损失函数使用。这个参数被称为response_method,它可以是字符串、列表或元组,表示估计器的方法名称。如果设置为None,则默认使用"predict"方法。

此外,make_scorer函数还提供了greater_is_better参数,用于指示评分函数是分数函数(默认情况下,分数越高越好)还是损失函数(分数越低越好)。如果是后者,评分器对象将会对score_func的结果进行符号翻转。

需要注意的是,needs_probaneeds_threshold参数在scikit-learn 1.4版本中已被弃用,并将在1.6版本中移除。取而代之的是使用response_method参数来指定需要的概率估计或决策函数。

在实际应用中,可以通过以下代码创建一个评分器,并将其用于模型选择和参数调优。例如,可以使用fbeta_score作为评分函数,并设置beta=2来创建一个F2分数评分器。然后,可以将这个评分器用于GridSearchCV进行参数网格搜索,以找到最佳的模型参数。

from sklearn.metrics import fbeta_score, make_scorer from sklearn.model_selection import GridSearchCV from sklearn.svm import LinearSVC ftwo_scorer = make_scorer(fbeta_score, beta=2) grid = GridSearchCV(LinearSVC(), param_grid={'C': [1, 10]}, scoring=ftwo_scorer)

scikit-learn 1.5版本带来了许多新特性,包括直方图梯度提升树、梯度提升回归的预测区间、时间序列预测的滞后特征,以及在cross_val_scoreGridSearchCV上进行多指标评估的演示。此外,还提供了针对成本敏感学习后调整决策阈值的功能。

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485