我正在对经典的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()
答案 0 :(得分:0)
在接下来的两行中,您仅更改了标签,但没有更改绘制的precisions[:-1]
数组,这可能解释了为什么这些行重叠。
plt.plot(thresholds,precisions[:-1],'b--',label='Precision')
plt.plot(thresholds,precisions[:-1],'g-',label='Recall')
尝试用recalls[:,-1]