Как найти точность классификатора - PullRequest
1 голос
/ 20 января 2012

Я использую классификатор KNN и обнаружил, что knnclassify выполняет классификацию для меня в MATLAB.

код:

Class = knnclassify(TestVec,TrainVec, TrainLabel);

Проблема, с которой я сталкиваюсь сейчас, knnclassify просто классифицирует баллыи дает им значение, но я хотел бы найти точность этой классификации.

Я пытался что-то вроде этого:

Class = knnclassify(TestVec,TrainVec, TrainLabel);
cp = classperf(TestLabel,Class);
cp.CorrectRate 

Это дает мне эту ошибку:

??? Error using ==> classperf at 149
When the class labels of the CP object are numeric, the output
of the classifier must be all non-negative integers or NaN's.

Error in ==> KNN at 3
cp = classperf(TestLabel,Class);

Есть ли лучший способ найти точность классификатора или какие исправления я должен сделать, чтобы улучшить мой код выше?

Ответы [ 2 ]

1 голос
/ 20 января 2012

значения меток должны быть 0 или 1.

код для ввода:

cp = classperf(TrainLabel);   
Class = knnclassify(TestVec,TrainVec, TrainLabel);
cp = classperf(TestLabel,Class);
cp.CorrectRate
0 голосов
/ 12 января 2014
maybe, you can use this code to understand...

sample = [2 12   ;47 18 ;46.7 12]
training=[46.7 12;45 11 ;46.7 13]
group = [1;2;1]
class = knnclassify(sample, training, group)


cp = classperf(class,group);%to compare 2 matrix, which is have the same row n column
cp.CorrectRate*100
...