resubLoss

Класс: RegressionSVM

Потеря перезамены для модели регрессии машины опорных векторов

Синтаксис

L = resubLoss(mdl)
L = resubLoss(mdl,Name,Value)

Описание

L = resubLoss(mdl) возвращает потерю перезамены для модели mdl регрессии машины опорных векторов (SVM), использование обучающих данных сохранено в mdl.X и соответствующие значения отклика сохранены в mdl.Y.

L = resubLoss(mdl,Name,Value) возвращает потерю перезамены с дополнительными опциями, заданными одним или несколькими Name,Value парные аргументы. Например, можно задать веса наблюдения или функция потерь.

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

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

Полная, обученная модель регрессии SVM в виде RegressionSVM модель, возвращенная fitrsvm.

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

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

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

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

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

    Предположим тот n = size(X,1) объем выборки. Ваша функция должна иметь подпись lossvalue = lossfun(Y,Yfit,W), где:

    • Выходной аргумент lossvalue числовое значение.

    • Вы выбираете имя функции (lossfun).

    • Y n-by-1 числовой вектор из наблюдаемых значений отклика.

    • Yfit n-by-1 числовой вектор из предсказанных значений отклика, вычисленное использование соответствующих значений предиктора в X (похожий на выход predict).

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

    Задайте свое использование функции 'LossFun', @lossfun.

Пример: 'LossFun','epsiloninsensitive'

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

Веса наблюдения в виде разделенной запятой пары, состоящей из 'Weights' и числовой вектор. Weights должна быть та же длина как количество строк в X. Программное обеспечение взвешивает наблюдения в каждой строке X использование соответствующего значения веса в Weights.

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

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

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

Потеря перезамены, возвращенная как скалярное значение.

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

Потеря перезамены может быть чрезмерно оптимистической оценкой прогнозирующей ошибки на новых данных. Если потеря перезамены будет высока, предсказания модели вряд ли будут очень хороши. Однако наличие низкой потери перезамены не гарантирует хорошие предсказания для новых данных.

Чтобы лучше оценить прогнозирующую точность вашей модели, крест подтверждает модель с помощью crossval.

Примеры

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

В этом примере показано, как обучить модель регрессии SVM, затем вычислите потерю перезамены с помощью среднеквадратичной погрешности (MSE) и нечувствительной к эпсилону потери.

Этот пример использует данные о морском ушке из Репозитория Машинного обучения UCI. Загрузите данные и сохраните их в вашем текущем каталоге с именем 'abalone.data'.

Считайте данные в table.

tbl = readtable('abalone.data','Filetype','text','ReadVariableNames',false);
rng default  % for reproducibility

Выборочные данные содержат 4 177 наблюдений. Все переменные предикторы непрерывны за исключением sex, который является категориальной переменной с возможными значениями 'M' (для штекеров), 'F' (для розеток), и 'I' (для младенцев). Цель состоит в том, чтобы предсказать количество звонков на морском ушке, и таким образом определить его возраст, с помощью физических измерений.

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

mdl = fitrsvm(tbl,'Var9','KernelFunction','gaussian','KernelScale','auto','Standardize',true);

Вычислите потерю перезамены с помощью среднеквадратичной погрешности (MSE).

mse_loss = resubLoss(mdl)
mse_loss =

    4.0603

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

eps_loss = resubLoss(mdl,'LossFun','epsiloninsensitive')
eps_loss =

    1.1027

Больше о

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

Ссылки

[1] Нэш, W.J., Т. Л. Селлерс, С. Р. Тэлбот, А. Дж. Которн и В. Б. Форд. Биология Населения Морского ушка (разновидности Haliotis) на Тасмании. I. Морское ушко Blacklip (H. rubra) от Северного Побережья и Островов Пролива Басса, Морского Деления Рыболовства, Технического отчета № 48, 1994.

[2] Во, S. Расширяя и Каскадная Корреляция сравнительного тестирования, Ph.D. тезис, Кафедра информатики, Университет Тасмании, 1995.

[3] Кларк, D., З. Шретер, А. Адамс. Количественное Сравнение Dystal и Backpropagation, представленного австралийской Конференции по Нейронным сетям, 1996.

[4] Личмен, M. Репозиторий Машинного обучения UCI, [http://archive.ics.uci.edu/ml]. Ирвин, CA: Калифорнийский университет, Школа Информатики и вычислительной техники.

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

| | |

Введенный в R2015b