Séparateurs à Vastes Marges
Définition
Il s’agit d’un algorithme de classification binaire de type linéaire. Un SVM cherche à maximiser la marge entre les classes.
Trouver la meilleure droite pour laquelle les points sont le plus éloignés possible. (deux dimensions).
Principe de la régression linéaire
1. Problème
Il s’agit d’un algorithme de classification binaire de type linéaire. Un SVM cherche à maximiser la marge entre les classes.
Trouver la meilleure droite pour laquelle les points sont le plus éloignés possible. (deux dimensions).
- Classification non-linéaires
- Classification multi-classes
- Régression
Exemples:
- Prédire la valeur d'un bien
- Prédire le poids en fonction de la taille
- Prédire la température sur la base
2. Données
Les variables explicatives sont désignées par X et la variable expliquée par Y. X est une matrice de taille (n, p), n étant la taille des données et p le nombre de variables.
3. Fonction de perte
L'erreur de prédiction sur la moyenne de la somme des carrées des erreurs. MAE
4. Méthode d'optimisation
La solution du problème est obtenu graĉe à des solveurs
- Réécrire la fonction objectif
- Trouver le problème dual
- C’est le problème dual qui est résolu
Packages
Scikit-learn implémente l'algorithme des séparateurs à vastes marges avec la classe sklearn.svm.LinearSV
.
Standardiser les données
Les variables n'ont pas la même échelle de grandeur et il faut corriger cela. Si l'algorithme utilisé est juste ie s'il ne s'agit pas d'un algorithme dont l'apprentissage est itératif, on peut bien garder les valeurs comme telles. Mais dans notre exemple ici, nous allons ramener toutes les variables à la même échelle de grandeur.
Conversion en valeurs numériques
Les algorithmes de machine learning ne consomment que des chiffres et des nombres, il est donc nécessaire de convertir les valeurs non numériques (catégorielles) en numérique.
Objectif: Problèmes non-linéaires
Transformer les données pour qu’elles soient linéairement séparables
- Noyau polynomial
- Noyau sigmoidal
- Noyau gaussien
Classification multi-classes
Les SVM peuvent être étendus à des problèmes de classification multi-classes
One vs Rest ou One vs All
Une manière de le faire est d’entraîner autant de modèles que de classes. Ensuite on prédit la classe dont le modèle donne le plus grand score.
Du score à la probabilité
Il est également intéressant de convertir le score en probabilité. Une probabilité est plus facile à interpréter.
Ainsi les scores positifs ont une probabilité proche de 1 et les négatifs proches de 0.
Pour signaler un problème que vous avez rencontré durant l'exécution des cahiers, merci de créer une issue
. Assurez-vous que vous avez les bonnes versions des packages*