predict

Предсказать ответы для модели регрессии Гауссова ядра

Синтаксис

Описание

пример

YFit = predict(Mdl,X) возвращает вектор предсказанных откликов для данных предиктора в матрице или таблице X, на основе бинарной регрессионой модели Гауссова ядра Mdl.

Примеры

свернуть все

Спрогнозируйте ответы тестового набора, используя регрессионую модель Гауссова ядра для carbig набор данных.

Загрузите carbig набор данных.

load carbig

Задайте переменные предиктора (X) и переменной отклика (Y).

X = [Weight,Cylinders,Horsepower,Model_Year];
Y = MPG;

Удалите строки X и Y где любой массив имеет NaN значения. Удаление строк с NaN значения перед передачей данных в fitrkernel может ускорить обучение и уменьшить использование памяти.

R = rmmissing([X Y]); 
X = R(:,1:4); 
Y = R(:,end); 

Зарезервируйте 10% наблюдений в виде отсеченной выборки. Извлеките индексы обучения и тестирования из определения раздела.

rng(10)  % For reproducibility 
N = length(Y); 
cvp = cvpartition(N,'Holdout',0.1);
idxTrn = training(cvp); % Training set indices
idxTest = test(cvp);    % Test set indices

Стандартизируйте обучающие данные и обучите модель регрессионного ядра.

Xtrain = X(idxTrn,:);
Ytrain = Y(idxTrn);
[Ztrain,tr_mu,tr_sigma] = zscore(Xtrain); % Standardize the training data
tr_sigma(tr_sigma==0) = 1;
Mdl = fitrkernel(Ztrain,Ytrain)
Mdl = 
  RegressionKernel
              ResponseName: 'Y'
                   Learner: 'svm'
    NumExpansionDimensions: 128
               KernelScale: 1
                    Lambda: 0.0028
             BoxConstraint: 1
                   Epsilon: 0.8617


  Properties, Methods

Mdl является RegressionKernel модель.

Стандартизируйте тестовые данные, используя одно и то же среднее и стандартное отклонение столбцов обучающих данных. Спрогнозируйте ответы для тестового набора.

Xtest = X(idxTest,:);
Ztest = (Xtest-tr_mu)./tr_sigma; % Standardize the test data
Ytest = Y(idxTest);

YFit = predict(Mdl,Ztest);

Составьте таблицу, содержащую первые 10 наблюдаемых значений отклика и предсказанных значений отклика.

table(Ytest(1:10),YFit(1:10),'VariableNames', ...
    {'ObservedValue','PredictedValue'})
ans=10×2 table
    ObservedValue    PredictedValue
    _____________    ______________

         18              17.616    
         14              25.799    
         24              24.141    
         25              25.018    
         14              13.637    
         14              14.557    
         18              18.584    
         27              26.096    
         21              25.031    
         13              13.324    

Оцените регрессионные потери тестового набора с помощью функции средних потерь квадратичной невязки.

L = loss(Mdl,Ztest,Ytest)
L = 9.2664

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

свернуть все

Регрессионая модель ядра, заданная как RegressionKernel объект модели. Можно создать RegressionKernel моделировать объект используя fitrkernel.

Данные предиктора, используемые для генерации откликов, заданные как числовая матрица или таблица.

Каждая строка X соответствует одному наблюдению, и каждый столбец соответствует одной переменной.

  • Для числовой матрицы:

    • Переменные в столбцах X должен иметь тот же порядок, что и переменные предиктора, которые обучали Mdl.

    • Если вы тренировались Mdl использование таблицы (для примера, Tbl) и Tbl содержит все числовые переменные предиктора, затем X может быть числовой матрицей. Для лечения числовых предикторов в Tbl как категориальный во время обучения, идентифицируйте категориальные предикторы, используя CategoricalPredictors Аргумент пары "имя-значение" из fitrkernel. Если Tbl содержит неоднородные переменные предиктора (для примера, числовых и категориальных типов данных) и X является числовой матрицей, тогда predict выдает ошибку.

  • Для таблицы:

    • predict не поддерживает многополюсные переменные или массивы ячеек, отличные от массивов ячеек векторов символов.

    • Если вы тренировались Mdl использование таблицы (для примера, Tbl), затем все переменные предиктора в X должны иметь те же имена переменных и типы данных, что и обученные Mdl (хранится в Mdl.PredictorNames). Однако порядок столбцов X не должен соответствовать порядку столбцов Tbl. Кроме того, Tbl и X может содержать дополнительные переменные (переменные отклика, веса наблюдений и так далее), но predict игнорирует их.

    • Если вы тренировались Mdl используя числовую матрицу, затем имена предикторов в Mdl.PredictorNames и соответствующие имена переменных предиктора в X должно быть то же самое. Чтобы задать имена предикторов во время обучения, смотрите PredictorNames Аргумент пары "имя-значение" из fitrkernel. Все переменные предиктора в X должны быть числовыми векторами. X может содержать дополнительные переменные (переменные отклика, веса наблюдений и так далее), но predict игнорирует их.

Типы данных: double | single | table

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

свернуть все

Предсказанные отклики, возвращенные как числовой вектор.

YFit - вектор n -by 1 совпадающего типа данных, что и данные отклика (Y) используется для обучения Mdl, где n количество наблюдений в X.

Расширенные возможности

См. также

| | |

Введенный в R2018a