Prise en charge de la régression vectorielle dans l'apprentissage automatique

Contenu

Déverrouiller un nouveau monde avec l'algorithme de régression de vecteur de support

Soutenir les machines vectorielles (SVM) sont couramment et largement utilisés pour les problèmes de classification en apprentissage automatique. Je me suis souvent appuyé sur cela non seulement dans les projets d'apprentissage automatique, mais aussi quand je veux un résultat rapide dans un hackathon.

Mais SVM pour l'analyse de régression? Cela faisait un moment que je n'avais même pas envisagé cette possibilité !! Et même maintenant, quand je mentionne « Régression vectorielle de support » par rapport aux débutants en apprentissage automatique, J'ai souvent une expression perplexe. je comprends: la plupart des cours et des experts ne mentionnent même pas la prise en charge de la régression vectorielle (SVR) comme algorithme d'apprentissage automatique.

support-vecteur-régression-7252922

Mais SVR a ses utilités, comme vous le verrez dans ce tutoriel. Tout d'abord, nous allons rapidement comprendre ce qu'est SVM, avant de plonger dans le monde de la régression des vecteurs de support et comment l'implémenter en Python.

Noter: Vous pouvez en savoir plus sur les machines à vecteurs de support et les problèmes de régression au format de cours ici (c'est gratuit!):

C'est ce que nous allons couvrir dans ce tutoriel de régression de vecteur de support:

  • Qu'est-ce qu'une machine à vecteur de support (SVM)?
  • Soutenir les hyperparamètres d'algorithme de machine vectorielle
  • Introduction à la régression des vecteurs de support (SVR)
  • Implémentation de la régression des vecteurs de support en Python

Qu'est-ce qu'une machine à vecteur de support (SVM)?

Ensuite, Qu'est-ce que la machine à vecteur de support (SVM)? Nous allons commencer par comprendre SVM en termes simples. Digamos que tenemos un diagrama de dos clases de etiquetas como se muestra en la siguiente chiffre:

svr2-9542020

Pouvez-vous décider quelle sera la ligne de séparation? Cela vous est peut-être venu à l'esprit:

svr3-5222394

La ligne sépare un peu les classes. C'est ce que SVM fait essentiellement: séparation de classe simple. À présent, Quelles sont les données?

svr4-9405554

Ici, nous n'avons pas une ligne simple qui sépare ces deux classes. Así que ampliaremos nuestra dimension e introduciremos una nueva dimensión a lo largo del eje z. Maintenant, nous pouvons séparer ces deux classes:

svr5-2176777

Lorsque nous transformons cette ligne dans le plan d'origine, cartes à la frontière circulaire comme je l'ai montré ici:

svr6-5864528

C'est exactement ce que fait SVM !! Essayez de trouver une ligne / hyperplan (dans un espace multidimensionnel) qui sépare ces deux classes. Classer ensuite le nouveau point selon qu'il se trouve du côté positif ou négatif de l'hyperplan selon les classes à prédire.

Soutenir les hyperparamètres d'algorithme de machine vectorielle (SVM)

Hay algunos paramètres importantes de SVM que debe conocer antes de continuar:

  • Coeur: Un noyau nous aide à trouver un hyperplan dans un espace de dimension supérieure sans augmenter le coût de calcul. Comme d'habitude, le coût de calcul augmentera si la dimension des données augmente. Cette augmentation de dimension est nécessaire lorsque nous ne pouvons pas trouver un hyperplan de séparation dans une certaine dimension et que nous devons nous déplacer dans une dimension supérieure:

hyperplan-2180294

  • Hyperplan: Il s'agit essentiellement d'une ligne de démarcation entre deux classes de données dans SVM. Mais à l'appui de la régression vectorielle, c'est la ligne qui sera utilisée pour prédire la sortie continue
  • Limite de décision: Une frontière de décision peut être considérée comme une ligne de démarcation (simplifier) d'un côté les exemples positifs et de l'autre les exemples négatifs. Dans cette même ligne, les exemples peuvent être classés comme positifs ou négatifs. Ce même concept SVM s'appliquera également dans la régression de vecteur de support

Pour comprendre SVM à partir de zéro, je recommande ce tuto: Comprendre l'algorithme de la machine à vecteurs de support (SVM) à partir d'exemples.

Introduction à la régression des vecteurs de support (SVR)

Régression vectorielle de support (SVR) utilise le même principe que SVM, mais pour les problèmes de régression. Prenons quelques minutes pour comprendre l'idée derrière SVR.

L'idée derrière la régression des vecteurs de support

El problema de la regresión es encontrar una función que se aproxime al mapeo de un dominio de entrada a números reales sobre la base de una muestra de entraînement. Alors maintenant, approfondissons et comprenons comment fonctionne réellement RVS..

svr1-1036291

Considérez ces deux lignes rouges comme la limite de décision et la ligne verte comme l'hyperplan. Notre objectif, quand nous avançons avec SVR, il s'agit essentiellement de considérer les points qui se trouvent à l'intérieur de la ligne de limite de décision. Notre meilleure ligne d'ajustement est l'hyperplan qui a un nombre maximum de points.

La première chose que nous comprendrons est quelle est la limite de décision (La ligne de danger rouge!). Considérez que ces lignes sont à n'importe quelle distance, Disons « une », de l'hyperplan. Ensuite, estas son las líneas que dibujamos a la distancia ‘+ une’ Oui ‘-une’ de l'hyperplan. Ce ‘une’ dans le texte, il est essentiellement connu sous le nom d'epsilon.

En supposant que l'équation de l'hyperplan est la suivante:

Y = wx+b (équation de l'hyperplan)

Alors les équations limites de décision deviennent:

wx+b= +a

wx+b= -a

Donc, tout hyperplan qui satisfait notre RVS devrait satisfaire:

-une < Oui- wx+b < +une 

Nuestro principal objetivo aquí es decidir un límite de decisión a una distancia ‘une’ de l'hyperplan d'origine, de sorte que les points de données les plus proches de l'hyperplan ou des vecteurs de support se trouvent à l'intérieur de cette ligne frontière.

Donc, nous allons prendre uniquement les points qui sont dans la limite de décision et qui ont le taux d'erreur le plus bas, o están dentro del Marge de Tolerancia. Cela nous donne un modèle mieux adapté..

Prise en charge de la mise en œuvre de la régression vectorielle (SVR) et Python

Il est temps de mettre nos chapeaux de codage !! Dans cette section, nous comprendrons l'utilisation de la régression des vecteurs de support à l'aide d'un ensemble de données. Ici, nous devons prédire le salaire d'un employé étant donné certaines variables indépendantes. Un projet d'analyse RH classique!

données-5974056

Paso 1: importer les bibliothèques

Paso 2: lire l'ensemble de données

Paso 3: Mise à l'échelle des fonctions

Un ensemble de données du monde réel contient des caractéristiques dont l'ampleur varie, unités et gamme. Sugeriría realizar la standardisation cuando la escala de una característica es irrelevante o engañosa.

La mise à l'échelle des fonctionnalités aide essentiellement à normaliser les données dans une plage particulière. Normalement, divers types de classes communes contiennent une fonction de mise à l'échelle des caractéristiques pour mettre automatiquement à l'échelle les caractéristiques. Cependant, la classe SVR n'est pas un type de classe couramment utilisé, nous devrions donc faire une mise à l'échelle des fonctionnalités avec Python.

Paso 4: adapter SVR à l'ensemble de données

Le noyau est la caractéristique la plus importante. Il existe plusieurs types de noyaux: linéaire, gaussianos, etc. Chacun est utilisé en fonction de l'ensemble de données. Pour plus d'informations à ce sujet, lis ça: Machine à vecteur de soutien (SVM) en Python et R

Paso 5. Prédire un nouveau résultat

Ensuite, la prédiction pour y_pred (6, 5) ce sera 170,370.

Paso 6. Affichage des résultats SVR (para una résolution más alta y una curva más suave)

graphique-7581076

C'est ce que nous obtenons en sortie: la ligne de meilleur ajustement qui a un nombre maximum de points. Assez précis!

Remarques finales

Nous pouvons considérer la régression des vecteurs de support comme la contrepartie de SVM aux problèmes de régression. SVR reconnaît la présence de non-linéarité dans les données et fournit un modèle de prédiction compétent.

J'aimerais entendre vos réflexions et vos idées sur l'utilisation de SVR pour l'analyse de régression.. Connectez-vous avec moi dans la section des commentaires ci-dessous et trouvons!

Abonnez-vous à notre newsletter

Nous ne vous enverrons pas de courrier SPAM. Nous le détestons autant que vous.

Haut-parleur de données