разница между параметрами штрафа и потерь в библиотеке Sklearn LinearSVC

StackOverflow https://stackoverflow.com//questions/25042909

Вопрос

Я не очень знаком с теорией SVM и использую этот класс LinearSVC в Python:

http://scikit-learn.org/stable/modules/generated/sklearn.svm.LinearSVC.html#sklearn.svm.LinearSVC

Мне было интересно, в чем разница между параметрами штрафа и потерь?

Это было полезно?

Решение

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

В частности, пусть Икс быть вашими данными, и й быть метками ваших данных.Затем функция потерь V(f(X),y) измеряет, насколько хорошо ваша модель ж сопоставляет ваши данные с метками.Здесь f(X) — вектор предсказанных меток.

Нормы L1 и L2 — это широко используемые и интуитивно понятные функции потерь (см. *). L1 норма: V(f(X),y) = |f(x1) - y1| + ... + |f(xn) - yn|, где f(xi) — прогнозируемая метка i-го объекта, а yi — фактическая метка. L2 норма: V(f(X),y) = sqrt(|f(x1) - y1|^2 + ... + |f(xn) - yn|^2) , где sqrt — квадратный корень.

Что касается штрафная функция, он используется для наложения некоторых ограничений Р(ф) о вашем решении ж.Норма L1 может быть R(f)=|f1| + ... + |fm|, и аналогичным образом вы можете определить норму L2.Здесь, f1,..., фм являются коэффициентами модели.Изначально вы их не знаете, это значения, которые извлекаются из ваших данных с помощью алгоритма машинного обучения.

В конечном итоге общая функция стоимости будет равна V(f(X),y) + lambda*R(f).И цель состоит в том, чтобы найти f, которое минимизирует вашу функцию стоимости.Затем это f будет использоваться для прогнозирования новых невидимых объектов.Зачем нам нужна штрафная функция?Оказывается, функция штрафа может добавить к вашему решению некоторые приятные свойства.Например, если у вас слишком много функций, норма L1 помогает предотвратить переобучение, создавая разреженные решения.

* Это не совсем то, как работают машины опорных векторов, но это может дать вам некоторое представление о том, что означают эти термины.Например, в SVM используются функции потери шарнира L1 и потери шарнира L2. L1-петля: V(f(X),y) = max(0,1 - y1*f(x1)) + ... + max(0,1 - yn*f(xn)), и L2 аналогичен, но с квадратами членов.Вы можете найти хорошее введение в ML в Урок машинного обучения Эндрю Нг на Coursera

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top