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