SVM dans Sklearn

SVM dans Sklearn
Les machines à vecteur de support (SVM, également connu sous le nom de réseaux de vecteur de support), sont des modèles d'apprentissage supervisés avec des algorithmes correspondants qui évaluent les données de régression et de classification. Les SVM, basés sur les cadres d'apprentissage statistique ou la théorie de la VC publiés par Cervonenkis et Vapnik, sont parmi les techniques de prédiction les plus fiables (1974). La mise en œuvre des SVM dans Sklearn, ainsi que ses avantages et ses inconvénients, seront couverts dans cet article.

Qu'est-ce que SVM?

SVM ou Support Vector Machine est une technique d'apprentissage automatique supervisé pour analyser les données de régression et de classification. L'objectif de l'algorithme SVM est de définir la limite ou la ligne de décision optimale qui peut catégoriser l'espace N-dimension, nous permettant de classer les nouveaux points de données dans le futur rapidement. Cette limite de décision est connue comme un hyperplan. Cela permet à votre modèle de trier un ensemble de données étiqueté et de catégoriser l'entrée non étiquetée. C'est l'un des algorithmes d'apprentissage supervisés les plus populaires et est fréquemment utilisé pour classer les images en utilisant les fonctionnalités récupérées par un réseau neuronal convolutionnel profond.

Supposons que vous avez des points linéairement séparables dans votre article qui sont de différentes sortes. Le SVM localisera une ligne droite qui, pour autant que ce soit raisonnablement possible, divise ces points en deux catégories. Imaginez deux paires de points allongés sur un avion. Les premiers sont rouges, tandis que les autres sont bleus. Afin d'optimiser sa distance des deux classes de points, une machine à vecteur de support recherche une ligne qui divise les points rouges des bleus. Ceci est connu comme le La plus grande marge de différence. Il est important de mesurer la distance entre la ligne et les points aux bords des deux points pour déterminer la marge avec la plus grande différence. Ils les appellent Soutenir les vecteurs. Les points doivent être séparables par une ligne car ils doivent être séparés par un. Le terme pour cela est séparabilité linéaire. L'astuce du noyau est un ajout crucial à l'algorithme de machine vectorielle de support pour surmonter cette restriction. Cela déplace les données dans un espace de dimension plus élevée et utilise une fonction linéaire pour le séparer là-bas. À travers un soi-disant noyau, la transformation est réalisée. Ceci est uniquement concevable car le calcul de la fonction linéaire pour séparer les données dépend du produit DOT des vecteurs / points de support. Autrement dit: pour éviter d'utiliser une ligne pour diviser le rouge des points bleus, mélangez-les dans l'avion.

Soulever les rouges, laissant les bleus derrière. Il est maintenant évident que vous pouvez séparer les points en utilisant un avion. La technique du noyau réalise cela. Il modifie les données dans une dimension plus élevée pour être vraisemblablement séparable. Le soulevant a ajouté une troisième dimension (trois dimensions), qui séparait les points par une ligne en trois dimensions, un plan, tandis que les points sur le sol (deux dimensions) n'étaient pas.

Avantages de SVM

  1. Dans les espaces de grande dimension, il est plus efficace d'utiliser assez bien sa mémoire.
  2. Convient aux cours avec des marges de distinction distinctes. En plus efficace lorsque les tailles d'échantillon dépassent les dimensions globales.

Inconvénients de SVM

  1. Lorsque les caractéristiques totales de chaque point de données sont supérieures aux échantillons de données de formation, cela ne fonctionne pas bien. De plus, sa technique ne convient pas aux ensembles de données plus importants.
  2. Un ensemble de données commence à traîner lorsque les classes cibles se chevauchent, ou plus de bruit est présent. De plus, la classification produite par le classificateur de vecteur de support n'a pas de justification probabiliste.

Implémentation de SVM dans Sklearn

Importation de bibliothèques
de Sklearn.Les ensembles de données importent make_classification
De Sklearn Import SVM
Création d'un ensemble de données
X, y = make_classification (random_state = 42)
Imprimer («Données de train est», x)
Imprimer («Données de test est», y)

Sortir

Les données de train sont [[-2.02514259 0.0291022 -0.47494531… -0.33450124 0.86575519
-1.20029641]
[ 1.61371127 0.65992405 -0.15005559… 1.37570681 0.70117274
-0.2975635]
[0.16645221 0.95057302 1.42050425… 1.18901653 -0.55547712
-0.63738713]

[-0.03955515 -1.60499282 0.22213377… -0.30917212 -0.46227529
-0.43449623]
[ 1.08589557 1.2031659 -0.6095122… -0.3052247 -1.31183623
-1.06511366]
[-0.00607091 1.30857636 -0.17495976… 0.99204235 0.32169781
-0.66809045]]
Les données de test sont [0 0 1 1 0 0 0 1 0 1 1 0 0 0 0 1 1 1 0 0 1 1 0 0 0 0 1 1 0 1 0 0 0 0 0 0 1 0
0 1 1 1 0 1 0 0 1 1 0 0 1 1 1 0 1 0 0 1 1 0 1 1 1 1 1 0 1 0 0 1 0 1 0 1 0
1 1 1 0 0 0 1 0 1 0 1 1 1 1 1 0 0 1 0 1 1 0 1 1 0 0]
Création du modèle SVM
modèle = svm.Svc ()
modèle.ajustement (x, y)
imprimer («support vecteurs sont», modèle.support_vectors_)
imprimer («Indices pour les vecteurs de support sont», modèle.soutien_)

Sortir

Les vecteurs de support sont [[-2.02514259 0.0291022 -0.47494531… -0.33450124 0.86575519
-1.20029641]
[0.17989415 -0.22210005 0.10537551… -0.9683445 -0.22463315
0.5500521]
[-1.22576566 0.80742726 0.65232288… 0.88365994 -0.03850847
-0.1726273]

[0.2005692 -0.24878048 -1.07213901… 0.08614388 -0.36702784
-0.82759022]
[-0.6115178 -1.22532865 -0.85835778… 0.18483612 2.63238206
0.4933179]
[-0.22096417 -0.54561186 -0.57117899… 0.64084286 -0.28110029
1.79768653]]
Les indices des vecteurs de support sont [0 4 5 6 8 11 12 13 18 21 22 23 24 27 29 30 31 32 33 34 36 47 52 54
58 67 73 78 79 81 83 89 92 95 2 3 7 9 10 14 25 35 38 39 40 42 45 49
51 57 59 60 61 62 63 68 72 74 75 76 80 85 86 88 91 93 94 96]

Conclusion

Nous avons subi l'explication des machines de vecteur de support (SVM) ainsi que leurs avantages, leurs inconvénients et leur implémentation. SVM attire des hyperplans entre les points avec la plus grande marge et peut être utilisé pour les cas de classification et de régression. Nous avons vu comment Sklearn nous fournit un moyen facile d'implémenter SVM et d'obtenir des détails sur les vecteurs de support.