Data for Breakfast à travers le monde

Propulsez votre impact via l'intelligence agentique et la donnée.

Support Vector Machine (SVM) : guide complet pour le machine learning

Découvrez les Support Vector Machines (SVM) : fonctionnement, composants clés, types, applications réelles et meilleures pratiques pour leur mise en œuvre.

  • Présentation
  • Qu’est-ce qu’une Support Vector Machine (SVM) ?
  • Concepts clés du machine learning avec des SVM
  • Fonctionnement des SVM
  • Types de Support Vector Machines
  • Applications réelles des SVM
  • Avantages et limites des SVM
  • Meilleures pratiques pour la mise en œuvre de SVM
  • Conclusion
  • Questions fréquentes sur les Support Vector Machines
  • Clients qui utilisent Snowflake
  • Ressources sur l’IA et le machine learning

Présentation

Les Support Vector Machines (SVM) sont des algorithmes utilisés pour aider les modèles de machine learning supervisés à séparer différentes catégories de données en établissant des frontières claires entre elles. En tant que classificateurs, les SVM sont conçues pour créer des frontières de décision pour assurer une classification précise. C’est l’une des techniques clés que les data scientists utilisent pour créer des modèles d’IA et de ML pour un large éventail d’applications pratiques, notamment la reconnaissance d’images, la détection des fraudes ou encore le filtrage des spams.

Les SVM excellent dans le traitement de données à haute dimension, comme un scan cérébral contenant des millions de points de données. En outre, elles protègent également contre le surapprentissage, c’est-à-dire le fait pour un modèle de prédiction d’être performant sur les données sur lesquelles il a été entraîné, mais médiocre sur de nouvelles données.

Ce guide décrit le fonctionnement des SVM et explique pourquoi ce sont des outils essentiels pour garantir des prédictions précises à l’aide de modèles de ML.

Qu’est-ce qu’une Support Vector Machine (SVM) ?

Le principe de fonctionnement des SVM consiste à identifier où se situe la marge la plus importante entre différentes catégories de données. Par exemple, avec un modèle de ML entraîné à l’aide d’images de fruits, une SVM peut apprendre à séparer les pommes des oranges en fonction de caractéristiques (features) comme la couleur, la forme et la texture. Elle crée ainsi une frontière appelée hyperplan, que le modèle utilise pour distinguer ces deux catégories. 

Une SVM fonctionne à la fois sur des données linéairement séparables ou non. Avec des données linéaires, les pommes et les oranges pourraient être placées sur un graphique en fonction de caractéristiques comme le poids et la forme. Les objets plus lourds et plus ronds (les oranges) seraient regroupés dans une zone, tandis que les objets plus légers et moins ronds (les pommes) seraient regroupés ailleurs. Une SVM trouverait la droite optimale pour séparer ces groupes avec la plus grande marge possible, puis utiliserait cette frontière (l’hyperplan) pour classer les images futures de fruits.

En revanche, classer et séparer des données non linéaires nécessite une étape supplémentaire. Supposons que vous possédiez une pizzeria et que vous souhaitiez identifier où vivent vos clients les plus fidèles. Vous découvrez que vos meilleurs clients vivent généralement à proximité de votre pizzeria, tandis que les visiteurs moins fréquents vivent plus ou moins loin et forment un cercle autour. Un graphique de ces données ressemblerait à un beignet, les clients fidèles formant le trou au milieu. Mais comme les données ne sont pas linéaires, il est impossible de tracer une ligne qui sépare clairement ces deux groupes. Les SVM s’appuient donc sur des fonctions mathématiques (appelées noyaux) pour appliquer un processus appelé « l’astuce du noyau », afin de transformer les données en plusieurs dimensions et d’identifier la marge la plus vaste entre les deux groupes. L’un des noyaux les plus utilisés est appelé Radial Basis Function (RBF). Il est idéal pour les données complexes non linéaires.

Concepts clés du machine learning avec des SVM

Chaque SVM implique les éléments suivants :
 

1. Hyperplan 

Il s’agit de la frontière de décision qui sépare différentes catégories de données : une ligne dans des espaces 2D, un plan en 3D ou une surface de dimension supérieure dans des espaces de données plus complexes. La SVM trouve l’hyperplan optimal pour diviser au mieux les catégories.
 

2. Vecteurs de support 

Les points de données les plus proches de l’hyperplan et qui influencent directement l’endroit où la frontière est tracée sont appelés vecteurs de support. Ce sont les exemples stratégiques qui définissent réellement où se trouve la frontière de décision ; leur suppression entraînerait un déplacement de l’hyperplan.
 

3. Marge 

La marge correspond à la distance entre l’hyperplan et les points de données les plus proches de chaque catégorie. Les SVM optimisent cette marge pour créer la séparation la plus efficace possible entre les catégories.
 

4. Fonctions de noyau 

Ces fonctions mathématiques transforment les données en dimensions supérieures pour permettre une séparation linéaire. Ainsi, elles permettent aux SVM de gérer des données non linéaires en trouvant des frontières courbes dans l’espace d’origine.
 

5. Paramètre de régularisation 

Cette valeur, généralement appelée C, cherche un compromis entre maximiser la marge et minimiser les erreurs de classification. Une valeur C élevée donne la priorité à une classification correcte plutôt qu’à une vaste marge, tandis qu’une valeur C faible accepte une classification moins précise au profit d’une marge plus vaste.
 

6. Gamma 

Les valeurs gamma contrôlent si la frontière de décision suit de près ou non les données d’entraînement. Une valeur gamma élevée crée des frontières très spécifiques qui suivent étroitement des points de données individuels, tandis qu’une valeur gamma faible crée des frontières plus lisses et généralisées qui ignorent les petits détails.
 

7. Variables Slack 

Dans les cas où une séparation parfaite des points de données n’est pas possible, les variables Slack permettent de laisser certains points de données du mauvais côté de la marge ou de l’hyperplan. Le fait d’accepter quelques erreurs de classification en petites quantités facilite le traitement du bruit et des données qui se chevauchent.

Fonctionnement des SVM

Voici les cinq étapes essentielles que suit chaque SVM lors du traitement des données :
 

Étape 1 : mappage des données d’entrée dans un espace de représentation de dimensions supérieures 

La SVM prend les données d’entrée d’origine et utilise des fonctions de noyau pour les transformer en un espace de dimensions supérieures où une séparation linéaire devient possible. Cette étape est cruciale pour traiter les données non linéaires : ce qui apparaît comme une frontière courbe dans l’espace d’origine devient une ligne droite dans l’espace transformé.
 

Étape 2 : identification de l’hyperplan optimal qui maximise la marge 

La SVM identifie l’hyperplan (frontière de décision) qui crée la plus grande marge possible entre les différentes catégories. Elle se concentre sur les vecteurs de support, c’est-à-dire les points de données les plus proches de la frontière, et positionne l’hyperplan de manière à maximiser la distance entre ces points stratégiques dans chaque catégorie.
 

Étape 3 : gestion du bruit et des données qui se chevauchent avec des variables Slack 

Lorsqu’une séparation parfaite n’est pas possible parce que les catégories se chevauchent ou les données contiennent du bruit, la SVM introduit des variables Slack qui permettent quelques erreurs de classification. Le paramètre de régularisation (C) définit l’équilibre entre la maximisation de la marge et la minimisation de ces erreurs de classification.
 

Étape 4 : optimisation des paramètres pour de meilleures performances 

La SVM ajuste des hyperparamètres clés comme les valeurs C et gamma et le choix du noyau pour rendre le modèle suffisamment complexe pour être précis, mais assez simple pour bien fonctionner sur de nouvelles données. Cela permet à la SVM d’éviter le surapprentissage, c’est-à-dire de rendre un modèle trop spécialisé sur ses données d’entraînement, au détriment de ses performances sur de nouveaux exemples.
 

Étape 5 : classification de nouvelles données en fonction de la position de l’hyperplan 

Pour les nouveaux points de données jamais vus jusque là, la SVM entraînée applique la même fonction de noyau et vérifie simplement de quel côté de l’hyperplan appris chaque point est placé. La distance par rapport à l’hyperplan peut également indiquer le niveau de confiance de la classification.

Types de Support Vector Machines

Il existe cinq principaux types de Support Vector Machines :
 

SVM linéaires 

Les SVM linéaires sont utilisées lorsque les données peuvent être séparées par une ligne droite ou un hyperplan plat. Comme elles ne s’appuient pas sur des fonctions de noyau, les SVM linéaires sont économes en termes de calcul et faciles à interpréter. 
 

SVM non linéaires 

Lorsqu’une séparation linéaire n’est pas possible, les SVM non linéaires utilisent des fonctions de noyau pour transformer les données en dimensions supérieures. Elles créent ainsi des frontières de décision courbes dans l’espace d’origine et sont donc idéales pour les schémas de données complexes et non linéaires, tels que les jeux de données classiques qui forment un beignet.
 

SVM à classe unique 

Conçues pour la détection des anomalies et des nouveautés, les SVM à classe unique apprennent la frontière autour des données « normales » et identifient tout ce qui en sort comme une exception ou une anomalie. Ce type de machine est généralement utilisé dans les applications de détection des fraudes et de contrôle qualité.
 

Support Vector Regression (SVR) 

Ce type de machine utilise des techniques de SVM pour prédire des nombres au lieu de catégories. Plutôt que de tracer une ligne qui sépare différents groupes, la SVR trace une ligne qui correspond le mieux aux points de données avec une certaine marge d’erreur. Les SVR sont utilisées pour prédire des éléments comme des prix, des températures ou encore des chiffres de vente. 
 

SVM multi-classes 

Les machines multi-classes gèrent les problèmes de classification avec plus de deux catégories en combinant plusieurs SVM ordinaires. Comme les SVM standard ne peuvent séparer que deux groupes à la fois, cette approche utilise plusieurs SVM qui fonctionnent ensemble pour distinguer plusieurs catégories, par exemple pour classer des images de fruits entre les pommes, les oranges et les bananes. 

Applications réelles des SVM

Les SVM sont utilisées dans un large éventail d’applications qui s’appuient sur le machine learning. Voici quelques cas d’usage courants :
 

Classification d’images 

Capables d’analyser rapidement des schémas de pixels et de séparer des caractéristiques visuelles, les classificateurs SVM excellent dans la reconnaissance d’objets, de visages et de scènes dans des images numériques. C’est pourquoi ils sont couramment utilisés en imagerie médicale pour détecter des tumeurs sur des radiographies ou des IRM, ainsi que dans des systèmes de sécurité pour la reconnaissance faciale et la surveillance.
 

Catégorisation de texte et détection des spams 

Les SVM analysent des schémas dans les mots utilisés et des caractéristiques linguistiques pour catégoriser automatiquement des e-mails, des documents et du contenu web. Les fournisseurs de messagerie les utilisent pour filtrer les spams en leur apprenant à distinguer les messages légitimes du contenu promotionnel ou malveillant indésirable.
 

Bioinformatique 

Grâce à l’analyse de schémas dans des données biologiques complexes, ces systèmes aident à catégoriser des séquences d’ADN, à prédire des structures de protéines et à identifier des marqueurs génétiques liés à certaines pathologies. Ils sont particulièrement utiles dans la recherche contre le cancer pour classer des types de tumeurs en fonction de profils d’expression génique.
 

Reconnaissance de texte manuscrit 

Les SVM convertissent du texte manuscrit en format numérique en analysant les schémas de tracé, les formes des caractères et les relations spatiales dans des documents scannés. Elles sont utilisées par les services postaux pour lire automatiquement les adresses sur les enveloppes et dans les banques pour traiter les chèques et les formulaires manuscrits.
 

Détection des fraudes 

Ces algorithmes SVM analysent des schémas de dépenses, les montants de transactions, ainsi que le lieu et le moment où celles-ci sont réalisées, afin de repérer des transactions financières potentiellement frauduleuses. Les sociétés émettrices de cartes de crédit et les banques les utilisent pour détecter des anomalies en temps réel et protéger leurs clients des achats non autorisés.

En outre, les SVM sont largement utilisées dans la recherche de médicaments pour prédire le comportement moléculaire et identifier des composés pharmaceutiques prometteurs. Elles alimentent également des systèmes de recommandations pour des services de streaming et des plateformes de e-commerce en analysant les préférences et schémas comportementaux des utilisateurs, afin de leur suggérer du contenu ou des produits pertinents.

Avantages et limites des SVM

Les SVM ne sont pas adaptées à tous les cas d’usage du machine learning. Voici les principaux avantages et les limites du déploiement de ces algorithmes.
 

Principaux avantages de l’utilisation de SVM
 

  • Elles sont très précises. Les SVM offrent toujours d’excellentes performances pour la classification de divers jeux de données. Comme elles se concentrent sur les points de données les plus difficiles (les vecteurs de support) et créent la séparation avec la plus vaste marge possible entre les catégories, elles construisent des frontières de décision fiables qui se généralisent bien aux nouvelles données jamais vues jusque là.

  • Elles fonctionnent bien dans des espaces de dimensions supérieures. Les SVM gèrent des données avec de nombreuses features (comme lors de l’analyse de milliers de gènes à la fois) mieux que la plupart des autres méthodes. Tandis que d’autres algorithmes sont désemparés face à de trop grandes quantités d’informations, les SVM sont encore meilleurs, parce qu’ils se concentrent uniquement sur la recherche de la meilleure frontière au lieu d’essayer de comprendre chaque détail des données.

  • Elles sont efficaces avec de petits jeux de données. Les SVM peuvent créer des modèles fiables même avec des données d’entraînement limitées. Elles sont ainsi idéales pour des domaines spécialisés comme les diagnostics médicaux ou la détection d’événements rares. Basées sur des fonctions mathématiques, elles peuvent extraire un maximum d’informations à partir d’un nombre minimal d’exemples et évitent ainsi les problèmes de surapprentissage qui affectent d’autres algorithmes lorsque les données sont rares.

  • Elles sont économes en termes de mémoire. Les SVM stockent uniquement les vecteurs de support (les points de données stratégiques près de la frontière de décision) plutôt que tout le jeu de données d’entraînement. Elles sont ainsi plus économes en calcul pour réaliser des prédictions et réduisent les besoins en matière de stockage, ce qui constitue tout particulièrement un atout dans les applications disposant de ressources de calcul limitées.

  • Elles sont polyvalentes. Les SVM peuvent gérer à la fois des problèmes linéaires simples et des schémas courbes complexes simplement en changeant la fonction mathématique (le noyau) qu’elles utilisent. Elles permettent ainsi de résoudre différents types de problèmes autour des données avec la même approche SVM de base, simplement en sélectionnant le noyau adapté à votre situation spécifique. 
     

Limites majeures des SVM
 

  • Elles peuvent être gourmandes en calcul. Le temps d’entraînement des SVM augmente considérablement avec le nombre de points de données. Par conséquent, les SVM peuvent devenir extrêmement lentes et gourmandes en mémoire lorsqu’elles traitent des jeux de données massifs. En effet, le traitement de millions d’exemples peut prendre des heures, voire des jours. Les SVM ne sont donc pas adaptées aux applications de Big Data qui sont mieux prises en charge par des algorithmes plus rapides.

  • Elles sont sensibles au choix du noyau. Sélectionner la mauvaise fonction de noyau peut gravement nuire aux performances des SVM, or il n’existe pas de règle universelle pour faire le meilleur choix. Les différents noyaux peuvent être plus ou moins performants selon les schémas de données. Il faut donc passer par de longues expérimentations et disposer d’une expertise approfondie pour trouver la configuration optimale pour chaque problème.

  • Elles sont moins efficaces lorsque les catégories se chevauchent. Comme elles sont conçues pour délimiter des frontières de séparation claires, les SVM sont en difficulté lorsque différentes catégories s’entrecroisent considérablement. Lorsque des points de données de différentes catégories sont dispersés dans les mêmes régions, les SVM peuvent créer des frontières trop complexes qui ne se généralisent pas bien à de nouvelles données.

  • L’estimation de probabilité est limitée. Contrairement à certains autres algorithmes, les SVM ne fournissent pas automatiquement d’estimations de probabilité ou de niveaux de confiance pour leurs prédictions. Bien que des estimations de probabilité puissent être ajoutées, il faut pour cela ajouter des étapes de calcul et le résultat n’est pas toujours aussi fiable qu’avec des méthodes conçues pour.

  • Leurs résultats peuvent être difficiles à interpréter. Les modèles basés sur des SVM peuvent fonctionner comme des « boîtes noires » ; il n’est donc pas toujours facile de comprendre comment ils sont parvenus à certaines prédictions spécifiques. Ce manque d’interprétabilité peut poser problème dans des domaines comme la médecine ou la finance, où comprendre le raisonnement à l’origine de prédictions est essentiel pour garantir la confiance et la conformité réglementaire.

  • Elles sont peu performantes face au bruit. Les SVM peuvent être trop sensibles aux anomalies et aux points de données mal étiquetés, qui peuvent avoir un impact considérable sur la frontière de décision et nuire aux performances globales. Contrairement à certains algorithmes efficaces qui peuvent ignorer les points de données problématiques, les SVM peuvent accorder trop de poids à ces anomalies pendant l’entraînement.

Meilleures pratiques pour la mise en œuvre de SVM

Voici cinq meilleures pratiques pour utiliser des SVM :
 

1. Procéder au feature scaling pour de meilleures performances 

Les SVM peuvent avoir du mal à comprendre les features qui n’appartiennent pas toutes au même ordre de grandeur. Assurez-vous que toutes vos données utilisent des plages de nombre similaires (par exemple, en convertissant l’âge et les revenus pour qu’ils suivent une même échelle numérique) afin d’éviter que des données sur différentes échelles ne faussent les résultats. 
 

2. Expérimenter différents noyaux 

Chaque noyau capture différents types de schémas de données, alors testez plusieurs options de noyau pour trouver la meilleure solution à votre problème spécifique. Commencez avec un noyau linéaire pour les données à haute dimension, puis essayez le noyau RBF pour des schémas non linéaires. Envisagez des noyaux polynomiaux pour les relations structurées. 
 

3. Utiliser la validation croisée pour le réglage des paramètres 

Essayez différentes combinaisons de réglages (comme les valeurs C et gamma) en utilisant une approche systématique pour tester votre modèle sur plusieurs sous-ensembles de données. Cela vous aidera à trouver les meilleurs réglages qui fonctionneront bien sur de nouvelles données, et pas seulement avec les données que vous avez utilisées pour l’entraînement. 
 

4. Éviter le surapprentissage à l’aide de jeux de données de validation 

Conservez un jeu de données de validation distinct pour suivre les performances de votre modèle sur des données inédites pendant l’entraînement et le réglage des paramètres. Si la précision sur les données d’entraînement est nettement supérieure à la précision sur les données de validation, réduisez la complexité du modèle en diminuant les valeurs C ou gamma.
 

5. Gérer correctement le déséquilibre entre les catégories 

Lorsqu’une catégorie de données est nettement plus volumineuse qu’une autre (par exemple, 50 spams contre 1 000 messages légitimes), ajustez les paramètres de la SVM en utilisant des pondérations de catégorie ou des techniques d’échantillonnage pour accorder la même attention aux deux groupes. La plupart des logiciels de SVM peuvent automatiquement procéder à cet équilibrage, afin d’éviter que l’algorithme n’acquière un biais en faveur de la catégorie la plus courante.

Conclusion

Les Support Vector Machines font partie des algorithmes de machine learning les plus efficaces en raison de leur capacité à créer des frontières de décision fiables entre différentes catégories de données. Elles sont particulièrement adaptées quand les données d’entraînement sont limitées et la précision essentielle.

Les SVM excellent dans de nombreuses applications : diagnostic médical, détection des fraudes financières, classification des gènes, filtrage des spams, systèmes de reconnaissance de l’écriture manuscrite, etc. Grâce à leur capacité à traiter des données à haute dimension, elles sont particulièrement adaptées aux défis actuels, tels que l’analyse de séquences génétiques avec des milliers de features ou le traitement de documents textuels avec des vocabulaires étendus.

Elles constituent également des outils puissants pour la recherche universitaire et l’industrie, en particulier pour les tâches qui exigent une grande précision et des frontières de décision fiables.

Questions fréquentes sur les Support Vector Machines

Les SVM sont particulièrement efficaces pour trier les données en catégories lorsque vous avez besoin de résultats très précis, mais que vous n’avez que peu d’exemples d’entraînement. Elles traitent particulièrement bien des données complexes avec de nombreuses features, notamment pour l’analyse de texte ou d’images.

L’astuce du noyau permet aux SVM de gérer des données non linéaires séparées par une frontière courbe en faisant mathématiquement « semblant » que ces données existent dans une dimension supérieure où elles peuvent être séparées par une ligne droite. Au lieu de déplacer réellement ces données vers des dimensions supérieures (ce qui prendrait beaucoup de temps), les fonctions de noyau font le calcul en arrière-plan. Cela permet aux SVM de créer des frontières courbes dans vos données d’origine tout en utilisant leurs méthodes linéaires standard.

La régression SVR (Support Vector Regression) utilise les mêmes approches de base que les SVM, mais au lieu de tracer une ligne pour séparer des catégories, elle trace une ligne qui correspond le mieux à des points de données pour prédire des nombres. La principale différence est que la SVR crée une marge d’erreur acceptable autour de la ligne de prédiction : tant que les valeurs réelles se situent dans la marge d’erreur, les prédictions sont considérées comme bonnes.