предсказать

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

Синтаксис

yfit = predict(Mdl,X)

Описание

пример

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

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

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

| | |

Введенный в R2015b

Для просмотра документации необходимо авторизоваться на сайте