我正在尝试获得 ROC 曲线,但我的代码似乎正在绘制一个三角形。我想我做错了什么。我将不胜感激。
model = MLPClassifier()
model.fit(X_train, Y_train)
prediction=model.predict(X_test)
fpr, tpr, thresholds = roc_curve(Y_test, prediction)
roc_auc = auc(fpr, tpr)
fpr=array([0. , 0.2473072, 1. ])
tpr=array([0. , 0.70320656, 1. ])
thresholds=array([2, 1, 0])
# image drawing
plt.figure()
#plt.title('Receiver Operating Characteristic %d iter' %iter)
plt.plot(fpr, tpr, label = 'MLP AUC = %0.2f' % roc_auc)
plt.legend(loc = 'lower right')
plt.plot([0, 1], [0, 1],'r--')
plt.xlim([0, 1])
plt.ylim([0, 1])
plt.ylabel('True Positive Rate')
plt.xlabel('False Positive Rate')
plt.show()
你能否回顾一下并建议我能做什么。尽管我并不惊讶我有一个三角形,因为如果我看看我的 fpr 和 tpr,只有 3 个值,我不明白为什么。我希望有更多的值会导致曲线。
我看到有人遇到了与此相同的挑战,但该解决方案似乎对我不起作用,因为我希望 fpr 和 tpr 返回超过 3 个值。