Предскажите ответы с помощью модели регрессии машины вектора поддержки
yfit = predict(Mdl,X)Mdl — Модель регрессии SVMRegressionSVM | объект CompactRegressionSVMМодель регрессии SVM, заданная как модель RegressionSVM или модель CompactRegressionSVM, возвращенная fitrsvm или compact, соответственно.
X Данные о предикторе раньше генерировали ответыДанные о предикторе раньше генерировали ответы, заданные как числовая матрица или таблица.
Каждая строка 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
yfit — Предсказанные ответыПредсказанные ответы, возвращенные как вектор длины 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, чтобы предсказать новые значения ответа.
Эта функция полностью поддерживает "высокие" массивы. Для получения дополнительной информации смотрите Длинные массивы (MATLAB).
Указания и ограничения по применению:
Можно сгенерировать код C/C++ и для predict и для update при помощи кодера configurer или сгенерировать код только для predict при помощи saveCompactModel, loadCompactModel и codegen.
Генерация кода для predict и update — Создает кодер configurer при помощи learnerCoderConfigurer и затем генерирует код при помощи generateCode. Затем можно обновить параметры модели в сгенерированном коде, не имея необходимость регенерировать код.
Генерация кода для predict — Сохраняет обученную модель при помощи saveCompactModel и задает функцию точки входа, которая загружает сохраненную модель при помощи loadCompactModel и вызывает функцию predict. Затем используйте codegen, чтобы сгенерировать код для функции точки входа.
Эта таблица содержит примечания об аргументах predict. Аргументы, не включенные в эту таблицу, полностью поддержаны.
| Аргумент | Примечания и ограничения |
|---|---|
Mdl | Для указаний и ограничений по применению объекта модели смотрите
Генерацию кода объекта |
X |
|
Для получения дополнительной информации смотрите Введение в Генерацию кода.
CompactRegressionSVM | RegressionSVM | fitrsvm | kfoldPredict
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.