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 \in 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 Предсказывают Блок и Предсказывают, что Класс Маркирует Using MATLAB Function Block.

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

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

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

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

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

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

| | |

Введенный в R2015b