Почему точность равна 0%? МАТЛАБ ЛИБСВМ
Я добылPCA Особенности использования:
function [mn,A1,A2,Eigenfaces] = pca(T,f1,nf1)
m=mean(T,2), %T is the whole training set
train=size(T,2);
A=[];
for i=1:train
temp=double(T(:,i))-m;
A=[A temp];
end
train=size(f1,2); %f1 - Face 1 images from training set 'T'
A=[];
for i=1:train
temp=double(f1(:,i))-m;
A1=[A1 temp];
end
train=size(nf1,2); %nf1 - Images other than face 1 from training set 'T'
A=[];
for i=1:train
temp=double(nf1(:,i))-m;
A2=[A2 temp];
end
L=A'*A;
[V D]=eig(L);
for i=1:size(V,2)
if(D(i,i)>1)
L_eig=[L_eig V(:,1)];
end
end
Eigenfaces=A*L_eig;
end
Затем я спроектировал только лицо 1 (класс +1) из данных тренировок как таковых:
Функция 1
for i=1:15 %number of images of face 1 in training set
temp=Eigenfaces'*A1(:,i);
proj_img1=[proj_img1 temp];
end
Затем я спроектировал остальные лица (класс -1) из данных тренировок как таковых:
Функция 2
for i=1:221 %number of images of faces other than face 1 in training set
temp=Eigenfaces'*A2(:,i);
proj_img2=[proj_img2 temp];
end
Функция 3 Затем вектор входного изображения был получен с использованием:
diff=double(inputimg)-mn; %mn is the mean of training data
testfeaturevector=Eigenfaces'*diff;
Я написал результаты функций 1 и 2 в CSV-файле с метками +1 и -1 соответственно. Затем я использовал LIBSVM для получения точности при задании истинной метки, она вернула 0%, а когда я попыталась предсказать метку, она была равна -1 вместо +1.
И точность как 0%?
В основном моя модель не обучена должным образом, и я не вижу ошибки.
Любые предложения будут с благодарностью.