MATLAB-knn分类的应用
执行以下操作时:MATLAB-knn分类的应用,matlab,matrix,machine-learning,Matlab,Matrix,Machine Learning,执行以下操作时: load training.mat training = G load testing.mat test = G 然后: >> knnclassify(test.Inp, training.Inp, training.Ltr) ??? Error using ==> knnclassify at 91 The length of GROUP must equal the number of rows in TRAINING. 自: >> s
load training.mat
training = G
load testing.mat
test = G
然后:
>> knnclassify(test.Inp, training.Inp, training.Ltr)
??? Error using ==> knnclassify at 91
The length of GROUP must equal the number of rows in TRAINING.
自:
>> size(training.Inp)
ans =
40 40 2016
以及:
我怎样才能给knncclassify(TRAINING)的第二个参数TRAINING.inp 3-D矩阵,使行数为2016(第三维)?假设您的三维数据被解释为2016个实例(第三维)的40×40特征矩阵,我们必须将其重新排列为2016×1600大小的矩阵(行是示例,列是标注):
您需要澄清数据的外观;据我所知,您有2016个实例(行),其中每个实例(行)都有40*40个特征(列)?对吗?
>> length(training.Ltr)
ans =
2016
%# random data instead of the `load data.mat`
testing = rand(40,40,200);
training = rand(40,40,2016);
labels = randi(3, [2016 1]); %# a class label for each training instance
%# (out of 3 possible classes)
%# arrange data as a matrix whose rows are the instances,
%# and columns are the features
training = reshape(training, [40*40 2016])';
testing = reshape(testing, [40*40 200])';
%# k-nearest neighbor classification
prediction = knnclassify(testing, training, labels);