我正在使用 scikit-learn 的 LogisticRegression 对象进行正则化二进制分类。我已经阅读了文档,intercept_scaling
但我不明白如何明智地选择这个值。
数据集如下所示:
- 10-20 个特征,300-500 次重复
- 高度非高斯,事实上大多数观测值为零
- 输出类不一定同样可能。在某些情况下,它们几乎是 50/50,在其他情况下,它们更像是 90/10。
- 通常
C=0.001
会给出良好的交叉验证结果。
该文档包含警告,即拦截本身需要进行正则化,就像其他所有功能一样,intercept_scaling
可以用来解决这个问题。但是我应该如何选择这个值呢?一个简单的答案是探索和选择提供最佳性能的参数的许多可能C
组合intercept_scaling
。但是这个参数搜索需要相当长的时间,如果可能的话,我想避免这种情况。
理想情况下,我想使用截距来控制输出预测的分布。也就是说,我要确保分类器在训练集上预测“class 1”的概率等于“class 1”数据在训练集中的比例。我知道在某些情况下是这样,但在我的数据中并非如此。我不知道这是由于正则化还是输入数据的非高斯性质。
感谢您的任何建议!