Есть ли способ управлять классификацией K-Nearest-Neighbot в Matlab с использованием таблицы с элементами, имеющими разные размеры? - PullRequest
0 голосов
/ 18 июня 2020

Я пытаюсь создать программу в Matlab, которая классифицирует некоторые экспериментальные наблюдения за явлением на основе 6 параметров: «время» и «наблюдение» - это два вектора 1x18000, затем есть 3 скалярных параметра и логический параметр.
Один скалярный параметр и логический параметр определяют класс для классификации наблюдений, а два других являются простыми скалярными параметрами, дающими информацию об экспериментальном наблюдении.
Теперь я создал таблицу Matlab, используя итерацию for l oop для чтения всех рабочих пространств, содержащих наблюдаемые данные, и использовал функцию struct2table для их генерации.
общий c элемент таблицы имеет вид [1x18461 double] [1x18461 double] double double double true

Теперь я хотел создать модель для алгоритма K-Nearest Neighbor, используя функцию Matlab Model =fitcknn(ds_test_data, 'double_property');

, но я продолжаю получать сообщения об ошибках:


Error using classreg.learning.internal.table2FitMatrix>makeXMatrix (line 180)
Table variable time must be a column vector.

Error in classreg.learning.internal.table2FitMatrix (line 113)
[Xout,vrange,CategoricalPredictors] = makeXMatrix(X,PredictorNames,CategoricalPredictors,OrdinalIsCategorical);

Error in classreg.learning.classif.FullClassificationModel.prepareData (line 485)
            [X,Y,vrange,wastable,varargin] = classreg.learning.internal.table2FitMatrix(X,Y,varargin{:});

Error in ClassificationKNN.prepareData (line 878)
                prepareData@classreg.learning.classif.FullClassificationModel(X,Y,varargin{:},'OrdinalIsCategorical',true);

Error in classreg.learning.FitTemplate/fit (line 217)
                    this.PrepareData(X,Y,this.BaseFitObjectArgs{:});

Error in ClassificationKNN.fit (line 863)
            this = fit(temp,X,Y);

Error in fitcknn (line 261)
    this = ClassificationKNN.fit(X,Y,RemainingArgs{:});

Error in Prova_K_Nearest_Neighbor (line 56)
Model =fitcknn(ds_test_data, 'double_property');


Есть ли способ обойти это?

...