Machine à vecteur support

La machine à vecteur support est un algorithme de machine learning supervisé performant y compris dans des situations de non-linéarité. Disponible dans Excel avec XLSTAT.

Qu'est-ce que la machine à vecteur support (support vector machine) ?

La machine à vecteur de support (SVM pour l’anglais support vector machine) est un outil d’apprentissage supervisé inventé par Vapnik et Chervonenkis en 1964 dans le contexte de la théorie de l’apprentissage statistique (Vapnik and Chervonenkis, 1964). Il fallut attendre le milieu des années 90 pour qu’une implémentation des SVM soit proposée avec l’introduction de l’astuce des kernel (Boser, B., Guyon, I. & Vapnik V., 1992) et la généralisation au cas non séparable (Cortes C. & Vapnik V., 1995). Depuis lors, les SVM ont connu de nombreux développements et gagné en popularité dans divers domaines comme le machine learning, l’optimisation, les réseaux de neurones ou l’analyse fonctionnelle. C’est d’ailleurs l’un des algorithmes d’apprentissage qui a connu le plus de succès. Sa capacité à calculer des modèles complexes pour le coût calculatoire d’un model très simple en a fait une composante clef du domaine du machine learning où il s’est illustré en particulier dans la reconnaissance d’image ou de caractères.

L’algorithme de SVM a pour objectif de trouver la séparation entre deux classes d’objets avec l’idée que plus la séparation est large, plus la classification est robuste. Dans sa forme la plus simple, celle d’une séparation linéaire et de classes séparables, l’algorithme sélectionne l’hyperplan qui sépare le jeu d’observations en deux classes distinctes de façon à maximiser la distance entre l’hyperplan et les observations les plus proches de l’échantillon d’apprentissage.

XLSTAT propose des machines à vecteur support binaires et multiclasses. Les MVS multiclasses peuvent être calculées de deux manières dans XLSTAT :

  • Un contre un : un modèle binaire par paire de classes est généré.
  • Un contre tours : un modèle binaire par classe est généré, avec la classe correspondante conservée et les autres classes rassemblées sous la même classe.

Machine à vecteur support : options dans XLSTAT

La machine à vecteur support est disponible dans le menu machine learning de XLSTAT.

Paramètres SMO

Cette option permet de régler l’algorithme d’optimisation selon vos besoins spécifiques. Il y a 3 paramètres ajustables :

  • C : le paramètre de régularisation (voir la description pour plus de détails);
  • Epsilon : un paramètre de précision numérique dépendant de la machine, sa valeur par défaut est 1x10^-12;
  • Tolérance : ce paramètre définit la tolérance appliquée lors de la comparaison de deux valeurs durant la phase d’optimisation. Ce paramètre peut être utilisé pour accélérer la vitesse de calcul.

Prétraitement

Cette option permet de sélectionner le prétraitement appliqué aux variables explicatives. Il y a 3 options disponibles :

  • Homothétie : les variables explicatives quantitatives sont ajustées à une échelle allant de 0 à 1 en utilisant le minimum et maximum observés pour chaque variable;
  • Normalisation : les variables explicatives quantitatives et qualitatives sont normalisées en utilisant la moyenne et la variance observée pour chaque variable;
  • Aucun : aucun prétraitement n’est appliqué.

Noyau

Cette option permet de sélectionner le noyau que vous souhaitez appliquer pour augmenter les dimensions de votre espace. Il y a 4 noyaux disponibles :

  • Noyau linéaire : c’est le produit scalaire ;
  • Noyau puissance : Si vous sélectionnez ce noyau, vous devez saisir la valeur du coefficient et de Gamma;
  • Noyau RBF : Si vous sélectionnez ce noyau, vous devez saisir la valeur de Gamma ;
  • Noyau Sigmoïde : Si vous sélectionnez ce noyau vous devez saisir la valeur du coefficient et de Gamma ;

Options de validation

  • Jeu de validation : choisissez l’une des options pour définir le mode de sélection des observations utilisées pour la validation :
  • Aléatoire : les observations sont sélectionnées de manière aléatoire. Le « Nombre d’observations » doit alors être saisi.
  • N dernières lignes : les N dernières observations sont sélectionnées pour la validation. Le « Nombre d’observations » N doit alors être saisi.
  • N premières lignes : les N premières observations sont sélectionnées pour la validation. Le « Nombre d’observations » N doit alors être saisi.

Machine à vecteur support : résultats dans XLSTAT

Résultats associés au classifieur

Un résumé descriptif du classifieur optimisé est affiché. Les classes positives et négatives sont indiquées ainsi que la taille effective de l’échantillon d’apprentissage et les deux paramètres optimisés, le biais b et le nombre de vecteurs support.

Résultats associés à la liste de vecteurs support

Un tableau contenant les valeurs des classes, la valeur optimisée de alpha et les variables explicatives prétraitrées comme elles sont utilisées durant l’optimisation sont affiché pour chaque vecteur support identifié.

Résultats associés aux matrices de confusion

Les matrices de confusion sont déduites des classifications obtenues et de la classe effective ainsi que les pourcentages d’observations correctement classifiées.

Résultats associées aux indicateurs de performance

Il y a 9 indicateurs de performance affichés lorsque cette option est activée:

Exactitude, Précision, Recall, F-mesure, Spécificité, TFP, Prévalence, kappa de Cohen, TEN.

Les indicateurs de la première colonne correspondent à l’échantillon d’apprentissage, ceux de la seconde à l’échantillon de validation (si activé).

Résultats associés aux classes prédites

Les classes prédites obtenues en utilisant le classifieur SVM sont affichées pour les échantillons d’apprentissage, de validation et de de prédiction.

Références

Vapnik, V. & Chervonenkis, A., (1964). A note on one class of perceptrons. Automation and Remote Control, 25.

Boser, B., Guyon, I., & Vapnik, V. (1992). A training algorithm for optimal margin classifiers. In Proceedings of the Fifth Annual Workshop of Computational Learning Theory, 5, 144-152, Pittsburgh, ACM.

Cortes, C. & Vapnik V. (1995). Support-Vector Networks. Machine Learning, 20, 273-297.