Support Vectors Machines
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).
Extensions
- Classification non-linéaires
- Classification multi-classes
- Régression
Règle de décision
On se donne une fonction de score que l’on va noter f. f est une fonction linéaire.
Fonction de perte
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
Plus de détails ici: Appliquez l’apprentissage statistique aux objets connectés.
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.
scaler = StandardScaler()
scaler.fit(X_train)
X_train_scaled = scaler.transform(X_train)
X_train_scaled = pd.DataFrame(X_train_scaled, columns=list(X_train.columns))
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.