kfoldLoss

Потеря регрессии для перекрестной подтвержденной модели регрессии ядра

Описание

пример

L = kfoldLoss(CVMdl) возвращает потерю регрессии, полученную перекрестной подтвержденной моделью CVMdl регрессии ядра. Для каждого сгиба, kfoldLoss вычисляет потерю регрессии для наблюдений в сгибе валидации, с помощью модели, обученной на наблюдениях в учебном сгибе.

L = kfoldLoss(CVMdl,Name,Value) возвращает среднеквадратическую ошибку (MSE) с дополнительными опциями, заданными одним или несколькими аргументами пары "имя-значение". Например, можно задать функцию потерь регрессии или который сворачивается, чтобы использовать для вычисления потерь.

Примеры

свернуть все

Симулируйте выборочные данные:

rng(0,'twister'); % For reproducibility
n = 1000;
x = linspace(-10,10,n)';
y = 1 + x*2e-2 + sin(x)./x + 0.2*randn(n,1);

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

CVMdl = fitrkernel(x,y,'Kfold',5);

fitrkernel реализует 5-кратную перекрестную проверку. CVMdl RegressionPartitionedKernel модель. Это содержит свойство Trained, который является массивом ячеек 5 на 1, содержащим 5 RegressionKernel модели, что программное обеспечение обучило использование набора обучающих данных.

Вычислите нечувствительную к эпсилону потерю для каждого сгиба для наблюдений что fitrkernel не использовал в обучении сгибы.

L = kfoldLoss(CVMdl,'LossFun','epsiloninsensitive','Mode','individual')
L = 5×1

    0.2812
    0.3223
    0.3073
    0.3117
    0.2576

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

свернуть все

Перекрестная подтвержденная модель регрессии ядра в виде RegressionPartitionedKernel объект модели. Можно создать RegressionPartitionedKernel использование модели fitrkernel и определение любого из аргументов пары "имя-значение" перекрестной проверки, например, CrossVal.

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

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

Пример: 'LossFun','epsiloninsensitive','Mode','individual' задает kfoldLoss возвратить нечувствительную к эпсилону потерю для каждого сгиба.

Сверните индексы, чтобы использовать для предсказания ответа в виде разделенной запятой пары, состоящей из 'Folds' и числовой вектор из положительных целых чисел. Элементы Folds должен лежать в диапазоне от 1 через CVMdl.KFold.

Пример: 'Folds',[1 4 10]

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

Функция потерь в виде разделенной запятой пары, состоящей из 'LossFun' и встроенное имя функции потерь или указатель на функцию.

  • В следующей таблице перечислены доступные функции потерь. Задайте тот с помощью его соответствующего вектора символов или строкового скаляра. Кроме того, в таблице, f(x)=xβ+b.

    • β является вектором из коэффициентов p.

    • x является наблюдением от переменных предикторов p.

    • b является скалярным смещением.

    ЗначениеОписание
    'epsiloninsensitive'Нечувствительная к эпсилону потеря: [y,f(x)]=max[0,|yf(x)|ε]
    'mse'MSE: [y,f(x)]=[yf(x)]2

    'epsiloninsensitive' подходит для учеников SVM только.

  • Задайте свою собственную функцию с помощью обозначения указателя на функцию.

    Примите тот n количество наблюдений в X. Ваша функция должна иметь эту подпись

    lossvalue = lossfun(Y,Yhat,W)
    где:

    • Выходной аргумент lossvalue скаляр.

    • Вы задаете имя функции (lossfun).

    • Y n- размерный вектор из наблюдаемых ответов. kfoldLoss передает входной параметр Y в для Y.

    • Yhat n- размерный вектор из предсказанных ответов, который похож на выход predict.

    • W n- 1 числовой вектор из весов наблюдения.

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

Уровень агрегации потерь в виде разделенной запятой пары, состоящей из 'Mode' и 'average' или 'individual'.

ЗначениеОписание
'average'Возвращает потери, усредненные по всем сгибам
'individual'Возвращает потери для каждого сгиба

Пример: 'Mode','individual'

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

свернуть все

Перекрестные подтвержденные потери регрессии, возвращенные в виде числа или вектора. Интерпретация L зависит от LossFun.

  • Если Mode 'average', затем L скаляр.

  • В противном случае, L k-by-1 вектор, где k является количеством сгибов. L (j) средняя потеря регрессии по сгибу j.

Оценить L, kfoldLoss использует данные, которые создали CVMdl.

Введенный в R2018b