CV中代表什么是sklearn.linear_model.LogisticRegressionCV?

时间:2017-09-30 22:28:56

标签: scikit-learn

scikit-learn有两个逻辑回归函数:

  • sklearn.linear_model.LogisticRegression
  • sklearn.linear_model.LogisticRegressionCV

我只是很好奇第二个中的CV代表什么。我在ML中与“CV”匹配的唯一首字母缩写是交叉验证,但我猜这不是它,因为这将通过包装函数在scikit-learn中实现,而不是作为逻辑回归函数本身的一部分(我想)。

3 个答案:

答案 0 :(得分:9)

您猜测后者允许用户执行交叉验证是正确的。用户可以将折叠次数作为函数的参数cv传递,以执行k次交叉验证(使用StratifiedKFold默认为10倍)。

我建议您阅读功能LogisticRegressionLogisticRegressionCV

的文档

答案 1 :(得分:4)

是的,这是交叉验证。摘录自docs

  

对于Cs值的网格(默认设置为1e-4和1e4之间的对数刻度中的十个值),最佳超参数由交叉验证器StratifiedKFold选择,但可以使用cv参数。

以下是:

  • 是的: sklearn拥有一般模型选择包装器,为所有这些分类器/回归器提供CV功能
  • 但是:当分类器/回归器已知/固定先验(在某种程度上)或有时甚至是某些CV模型时,人们可以利用这些事实获得优势,并将专门的代码绑定到一个分类器/回归器导致改进性能
    • 典型地:
      • CV已嵌入优化算法
      • 高效的热启动(而不是在更改一个参数之后完全重新优化,如alpha)

看来,至少后一种想法用于sklearn的LogisticRegressionCV,如本摘录所示:

  

在newton-cg和lbfgs求解器的情况下,我们沿着路径热启动,即猜测当前拟合的初始系数是先前拟合收敛后得到的系数,因此它应该更快更高 - 维密集数据。

答案 2 :(得分:1)

请允许我也参考scikit-learn文档中的this section,我相信它可以很好地说明这一点:

  

某些模型可以拟合某些参数值范围内的数据   几乎与为单个值拟合估算器一样有效   参数。可以利用此功能执行更多操作   参数的模型选择中使用了有效的交叉验证。

     

最适合该策略的参数是   编码正则化器的强度。在这种情况下,我们说   计算估计量的正则化路径。

逻辑回归就是这样一种模型。这就是scikit-learn具有专用的LogisticRegressionCV类执行此操作的原因。