scikit-learn 的 LassoCV 的评分指标

Posted

技术标签:

【中文标题】scikit-learn 的 LassoCV 的评分指标【英文标题】:Scoring Metric for scikit-learn's LassoCV 【发布时间】:2017-10-21 15:45:39 【问题描述】:

我正在使用 scikit-learn 的 LassoCV 函数。在交叉验证期间,默认使用什么scoring metric?

我希望交叉验证基于“均方误差回归损失”。可以将此指标与 LassoCV 一起使用吗?可以为LogisticRegressionCV 指定一个评分指标,那么 LassoCV 也可以吗?

【问题讨论】:

当前实现中不可能。您可以将此作为问题提交到 scikit-learn github 页面,然后查看响应是什么。 你知道目前的评分标准是什么吗? R2 是大多数回归估计器的默认指标。见score() for LassoCV的描述 【参考方案1】:

LassoCV 使用 R^2 作为评分指标。来自docs:

默认情况下,参数搜索使用估计器的得分函数 评估参数设置。这些是 sklearn.metrics.accuracy_score 用于分类和 sklearn.metrics.r2_score 用于回归

要使用其他评分指标,例如均方误差,您需要使用GridSearchCVRandomizedSearchCV(而不是LassoCV)并将scoring 参数指定为scoring='neg_mean_squared_error'。来自docs:

可以通过评分指定替代评分函数 GridSearchCVRandomizedSearchCV 和许多 如下所述的专用交叉验证工具。

【讨论】:

【参考方案2】:

我认为接受的答案是错误的,因为它引用了网格搜索的文档,但 LassoCV 使用正则化路径,而不是网格搜索。 事实上,在LassoCV 的文档页面中,它说损失函数是:

(1 / (2 * n_samples)) * ||y - Xw||^2_2 + alpha * ||w||_1

意味着它最小化 MSE(加上 LASSO 项)。

【讨论】:

我认为没有错。我认为你们两个在回答不同的问题,接受的答案回答了 OP 的问题,而你回答了不同的问题。 OP 在交叉验证期间要求提供“评分指标”。这不等于问解决了什么目标函数,我想这就是你要回答的问题?

以上是关于scikit-learn 的 LassoCV 的评分指标的主要内容,如果未能解决你的问题,请参考以下文章

sklearn、LassoCV() 和 ElasticCV() 坏了?

python使用lassocv生成影像组学(radiomic)模型的系数表

什么都不提供时,LassoCV 中的参数选择如何工作?

python可视化lassocv特征筛选之后的特征的相关性分析热力图

可视化LassoCV的系数图

我应该使用 LassoCV 还是 GridSearchCV 来找到 Lasso 的最佳 alpha?