différence entre les paramètres de pénalité et de perte dans la bibliothèque Sklearn LinearSVC

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

Question

Je ne connais pas très bien la théorie SVM et j'utilise cette classe LinearSVC en python :

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

Je me demandais quelle est la différence entre les paramètres de pénalité et de perte ?

Était-ce utile?

La solution

En apprentissage automatique, fonction de perte mesure la qualité de votre solution, tandis que fonction de pénalité impose certaines contraintes à votre solution.

Plus précisément, laissez X soyez vos données, et oui être des étiquettes de vos données.Alors fonction de perte V(f(X),y) mesure la qualité de votre modèle F mappe vos données sur les étiquettes.Ici, f(X) est un vecteur d'étiquettes prédites.

Les normes L1 et L2 sont des fonctions de perte couramment utilisées et comprises intuitivement (voir *). Norme L1: V(f(X),y) = |f(x1) - y1| + ... + |f(xn) - yn|, où f(xi) - l'étiquette prédite du i-ième objet, et yi est l'étiquette réelle. Norme L2: V(f(X),y) = sqrt(|f(x1) - y1|^2 + ... + |f(xn) - yn|^2) , où sqrt est la racine carrée.

Pour ce qui est de fonction de pénalité, il est utilisé pour imposer certaines contraintes R(f) sur votre solution F.La norme L1 pourrait être R(f)=|f1| + ... + |fm|, et de même, vous pouvez définir la norme L2.Ici, f1,...,fm sont les coefficients du modèle.Vous ne les connaissez pas au départ, ce sont les valeurs qui sont apprises de vos données par un algorithme d'apprentissage automatique.

Finalement, la fonction de coût globale est V(f(X),y) + lambda*R(f).Et le but est de trouver f qui minimiserait votre fonction de coût.Ensuite, ce f sera utilisé pour faire des prédictions pour les nouveaux objets invisibles.Pourquoi avons-nous besoin d’une fonction de pénalité ?Il s'avère que la fonction de pénalité peut ajouter des propriétés intéressantes à votre solution.Par exemple, lorsque vous avez trop de fonctionnalités, la norme L1 permet d'éviter le surapprentissage, en générant des solutions clairsemées.

* Ce n’est pas exactement ainsi que fonctionnent les machines à vecteurs de support, mais cela pourrait vous donner une idée de la signification de ces termes.Par exemple, dans SVM, les fonctions de perte de charnière L1 et de perte de charnière L2 sont utilisées. Charnière L1: V(f(X),y) = max(0,1 - y1*f(x1)) + ... + max(0,1 - yn*f(xn)), et L2 est similaire mais avec des termes au carré.Vous pouvez trouver une bonne introduction au ML dans Cours d'apprentissage automatique par Andrew Ng sur Coursera

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top