2

我直接从这里获取 ROC 代码:http: //scikit-learn.org/stable/auto_examples/plot_roc.html

如您所见,我在 for 循环中将类数硬编码为 46,但是即使我将其设置为低至 2,我仍然会收到错误消息。

# Compute ROC curve and ROC area for each class
tpr = dict()
roc_auc = dict()
for i in range(46):
    fpr[i], tpr[i], _ = roc_curve(y_test[:, i], y_pred[:, i])
    roc_auc[i] = auc(fpr[i], tpr[i])

错误是:

Traceback (most recent call last):
  File "C:\Users\app\Documents\Python Scripts\gbc_classifier_test.py", line 150, in <module>
    fpr[i], tpr[i], _ = roc_curve(y_test[:, i], y_pred[:, i])
IndexError: too many indices

y_pred正如您在此处看到的: array.shape() 给出错误元组不可调用

并且y_test只是一个类似于 y_pred 的一维数组,除了我的问题的真实类。

我不明白,什么有太多的索引?

4

1 回答 1

5

y_pred你的另一个问题中显示的都是y_test一维的,所以表达式y_pred[:, i]y_test[:, i]索引太多。您只能使用单个索引来索引一维数组。

也就是说,你可能应该打电话给roc_curve(y_test, y_pred).

于 2014-08-04T18:38:46.617 回答