1

KNN分類器を使用していますが、MATLABでknnclassifyが分類を行っていることがわかりました。

コード:

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);

分類器の精度を見つけるためのより良い方法はありますか、または上記のコードを改善するためにどのような修正を行う必要がありますか?

4

2 に答える 2

1

ラベルの値は0または1である必要があります。

入力するコード:

cp = classperf(TrainLabel);   
Class = knnclassify(TestVec,TrainVec, TrainLabel);
cp = classperf(TestLabel,Class);
cp.CorrectRate
于 2012-01-20T17:22:12.450 に答える
0
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
于 2014-01-12T07:48:18.530 に答える