Модели гауссовой регрессии процесса (GPR) являются непараметрическими основанными на ядре вероятностными моделями. Можно обучить модель GPR с помощью fitrgp
функция.
Рассмотрите набор обучающих данных , где и , чертивший от неизвестного распределения. Модель GPR обращается к вопросу предсказания значения переменной отклика , учитывая новый входной вектор , и обучающие данные. Модель линейной регрессии имеет форму
где . Ошибочное отклонение σ2 и коэффициенты β оцениваются из данных. Модель GPR объясняет ответ путем представления скрытых переменных, , от Гауссова процесса (GP), и явных основных функций, h. Функция ковариации скрытых переменных получает гладкость ответа, и основные функции проектируют входные параметры в p - размерное пространство признаков.
GP является набором случайных переменных, таких, что любое конечное число их имеет объединенное Распределение Гаусса. Если GP, затем, учитывая наблюдения n , совместное распределение случайных переменных является Гауссовым. GP задан его средней функцией и функция ковариации, . Таким образом, если Гауссов процесс, затем и
Теперь рассмотрите следующую модель.
где , это is f (x) от нулевого среднего GP с функцией ковариации, . h (x) является набором основных функций, которые преобразовывают исходный характеристический вектор x в Rd в вектор новой возможности h (x) в Rp. β является p-by-1 вектор из коэффициентов основной функции. Эта модель представляет модель GPR. Экземпляр ответа y может быть смоделирован как
Следовательно, модель GPR является вероятностной моделью. Существует скрытая переменная f (xi), введенный для каждого наблюдения , который делает модель GPR непараметрической. В векторной форме эта модель эквивалентна
где
Совместное распределение скрытых переменных в GPR модель следующие:
близко к модели линейной регрессии, где взгляды можно следующим образом:
Функция ковариации обычно параметрируется набором параметров ядра или гиперпараметров, . Часто записан как явным образом указать на зависимость от .
fitrgp
оценивает коэффициенты основной функции, , шумовое отклонение, , и гиперпараметры,, из ядра функционируют из данных в то время как обучение модель GPR. Можно задать основную функцию, ядро (ковариация) функция и начальные значения для параметров.
Поскольку модель GPR является вероятностной, возможно вычислить интервалы предсказания с помощью обученной модели (см. predict
и resubPredict
).
Можно также вычислить ошибку регрессии обученная модель GPR (см. loss
и resubLoss
).
Этот пример подбирает модели GPR к бесшумному набору данных и набору зашумленных данных. Пример сравнивает предсказанные ответы и интервалы предсказания двух подбиравших моделей GPR.
Сгенерируйте два набора данных наблюдения от функции .
rng('default') % For reproducibility x_observed = linspace(0,10,21)'; y_observed1 = x_observed.*sin(x_observed); y_observed2 = y_observed1 + 0.5*randn(size(x_observed));
Значения в y_observed1
свободный шум, и значения в y_observed2
включайте некоторый случайный шум.
Подбирайте модели GPR к наблюдаемым наборам данных.
gprMdl1 = fitrgp(x_observed,y_observed1); gprMdl2 = fitrgp(x_observed,y_observed2);
Вычислите предсказанные ответы и 95%-е интервалы предсказания с помощью подобранных моделей.
x = linspace(0,10)'; [ypred1,~,yint1] = predict(gprMdl1,x); [ypred2,~,yint2] = predict(gprMdl2,x);
Измените размер фигуры, чтобы отобразить два графика в одной фигуре.
fig = figure; fig.Position(3) = fig.Position(3)*2;
Создайте 1 2 мозаичное размещение графика.
tiledlayout(1,2,'TileSpacing','compact')
Для каждой мозаики чертите график рассеивания наблюдаемых точек данных и график функций . Затем добавьте, что график GP предсказал ответы и закрашенную фигуру интервалов предсказания.
nexttile hold on scatter(x_observed,y_observed1,'r') % Observed data points fplot(@(x) x.*sin(x),[0,10],'--r') % Function plot of x*sin(x) plot(x,ypred1,'g') % GPR predictions patch([x;flipud(x)],[yint1(:,1);flipud(yint1(:,2))],'k','FaceAlpha',0.1); % Prediction intervals hold off title('GPR Fit of Noise-Free Observations') legend({'Noise-free observations','g(x) = x*sin(x)','GPR predictions','95% prediction intervals'},'Location','best') nexttile hold on scatter(x_observed,y_observed2,'xr') % Observed data points fplot(@(x) x.*sin(x),[0,10],'--r') % Function plot of x*sin(x) plot(x,ypred2,'g') % GPR predictions patch([x;flipud(x)],[yint2(:,1);flipud(yint2(:,2))],'k','FaceAlpha',0.1); % Prediction intervals hold off title('GPR Fit of Noisy Observations') legend({'Noisy observations','g(x) = x*sin(x)','GPR predictions','95% prediction intervals'},'Location','best')
Когда наблюдения являются свободным шумом, предсказанные ответы подгонки GPR пересекают наблюдения. Стандартное отклонение предсказанного ответа является почти нулем. Поэтому интервалы предсказания являются очень узкими. Когда наблюдения включают шум, предсказанные ответы не пересекают наблюдения, и интервалы предсказания становятся широкими.
[1] Расмуссен, C. E. и К. К. Ай. Уильямс. Гауссовы процессы для машинного обучения. Нажатие MIT. Кембридж, Массачусетс, 2006.
fitrgp
| RegressionGP
| predict