predict

Предскажите ответы с помощью модели регрессии машины опорных векторов

Синтаксис

Описание

пример

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

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

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

Модель регрессии SVM, заданная как RegressionSVM модель или CompactRegressionSVM модель, возвращенная fitrsvm или compact, соответственно.

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

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

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

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

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

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

    • predict не поддерживает многостолбцовые переменные и массивы ячеек кроме массивов ячеек из символьных векторов.

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

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

Если вы устанавливаете 'Standardize',true в fitrsvm обучать Mdl, затем программное обеспечение стандартизирует столбцы X использование соответствующих средних значений в Mdl.Mu и стандартные отклонения в Mdl.Sigma.

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

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

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

Предсказанные ответы, возвращенные как вектор длины n, где n является количеством наблюдений в обучающих данных.

Для получения дополнительной информации о том, как предсказать ответы, смотрите уравнение 1 и уравнение 2 в Понимании Регрессии Машины опорных векторов.

Примеры

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

Загрузите carsmall набор данных. Рассмотрите модель, которая предсказывает топливную экономичность автомобиля, учитывая ее лошадиную силу и вес. Определите объем выборки.

load carsmall
tbl = table(Horsepower,Weight,MPG);
N = size(tbl,1);

Разделите данные в наборы обучающих данных и наборы тестов. Протяните 10% данных для тестирования.

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

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

Mdl = fitrsvm(tbl(idxTrn,:),'MPG','Standardize',true);

Mdl RegressionSVM модель.

Предскажите ответы для набора тестов.

YFit = predict(Mdl,tbl(idxTest,:));

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

table(tbl.MPG(idxTest),YFit,'VariableNames',...
    {'ObservedValue','PredictedValue'})
ans=10×2 table
    ObservedValue    PredictedValue
    _____________    ______________

          14             9.4833    
          27             28.938    
          10              7.765    
          28             27.155    
          22             21.054    
          29             31.484    
        24.5             30.306    
        18.5              19.12    
          32             28.225    
          28             26.632    

Советы

  • Если mdl перекрестный подтвержденный RegressionPartitionedSVM модель, используйте kfoldPredict вместо predict предсказать новые значения ответа.

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

Смотрите также

| | |

Введенный в R2015b