我正在使用matlab的函数研究KNN分类器:
knnclassify(gp,trainingClass, gpTest),
其中
gp
是<849x36 double>
矩阵,gpTest
是要测试的矩阵,但会引发以下错误
使用grp2idx时出错(第39行)分组变量必须是向量或a 字符数组。
knnclassify错误(第81行)[gindex,groups] = grp2idx(group);
测试错误(第1行)knnclassify(gp,trainingClass,gpTest);
答案 0 :(得分:0)
错误非常明确 - gpTest
变量应该是一个与训练数据(trainingClass
)长度相同的向量,其中包含描述每个训练样本的组标签。这可以是数字或字符数组。
为澄清这一点,knnclassify
(最简单的形式)定义为
CLASS = knnclassify(SAMPLE,TRAINING,GROUP)
其中SAMPLE
包含您要根据TRAINING
中的 m 训练样本进行分类的 n 点,其中每个都已定义属于GROUP
中给出的类。然后,分类器将根据SAMPLE
中训练数据中的 k 最近邻居,预测TRAINING
中每个 n 样本的类别。 SAMPLE
和TRAINING
应包含相同数量的列。默认情况下, k 为1,因此它将使用欧几里德距离基于最近的训练样本对每个点进行分类。