python - 如何使用 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])
解决方案
推荐阅读
- julia - Julia中浮点运算的速度
- python - 给定一个纯文本和一个可能的密文,确定密文是否可以使用上述方案从纯文本形成
- node.js - 我们可以在电子 js 上禁用键盘输入吗
- python - 有没有办法根据键盘输入改变玩家面对的方向?Pyglet, Cocos2d
- c++ - 如何使用 g++ 在 c++ 20 中使用模块?
- sql - 加入日期到日期范围 SQL
- firebase - 每次打开应用程序时都会触发 Flutter Dynamic Link
- javascript - 防止弹出窗口冒泡
- elasticsearch - Vue Sstorefront 上的 Elasticsearch 查询
- powershell - PowerShell:在几个文本文件的每 50 个单词后添加一个新的空行