exponenta event banner

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 реализует пятикратную перекрестную проверку. 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) = + b.

    • β - вектор p-коэффициентов.

    • x - это наблюдение из переменных p-предиктора.

    • b - скалярное смещение.

    СтоимостьОписание
    'epsiloninsensitive'Эпсилон-нечувствительные потери: ℓ[y,f (x)] = max [0, | y f (x) | −
    'mse'MSE: ℓ[y,f (x)] = [y f (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