Pergunta

Não estou muito familiarizado com a Teoria SVM e estou usando esta classe LinearSVC em python:

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

Eu queria saber qual é a diferença entre os parâmetros de penalidade e perda?

Foi útil?

Solução

No aprendizado de máquina, função de perda mede a qualidade da sua solução, enquanto função de penalidade impõe algumas restrições à sua solução.

Especificamente, deixe X sejam seus dados e sim ser rótulos de seus dados.Então função de perda V(f(X),y) mede quão bem seu modelo f mapeia seus dados para os rótulos.Aqui, f(X) é um vetor de rótulos previstos.

As normas L1 e L2 são funções de perda comumente usadas e intuitivamente compreendidas (ver *). Norma L1: V(f(X),y) = |f(x1) - y1| + ... + |f(xn) - yn|, onde f(xi) é o rótulo previsto do i-ésimo objeto e yi é o rótulo real. Norma L2: V(f(X),y) = sqrt(|f(x1) - y1|^2 + ... + |f(xn) - yn|^2) , onde sqrt é raiz quadrada.

Quanto a função de penalidade, é usado para impor algumas restrições R(f) na sua solução f.A norma L1 poderia ser R(f)=|f1| + ... + |fm|, e da mesma forma você pode definir a norma L2.Aqui, f1,...,fm são os coeficientes do modelo.Você não os conhece inicialmente; esses são os valores que estão sendo aprendidos com seus dados por um algoritmo de aprendizado de máquina.

Eventualmente, a função de custo global é V(f(X),y) + lambda*R(f).E o objetivo é encontrar f que minimize sua função de custo.Então este f será usado para fazer previsões para os novos objetos invisíveis.Por que precisamos de uma função de penalidade?Acontece que a função de penalidade pode adicionar algumas propriedades interessantes à sua solução.Por exemplo, quando você tem muitos recursos, a norma L1 ajuda a evitar overfitting, gerando soluções esparsas.

* Não é exatamente assim que as máquinas de vetores de suporte funcionam, mas pode lhe dar uma ideia do que esses termos significam.Por exemplo, no SVM, as funções de perda de dobradiça L1 e de perda de dobradiça L2 são usadas. Dobradiça L1: V(f(X),y) = max(0,1 - y1*f(x1)) + ... + max(0,1 - yn*f(xn)), e L2 é semelhante, mas com termos quadrados.Você pode encontrar uma boa introdução ao ML em Aula de aprendizado de máquina por Andrew Ng no Coursera

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top