Hauspreisvorhersage unter Verwendung einer linearen Regression

Hauspreisvorhersage unter Verwendung einer linearen Regression
Wenn Sie jemals etwas über überwachtes maschinelles Lernen erfahren haben, müssen Sie eine lineare Regression gehört haben. Es ist ein Algorithmus des überwachten maschinellen Lernens, bei dem die vorhergesagte Ausgabe mit einer konstanten Steigung kontinuierlich ist. Es wird verwendet, um die Werte in einem kontinuierlichen Bereich vorherzusagen, anstatt die Werte in den Kategorien zu klassifizieren. Lineare Regression wird zur Ausführung verschiedener Aufgaben wie der Vorhersage des Hauspreises verwendet. Wenn Sie auch die Methode wissen möchten, um die Vorhersage des Immobilienpreises herauszufinden, lesen Sie unseren Leitfaden vollständig. Dieser Leitfaden berücksichtigt und erklärt jeden Faktor, um die Vorhersage des Immobilienpreises in der linearen Regression leicht durchzuführen.

Was ist lineare Regression?

In der Datenwissenschaft ist die lineare Regression ein überwachtes maschinelles Lernmodell, das versucht, eine lineare Beziehung zwischen abhängigen Variablen (Y) und unabhängigen Variablen (x) zu modellieren. Jede bewertete Beobachtung mit einem Modell, dem tatsächlichen Wert des Ziels (y) wird mit dem vorhergesagten Wert des Ziels (Y) verglichen, und die Hauptunterschiede in diesen Werten werden als Residuen bezeichnet. Das lineare Regressionsmodell zielt darauf ab, die Summe aller quadratischen Residuen zu minimieren. Hier ist die mathematische Darstellung der linearen Regression:

Y = a0+A1X+ ε

In der obigen Gleichung:

Y = Abhängige Variable

X = Unabhängige Variable

A0 = Abfang der Linie, die zusätzlichen DOF oder Freiheitsgrad bietet.

A1 = Linearer Regressionskoeffizient, der ein Skalierungsfaktor für jeden Eingangswert ist.

ε = Zufallsfehler

Denken Sie daran, dass die Werte von X- und Y -Variablen Schulungsdatensätze für die Modelldarstellung der linearen Regression sind.

Wenn ein Benutzer eine lineare Regression implementiert, finden Algorithmen die beste Anpassungslinie mithilfe der Leitung A0 Und A1. Auf diese Weise wird es den tatsächlichen Datenpunkten genauer; Da erkennen wir den Wert von A0 Und A1, Wir können ein Modell zur Vorhersage der Antwort verwenden.

  • Wie Sie im obigen Diagramm sehen können, werden die roten Punkte sowohl für x als auch für y beobachtet.
  • Die schwarze Linie, die als Linie von Best Fit bezeichnet wird, minimiert eine Summe eines quadratischen Fehlers.
  • Die blauen Zeilen repräsentieren die Fehler; Es ist ein Abstand zwischen der Linie der besten Passform und beobachteten Werte.
  • Der Wert der A1ist der Hang der schwarzen Linie.

Einfache lineare Regression

Diese Art von linearer Regression verwendet die herkömmliche Form von Steigabschnitt. In der folgenden Gleichung steht X für Eingabedaten und Y steht für die Vorhersage für die Vorhersage.

Y = bx + a

Multivariable Regression

Eine multivariable Regression ist etwas komplexer als andere Verfahren. In der folgenden Gleichung steht 𝒘 für die Gewichte oder den Koeffizienten, der ausgearbeitet werden muss. Alle Variablen 𝑥1, 𝑥2, und 𝑥3 Informationsattribute der Beobachtungen.

Hauspreisvorhersage unter Verwendung einer linearen Regression

Betrachten wir nun jeden Schritt für die Vorhersage des Immobilienpreises unter Verwendung einer linearen Regression. Betrachten Sie ein Unternehmen von Immobilien mit Datensätzen, die die Immobilienpreise einer bestimmten Region enthalten. Der Preis für eine Immobilie basiert auf wesentlichen Faktoren wie Schlafzimmern, Bereichen und Parkplätzen. Vor allem ein Immobilienunternehmen erfordert:

  • Finden Sie die Variable, die den Preis eines Hauses beeinflusst.
  • Erstellen eines linearen Modells quantitativ mit dem Hauspreis mit Variablen wie Bereichen, Anzahl der Zimmer und Badezimmer usw.
  • Um die Genauigkeit eines Modells zu finden, bedeutet dies, wie gut die Variablen die Preise eines Hauses vorhersagen können.

Im Folgenden finden Sie den Code, um die Umgebung einzurichten, und wir verwenden Scikit-Learn, um den Immobilienpreis vorherzusagen:

Pandas als PD importieren
Numph als NP importieren
Importieren Sie Seeborn als SNS
Matplotlib importieren.Pyplot als PLT
%Matplotlib Inline
von Sklearn.linear_model import linearregression
von Sklearn.model_selection importieren train_test_split, cross_val_score
von Sklearn.Metriken importieren Mean_Squared_error

Lesen Sie danach die Preisedaten des Hauses:

Häuser = PD.read_csv ("kc_house_data.CSV ")
Häuser.Kopf()

Hier ist die Tabelle mit den vollständigen Details (Datensatz) verschiedener Häuser:

Jetzt werden wir die Datenreinigung und die explorative Analyse mit dem folgenden Code durchführen:

#Conck für Nulls in den Daten
Häuser.ist Null().Summe()

Nach dem Datensatz sind keine Nulls verfügbar:

Aus [3]: ID 0
Datum 0
Preis 0
Schlafzimmer 0
Badezimmer 0
sqft_living 0
Böden 0
Uferpromenade 0
Ansicht 0
Bedingung 0
Klasse 0
sqft_basement 0
yr_built 0
yr_renovated 0
Postleitzahl 0
lat 0
lang 0
Sqft_living 15 0
SQFT_LOT 15 0
DTYPE: INT64

Danach bauen wir ein lineares Regressionsmodell auf. Bereiten Sie die Daten vor, die die Prädiktor- und Antwortvariable definieren:

# X und Y erstellen
feature_cols = 'sqft_living'
x = Häuser [feature_cols] # Prädiktor
y = Häuser.Preis # Antwort

Wir können Daten in den Zug und Test aufteilen. Der Zug oder der Test aufgeteilt enthält zwei zufällig erstellte Teilmengen unserer Daten. Diese Test-/Zugdaten werden verwendet, um den Lernalgorithmus anzupassen, damit sie lernen können, wie man vorhergesagt wird. Der Testsatz, den wir verwendet haben, um eine Idee zu erhalten, das Modell mit neuen Daten zu arbeiten.

# Daten in Zug und Test teilen
x_train, x_test, y_train, y_test = train_test_split (
x, y, test_size = 0.2)
# Der Testsatz beträgt 20% des gesamten Datensatzes

Passen Sie danach das Modell in das Trainingssatz ein.

# instanziieren, fit fit
linreg = linearRegression ()
Linreg.fit (x_train, y_train)

Sobald wir das Modell einfügen, müssen wir alle Koeffizienten drucken.

LINGINREG.abfangen_
LINGINREG.coef_
-46773.65
[282.29] # für einen Anstieg von 1 Quadratmeter den Hausgröße,
# Der Immobilienpreis steigt im Durchschnitt um ~ 282 US -Dollar

Der Wert von y ist gleich a0 wenn der Wert von x = 0; In diesem Fall wird es der Preis des Hauses sein, wenn das SQFT_Living Null ist. Die a1 Koeffizient ist die Änderung der y geteilt, indem der Wert in x geändert wird. Das Inkrement des einen Quadratmeter großen Messgeräts in der Größe des Hauses ist mit dem Preisinkrement von 282 Dollar verbunden.

Jetzt können wir den Preis von 1000 Quadratfuß Living House unter Verwendung des folgenden Modells vorhersagen:

# manuell
Preis = -46773.65 + 1000*282.29
# Verwenden des Modells
Linreg.vorhersagen (1000)
Array ([238175).93])

Sobald wir mit der obigen Prozedur durchgeführt haben, berechnen Sie einen RMSE- oder Root -Mittelwert für quadratische Fehler, es ist die am häufigsten verwendete Metrik zur Bewertung des Regressionsmodells in einem Testsatz:

MSE = Mean_Squared_error (y_test, Linreg.prognostizieren (x_test))
np.SQRT (MSE)
259163.48
Linreg.Score (x_test, y_test)
0.5543

Wie Sie das sehen können, haben wir einen quadratischen Fehler von 259163 in einem root gemeinen.48 Nach Vorhersage der Preise des Hauses. Wir verwenden eine einzelne Funktion im obigen Modell. Das Ergebnis wurde erwartet. Sie können das Modell jedoch verbessern, indem Sie weitere Funktionen hinzufügen.

Abschluss

Wir hoffen. Wie wir bereits erwähnt haben, gibt es mehrere lineare Regressionen wie einfache Regression und multivariable Regression. In erster Linie haben wir eine einfache Regression verwendet, um den Preis des Hauses leicht vorherzusagen. Sie können jedoch eine multivariable Regression verwenden, um die Ergebnisse genauer mit verschiedenen Variablen vorherzusagen. Abgesehen davon haben wir einen vollständigen Datensatz verwendet, der genaue Informationen zu den Häusern enthält. Vor allem sind alle oben genannten Codes und Bibliotheken nicht eindeutig, da es ein spezifisches Verfahren zur Durchführung des Hausvorhersageverfahrens durch lineare Regression gibt.