【发布时间】:2020-07-09 13:11:33
【问题描述】:
我有两个 Xval(预测值)和 Sv(验证测试)矩阵,一个带有分类器输出数据,另一个带有相同样本的验证数据。每列代表预测值,例如[0 0 1 0 0 0 0 0 0 0]代表数字3(即数字中的1)。我想知道是否可以以矢量化方式或使用内置函数计算混淆矩阵,两个矩阵的大小均为 12000x10。生成两个矩阵的代码是这样的
load data;
load test;
[N, m] = size(X);
X = [ones(N, 1) X];
[Nt, mt] = size(Xt);
Xt = [ones(Nt, 1) Xt];
new_order = randperm(N);
X = X(new_order,: );
S = S(new_order,: );
part = 0.8;
Xtr = X(1: (part * N),: );
Xv = X((part * N + 1): N,: );
Str = S(1: (part * N),: );
Sv = S((part * N + 1): N,: );
v_c = [];
v_tx_acerto = [];
tx_acerto_max = 0;
c = 250;
w = (X'*X+c*eye(m+1))\X' * S;
Xval = Xv*w;
for i=1:12000
aux = Xval(i,:);
aux(aux == max(aux)) = 1;
aux(aux<1) = 0;
Xval(i,:) = aux;
end
【问题讨论】:
标签: matlab matrix octave confusion-matrix