exponenta event banner

resubLoss

Класс: RegingSVM

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

Синтаксис

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

Описание

L = resubLoss(mdl) возвращает потерю повторного замещения для регрессионной модели машины опорных векторов (SVM) mdl, используя учебные данные, хранящиеся в 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-на-1 числовым вектором наблюдаемых значений отклика.

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

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

    Укажите свою функцию с помощью 'LossFun',@lossfun.

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

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

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

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

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

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

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

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

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

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

Примеры

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

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

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

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

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

Данные выборки содержат 4177 наблюдений. Все переменные предиктора непрерывны, за исключением 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] Нэш, У. Джей, Т. Л. Селлерс, С. Р. Толбот, А. Дж. Коуторн и У. Б. Форд. "Популяционная биология Абалоне (вид Haliotis) в Тасмании. И. Блэклип Абалоне (Х. рубра) с Северного побережья и островов Бассова пролива ". Отдел морского рыболовства, Технический доклад № 48, 1994 год.

[2] Во, С. «Расширение и сравнительный анализ каскадной корреляции: расширение каскадно-корреляционной архитектуры и сравнительный анализ искусственных нейронных сетей, находящихся под контролем Feed-Forward». Факультет компьютерных наук Тасманийского университета, 1995 год.

[3] Кларк, Д., З. Шретер, А. Адамс. «A Quantificative Comparison of Dystal and Backpropagation» («Количественное сравнение кристалла и обратного распространения»), представленный Австралийской конференции по нейронным сетям, 1996 год.

[4] Лихман, M. UCI Machine Learning Repository, [http://archive.ics.uci.edu/ml]. Ирвин, Калифорния: Калифорнийский университет, Школа информации и компьютерных наук.

См. также

| | |

Представлен в R2015b