exponenta event banner

предсказать

Прогнозировать отклик модели регрессии гауссова процесса

Синтаксис

ypred = predict(gprMdl,Xnew)
[ypred,ysd] = predict(gprMdl,Xnew)
[ypred,ysd,yint] = predict(gprMdl,Xnew)
[ypred,ysd,yint] = predict(gprMdl,Xnew,Name,Value)

Описание

ypred = predict(gprMdl,Xnew) возвращает прогнозируемые отклики ypred для полной или компактной модели регрессии гауссова процесса (GPR), gprMdlи значения предиктора в Xnew.

[ypred,ysd] = predict(gprMdl,Xnew) также возвращает оцененные стандартные отклонения для новых ответов при значениях предиктора в Xnew от обученной модели GPR.

[ypred,ysd,yint] = predict(gprMdl,Xnew) также возвращает 95% интервалы прогнозирования, yint, для истинных ответов, соответствующих каждой строке Xnew.

[ypred,ysd,yint] = predict(gprMdl,Xnew,Name,Value) также возвращает интервалы прогнозирования с дополнительными опциями, заданными одним или несколькими Name,Value аргументы пары. Например, можно указать уровень достоверности интервала прогнозирования.

Входные аргументы

развернуть все

Модель регрессии гауссова процесса, заданная как RegressionGP (полный) или CompactRegressionGP (компактный) объект.

Новые значения для предикторов, которые fitrgp использует при обучении модель GPR, указанную как table или матрицу m-на-d. m - количество наблюдений, а d - число предикторных переменных в обучающих данных.

Если вы тренировались gprMdl на table, то Xnew должно быть table который содержит все переменные предиктора, используемые для обучения gprMdl.

Если вы тренировались gprMdl на матрице, то Xnew должна быть числовой матрицей с d-столбцами.

Типы данных: single | double | table

Аргументы пары «имя-значение»

Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.

Уровень значимости для интервалов прогнозирования, указанный как пара, разделенная запятыми, состоящая из 'Alpha' и скалярное значение в диапазоне от 0 до 1.

Пример: 'Alpha',0.01 задает 99% интервалов прогнозирования.

Типы данных: single | double

Выходные аргументы

развернуть все

Прогнозируемые значения отклика, возвращаемые в виде вектора n-by-1.

Оцененное стандартное отклонение новых значений отклика, возвращаемое в виде вектора n-by-1, где ysd(i), i = 1, 2,..., n, содержит оцененное стандартное отклонение нового отклика, соответствующего значениям предиктора в i-й строке Xnew из обученной модели GPR.

Интервалы прогнозирования для истинных значений ответа, соответствующих каждой строке Xnew, возвращается в виде матрицы n-by-2. Первый столбец yint содержит нижние пределы, а второй столбец содержит верхние пределы интервалов прогнозирования.

Примеры

развернуть все

Создайте образец данных.

n = 10000;
rng(1) % For reproducibility
x = linspace(0.5,2.5,n)';
y = sin(10*pi.*x) ./ (2.*x)+(x-1).^4 + 1.5*rand(n,1);

Поместите модель GPR с использованием функции ядра Matern 3/2 с отдельной шкалой длины для каждого предиктора и размером активного набора 100. Использовать поднабор методов аппроксимации регрессоров для оценки параметров и полностью независимый условный метод для прогнозирования.

gprMdl = fitrgp(x,y,'KernelFunction','ardmatern32',...
'ActiveSetSize',100,'FitMethod','sr','PredictMethod','fic');

Вычислите прогнозы.

[ypred,~,yci] = predict(gprMdl,x);

Постройте график данных вместе с прогнозами и интервалами прогнозирования.

plot(x,y,'r.');
hold on
plot(x,ypred);
plot(x,yci(:,1),'k--');
plot(x,yci(:,2),'k--');
xlabel('x');
ylabel('y');

Figure contains an axes. The axes contains 4 objects of type line.

Загрузите образцы данных и сохраните их в table.

load fisheriris
tbl = table(meas(:,1),meas(:,2),meas(:,3),meas(:,4),species,...
'VariableNames',{'meas1','meas2','meas3','meas4','species'});

Поместите модель GPR, используя первое измерение в качестве ответа, а другие переменные в качестве предикторов.

mdl = fitrgp(tbl,'meas1');

Вычислите прогнозы и 99% доверительные интервалы.

[ypred,~,yci] = predict(mdl,tbl,'Alpha',0.01);

Постройте график истинного ответа и прогнозов вместе с интервалами прогнозирования.

figure();
plot(mdl.Y,'r.');
hold on;
plot(ypred);
plot(yci(:,1),'k:');
plot(yci(:,2),'k:');
legend('True response','GPR predictions',...
'Lower prediction limit','Upper prediction limit',...
'Location','Best');

Figure contains an axes. The axes contains 4 objects of type line. These objects represent True response, GPR predictions, Lower prediction limit, Upper prediction limit.

Загрузите образцы данных.

load('gprdata.mat');

Данные содержат данные обучения и тестирования. Имеется 500 наблюдений в учебных данных и 100 наблюдений в тестовых данных. Данные имеют 8 предикторных переменных. Это смоделированные данные.

Поместите модель GPR с использованием квадратной экспоненциальной функции ядра с отдельной шкалой длины для каждого предиктора. Стандартизация предикторов в данных обучения. Используйте методы точного подбора и прогнозирования.

gprMdl = fitrgp(Xtrain,ytrain,'Basis','constant',...
'FitMethod','exact','PredictMethod','exact',...
'KernelFunction','ardsquaredexponential','Standardize',1);

Спрогнозировать ответы на тестовые данные.

[ytestpred,~,ytestci] = predict(gprMdl,Xtest);

Постройте график ответа теста вместе с прогнозами.

figure;
plot(ytest,'r');
hold on;
plot(ytestpred,'b');
plot(ytestci(:,1),'k:');
plot(ytestci(:,2),'k:');
legend('Actual response','GPR predictions',...
'95% lower','95% upper','Location','Best');
hold off

Figure contains an axes. The axes contains 4 objects of type line. These objects represent Actual response, GPR predictions, 95% lower, 95% upper.

Совет

  • Можно выбрать метод прогнозирования во время обучения модели GPR с помощью PredictMethod аргумент пары имя-значение в fitrgp. Метод прогнозирования по умолчанию: 'exact' для n ≤ 10000, где n - количество наблюдений в данных обучения, и 'bcd'(снижение координат блока), в противном случае.

  • Расчет стандартных отклонений, ysdи интервалы прогнозирования, yint, не поддерживается, когда PredictMethod является 'bcd'.

  • Если gprMdl является CompactRegressionGP объект, нельзя вычислить стандартные отклонения, ysdили интервалы прогнозирования, yint, для PredictMethod равно 'sr' или 'fic'. Вычислить ysd и yint для PredictMethod равно 'sr' или 'fic', используйте полную регрессию (RegressionGP) объект.

Альтернативы

Вы можете использовать resubPredict вычислить прогнозируемые ответы для обученной модели GPR при наблюдениях в данных обучения.

Расширенные возможности

.
Представлен в R2015b