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 должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: 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. Расширяя и Каскадная Корреляция сравнительного тестирования, кандидатская диссертация, Кафедра информатики, Университет Тасмании, 1995.

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

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

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

| | |

Введенный в R2015b