首页 > 解决方案 > 如何使用 scikit-learn 绘制多类的 roc 曲线?

问题描述

我正在使用 NSLKDD 数据集,并且我使用了随机森林分类器。除类标签外,所有数据都是二进制的。我收到以下代码“Can only tuple-index with a MultiIndex”的错误

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])

错误图片

标签: pythonscikit-learnrocmulticlass-classificationauc

解决方案


推荐阅读