Модели регрессии гауссовых процессов (GPR) являются непараметрическими вероятностными моделями на основе ядра. Модель GPR можно обучить с помощью fitrgp функция.
Рассмотрим обучающий набор ., n}, xi∈ℝd yi∈ℝ, взятые из неизвестного распределения. Модель GPR решает вопрос прогнозирования значения ответа ynew, учитывая новый входной xnew, и обучающие данные. Линейная регрессионная модель имеет вид
+
где start2). По данным оценивают дисперсию рассогласования, и коэффициенты β. Модель GPR объясняет ответ введением скрытых переменных ..., n из гауссова процесса (GP) и явных базисных функций h. Ковариационная функция скрытых переменных фиксирует гладкость отклика и базисные функции проецируют входные данные x в пространство p-мерных признаков.
ГП - это набор случайных величин, так что любое конечное число из них имеет совместное гауссово распределение. Если x∈ℝd} является GP, то, учитывая n , xn, совместное распределение случайных ., f (xn) является гауссовым. GP определяется его средней функцией m (x) и ковариационной функцией k (x, x ′). если {f (x), x∈ℝd} является гауссовым то E − m (x)} {f (x ′) − m (x ′)] = k (x, x ′).
Рассмотрим следующую модель.
(x),
где x, x ′)), то есть f (x) являются от нулевого среднего GP с ковариационной , k (x, x ′). h (x) - набор базисных функций, которые преобразуют исходный вектор x признаков в Rd в новый вектор h признаков в Rp. β - вектор p-by-1 коэффициентов базисной функции. Эта модель представляет модель GPR. Экземпляр ответа y может быть смоделирован как
f (xi), start2)
Следовательно, модель GPR является вероятностной моделью. Для каждого наблюдения xi вводится скрытая переменная f (xi), которая делает модель GPR непараметрической. В векторной форме эта модель эквивалентна
f, start2I),
где
f (x2) ⋮f (xn)).
Совместное распределение скрытых переменных xn) в модели GPR выглядит следующим образом:
(X, X)),
близко к модели линейной регрессии, где X) выглядит следующим образом:
, x1) k (xn, x2) ⋯k (xn, xn)).
Ковариационная функция ′) обычно параметризуется набором параметров ядра или , x ′) x,x′|θ) для явного указания зависимости от start.
fitrgp оценивает коэффициенты базисной функции, , дисперсию шума и гиперпараметры Можно указать базисную функцию, функцию ядра (ковариации) и начальные значения параметров.
Поскольку модель GPR является вероятностной, можно вычислить интервалы прогнозирования с использованием обученной модели (см. predict и resubPredict).
Можно также вычислить ошибку регрессии с помощью обученной модели GPR (см. loss и resubLoss).
В этом примере модели GPR соответствуют набору данных без шума и набору данных с шумом. В примере сравниваются предсказанные отклики и интервалы прогнозирования двух подогнанных моделей GPR.
Создайте два набора данных наблюдения из функции ( x).
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')
Для каждой плитки нарисуйте график рассеяния наблюдаемых точек данных и график функции ). Затем добавьте график прогнозируемых ответов врачей общей практики и заплатку интервалов прогнозирования .
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. Кембридж, Массачусетс, 2006.
fitrgp | predict | RegressionGP