kfoldPredict

Предскажите ответы для наблюдений, не используемых в обучении

Синтаксис

Описание

пример

YHat = kfoldPredict(CVMdl) возвращает перекрестные подтвержденные предсказанные ответы перекрестной подтвержденной моделью CVMdl линейной регрессии. Таким образом, для каждого сгиба, kfoldPredict предсказывает ответы для наблюдений, что это протягивает, когда это обучает использование всех других наблюдений.

YHat содержит предсказанные ответы для каждой силы регуляризации в моделях линейной регрессии, которые составляют CVMdl.

Входные параметры

развернуть все

Перекрестный подтвержденный, модель линейной регрессии, заданная как RegressionPartitionedLinear объект модели. Можно создать RegressionPartitionedLinear модель с помощью fitrlinear и определение любого того перекрестной проверки, аргументов пары "имя-значение", например, CrossVal.

Чтобы получить оценки, kfoldPredict применяется, те же данные раньше перекрестный подтверждали модель линейной регрессии (X и Y).

Выходные аргументы

развернуть все

Перекрестные подтвержденные предсказанные ответы, возвращенные как n-by-L числовой массив. n является количеством наблюдений в данных о предикторе, которые создали CVMdl (см. X) и L является количеством сильных мест регуляризации в CVMdl.Trained{1}.Lambda. YHat (iJ) предсказанный ответ для наблюдения i использование модели линейной регрессии, которая имеет силу регуляризации CVMdl. Обученный {1}.Lambda (j).

Предсказанный ответ с помощью модели с силой регуляризации j y^j=xβj+bj.

  • x является наблюдением от матрицы данных предиктора X, и вектор-строка.

  • βj предполагаемый вектор-столбец коэффициентов. Программное обеспечение хранит этот вектор в Mdl. \beta: J).

  • bj предполагаемое, скалярное смещение, которое программное обеспечение хранит в Mdl. Смещение (j).

Примеры

развернуть все

Симулируйте 10 000 наблюдений из этой модели

y=x100+2x200+e.

  • X=x1,...,x1000 10000 1000 разреженная матрица с 10%-ми ненулевыми стандартными нормальными элементами.

  • e является случайной нормальной ошибкой со средним значением 0 и стандартным отклонением 0.3.

rng(1) % For reproducibility
n = 1e4;
d = 1e3;
nz = 0.1;
X = sprandn(n,d,nz);
Y = X(:,100) + 2*X(:,200) + 0.3*randn(n,1);

Перекрестный подтвердите модель линейной регрессии.

CVMdl = fitrlinear(X,Y,'CrossVal','on')
CVMdl = 
  classreg.learning.partition.RegressionPartitionedLinear
    CrossValidatedModel: 'Linear'
           ResponseName: 'Y'
        NumObservations: 10000
                  KFold: 10
              Partition: [1x1 cvpartition]
      ResponseTransform: 'none'


  Properties, Methods

Mdl1 = CVMdl.Trained{1}
Mdl1 = 
  RegressionLinear
         ResponseName: 'Y'
    ResponseTransform: 'none'
                 Beta: [1000x1 double]
                 Bias: 0.0107
               Lambda: 1.1111e-04
              Learner: 'svm'


  Properties, Methods

По умолчанию, fitrlinear реализует 10-кратную перекрестную проверку. CVMdl RegressionPartitionedLinear модель. Это содержит свойство Trained, который является массивом ячеек 10 на 1, содержащим 10 RegressionLinear модели, что программное обеспечение обучило использование набора обучающих данных.

Предскажите ответы для наблюдений что fitrlinear не использовал в обучении сгибы.

yHat = kfoldPredict(CVMdl);

Поскольку существует одна сила регуляризации в Mdl, yHat числовой вектор.

Симулируйте 10 000 наблюдений, когда в Предсказывают перекрестные Подтвержденные Ответы.

rng(1) % For reproducibility
n = 1e4;
d = 1e3;
nz = 0.1;
X = sprandn(n,d,nz);
Y = X(:,100) + 2*X(:,200) + 0.3*randn(n,1);

Создайте набор 15 логарифмически распределенных сильных мест регуляризации от 10-5 через 10-1.

Lambda = logspace(-5,-1,15);

Перекрестный подтвердите модели. Чтобы увеличить скорость выполнения, транспонируйте данные о предикторе и укажите, что наблюдения находятся в столбцах. Задайте наименьшие квадраты использования со штрафом лассо и оптимизацией использования целевой функции SpaRSA.

X = X'; 
CVMdl = fitrlinear(X,Y,'ObservationsIn','columns','KFold',5,'Lambda',Lambda,...
    'Learner','leastsquares','Solver','sparsa','Regularization','lasso');

CVMdl RegressionPartitionedLinear модель. Его Trained свойство содержит массив ячеек 5 на 1 обученного RegressionLinear модели, каждый протягивает различный сгиб во время обучения. Поскольку fitrlinear обученное использование 15 сильных мест регуляризации, можно думать о каждом RegressionLinear модель как 15 моделей.

Предскажите перекрестные подтвержденные ответы.

YHat = kfoldPredict(CVMdl);
size(YHat)
ans = 1×2

       10000          15

YHat(2,:)
ans = 1×15

   -1.7338   -1.7332   -1.7319   -1.7299   -1.7266   -1.7239   -1.7135   -1.7210   -1.7324   -1.7063   -1.6397   -1.5112   -1.2631   -0.7841   -0.0096

YHat 10000 15 матрица. YHat(2,:) перекрестный подтвержденный ответ для наблюдения 2 использования модели, упорядоченной со всеми 15 значениями регуляризации.

Введенный в R2016a