我使用的是多类分类器,因此为了在测试后对其进行评估,我需要将分类器(y_pred)的预测与真实的类值(y_test)进行比较。

但是我把它们都当作一维数组,就像这样:

y_test = [1, 1, 1, 2, 1, 4, 5, 3, ... etc ]
y_pred = [1, 1, 1, 2, 3, 2, 5, 0, ... etc ]


我总共有46节课。

但是,为了构建ROC曲线(如此处的http://scikit-learn.org/stable/auto_examples/plot_roc.html),我想我需要将y_testy_pred置于具有二进制值且具有以下形状的2D矩阵中:
number_of_test_cases x number_of_classes

其中每一列代表一个类别,而1代表分类器在给定测试样本行上识别出该类别的事实。

因此,鉴于我显示的上述几个值,我知道我需要y_test才能看起来像这样:

y_test = [ 1 0 ...
           1 0
           1 0
           0 1
           1 0
           0 1
           0 0
           0 0
           ...


这就是我的理解...我希望我是对的!

是否有任何numpy函数从一维数组创建这样的矩阵?

最佳答案

看一下链接中的示例代码中引用的label_binarize函数。

10-06 05:22