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 для полной или компактной модели 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 имя аргумента и 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