resubLoss

Класс: RegressionSVM

Реституционные потери для модели регрессии машины опорных векторов

Синтаксис

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 числовым вектором наблюдаемых значений отклика -by-1.

    • Yfit - n-на-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) и эпсилоновой нечувствительной потери.

Этот пример использует данные 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) в Тасмании. I. Blacklip Abalone (H. rubra) с Северного побережья и островов пролива Басс ". Деление морского рыболовства, технический доклад № 48, 1994 год.

[2] Waugh, S. «Extending and Benchmarking Cascade-Correlation: Extensions to the Cascade-Correlation Architecture and Benchmarking of Feed-Forward Supervied Neural Networds». Тасманийский университет, кафедра компьютерных наук, 1995 год.

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

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

См. также

| | |

Введенный в R2015b