关于精准率和召回率的平衡点似乎都是在0左右

来源:10-6 精准率-召回率曲线

小白一只726

2023-07-20

老师您好,本节课中的精准率和召回率的绘图可以看出平衡点都是在决策边界为0的时候
图片描述

是否是因为逻辑回归在训练过程中使用的是>=0的决策边界,从而得到的theta值作用于测试数据集的时候也是使得其精准率和召回率在决策边界为0时达到平衡。

写回答

1回答

liuyubobobo

2023-07-21

这个图的交界点明显是在 -3 到 -4 之间,而不是 0 呀。


==========


逻辑回归分两步:

1)计算每个数据点是不同类别的概率;

2)根据这个概率值,判断具体是哪个类别。(默认使用 p=0.5 作为便捷,对应 theta * x = 0 作为边界。)


1)步和决策边界没有关系。我们是先计算出 1),然后规定了决策边界的位置,然后才能得到 2)


使用 precision recall 曲线,则是在计算完 1)以后,实验室用不同的决策边界,看哪个决策边界更好。这个过程决策边界 = 0 没有参与运算(而是我们反过来看决策边界取谁更好。)


继续加油!:)


0
1
小白一只726
``` 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的影响。
2023-08-07
共1条回复

Python3入门机器学习 经典算法与应用  

Python3+sklearn,兼顾原理、算法底层实现和框架使用。

5893 学习 · 2454 问题

查看课程