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

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

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

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

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

Примеры

расширить все

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

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 = 
  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 является числовым вектором.

Симулируйте 10000 наблюдений как в Предсказать Перекрестные Проверенные Отклики.

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