精准召回
Precision recall
有人能告诉我 closest_zero、closest_zero_p 和 closest_zero_r 是什么意思吗?
from sklearn.metrics import precision_recall_curve
precision, recall, thresholds = precision_recall_curve(y_test, y_scores_lr)
closest_zero = np.argmin(np.abs(thresholds))
closest_zero_p = precision[closest_zero]
closest_zero_r = recall[closest_zero]
plt.figure()
plt.xlim([0.0, 1.01])
plt.ylim([0.0, 1.01])
plt.plot(precision, recall, label='Precision-Recall Curve')
plt.plot(closest_zero_p, closest_zero_r, 'o', markersize = 12, fillstyle = 'none', c='r', mew=3)
plt.xlabel('Precision', fontsize=16)
plt.ylabel('Recall', fontsize=16)
plt.axes().set_aspect('equal')
plt.show()
首先我们有 y_test
,这是基本事实,应该是二进制类型——两个 classes(通常是 0 和 1)。此外,我们有 y_scores_lr
这是连续的预测值。
precision_recall_curve
是一个计算值以绘制召回率-精度曲线的函数,其输出为:
precision
- x 轴的值。
recall
- y 轴的值。
thresholds
- 用于实现相应精度和召回值的阈值。为了详细说明这些值的含义,每个阈值用于生成不同的 class 化结果,其中 y_scores_lr
低于该值的所有预测都分配给一个 class,并且所有其他值(高于阈值)都被视为另一个 class。通过特定阈值对预测值进行class化后,可以根据class化的结果计算准确率和召回率。
重要的是,现在可以使用精确召回曲线找到执行未来 class化的最佳阈值,或者至少更好地理解模型的行为。
代码寻找一个特定的阈值,最接近零的那个(不管它是正数还是负数)并将相应的精度和召回值取到这个阈值,以便将它绘制为绘制曲线。
所以,closest_zero
是最高负阈值的index,还是最低正阈值,取决于哪个更接近于零。 (np.argmin
returns 值最低的索引,而 abs
确保仅考虑与零的差异,而不管符号)
因此,closest_zero_p
和closest_zero_r
是最接近于零的阈值的相同索引处的精度和召回率。
有人能告诉我 closest_zero、closest_zero_p 和 closest_zero_r 是什么意思吗?
from sklearn.metrics import precision_recall_curve
precision, recall, thresholds = precision_recall_curve(y_test, y_scores_lr)
closest_zero = np.argmin(np.abs(thresholds))
closest_zero_p = precision[closest_zero]
closest_zero_r = recall[closest_zero]
plt.figure()
plt.xlim([0.0, 1.01])
plt.ylim([0.0, 1.01])
plt.plot(precision, recall, label='Precision-Recall Curve')
plt.plot(closest_zero_p, closest_zero_r, 'o', markersize = 12, fillstyle = 'none', c='r', mew=3)
plt.xlabel('Precision', fontsize=16)
plt.ylabel('Recall', fontsize=16)
plt.axes().set_aspect('equal')
plt.show()
首先我们有 y_test
,这是基本事实,应该是二进制类型——两个 classes(通常是 0 和 1)。此外,我们有 y_scores_lr
这是连续的预测值。
precision_recall_curve
是一个计算值以绘制召回率-精度曲线的函数,其输出为:
precision
- x 轴的值。
recall
- y 轴的值。
thresholds
- 用于实现相应精度和召回值的阈值。为了详细说明这些值的含义,每个阈值用于生成不同的 class 化结果,其中 y_scores_lr
低于该值的所有预测都分配给一个 class,并且所有其他值(高于阈值)都被视为另一个 class。通过特定阈值对预测值进行class化后,可以根据class化的结果计算准确率和召回率。
重要的是,现在可以使用精确召回曲线找到执行未来 class化的最佳阈值,或者至少更好地理解模型的行为。
代码寻找一个特定的阈值,最接近零的那个(不管它是正数还是负数)并将相应的精度和召回值取到这个阈值,以便将它绘制为绘制曲线。
所以,closest_zero
是最高负阈值的index,还是最低正阈值,取决于哪个更接近于零。 (np.argmin
returns 值最低的索引,而 abs
确保仅考虑与零的差异,而不管符号)
因此,closest_zero_p
和closest_zero_r
是最接近于零的阈值的相同索引处的精度和召回率。