2015-10-17 68 views
0

我在KNN分類使用MATLAB的函數工作:分組變量必須在KNN分類向量誤差

knnclassify(gp,trainingClass, gpTest), 

其中

gp<849x36 double>矩陣,gpTest是矩陣進行測試,但它會引發以下錯誤

錯誤使用grp2idx(第39行)分組變量必須是矢量或 字符數組。

knnclassify錯誤(第81行)[gindex,groups] = grp2idx(group);

測試錯誤(第1行)knnclassify(gp,trainingClass,gpTest);

回答

0

誤差是相當明確的 - gpTest變量應該是具有相同長度的含有一組標籤描述每個訓練樣本的訓練數據(trainingClass)的載體。這可以是數字或字符數組。

爲了澄清這一點,knnclassify(最簡單的形式)被定義爲

CLASS = knnclassify(SAMPLE,TRAINING,GROUP) 

SAMPLE包含要根據該訓練樣本TRAINING分類的ñ點,每個點其中被定義爲屬於GROUP中給出的類別。然後,分類器將基於TRAINING中的訓練數據中的最近鄰點預測SAMPLE中的每個n樣本的類別。 SAMPLETRAINING應該包含相同數量的列。默認情況下,k爲1,因此它會根據最近的訓練樣本使用歐幾里得距離對每個點進行分類。