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