Prédiction des prix des maisons à l'aide de régression linéaire

Prédiction des prix des maisons à l'aide de régression linéaire
Si vous avez déjà appris l'apprentissage automatique supervisé, vous devez avoir entendu la régression linéaire. C'est un algorithme de l'apprentissage automatique supervisé dans lequel la sortie prévue est continue avec une pente constante. Il est utilisé pour prédire les valeurs dans une plage continue au lieu de classer les valeurs dans les catégories. La régression linéaire est utilisée pour effectuer différentes tâches comme la prévision des prix des maisons. Si vous souhaitez également connaître la méthode pour découvrir la prévision des prix des maisons, alors lisez notre guide complètement. Ce guide considère et explique chaque facteur pour effectuer facilement la prévision des prix des maisons dans la régression linéaire.

Qu'est-ce que la régression linéaire?

Dans la science des données, la régression linéaire est un modèle d'apprentissage automatique supervisé qui tente de modéliser une relation linéaire entre les variables dépendantes (Y) et les variables indépendantes (X). Chaque observation évaluée avec un modèle, la valeur réelle de la cible (Y) est comparée à la valeur prédite de la cible (Y), et les principales différences dans ces valeurs sont appelées résidus. Le modèle de régression linéaire vise à minimiser la somme de tous les résidus carrés. Voici la représentation mathématique de la régression linéaire:

Y = a0+un1X + ε

Dans l'équation ci-dessus:

Y = Variable dépendante

X = Variable indépendante

un0 = Interception de la ligne qui offre un DOF ou un degré de liberté supplémentaire.

un1 = Coefficient de régression linéaire, qui est un facteur d'échelle à chaque valeur d'entrée.

ε = Erreur aléatoire

N'oubliez pas que les valeurs des variables X et Y sont des ensembles de données de formation pour la représentation du modèle de la régression linéaire.

Lorsqu'un utilisateur met en œuvre une régression linéaire, les algorithmes commencent à trouver la meilleure ligne d'ajustement en utilisant un0 et un1. De cette manière, il devient plus précis pour les points de données réels; Puisque nous reconnaissons la valeur de un0 et un1, Nous pouvons utiliser un modèle pour prédire la réponse.

  • Comme vous pouvez le voir dans le diagramme ci-dessus, les points rouges sont des valeurs observées pour X et Y.
  • La ligne noire, qui est appelée une ligne de la meilleure ajustement, minimise une somme d'une erreur au carré.
  • Les lignes bleues représentent les erreurs; c'est une distance entre la ligne des valeurs les mieux ajustées et observées.
  • La valeur du un1est la pente de la ligne noire.

Régression linéaire simple

Ce type de régression linéaire fonctionne en utilisant la forme traditionnelle de l'interception de pente dans laquelle A et B sont deux coefficients qui sont élaborés «apprendre» et trouver les prédictions précises. Dans l'équation ci-dessous, X signifie des données d'entrée et Y signifie prédiction.

Y = bx + a

Régression multivariable

Une régression multivariable est un peu plus complexe que les autres procédures. Dans l'équation ci-dessous, 𝒘 représente les poids ou le coefficient qui nécessite d'être élaboré. Toutes les variables 𝑥1, 𝑥2, et 𝑥3 Attributs d'information des observations.

Prédiction des prix des maisons à l'aide de régression linéaire

Examinons maintenant chaque étape de la prédiction des prix des maisons en utilisant la régression linéaire. Considérez une entreprise de biens immobiliers avec des ensembles de données contenant les prix de l'immobilier d'une région spécifique. Le prix d'une propriété est basé sur des facteurs essentiels comme les chambres, les zones et le stationnement. Principalement, une entreprise immobilière exige:

  • Trouvez la variable qui affecte le prix d'une maison.
  • Création d'un modèle linéaire quantitativement lié au prix de la maison avec des variables comme les zones, le nombre de chambres et de salle de bain, etc.
  • Pour trouver la précision d'un modèle, cela signifie dans quelle mesure les variables peuvent prédire les prix d'une maison.

Vous trouverez ci-dessous le code pour configurer l'environnement, et nous utilisons Scikit-Learn pour prédire le prix de la maison:

Importer des pandas en tant que PD
Importer Numpy comme NP
Importer Seaborn comme SNS
Importer Matplotlib.pypllot comme plt
% Matplotlib en ligne
de Sklearn.Linear_Model Import Lineargression
de Sklearn.Model_Selection Import Train_test_split, Cross_Val_score
de Sklearn.Les métriques importent Mean_squared_error

Après cela, lisez les prix des données de la maison:

maisons = PD.read_csv ("kc_house_data.CSV ")
Maisons.diriger()

Voici le tableau avec les détails complets (ensemble de données) de différentes maisons:

Maintenant, nous allons effectuer le nettoyage des données et l'analyse exploratoire en utilisant le code ci-dessous:

#Check pour Nulls dans les données
Maisons.isNull ().somme()

Selon l'ensemble de données, il n'y a pas de nulls disponibles:

Out [3]: id 0
Date 0
prix 0
chambres 0
Salles de bain 0
sqft_living 0
étages 0
front de mer 0
Voir 0
condition 0
grade 0
SQFT_BASEMENT 0
yr_built 0
yr_renovated 0
code postal 0
lat 0
long 0
Sqft_living 15 0
Sqft_lot 15 0
DTYPE: INT64

Après cela, nous construisons un modèle de régression linéaire. Préparez les données qui définiront la variable prédictrice et de réponse:

# Créer X et Y
featuor_cols = 'sqft_living'
x = maisons [caractéristique_cols] # prédicteur
y = maisons.Prix ​​# Réponse

Nous pouvons diviser les données en train et tester; Le train ou le test de test présente deux sous-ensembles créés au hasard de nos données. Ces données de test / train sont utilisées pour s'adapter à l'algorithme d'apprentissage afin qu'il puisse apprendre à prédire. L'ensemble de test que nous avons utilisé pour obtenir une idée de travailler le modèle avec de nouvelles données.

# diviser les données en train et tester
x_train, x_test, y_train, y_test = Train_test_split (
x, y, test_size = 0.2)
# L'ensemble de test sera de 20% de l'ensemble de données

Après cela, montez le modèle sur l'ensemble d'entraînement.

# instancier, ajustement
linreg = lineargression ()
linreg.fit (x_train, y_train)

Une fois que nous avons installé le modèle, nous devons imprimer tous les coefficients.

Imprimer Linreg.intercepter_
Imprimer Linreg.coef_
-46773.65
[282.29] # pour une augmentation de 1 mètre carré de taille de la maison,
# Le prix de la maison augmentera d'environ 282 $ en moyenne

La valeur de y sera égale à un0 Lorsque la valeur de x = 0; Dans ce cas, ce sera le prix de la maison lorsque le SQFT_LIVING sera nul. Le A1 Le coefficient est le changement dans le y divisé en modifiant la valeur en x. L'augmentation d'un mètre carré dans la taille de la maison est associée à l'augmentation des prix de 282 dollars.

Maintenant, nous pouvons prédire le prix de la maison de vie de 1000 pieds carrés en utilisant le modèle suivant:

# manuellement
Prix ​​= -46773.65 + 1000 * 282.29
# en utilisant le modèle
linreg.prédire (1000)
Array ([238175.93])

Une fois que nous avons terminé avec la procédure ci-dessus, calculez une erreur au carré RMSE ou Root, c'est la métrique la plus couramment utilisée pour évaluer le modèle de régression sur un ensemble de tests:

mse = mean_squared_error (y_test, linreg.prédire (x_test))
NP.SQRT (MSE)
259163.48
linreg.Score (x_test, y_test)
0.5543

Donc, comme vous pouvez le voir, nous avons obtenu une erreur carrée moyenne de Root de 259163.48 après avoir prédit les prix de la maison. Nous utilisons une fonctionnalité unique dans le modèle ci-dessus; Le résultat était attendu. Cependant, vous pouvez améliorer le modèle en ajoutant plus de fonctionnalités.

Conclusion

Nous espérons que notre guide détaillé sur la prédiction des prix des maisons à l'aide de la régression linéaire vous a été utile. Comme nous l'avons mentionné précédemment, il existe plusieurs régression linéaire telle qu'une régression simple et une régression multivariée. Nous avons principalement utilisé une régression simple pour prédire facilement le prix de la maison. Cependant, vous pouvez utiliser une régression multivariable pour prédire les résultats plus précisément en utilisant différentes variables. En dehors de celui-ci, nous avons utilisé un ensemble de données complet qui a des informations précises concernant les maisons. Principalement, tous les codes et bibliothèques ci-dessus que nous avons utilisés ne sont pas uniques car il existe une procédure spécifique pour effectuer la procédure de prédiction de la maison par régression linéaire.