predict

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

Синтаксис

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 -by 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-на-1, где ysd(i), i = 1, 2,..., n, содержит предполагаемое стандартное отклонение нового отклика, соответствующее значениям предиктора в ith строка 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