kfoldPredict

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

Синтаксис

YHat = kfoldPredict(CVMdl)

Описание

пример

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(i,j) является предсказанным ответом для наблюдения i с помощью модели линейной регрессии, которая имеет силу регуляризации CVMdl.Trained{1}.Lambda(j).

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

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

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

  • bj предполагаемое, скалярное смещение, которое программное обеспечение хранит в Mdl.Bias(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