在Scikit-Learn中的自定义评分函数

Scikit-Learn中使用自定义评分函数

深入探讨RandomizedSearchCV、GridSearchCV和cross_val_score中的评分函数

engin akyurt 在 Unsplash 上的照片

RandomizedSearchCVGridSearchCVcross_val_score都是scikit-learn中用于优化和评估机器学习模型的工具。每个工具都提供了一种系统的超参数调优和模型性能评估方法。

很长一段时间以来,我在使用这些工具时从未考虑过评分函数。然而,我最终意识到,在使用这些工具时,scikit-learn默认使用模型固有的评分函数来评估性能。默认的评分指标并不总是适用的,这可能导致对模型的错误决策。

本文的其余部分将深入探讨在scikit-learn中如何选择合适的自定义评分函数以及何时使用。

示例:对保险索赔的 Tweedie 回归

在这个示例中,我们开发一个回归器,用于预测未来的保险索赔费用,这是一个由保险数据中的不确定性所复杂化的任务。保险数据的不确定性来自于一些地方。

  • 一旦有人购买了保险单,就不能保证他们会提出索赔。这导致目标变量中存在大量的零值。
  • 如果有人提出索赔,索赔的大小可能是大或小。这导致目标变量的巨大方差。

默认情况下,RandomizedSearchCVGridSearchCVcross_val_score使用与分类器或回归器关联的默认评分指标。对于许多广泛使用的回归器,传统的度量指标如R²和RMSE是默认评分。然而,使用这些指标来决策参数调优或评估保险数据模型的性能往往会导致错误的决策和结果。

因此,在处理保险数据时,我们需要确保向这些工具传递一个合适的评分函数,以确保正确设置模型的参数并评估模型的性能。更一般地说,每次使用这些工具时都应确保所使用的评分函数…