分组变量必须是KNN分类器中的向量错误

时间:2015-10-17 19:07:44

标签: matlab classification knn

我正在使用matlab的函数研究KNN分类器:

knnclassify(gp,trainingClass, gpTest),

其中

gp<849x36 double>矩阵,gpTest是要测试的矩阵,但会引发以下错误

  

使用grp2idx时出错(第39行)分组变量必须是向量或a   字符数组。

     

knnclassify错误(第81行)[gindex,groups] = grp2idx(group);

     

测试错误(第1行)knnclassify(gp,trainingClass,gpTest);

1 个答案:

答案 0 :(得分:0)

错误非常明确 - gpTest变量应该是一个与训练数据(trainingClass)长度相同的向量,其中包含描述每个训练样本的组标签。这可以是数字或字符数组。

为澄清这一点,knnclassify(最简单的形式)定义为

CLASS = knnclassify(SAMPLE,TRAINING,GROUP)

其中SAMPLE包含您要根据TRAINING中的 m 训练样本进行分类的 n 点,其中每个都已定义属于GROUP中给出的类。然后,分类器将根据SAMPLE中训练数据中的 k 最近邻居,预测TRAINING中每个 n 样本的类别。 SAMPLETRAINING应包含相同数量的列。默认情况下, k 为1,因此它将使用欧几里德距离基于最近的训练样本对每个点进行分类。