我没有任何示例数据可以分享以复制问题,但也许有人可以提供一个高级别的答案。我过去创建了很多逻辑回归模型,这是第一次我的预测概率得分显示为1或0。
我正在创建一个二分类器来预测两个标签中的一个。我还使用了另外几个算法,XGBClassifier和RandomForestCalssifier与相同的数据集。对于这些,predict_proba产生了预期的概率结果(即0到1之间的浮点值)。
此外,对于LogisticRegression模型,我尝试了各种参数,包括所有默认参数,但问题仍然存在。奇怪的是,使用SGDClassifier和loss = 'log'或'modified_huber'也会产生相同的二进制predict_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()
标准化数据时才会出现问题。这很奇怪,因为所有特征的数据并不是一个统一的尺度。例如,某些特征表示为百分比,其他特征表示为美元价值,还有其他特征表示为虚拟编码。
np.argmax
出现在某个地方? - razimbresmodel.coef_
粘贴在这里吗?这样我们就可以检查哪个特征可能对效果负责了。 - pythonic833