Sklearn Logistic回归predict_proba返回0或1

问题描述 投票:2回答:1

我没有任何可共享的示例数据来复制问题,但也许有人可以提供高级答案。过去,我已经创建了很多逻辑回归模型,这是我的预测Proba得分首次显示为1或0。

我正在创建一个二进制分类器来预测两个标签之一。我还对同一数据集使用了其他两个算法XGBClassifier和RandomForestCalssifier。对于这些,predict_proba会产生预期的概率结果(即,浮点值介于0和1之间)。

此外,对于LogisticRegression模型,我尝试了各种参数,包括所有默认参数,但问题仍然存在。奇怪的是,将SGDClassifier与loss ='log'或'modified_huber'一起使用时,也会产生相同的二进制预报_proba结果,因此我认为这可能是数据集固有的,但不确定。此外,仅当我标准化训练集数据时,才会出现此问题。到目前为止,我已经尝试了StandardScaler和MinMaxScaler,结果相同。

有人遇到过这样的问题吗?

编辑:

LR参数为:

LogisticRegression(C=1.7993269963183343, class_weight='balanced', dual=False,
                   fit_intercept=True, intercept_scaling=1, l1_ratio=.5,
                   max_iter=100, multi_class='warn', n_jobs=-1, penalty='elasticnet',
                   random_state=58, solver='saga', tol=0.0001, verbose=0,
                   warm_start=False)

同样,仅当使用StandardScaler()MinMaxScaler()标准化数据时,才会出现此问题。这很奇怪,因为数据并不是所有要素的统一比例。例如,某些功能用百分比表示,其他功能用美元值表示,而其他功能则用虚拟编码表示。

python-3.x machine-learning scikit-learn classification logistic-regression
1个回答
0
投票

您是否正在扩展测试课程?当您缩放训练数据,然后对未缩放的测试数据运行逻辑回归时,经常会发生此问题。

© www.soinside.com 2019 - 2024. All rights reserved.