0

我正在尝试获得 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 个值。

4

0 回答 0