在python中将1D数组转换为基于2D类的矩阵

时间:2014-08-04 19:15:18

标签: python arrays numpy matrix scikit-learn

我正在使用多类分类器,因此为了在测试后对其进行评估,我需要将分类器(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在二进制值的二维矩阵中,以下形状: 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函数可以从一维数组创建这样的矩阵?

1 个答案:

答案 0 :(得分:1)

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