loss

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

Синтаксис

L = loss(mdl,tbl,ResponseVarName)
L = loss(mdl,tbl,Y)
L = loss(mdl,X,Y)
L = loss(___,Name,Value)

Описание

L = loss(mdl,tbl,ResponseVarName) возвращает потерю для прогнозов модели регрессии машины опорных векторов (SVM), mdl, на основе данных о предикторе в таблице tbl и истинные значения ответа в tbl.ResponseVarName.

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

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

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

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

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

Модель регрессии SVM, заданная как RegressionSVM модель или CompactRegressionSVM модель возвращена fitrsvm или compact, соответственно.

Выборочные данные, заданные как таблица. Каждая строка tbl соответствует одному наблюдению, и каждый столбец соответствует одному переменному предиктору. Опционально, tbl может содержать дополнительные столбцы для весов наблюдения и переменной отклика. tbl должен содержать все предикторы, используемые, чтобы обучить mdl. Многостолбцовые переменные и массивы ячеек кроме массивов ячеек из символьных векторов не позволены.

Если вы обучили mdl использование выборочных данных содержится в table, затем входные данные для этого метода должны также быть в таблице.

Типы данных: table

Имя переменной отклика, заданное как имя переменной в tbl. Переменная отклика должна быть числовым вектором.

Необходимо задать ResponseVarName как вектор символов или скаляр строки. Например, если переменная отклика Y хранится как tbl.Y, затем задайте ResponseVarName как 'Y'. В противном случае программное обеспечение обрабатывает все столбцы tbl, включая Y, как предикторы, когда обучение модель.

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

Данные о предикторе, заданные как числовая матрица или таблица. Каждая строка X соответствует одному наблюдению (также известный как экземпляр или пример), и каждый столбец соответствует одной переменной (также известный как функцию).

Если вы обучили mdl использование матрицы значений предиктора, затем X должна быть числовая матрица со столбцами p. p является количеством предикторов, используемых, чтобы обучить mdl.

Длина Y и количество строк X должно быть равным.

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

Наблюдаемые значения ответа, заданные как вектор длины n, содержащий числовые значения. Каждая запись в Y наблюдаемый ответ на основе данных о предикторе в соответствующей строке X.

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

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

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

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

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

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

    Ваша функция должна иметь подпись lossvalue = lossfun(Y,Yfit,W), где:

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

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

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

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

    • W n-by-1 числовой вектор весов наблюдения. Если вы передаете W, программное обеспечение нормирует их, чтобы суммировать к 1.

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

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

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

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

Веса нормированы, чтобы суммировать к 1.

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

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

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

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

Примеры

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

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

Загрузите carsmall выборочные данные.

load carsmall
rng default  % for reproducibility

Задайте Horsepower и Weight как переменные предикторы (X), и MPG как переменная отклика (Y).

X = [Horsepower,Weight];
Y = MPG;

Обучите линейную модель регрессии SVM. Стандартизируйте данные.

mdl = fitrsvm(X,Y,'Standardize',true);

mdl RegressionSVM модель.

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

lossMSE = loss(mdl,X,Y)
lossEI = loss(mdl,X,Y,'LossFun','epsiloninsensitive')
lossMSE =

   17.0256


lossEI =

    2.2506

Больше о

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

Советы

  • Если mdl перекрестный подтвержденный RegressionPartitionedSVM модель, используйте kfoldLoss вместо loss вычислить ошибку регрессии.

Расширенные возможности

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

| | |

Введенный в R2015b