Модели регрессии Гауссова процесса (GPR) являются непараметрическими основанными на ядре вероятностными моделями. Можно обучить модель GPR, используя fitrgp
функция.
Рассмотрим набор обучающих данных , где и , полученный из неизвестного распределения. Модель GPR решает вопрос предсказания значения переменной отклика , учитывая новый входной вектор , и обучающих данных. Линейная регрессионая модель имеет вид
где . Ошибка отклонения σ2 и коэффициенты, β оцениваются из данных. Модель GPR объясняет ответ введением скрытых переменных, , из Гауссова процесса (GP) и явных базисных функций, h. Ковариационная функция латентных переменных захватывает плавность отклика и базисные функции проецируют входы в p -мерное пространство функций.
GP является множеством случайных переменных, таких что любое конечное число из них имеет совместное Гауссово распределение. Если является GP, затем задается n наблюдения , совместное распределение случайных переменных Гауссов. GP определяется своей средней функцией и ковариационную функцию, . То есть, если является Гауссовым процессом, тогда и
Теперь рассмотрим следующую модель.
где , то есть 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] Расмуссен, К. Э. и К. К. И. Уильямс. Гауссовы процессы для машинного обучения. MIT Press. Кембридж, Массачусетс, 2006.
fitrgp
| predict
| RegressionGP