【问题标题】:Grouping variable must be a vector Error in KNN Classifier分组变量必须是 KNN 分类器中的向量错误
【发布时间】:2016-01-16 09:19:54
【问题描述】:

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

knnclassify(gp,trainingClass, gpTest),

在哪里

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

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

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

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

【问题讨论】:

    标签: matlab classification knn


    【解决方案1】:

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

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

    CLASS = knnclassify(SAMPLE,TRAINING,GROUP)
    

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

    【讨论】:

      猜你喜欢
      • 2013-03-15
      • 2018-05-23
      • 2017-09-17
      • 2020-09-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多