PC & Mobile

régression linéaire simple en quatre lignes de code!

régression linéaire simple en quatre lignes de code!


Même vous pouvez construire un modèle d’apprentissage automatique. Sérieusement!

De bonnes données à elles seules ne racontent pas toujours toute l'histoire. Essayez-vous de savoir quel salaire devrait être basé sur les années d’expérience de quelqu'un? Avez-vous besoin d’examiner combien vous dépensez en publicité par rapport à vos ventes annuelles? La régression linéaire pourrait être exactement ce dont vous avez besoin!

GIF via GIPHY

La régression linéaire est un type d'analyse prédictive de base communément utilisé. C’est la technique statistique la plus largement utilisée. La régression linéaire quantifie la relation entre une ou plusieurs variables prédictives et une variable de résultat. Les modèles de régression linéaire sont utilisés pour montrer (ou prédire) la relation entre deux variables ou facteurs. L'analyse de régression est couramment utilisée pour montrer la corrélation entre deux variables.

La régression linéaire examine la relation entre les données que vous avez et les données que vous souhaitez prédire.

Vous pouvez, par exemple, consulter des informations sur les joueurs d'une équipe de baseball et prédire à quel point ils pourraient bien réussir cette saison. Vous voudrez peut-être examiner certaines variables relatives à une entreprise et prédire que leurs actions pourraient bien faire. Vous voudrez peut-être simplement examiner le nombre d’heures consacrées à l’étude et leur efficacité à un test, ou les notes des devoirs des étudiants pour déterminer dans quelle mesure elles pourraient bien réussir leurs tests. C’est une technique sérieusement utile!

Photo de StockSnap via Pixabay
Rappelez-vous juste: la corrélation n'est pas un lien de causalité! Le simple fait qu’il existe une relation entre deux variables ne signifie pas qu’une variable a causé l’autre variable! L'analyse de régression n'est pas utilisée pour prédire les relations de cause à effet. Il peut examiner la relation entre les variables. Il peut examiner dans quelle mesure les variables sont associées les unes aux autres. C’est à vous de regarder de plus près ces relations.

Quelques termes importants:

La variable que l’équation de votre modèle de régression linéaire prédit est appelée la variable dépendante. Nous appelons celui-là y. Les variables utilisées pour prédire la variable dépendante sont appelées la variables indépendantes. Nous les appelons X.

Vous pouvez penser comme si la prédiction (y) dépend des autres variables (X). Qui fait y la variable dépendante!

Dans analyse de régression linéaire simple, chaque observation est composée de deux variables. Ce sont la variable indépendante et la variable dépendante. Analyse de régression multiple examine deux variables indépendantes ou plus et leur corrélation avec la variable indépendante. L'équation qui décrit comment y est liée à X est appelé le Modèle de régression!

La régression a d'abord été étudiée en profondeur par Sir Francis Galton, un homme aux intérêts très variés. Alors qu'il était un personnage très problématique avec beaucoup de croyances qui méritaient d'être contredites, il a écrit des livres contenant des informations intéressantes sur le traitement des blessures causées par la lance et le désengagement de votre cheval à partir des sables mouvants. Il a également effectué des travaux utiles sur les empreintes digitales, les tests d’audition et a même conçu la première carte météo. Il a été fait chevalier en 1909.

Tout en étudiant des données sur les tailles relatives entre les parents et leurs enfants chez les plantes et les animaux, il a observé que les parents plus grands que la moyenne avaient des enfants plus grands que la moyenne, mais que ces enfants seraient moins grands en termes de position relative dans leur propre situation. génération. Il l'a appelé régression vers la médiocrité. Ce serait Régression à la moyenne en termes modernes.

(Je dois cependant dire que l'expression «régression vers la médiocrité» a un certain éclat que je dois intégrer dans ma vie quotidienne ...)

GIF via GIPHY

Pour être clair, cependant, nous parlons de attentes (prévisions) et pas une certitude absolue!

A quoi servent les modèles de régression?

Les modèles de régression sont utilisés pour prédire une valeur réelle, par exemple un salaire ou une taille. Si votre variable indépendante est temps, alors vous prévoyez des valeurs futures. Sinon, votre modèle prédit des valeurs présentes mais inconnues. Voici des exemples de techniques de régression:

  • Régression simple
  • Régression multiple
  • Régression polynomiale
  • Régression du vecteur de support

Supposons que vous examiniez certaines données comprenant les années d’expérience et le salaire des employés. Vous voulez regarder la corrélation entre ces deux chiffres. Vous dirigez peut-être une nouvelle entreprise ou une petite entreprise qui a en quelque sorte défini les chiffres au hasard.

Alors, comment pouvez-vous trouver la corrélation entre ces deux variables? Pour résoudre ce problème, nous allons créer un modèle qui nous indiquera quelle est la ligne la mieux adaptée à cette relation.

Intuition

Voici une formule de régression linéaire simple:

(Vous pouvez reconnaître cela comme l'équation d'une pente ou d'une ligne de tendance issue de l'algèbre du lycée.)

Dans cette équation, y est la variable dépendante, ce que vous essayez d’expliquer. Pour le reste de cet article, y sera le salaire d’un employé après un certain nombre d’années d’expérience.

Vous pouvez voir la variable indépendante ci-dessus. C’est la variable associée au changement de vos valeurs prédites. La variable indépendante peut être à l'origine du changement ou simplement associée au changement. Rappelles toi, la régression linéaire ne prouve pas la causalité!

Le coefficient est la façon dont vous expliquez qu'un changement dans votre variable indépendante n'est peut-être pas totalement égal à un changement dans y.

Maintenant, nous voulons examiner les preuves. Nous voulons que nos données soient alignées de la manière la mieux adaptée à nos données. Une ligne de régression peut montrer une relation linéaire positive (la ligne ressemble à une pente ascendante), une relation linéaire négative (la ligne inclinée) ou vraiment aucune relation (une ligne plate).

La constante est le point où la ligne croise l'axe vertical. Par exemple, si vous regardez 0 ans d'expérience dans le graphique ci-dessous, votre salaire serait d'environ 30 000 $. Ainsi, la constante dans le graphique ci-dessous serait d'environ 30 000 $.

Plus la pente est raide, plus vous aurez d'argent pour vos années d'expérience. Par exemple, avec une année d'expérience supplémentaire, votre salaire (y) augmente de 10 000 dollars, mais avec une pente plus abrupte, vous risquez de vous retrouver avec plus de 15 000 dollars. Avec une pente négative, vous perdriez de l'argent avec l'expérience, mais j'espère vraiment que vous ne travaillerez pas longtemps pour cette entreprise ...

Comment la régression linéaire simple trouve-t-elle cette ligne?

Lorsque nous regardons un graphique, nous pouvons tracer des lignes verticales de la ligne à nos observations réelles. Vous pouvez voir les observations réelles sous forme de points, tandis que la ligne affiche les observations du modèle (les prédictions).

La ligne que nous avons tracée correspond à la différence entre ce que gagne un employé et ce qu’il modélise (selon les prévisions). Nous regarderions le somme minimale de carrés pour trouver la meilleure ligne, ce qui signifie simplement que vous devez prendre la somme de toutes les différences au carré et trouver le minimum.

Cela s'appelle le moindres carrés ordinaires méthode!

Alors, comment faisons-nous cela?

D'abord les importations!

importer numpy en tant que np
importer matplotlib.pyplot en tant que plt
importer des pandas en tant que pd

Maintenant, pré-traitons nos données! Si vous ne connaissez pas grand-chose au nettoyage et au prétraitement des données, vous pouvez consulter cet article. Il vous guidera à travers l'importation de bibliothèques, la préparation de vos données et la mise à l'échelle des fonctionnalités.

Nous allons copier et coller le code de cet article et apporter deux modifications minimes. Nous devrons bien sûr changer le nom de notre ensemble de données. Ensuite, nous examinerons les données. Pour notre exemple, disons pour nos employés, nous avons une colonne d’années d’expérience et une colonne de salaires, c’est tout. Gardant à l'esprit que notre index commence à 0, nous allons séparer la dernière colonne de nos données pour la variable dépendante, comme nous l'avons déjà configuré. Cependant, cette fois-ci, nous allons saisir la deuxième colonne de notre variable indépendante, nous n’y apporterons donc qu'un changement mineur.

dataset = pd.read_csv ('salaire.csv')
X = dataset.iloc[:, :-1].valeurs
y = dataset.iloc[:, 1].valeurs

Maintenant, X est une matrice de caractéristiques (notre variable indépendante) et y est un vecteur de la variable dépendante. Parfait!

Il est temps de scinder nos données en un ensemble de formation et un ensemble de test. Nous ferions normalement une répartition 80/20 pour nos données de formation et de test. Ici, cependant, nous travaillons avec un petit jeu de données de seulement 30 observations. Peut-être que cette fois-ci, nous allons diviser nos données pour obtenir 20 observations d’entraînement et une taille de test de 10.

from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split (X, y, test_size = 1/3, random_state = 0)

Vous avez un X_train, X_test, y_train et y_test! Vous êtes prêt à partir!

Photo de Thomas William sur Unsplash

Nous définissons un état aléatoire de 0 afin que nous puissions tous obtenir le même résultat. (Il peut y avoir des facteurs aléatoires dans les calculs, et je veux m'assurer que nous sommes tous sur la même page afin que personne ne soit nerveux.)

Nous allons former notre modèle sur l’ensemble d’entraînement, puis prédire ensuite les résultats en fonction de nos informations. Notre modèle sera apprendre les corrélations sur le set d'apprentissage. Ensuite, nous testerons ce qu’il a appris en le faisant prédire des valeurs avec notre ensemble de tests. Nous pouvons comparer nos résultats avec les résultats réels sur l'ensemble de tests pour voir comment notre modèle se comporte!

UNEtoujours diviser vos données en ensembles de formation et de test! Si vous testez vos résultats avec les mêmes données que celles utilisées auparavant, vous obtiendrez probablement de très bons résultats, mais votre modèle n’est pas bon! Il a juste mémorisé ce que vous souhaitiez faire, plutôt que d'apprendre tout ce qu'il peut utiliser avec des données inconnues. C’est ce qu’on appelle la suralimentation, et cela signifie que vous n'a pas construit un bon modèle!

Mise à l'échelle des fonctionnalités

En fait, nous n’avons besoin de faire aucune mise à l’échelle ici!

Photo par Gift Habeshaw sur Unsplash

Régression linéaire

Nous pouvons maintenant adapter le modèle à notre kit de formation!

Nous utiliserons Scikit-learn learn pour cela. Tout d’abord, nous allons importer la bibliothèque de modèles linéaires et la classe de régression linéaire. Ensuite, nous allons créer un objet de la classe - le régresseur. Nous allons utiliser une méthode (la méthode fit) pour adapter l’objet régresseur que nous créons au jeu d’entraînement. Pour créer l'objet, nous le nommons, puis appelons-le en utilisant la parenthèse. Nous pouvons faire tout cela en environ trois lignes de code!

Importons la régression linéaire de Scikit-Learn pour pouvoir l’utiliser. Entre les parenthèses, nous spécifierons les données que nous voulons utiliser pour que notre modèle sache exactement ce que nous voulons adapter. Nous voulons utiliser à la fois X_train et y_train, car nous travaillons avec toutes nos données d’entraînement.

Vous pouvez consulter la documentation si vous souhaitez plus de détails!

Nous sommes maintenant prêts à créer notre régresseur et à l’adapter à nos données d’entraînement.

from sklearn.linear_model importer LinearRegression
regressor = LinearRegression ()
regressor.fit (X_train, y_train)

Le voilà! Nous utilisons une régression linéaire simple sur nos données et nous sommes prêts à tester notre capacité de prévision sur notre ensemble de tests!

C'est ce que l'apprentissage machine est! Nous avons créé une machine, le régresseur, et nous lui avons appris la corrélation entre années d’expérience et salaire sur le plateau d’entraînement.

Maintenant, il peut prédire les données futures en fonction des informations dont il dispose. Notre machine est prête à prévoir le salaire d'un nouvel employé en fonction du nombre d'années d'expérience de l'employé!

Utilisons notre régresseur pour prédire de nouvelles observations. Nous voulons voir comment la machine a appris en regardant ce qu’elle fait avec de nouvelles observations.

Nous allons créer un vecteur de valeurs prédites. C’est un vecteur de prédiction de variables dépendantes que nous appellerons y_pred. Pour ce faire, nous pouvons utiliser le régresseur que nous avons créé et entraîné et utiliser la méthode Pred. Nous devons spécifier les prévisions à effectuer. Nous voulons donc nous assurer d'inclure l'ensemble de tests. Pour notre paramètre d’entrée dans regressor.predict, nous souhaitons spécifier la matrice des caractéristiques des nouvelles observations, nous allons donc spécifier X_test.

y_pred = regressor.predict (X_test)

Sérieusement. Cela prend une seule ligne de code!

Maintenant, y_test sont les salaires réels des 10 observations de l'ensemble de tests et y_pred sont les salaires prévus de ces 10 employés prédits par notre modèle.

Tu l'as fait! Régression linéaire en quatre lignes de code!

GIF via GIPHY

Visualisation

Visualisons les résultats! Nous devons voir quelle est la différence entre nos prévisions et les résultats réels.

Nous pouvons tracer les graphiques afin d'interpréter le résultat. Premièrement, nous pouvons tracer les observations réelles en utilisant plt.scatter pour créer un nuage de points. (Nous avons importé matplotlib.pyplot plus tôt comme plt).

Nous allons d’abord examiner l’entraînement, nous allons donc tracer X_train sur les coordonnées X et y_train sur les coordonnées y. Ensuite, nous voulons probablement de la couleur. Nous ferons nos observations en bleu et notre droite de régression (prévisions) en rouge. Pour la ligne de régression, nous utiliserons à nouveau X_train pour les coordonnées X, puis les prédictions des observations X_train.

Imaginons aussi un peu plus avec un titre et des étiquettes pour l’axe des x et des y.

plt.scatter (X_train, y_train, color = 'blue')
plt.plot (X_train, regressor.predict (X_train), color = 'red')
plt.title ('Salary vs Experience (Training set)')
plt.xlabel ('Années d'expérience')
plt.ylabel ('Salaire')
plt.show ()

Nous pouvons maintenant voir nos points bleus, qui sont nos vraies valeurs et nos valeurs prédites le long de la ligne rouge!

Faisons de même pour l’ensemble de test! Nous allons changer le titre du test et changer notre "train" en "test" dans le code.

plt.scatter (X_test, y_test, color = 'blue')
plt.plot (X_train, regressor.predict (X_train), color = 'red')
plt.title ('Salary vs Experience (Test set)')
plt.xlabel ('Années d'expérience')
plt.ylabel ('Salaire')
plt.show ()

Assurez-vous de noter que nous ne modifions pas X_train en X_test dans la deuxième ligne. Notre régresseur est déjà formé par l'ensemble d'entraînement. Lorsque nous nous sommes entraînés, nous avons obtenu une équation de modèle unique. Si nous la remplaçons, nous obtiendrons la même ligne et nous construirons probablement de nouveaux points de la même ligne de régression.

C'est un très bon modèle!

Notre modèle fait un bon travail de prévision des salaires de ces nouveaux employés. Certaines des observations réelles sont les mêmes que les prédictions, ce qui est excellent. Il n’existe pas de dépendance à 100% entre le y et X variables, de sorte que certaines des prédictions ne seront pas complètement exactes.

Tu l'as fait!

Félicitations pour la création de votre tout premier modèle d’apprentissage automatique !!!

Photo de Free-Photos via Pixabay

Comme toujours, si vous faites quelque chose de cool avec cette information, faites-le savoir dans les réponses ci-dessous ou contactez-nous à tout moment sur LinkedIn @annebonnerdata!

Vous voudrez peut-être consulter certains de ces articles aussi:

Merci d'avoir lu!

Show More

SupportIvy

SupportIvy.com : Un lieu pour partager le savoir et mieux comprendre le monde. Meilleure plate-forme de support gratuit pour vous, Documentation &Tutoriels par les experts.

Related Articles

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Close
Close