2015-10-17 67 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,因此它会根据最近的训练样本使用欧几里得距离对每个点进行分类。