Ошибка в многослойном перекрестном валидационном разбиении Matlab "CVPARTITION может иметь не более одного необязательного аргумента" - PullRequest
0 голосов
/ 23 января 2020

Я пытаюсь выполнить стратифицированную перекрестную проверку, поскольку данные сильно разбалансированы. Метки вывода данных находятся в матрице predictionMatrix. Это размерная матрица 832 * 1 со значениями 0/1. Для перекрестной проверки я использую функцию cvpartition, но она генерирует ошибку:

CVPARTITION can have at most one optional argument

Код:

c = cvpartition(predictionMatrix,'KFold',5,'Stratify',true);

1 Ответ

0 голосов
/ 24 января 2020

Вы должны использовать более старую версию MATLAB. Например, в выпуске MATLAB R2016a команда cvpartition принимает только одну пару необязательных аргументов, как в

c = cvpartition(predictionMatrix,'KFold',5)

, а опция ...'Stratify',true вообще недоступна. Таким образом, вы получите ту же ошибку, что и ваша:

I = randi(100,832,1);
predictionMatrix = (I>50);
c = cvpartition(predictionMatrix,'KFold',5,'Stratify',true);

  Error using cvpartition (line 130)
  CVPARTITION can have at most one optional argument

Однако в MATLAB версии R2018a и выше тот же код работает просто отлично:

I = randi(100,832,1);
predictionMatrix = (I>50);
c = cvpartition(predictionMatrix,'KFold',5,'Stratify',true)

c = 

K-fold cross validation partition
   NumObservations: 832
       NumTestSets: 5
         TrainSize: 666  665  665  666  666
          TestSize: 166  167  167  166  166
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...