Python 如何使用scikit learn绘制多类roc曲线?

Python 如何使用scikit learn绘制多类roc曲线?,python,scikit-learn,roc,multiclass-classification,auc,Python,Scikit Learn,Roc,Multiclass Classification,Auc,我使用的是NSLKD数据集,我使用的是随机森林分类器。除类标签外,所有数据都是二进制的。我通过下面的代码“只能使用多索引进行元组索引”得到这个错误 from sklearn.multiclass import OneVsRestClassifier from scipy import interp from sklearn.metrics import roc_curve, auc from itertools import cycle import matplotlib.pyplot as

我使用的是NSLKD数据集,我使用的是随机森林分类器。除类标签外,所有数据都是二进制的。我通过下面的代码“只能使用多索引进行元组索引”得到这个错误

from sklearn.multiclass import OneVsRestClassifier
from scipy import interp
from sklearn.metrics import roc_curve, auc
from itertools import cycle
import matplotlib.pyplot as plt
from sklearn.preprocessing import label_binarize


Y = label_binarize(frames, classes=frames.unique())
n_classes = Y.shape[1]
#uniy= frames.unique()
#print(uniy)
#n_classes= uniy.shape[0]
print(n_classes)
X_trainf, X_testf, y_trainf, y_testf = train_test_split(dataforest1,frames,test_size=0.5)
rff=RandomForestClassifier(n_estimators20,max_features='auto',criterion='gini',max_depth=20)

rff.fit ( X_trainf, y_trainf)
y_predf=rff.predict(X_testf)
print(y_predf)
y_score = rff.predict_proba(X_testf)
print(y_score)

fpr = dict()
tpr = dict()
roc_auc = dict()
for i in range(n_classes):
    fpr[i], tpr[i], _ = roc_curve(y_testf[:, i], y_score[:, i])
    roc_auc[i] = auc(fpr[i], tpr[i])