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 用于回归。
要使用其他评分指标,例如均方误差,您需要使用GridSearchCV
或RandomizedSearchCV
(而不是LassoCV
)并将scoring
参数指定为scoring='neg_mean_squared_error'
。来自docs:
可以通过评分指定替代评分函数 GridSearchCV、RandomizedSearchCV 和许多 如下所述的专用交叉验证工具。
【讨论】:
【参考方案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)模型的系数表