[PYTHON] Vorhersage der Immobilienpreise (Rendite durch lineare Regression (kaggle)) ver1.0

1. Einleitung

Dieses Mal werden wir das Problem der Verkaufspreisprognose lösen. Zunächst möchte ich eine Vorhersage aus einer sehr einfachen Regressionsgleichung erster Ordnung treffen. Ursprünglich war es eine wahre Freude, eine große Anzahl von Funktionen zu verarbeiten und zu optimieren, aber ich möchte zunächst eine einfache Vorhersage treffen.

Referenz-URL https://www.kaggle.com/katotaka/kaggle-prediction-house-prices

Die verwendete Version ist hier.

Python 3.7.6 numpy 1.18.1 pandas 1.0.1 matplotlib 3.1.3 scikit-learn 0.22.1

2 Über das Programm

Bibliothek usw.


import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
from sklearn.linear_model import LinearRegression
import seaborn as sns

#Einstellungen für die Inline-Anzeige in Jupyter Notebook (ohne diese wird das Diagramm in einem separaten Fenster geöffnet)
%matplotlib inline 

Ich importierte Pandas zum Laden von CSV, Numpy zum Verarbeiten von Zahlen, Matplotlib und Seaborn zum Zeichnen von Grafiken und sklern.linear_model für die Regression.

Trainingsdaten lesen


df = pd.read_csv("train.csv")
df

001.png

Aufgrund der Vielzahl von Funktionen ist es nicht möglich, alle auf einmal anzuzeigen, aber viele Wohnbedingungen (Fläche, Blick auf die Straße, Pool usw.) sind aufgeführt. Es bewertet und prognostiziert, ob diese Bedingungen den Verkaufspreis beeinflussen.

Merkmale mit einem hohen Korrelationskoeffizienten identifizieren


corrmat = df.corr()
k = 10 #number of variables for heatmap
cols = corrmat.nlargest(k, 'SalePrice')['SalePrice'].index
cm = np.corrcoef(df[cols].values.T)
sns.set(font_scale=1.25)
hm = sns.heatmap(cm, cbar=True, annot=True, square=True, fmt='.2f', annot_kws={'size': 10}, yticklabels=cols.values, xticklabels=cols.values)
plt.show()

002.png

Ich möchte ein Merkmal mit einem hohen Korrelationskoeffizienten in Bezug auf den Immobilienpreis finden. Werfen wir einen Blick auf die Wärmekarte des Meeres. Es ist ersichtlich, dass die Merkmalsmenge mit einem hohen Korrelationskoeffizienten mit SalePrice Overall Qual (Gesamtqualität) ist. Es ist leicht zu verstehen, dass der Preis umso höher ist, je höher die Qualität ist.

Regressive Analyse und Streudiagrammanzeige


X = df[["OverallQual"]].values
y = df["SalePrice"].values
slr = LinearRegression()
slr.fit(X,y)

#Erstellung von Streudiagrammen
plt.scatter(X,y)
plt.xlabel('OverallQual')
plt.ylabel('House Price($)')

#Anzeige der ungefähren Kurve
plt.plot(X, slr.predict(X), color='red')

#Grafikanzeige
plt.show()

003.png

Ich habe ein Diagramm der Beziehung zwischen dem Gesamtqual und dem Verkaufspreis erstellt. Der allgemeine Trend ist richtig. Wenn die Gesamtqualifikation jedoch niedrig ist, wird sie unterschätzt. Es ist auch ersichtlich, dass es eine große Variation gibt, bei der die Gesamtqualifikation hoch ist. Ich denke, dass diese durch andere Merkmalsgrößen genauer vorhergesagt werden können, aber dieses Mal werde ich sie so vorhersagen, wie sie sind.

Prognose


#Testdaten lesen
df_test = pd.read_csv('test.csv')

#Setzen Sie den Gesamtqual-Wert der Testdaten auf X._Zum Testen einstellen
X_test = df_test[["OverallQual"]].values

y_test_pred = slr.predict(X_test)
df_test[["Id", "SalePrice"]].to_csv("submission.csv", index = False)

Die Punktzahl bei der Übermittlung an kaggle betrug 0,84342 (von 4720 Teams auf dem 4563. Platz). Ab dem nächsten Artikel möchte ich es im Detail analysieren und eine gute Punktzahl erzielen.

Recommended Posts

Vorhersage der Immobilienpreise (Rendite durch lineare Regression (kaggle)) ver1.0
Lineare Regression
Vorhersage der Immobilienpreise (Datenvorverarbeitung: erstes Halbjahr) ver1.1
[Hands-on für Anfänger] Lesen Sie zaggles "Predicting Home Prices" Zeile für Zeile (5. Dummy von kategorialen Variablen)
[Hands-on für Anfänger] Lesen Sie zaggles "Predicting Home Prices" Zeile für Zeile (Teil 2: Bestätigung fehlender Werte)
[TensorFlow] Minimale quadratische lineare Regression durch Gradientenabstiegsmethode (steilste Abstiegsmethode)
[Hands-on für Anfänger] Lesen Sie zaggles "Predicting Home Prices" Zeile für Zeile (Teil 3: Vorbereitung zum Ausfüllen fehlender Werte)