loss

Ошибка регрессии для Гауссовой модели регрессии процесса

Синтаксис

L = loss(gprMdl,Xnew,Ynew)
L = loss(gprMdl,Xnew,Ynew,Name,Value)

Описание

L = loss(gprMdl,Xnew,Ynew) возвращает среднеквадратическую ошибку для модели Gaussian process regression (GPR) gpr, использование предикторов в Xnew и наблюдаемый ответ в Ynew.

L = loss(gprMdl,Xnew,Ynew,Name,Value) возвращает среднеквадратическую ошибку для модели GPR, gpr, с дополнительными опциями, заданными одним или несколькими Name,Value парные аргументы. Например, можно задать пользовательскую функцию потерь или веса наблюдения.

Входные параметры

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

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

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

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

Если Xnew таблица, затем она может также содержать Ynew. И если это делает, затем вы не должны задавать Ynew.

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

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

Новые наблюдаемые значения отклика, которые соответствуют значениям предиктора в XnewВ виде n-by-1 вектор. n является количеством строк в Xnew. Каждая запись в Ynew наблюдаемый ответ на основе данных о предикторе в соответствующей строке Xnew.

Если Xnew таблица, содержащая новые значения отклика, вы не должны задавать Ynew.

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

Аргументы name-value

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

Функция потерь в виде 'mse' (среднеквадратическая ошибка) или указатель на функцию.

Если вы передаете указатель на функцию, говорите fun, loss вызовы это как показано ниже: fun(Y,Ypred,W), где Y, Ypred и W числовые векторы из длины n, и n является количеством строк в XnewY наблюдаемый ответ, Ypred предсказанный ответ и W веса наблюдения.

Пример: 'lossfun',Fct вызывает функцию потерь Fct.

Типы данных: char | string | function_handle

Веса наблюдения в виде n-by-1 вектор, где n является количеством строк в Xnew. По умолчанию вес каждого наблюдения равняется 1.

Пример: 'weights',W использует веса наблюдения в векторном W.

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

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

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

Ошибка регрессии для обученной Гауссовой модели регрессии процесса, gprMdl, возвращенный как скалярное значение.

Примеры

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

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

load('gprdata.mat')

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

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

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

Вычислите ошибку регрессии для тестовых данных.

L = loss(gprMdl,Xtest,ytest)
L = 0.6928

Предскажите ответы для тестовых данных.

ypredtest = predict(gprMdl,Xtest);

Постройте тестовый ответ наряду с предсказаниями.

figure;
plot(ytest,'r');
hold on;
plot(ypredtest,'b');
legend('Data','Predictions','Location','Best');

Figure contains an axes object. The axes object contains 2 objects of type line. These objects represent Data, Predictions.

Вручную вычислите потерю регрессии.

L = (ytest - ypredtest)'*(ytest - ypredtest)/length(ytest)
L = 0.6928

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

Предскажите ответы с помощью обученной модели.

ypred = predict(mdl,tbl);

Вычислите среднюю абсолютную погрешность.

n = height(tbl);
y = tbl.meas1;
fun = @(y,ypred,w) sum(abs(y-ypred))/n;
L = loss(mdl,tbl,'lossfun',fun)
L = 0.2345

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

Можно использовать resubLoss вычислить ошибку регрессии для обученной модели GPR при наблюдениях в обучающих данных.

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

Смотрите также

| | | | |

Введенный в R2015b