【发布时间】:2017-05-18 05:06:55
【问题描述】:
为了简单起见——只设置一个非常基本的逻辑回归
from sklearn.linear_model import SGDClassifier
from sklearn.metrics import roc_auc_score, roc_curve, precision_recall_curve, classification_report
train_grad_des = SGDClassifier(alpha=alpha_optimum, l1_ratio=l1_optimum, loss='log')
train_grad_des.fit(train_x, train_y)
为了分析,为预测概率创建一个 score_y 数组
score_y = train_grad_des.predict_proba(test_x)
precision, recall, thresholds = precision_recall_curve(test_y, score_y[:,1], pos_label=1)
如果我设置train_grad_des.intercept_ = 100,那会改变train_grad_des.predict_proba(test_x)返回的概率吗?
似乎概率不应该改变,它们只会在一个方向上“移动”。如果返回的概率不变,那么各个阈值下的精确率和召回率不应该也保持不变吗?
我一直在使用模型对此进行测试,发现当我更改截距时精度和召回率发生了巨大变化,但我不清楚这是否应该发生,如果应该发生,为什么会发生。
【问题讨论】:
标签: classification logistic-regression