Предсказать ответы для модели регрессии Гауссова ядра
Спрогнозируйте ответы тестового набора, используя регрессионую модель Гауссова ядра для carbig
набор данных.
Загрузите carbig
набор данных.
load carbig
Задайте переменные предиктора (X
) и переменной отклика (Y
).
X = [Weight,Cylinders,Horsepower,Model_Year]; Y = MPG;
Удалите строки X
и Y
где любой массив имеет NaN
значения. Удаление строк с NaN
значения перед передачей данных в fitrkernel
может ускорить обучение и уменьшить использование памяти.
R = rmmissing([X Y]); X = R(:,1:4); Y = R(:,end);
Зарезервируйте 10% наблюдений в виде отсеченной выборки. Извлеките индексы обучения и тестирования из определения раздела.
rng(10) % For reproducibility N = length(Y); cvp = cvpartition(N,'Holdout',0.1); idxTrn = training(cvp); % Training set indices idxTest = test(cvp); % Test set indices
Стандартизируйте обучающие данные и обучите модель регрессионного ядра.
Xtrain = X(idxTrn,:);
Ytrain = Y(idxTrn);
[Ztrain,tr_mu,tr_sigma] = zscore(Xtrain); % Standardize the training data
tr_sigma(tr_sigma==0) = 1;
Mdl = fitrkernel(Ztrain,Ytrain)
Mdl = RegressionKernel ResponseName: 'Y' Learner: 'svm' NumExpansionDimensions: 128 KernelScale: 1 Lambda: 0.0028 BoxConstraint: 1 Epsilon: 0.8617 Properties, Methods
Mdl
является RegressionKernel
модель.
Стандартизируйте тестовые данные, используя одно и то же среднее и стандартное отклонение столбцов обучающих данных. Спрогнозируйте ответы для тестового набора.
Xtest = X(idxTest,:);
Ztest = (Xtest-tr_mu)./tr_sigma; % Standardize the test data
Ytest = Y(idxTest);
YFit = predict(Mdl,Ztest);
Составьте таблицу, содержащую первые 10 наблюдаемых значений отклика и предсказанных значений отклика.
table(Ytest(1:10),YFit(1:10),'VariableNames', ... {'ObservedValue','PredictedValue'})
ans=10×2 table
ObservedValue PredictedValue
_____________ ______________
18 17.616
14 25.799
24 24.141
25 25.018
14 13.637
14 14.557
18 18.584
27 26.096
21 25.031
13 13.324
Оцените регрессионные потери тестового набора с помощью функции средних потерь квадратичной невязки.
L = loss(Mdl,Ztest,Ytest)
L = 9.2664
Mdl
- модель регрессии ядраRegressionKernel
объект моделиРегрессионая модель ядра, заданная как RegressionKernel
объект модели. Можно создать RegressionKernel
моделировать объект используя fitrkernel
.
X
- Данные предиктора, используемые для генерации откликовДанные предиктора, используемые для генерации откликов, заданные как числовая матрица или таблица.
Каждая строка X
соответствует одному наблюдению, и каждый столбец соответствует одной переменной.
Для числовой матрицы:
Переменные в столбцах X
должен иметь тот же порядок, что и переменные предиктора, которые обучали Mdl
.
Если вы тренировались Mdl
использование таблицы (для примера, Tbl
) и Tbl
содержит все числовые переменные предиктора, затем X
может быть числовой матрицей. Для лечения числовых предикторов в Tbl
как категориальный во время обучения, идентифицируйте категориальные предикторы, используя CategoricalPredictors
Аргумент пары "имя-значение" из fitrkernel
. Если Tbl
содержит неоднородные переменные предиктора (для примера, числовых и категориальных типов данных) и X
является числовой матрицей, тогда predict
выдает ошибку.
Для таблицы:
predict
не поддерживает многополюсные переменные или массивы ячеек, отличные от массивов ячеек векторов символов.
Если вы тренировались Mdl
использование таблицы (для примера, Tbl
), затем все переменные предиктора в X
должны иметь те же имена переменных и типы данных, что и обученные Mdl
(хранится в Mdl.PredictorNames
). Однако порядок столбцов X
не должен соответствовать порядку столбцов Tbl
. Кроме того, Tbl
и X
может содержать дополнительные переменные (переменные отклика, веса наблюдений и так далее), но predict
игнорирует их.
Если вы тренировались Mdl
используя числовую матрицу, затем имена предикторов в Mdl.PredictorNames
и соответствующие имена переменных предиктора в X
должно быть то же самое. Чтобы задать имена предикторов во время обучения, смотрите PredictorNames
Аргумент пары "имя-значение" из fitrkernel
. Все переменные предиктора в X
должны быть числовыми векторами. X
может содержать дополнительные переменные (переменные отклика, веса наблюдений и так далее), но predict
игнорирует их.
Типы данных: double
| single
| table
Указания и ограничения по применению:
predict
не поддерживает высокие table
данные.
Для получения дополнительной информации см. Раздел «Длинные массивы»
fitrkernel
| loss
| RegressionKernel
| resume
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.