Méthode à noyau
dans Statistiques
Bonjour à tous,
Si j'ai des points dans $\mathbb{R}^{2}$ non linéairement séparable, je vais les projeter dans $\mathbb{R}^{d}$ voir même un espace de Hilbert via une application $\phi$. Une fois dans cette espace les points sont linéairement séparable. Je trace une droite qui les séparent.
Question : Comment en déduire la formule d'une courbe qui a la propriété de séparer mes points dans $\mathbb{R}^{2}$ ?
Merci.
PS : J'ai jamais réussi à trouver de réponse claire sous la formule d'une formule, ce serait top bien si c'est aussi simple que ça.
Si j'ai des points dans $\mathbb{R}^{2}$ non linéairement séparable, je vais les projeter dans $\mathbb{R}^{d}$ voir même un espace de Hilbert via une application $\phi$. Une fois dans cette espace les points sont linéairement séparable. Je trace une droite qui les séparent.
Question : Comment en déduire la formule d'une courbe qui a la propriété de séparer mes points dans $\mathbb{R}^{2}$ ?
Merci.
PS : J'ai jamais réussi à trouver de réponse claire sous la formule d'une formule, ce serait top bien si c'est aussi simple que ça.
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Si tu veux vraiment la retrouver algorithmiquement, c'est un problème d'optim pas forcément jolie, sauf à discrétiser tout l'espace $\R^2$ pour trouver une approximation à la résolution près de ta discrétisation.
Est-ce que c'est plutôt un hyperplan qui les sépare ?
J'ai essayé de lire plusieurs livres mais je ne vois toujours pas comment écrire cette algorithme.
Ce que l'astuce du noyau a de si astucieux, c'est qu'on ne cherche jamais à connaître $\phi$, on ne l'a pas à disposition en général et surtout on n'en a pas besoin. En effet : le théorème du représentant nous garantit que dès lors qu'une solution existe au problème d'optimisation d'une SVM, celle-ci est portée par les données.
La solution est de la forme $$\sum_i \alpha_i k(X_i, \cdot),$$ où $k$ est notre noyau.
Pour en venir à une implémentation, on peut montrer que par dualité lagrangienne on se ramène à un problème d'optimisation de la forme :
$$ \textrm{maximiser}_{\alpha} -\frac{1}{2} \alpha^{t}A \alpha + \mathbb{1}^{t}\alpha,
$$ sous les contraintes $\alpha_i \in [0, C]$ et $Y^t \alpha = 0,$
où $A$ est la matrice $(k(X_i, X_j) Y_i Y_j )_{1\leq i , j \leq n}$.
Le gros du problème consistera à résoudre ce problème d'optimisation. L'approche classique est par SMO. Le choix de $C$ est central et dépendra de tes données.
Très concrètement si tu veux tracer ta courbe, tu peux le faire sous matplotlib par exemple avec une grille de discrétisation.
@mini_calli : je me demande si il n'est pas illusoire de rechercher cette courbe. En utilisant l'astuce des noyaux, on peut classifier deux groupes de points. Ceci étant fait, il est possible de reporter sur le plan les points qui appartiennent à l'une ou à l'autre classe puis de dessiner (la fameuse courbe) "à main levée" la frontière entre les deux classes. Ce n'est qu'une hypothèse.
Cordialement.