采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
老师您好,本节课中的精准率和召回率的绘图可以看出平衡点都是在决策边界为0的时候
是否是因为逻辑回归在训练过程中使用的是>=0的决策边界,从而得到的theta值作用于测试数据集的时候也是使得其精准率和召回率在决策边界为0时达到平衡。
这个图的交界点明显是在 -3 到 -4 之间,而不是 0 呀。
==========
逻辑回归分两步:
1)计算每个数据点是不同类别的概率;
2)根据这个概率值,判断具体是哪个类别。(默认使用 p=0.5 作为便捷,对应 theta * x = 0 作为边界。)
1)步和决策边界没有关系。我们是先计算出 1),然后规定了决策边界的位置,然后才能得到 2)
使用 precision recall 曲线,则是在计算完 1)以后,实验室用不同的决策边界,看哪个决策边界更好。这个过程决策边界 = 0 没有参与运算(而是我们反过来看决策边界取谁更好。)
继续加油!:)
``` thresholds = np.arange(np.min(decision_scores), np.max(decision_scores), 0.1) for threshold in thresholds: y_test_predict = np.array(decision_scores>=threshold, dtype=int) precision_scores.append(precision_score(y_test, y_test_predict)) recall_scores.append(recall_score(y_test, y_test_predict)) plt.plot(thresholds, precision_scores) plt.plot(thresholds, recall_scores) plt.show() ``` 其中的decision_scores是通过log_reg.decision_function(X_test)得来的,而log_reg是已经事先用训练数据集训练过得到了相应的theta值,在其训练过程中使用的决策边界为0。我们之后只是用已经训练好的模型再去预测测试数据集得到预测数据集测概率值数组,根据这个概率值使用不同的决策边界来看哪个决策便捷更好。 我的疑惑点就在于我们对后续数据做预测得到概率值之前,已经用决策边界为0训练了模型,之后所有的预测是否都已经受到了训练阶段默认决策边界为0的影响。
登录后可查看更多问答,登录/注册
Python3+sklearn,兼顾原理、算法底层实现和框架使用。
2.5k 19
3.5k 17
3.0k 15
1.6k 15
1.5k 14