逻辑回归最终的所有结果都是0的原因

  统计/机器学习 回归分析 监督式学习    浏览次数:7021        分享
1

逻辑回归结果一直是0,和选用的特征属性有关系吗

 

SpringtoString   2018-09-17 19:37



   3个回答 
2

估计是标签是0的数据太多,数据不平衡引起的。以sklearn.linear_model.LogisticRegression为例,你可以尝试:

1.设置参数class_weight=‘balanced’,或者手动设置0/1类的数据权重。

2.逻辑回归真正的输出是一个数据点属于各个类的概率。用predict_proba()可得到。但是为了简化应用,sklearn中predict()方法自己设置了一个阈值0.5,如果P(Y=1)>0.5,那么输出标签就是1。你可以用predict_proba()得到测试数据属于0/1的概率,然后自己设置阈值。

SofaSofa数据科学社区DS面试题库 DS面经

Zealing   2018-09-18 14:19

是这样的。大佬厉害,太感谢你了。请问你是如何对sklearn api掌握得这么好? - SpringtoString   2018-09-18 19:18
1

你说的“最终结果”是指什么?是概率呢还是分类呢?

如果数据非常倾斜,有可能得到的分类标签都是0(因为概率都小于0.5),但是概率不可能都是0。

SofaSofa数据科学社区DS面试题库 DS面经

Jiho   2018-09-17 22:28

我输出成标签了。。。数据非常倾斜的确非常倾斜 - SpringtoString   2018-09-18 19:35
1

题主不熟悉输出的格式的话,可以看看网上的例子,比如SofaSofa上的教程标杆模型:交通事故理赔审核

里面用的就是

clf.predict_proba(test)[:, 1]


SofaSofa数据科学社区DS面试题库 DS面经

u_u   2018-09-19 08:48



  相关讨论

文本或者语音里的数字识别是分类还是回归?

adaboost做回归预测的时候,是怎么调整样本权重的?

对于线性回归模型,如何做线上模型更新

线性回归的bagging

目标约束回归

可以对线性回归进行boosting吗?

证明在线性回归中,如果样本数量N小于特征数量d+1,则XXT的秩最大为N?

python中可以做beta regression的包?

门槛回归是什么?

最小二乘线性回归的推导

  随便看看

二元分类为什么不能用MSE做为损失函数?

python里怎么计算曼哈顿距离?

返回DataFrame或者array的行数

如何重命名pandas的dataframe的列名

怎么理解surrogate loss function代理损失函数?