predict

Спрогнозируйте ответы, используя модель машины опорных векторов

Синтаксис

Описание

пример

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

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

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

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 не должен соответствовать порядку столбцов Tbl. Tbl и 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 для предсказания новых значений отклика.

Альтернативная функциональность

Блок Simulink

Чтобы интегрировать предсказание регрессионой модели SVM в Simulink®можно использовать блок RegressionSVM Predict в библиотеке Statistics and Machine Learning Toolbox™ или MATLAB® Функциональный блок с predict функция. Для примеров смотрите Предсказать Ответы Используя RegressionSVM Предсказать Блок и Предсказать Метки Классов Используя Блок MATLAB function.

При принятии решения о том, какой подход использовать, примите к сведению следующее:

  • Если вы используете библиотечный блок Statistics and Machine Learning Toolbox, можно использовать Fixed-Point Tool (Fixed-Point Designer) для преобразования модели с плавающей точкой в фиксированную точку.

  • Поддержка массивов переменного размера должна быть включена для блока MATLAB Function с predict функция.

  • Если вы используете блок MATLAB Function, можно использовать функции MATLAB для предварительной обработки или постобработки до или после предсказаний в том же блоке MATLAB Function.

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

.
Введенный в R2015b