предсказать

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

Синтаксис

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 для полной или компактной модели Gaussian process regression (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 должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: 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 th строка 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');

Загрузите выборочные данные и хранилище в 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');

Загрузите выборочные данные.

load(fullfile(matlabroot,'examples','stats','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

Советы

  • Можно выбрать метод прогноза в то время как обучение модель 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