Machine learning 如何在scikit学习逻辑回归中设置截距_缩放

Machine learning 如何在scikit学习逻辑回归中设置截距_缩放,machine-learning,classification,regression,scikit-learn,regularized,Machine Learning,Classification,Regression,Scikit Learn,Regularized,我正在使用scikit learn的LogisticRegression对象进行正则化二元分类。我已经阅读了有关intercept\u scaling的文档,但我不知道如何智能地选择此值 数据集如下所示: 10-20个特征,300-500个重复 高度非高斯,事实上大多数观测值都是零 输出类的可能性不一定相同。在某些情况下,它们几乎是50/50,在其他情况下,它们更像是90/10 通常C=0.001给出了良好的交叉验证结果 文档中包含以下警告:与其他所有功能一样,拦截本身也要进行规则化,并且可

我正在使用scikit learn的LogisticRegression对象进行正则化二元分类。我已经阅读了有关
intercept\u scaling
的文档,但我不知道如何智能地选择此值

数据集如下所示:

  • 10-20个特征,300-500个重复
  • 高度非高斯,事实上大多数观测值都是零
  • 输出类的可能性不一定相同。在某些情况下,它们几乎是50/50,在其他情况下,它们更像是90/10
  • 通常
    C=0.001
    给出了良好的交叉验证结果
文档中包含以下警告:与其他所有功能一样,拦截本身也要进行规则化,并且可以使用
intercept\u scaling
来解决此问题。但是我应该如何选择这个值呢?一个简单的答案是探索
C
intercept\u scaling
的多种可能组合,并选择提供最佳性能的参数。但是这个参数搜索将花费相当长的时间,如果可能的话,我希望避免这种情况

理想情况下,我希望使用截距来控制输出预测的分布。也就是说,我希望确保分类器预测训练集中“类别1”的概率等于训练集中“类别1”数据的比例。我知道在某些情况下是这样的,但在我的数据中并非如此。我不知道这是由于正则化还是由于输入数据的非高斯性质


谢谢你的建议

当您试图通过设置
class\u weight=“auto”
对正类进行过采样时?这实际上是对代表性不足的阶级进行了过多抽样,而对多数阶级进行了过少抽样


(有点混乱,因为它们似乎是从
SVC
复制粘贴的,没有为LR编辑;这在最新版本中刚刚更改。)

感谢您的建议。我没有使用“auto”,因为我不知道它做什么(代码涉及多重继承,因此对我来说有点混淆)。相反,我只是将类权重设置为等于该类的复制数,因为这似乎是正确的。你能链接到更新的文档吗?我无法通过谷歌搜索“sklearn Leading edge”或访问sklearn网站的“Leading edge”部分找到它。@cxrodgers:应该在,但补丁程序到目前为止,我还不确定网站是否已重建:)它看起来没有更新,但我会继续检查。这很有用,所以我很快就会接受这个答案,假设没有人向我解释截距的缩放。我希望文档能够明确说明正在优化的损失函数,这将使
C
intercept\u scaling
更加明确。我假设它与链接的研究论文中的相同,但术语差异很大,我不确定到底发生了什么,尤其是
class\u weight
@cxrogers: