【发布时间】:2018-05-03 06:22:45
【问题描述】:
如何使用算法 KNeighborsClassifier 绘制多条 ROC 曲线?我想为不同的 k 绘制 ROC 曲线。
这是我所拥有的,但它会绘制不同的数字,我想将它们全部组合起来
k_range = range(1, 20)
for k in k_range:
knn = KNeighborsClassifier(n_neighbors=k)
model = knn.fit(X_train, Y_train)
y_predict_proba = model.predict_proba(X_test).tolist()
probabilities = np.array(y_predict_proba)[:, 1]
fpr, tpr, _ = roc_curve(Y_test, probabilities)
# roc_auc = (auc(fpr, tpr))
plt.figure()
plt.plot(fpr, tpr, color='darkorange', lw=2)
plt.plot([0, 1], [0, 1], color='navy', lw=2, linestyle='--')
plt.xlim([-0.05, 1.05])
plt.ylim([-0.05, 1.05])
plt.xlabel('False Positive Rate')
plt.ylabel('True Positive Rate')
plt.title('ROC Curve')
plt.legend(loc="lower right")
plt.show()
【问题讨论】: