逻辑回归结果一直是0,和选用的特征属性有关系吗
3个回答
估计是标签是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面经
是这样的。大佬厉害,太感谢你了。请问你是如何对sklearn api掌握得这么好?
-
SpringtoString
2018-09-18 19:18
你说的“最终结果”是指什么?是概率呢还是分类呢?
如果数据非常倾斜,有可能得到的分类标签都是0(因为概率都小于0.5),但是概率不可能都是0。
SofaSofa数据科学社区DS面试题库 DS面经
我输出成标签了。。。数据非常倾斜的确非常倾斜
-
SpringtoString
2018-09-18 19:35
题主不熟悉输出的格式的话,可以看看网上的例子,比如SofaSofa上的教程标杆模型:交通事故理赔审核
里面用的就是
clf.predict_proba(test)[:, 1]