CV表示sklearn.linear_model.LogisticRegressionCV中的CV是什么意思?

Ste*_*hen 14 scikit-learn

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

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

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

San*_*hra 9

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

我建议阅读LogisticRegressionLogisticRegressionCV函数的文档


sas*_*cha 5

是的,它是交叉验证。从文档摘录:

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

这里的重点是:

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

似乎,至少在后一个想法用于sklearn的LogisticRegressionCV,如本摘录所示:

对于newton-cg和lbfgs求解器,我们沿路径进行热启动,即猜测当前拟合的初始系数为先前拟合中收敛后得到的系数,因此对于高维稠密度来说应该更快数据。