精确度/召回率图上的形状很奇怪

时间:2019-04-04 06:51:06

标签: python machine-learning

我正在对经典的Titanic数据集进行分类,并且遇到了这个看起来很古怪的Precision和Recall图表。

我使用SGD模型作为分类器。两行重叠,看起来像废话。有经验的程序员能告诉我我有什么问题吗,这肯定看起来不正确。谢谢。

y_scores=cross_val_predict(sgd_clf,X,y,cv=5,method='decision_function')

from sklearn.metrics import precision_recall_curve precisions,recalls,thresholds=precision_recall_curve(y,y_scores)

def plot_precision_recall_vs_threshold(precisions,recall,threshold):

plot_precision_recall_vs_threshold
plt.plot(thresholds,precisions[:-1],'b--',label='Precision')
plt.plot(thresholds,precisions[:-1],'g-',label='Recall')
plt.xlabel('Threshold')
plt.legend(loc='upper left')
plt.ylim([0,1])

plot_precision_recall_vs_threshold(precisions,recalls,thresholds) plt.savefig('plot_precision_recall_vs_threshold2.png') plt.show()

enter image description here

1 个答案:

答案 0 :(得分:0)

在接下来的两行中,您仅更改了标签,但没有更改绘制的precisions[:-1]数组,这可能解释了为什么这些行重叠。

plt.plot(thresholds,precisions[:-1],'b--',label='Precision')
plt.plot(thresholds,precisions[:-1],'g-',label='Recall')

尝试用recalls[:,-1]

替换第二个