exponenta event banner

предсказать

Прогнозирование откликов с использованием модели опорной векторной машинной регрессии

Описание

пример

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 прогнозировать новые значения ответа.

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

Блок симулятора

Чтобы интегрировать прогнозирование модели регрессии SVM в Simulink ®, можно использовать блок прогнозирования RegingSVM в библиотеке Toolbox™ статистики и машинного обучения или функциональный блок MATLAB ® с помощью predict функция. Примеры см. в разделах Прогнозирование ответов с использованием блока прогнозирования RegingSVM и Прогнозирование меток классов с использованием функционального блока MATLAB.

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

  • При использовании блока библиотеки инструментов «Статистика и машинное обучение» для преобразования модели с плавающей запятой в фиксированную можно использовать инструмент «Фиксированная точка» (Fixed-Point Designer).

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

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

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

.
Представлен в R2015b