resubLoss

Найдите потерю классификации для классификатора машины вектора поддержки (SVM) перезаменой

Синтаксис

L = resubLoss(SVMModel)
L = resubLoss(SVMModel,'LossFun',lossFun)

Описание

пример

L = resubLoss(SVMModel) возвращает ущерб классификации от перезамены (L), потерю классификации в выборке, для классификатора машины вектора поддержки (SVM) SVMModel с помощью данных тренировки, хранимых в SVMModel.X и соответствующих метках класса, сохраненных в SVMModel.Y.

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

пример

L = resubLoss(SVMModel,'LossFun',lossFun) возвращает ущерб классификации от перезамены с помощью функции потерь, предоставленной в LossFun.

Примеры

свернуть все

Загрузите набор данных ionosphere.

load ionosphere

Обучите классификатор SVM. Стандартизируйте данные и укажите, что 'g' является положительным классом.

SVMModel = fitcsvm(X,Y,'ClassNames',{'b','g'},'Standardize',true);

SVMModel является обученным классификатором ClassificationSVM.

Оцените потерю перезамены (то есть, ошибка классификации в выборке).

L = resubLoss(SVMModel)
L = 0.0570

Классификатор SVM неправильно классифицирует 5,7% учебного демонстрационного радара, возвращается.

Загрузите набор данных ionosphere.

load ionosphere

Обучите классификатор SVM. Стандартизируйте данные и укажите, что 'g' является положительным классом.

SVMModel = fitcsvm(X,Y,'ClassNames',{'b','g'},'Standardize',true);

SVMModel является обученным классификатором ClassificationSVM.

Оцените потерю стержня в выборке.

L = resubLoss(SVMModel,'LossFun','hinge')
L = 0.1603

Потерей стержня является 0.1603. Классификаторы с потерями стержня близко к 0 предпочтены.

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

свернуть все

Полный, обученный классификатор SVM, заданный как модель ClassificationSVM, обученная с fitcsvm.

Функция потерь, заданная как встроенное имя функции потерь или указатель на функцию.

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

    ЗначениеОписание
    'binodeviance'Биномиальное отклонение
    'classiferror'Ошибка классификации
    'exponential'Экспоненциал
    'hinge'Стержень
    'logit'Логистический
    'mincost'Минимальный ожидал стоимость misclassification (для очков классификации, которые являются апостериорными вероятностями),
    'quadratic'Квадратичный

    'mincost' подходит для очков классификации, которые являются апостериорными вероятностями. Можно задать, чтобы использовать апостериорные вероятности в качестве музыки классификации к моделям SVM установкой 'FitPosterior',true, когда вы перекрестный подтверждаете модель с помощью fitcsvm.

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

    Предположим, что n является количеством наблюдений в X, и K является количеством отличных классов (numel(SVMModel.ClassNames)), используемый, чтобы создать входную модель (SVMModel). Ваша функция должна иметь эту подпись

    lossvalue = lossfun(C,S,W,Cost)
    где:

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

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

    • C является n-by-K логическая матрица со строками, указывающими на класс, которому принадлежит соответствующее наблюдение. Порядок следования столбцов соответствует порядку класса в SVMModel.ClassNames.

      Создайте C установкой C(p,q) = 1, если наблюдение p находится в классе q для каждой строки. Установите все другие элементы строки p к 0.

    • S является n-by-K числовая матрица очков классификации, подобных выводу predict. Порядок следования столбцов соответствует порядку класса в SVMModel.ClassNames.

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

    • Cost является K-by-K числовая матрица затрат misclassification. Например, Cost = ones(K) – eye(K) задает стоимость 0 для правильной классификации и 1 для misclassification.

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

Для получения дополнительной информации на функциях потерь, смотрите Потерю Классификации.

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

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

Больше о

свернуть все

Потеря классификации

Функции Classification loss измеряют прогнозирующую погрешность моделей классификации. Когда вы сравниваете тот же тип потери среди многих моделей, более низкая потеря указывает на лучшую прогнозирующую модель.

Рассмотрите следующий сценарий.

  • L является средневзвешенной потерей классификации.

  • n является объемом выборки.

  • Для бинарной классификации:

    • yj является наблюдаемой меткой класса. Программные коды это как –1 или 1, указывая на отрицательный или положительный класс, соответственно.

    • f (Xj) является необработанным счетом классификации к наблюдению (строка) j данных о предикторе X.

    • mj = yj f (Xj) является счетом классификации к классификации наблюдения j в класс, соответствующий yj. Положительные значения mj указывают на правильную классификацию и не способствуют очень средней потере. Отрицательные величины mj указывают на неправильную классификацию и значительно способствуют средней потере.

  • Для алгоритмов, которые поддерживают классификацию мультиклассов (то есть, K ≥ 3):

    • yj* является вектором K – 1 нуль, с 1 в положении, соответствующем истинному, наблюдаемому классу yj. Например, если истинный класс второго наблюдения является третьим классом и K = 4, то y *2 = [0 0 1 0] ′. Порядок классов соответствует порядку в свойстве ClassNames входной модели.

    • f (Xj) является длиной вектор K музыки класса к наблюдению j данных о предикторе X. Порядок очков соответствует порядку классов в свойстве ClassNames входной модели.

    • mj = yj*f (Xj). Поэтому mj является скалярным счетом классификации, который модель предсказывает для истинного, наблюдаемого класса.

  • Весом для наблюдения j является wj. Программное обеспечение нормирует веса наблюдения так, чтобы они суммировали к соответствующей предшествующей вероятности класса. Программное обеспечение также нормирует априорные вероятности, таким образом, они суммируют к 1. Поэтому

    j=1nwj=1.

Учитывая этот сценарий, следующая таблица описывает поддерживаемые функции потерь, которые можно задать при помощи аргумента пары "имя-значение" 'LossFun'.

Функция потерьЗначение LossFunУравнение
Биномиальное отклонение'binodeviance'L=j=1nwjжурнал{1+exp[2mj]}.
Экспоненциальная потеря'exponential'L=j=1nwjexp(mj).
Ошибка классификации'classiferror'

L=j=1nwjI{y^jyj}.

Это - взвешенная часть неправильно классифицированных наблюдений где y^j метка класса, соответствующая классу с максимальной апостериорной вероятностью. I {x} является функцией индикатора.

Потеря стержня'hinge'L=j=1nwjmax {0,1mj}.
Потеря логита'logit'L=j=1nwjжурнал(1+exp(mj)).
Минимальная стоимость'mincost'

Минимальная стоимость. Программное обеспечение вычисляет взвешенную минимальную стоимость с помощью этой процедуры для наблюдений j = 1..., n.

  1. Оцените 1 K вектором ожидаемых затрат классификации для наблюдения j:

    γj=f(Xj)C.

    f (Xj) является вектор-столбцом апостериорных вероятностей класса для классификации мультиклассов и двоичного файла. C является матрицей стоимости, которую входная модель хранит в свойстве Cost.

  2. Для наблюдения j предскажите метку класса, соответствующую минимальной ожидаемой стоимости классификации:

    y^j=minj=1,...,K(γj).

  3. Используя C, идентифицируйте, что стоимость подверглась (cj) для того, чтобы сделать прогноз.

Взвешенная, средняя, минимальная потеря стоимости

L=j=1nwjcj.

Квадратичная потеря'quadratic'L=j=1nwj(1mj)2.

Эта фигура сравнивает функции потерь (кроме 'mincost') для одного наблюдения по m. Некоторые функции нормированы, чтобы пройти [0,1].

Счет классификации

classification score SVM для классификации наблюдения x является расстоянием со знаком от x до контура решения в пределах от - ∞ к + ∞. Положительный счет к классу указывает, что x предсказан, чтобы быть в том классе. Отрицательный счет указывает в противном случае.

Положительный счет классификации классов f(x) обученная функция классификации SVM. f(x) также числовой, предсказанный ответ для x или счет к предсказанию x в положительный класс.

f(x)=j=1nαjyjG(xj,x)+b,

где (α1,...,αn,b) предполагаемые параметры SVM, G(xj,x) скалярное произведение на пробеле предиктора между x и векторами поддержки, и сумма включает наблюдения набора обучающих данных. Отрицательный счет классификации классов к x или счет к предсказанию x в отрицательный класс, является –f (x).

Если G (xj, x) = xjx (линейное ядро), то функция счета уменьшает до

f(x)=(x/s)β+b.

s является шкалой ядра, и β является вектором подходящих линейных коэффициентов.

Для получения дополнительной информации смотрите Машины Вектора Поддержки Понимания.

Ссылки

[1] Hastie, T., Р. Тибширэни и Дж. Фридман. Элементы Статистического Изучения, второго выпуска. Спрингер, Нью-Йорк, 2008.

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

| | |

Введенный в R2014a