[PYTHON] Kaggle ~ Home Preisprognose ② ~

Einführung

Zurück habe ich es durch lineare Regression implementiert, diesmal jedoch mit Nichtlinearität.

Ich habe die Datenvorverarbeitung unter Bezugnahme auf diesen Artikel weiter implementiert. "Data Preprocessing" -Kaggle Popular Tutorial

Erstellen Sie ein Modell

① LinearRegression ② Ridge-Regression (Ridge) ③ Unterstützung der Vektor-Maschinen-Regression (SVR) ④ RandomForestRegressor Ich habe ein Modell für diese vier gemacht.

#Erklärende und objektive Variablen
x = df_train[['OverallQual', 'YearBuilt', 'TotalBsmtSF', 'GrLivArea']]
y = df_train['SalePrice']

#Modul importieren
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_squared_error
#Trainingsdaten und Testdaten trennen
X_train, X_test, y_train, y_test = train_test_split(x, y, test_size=0.2, random_state=42)

Erstellen Sie eine Funktion zur Berechnung des mittleren quadratischen Fehlers

def calc_model(model):
    #Trainiere das Modell
    model.fit(X_train, y_train)
    # X_Voraussichtlicher Wert für den Test
    pred_y = model.predict(X_test)
    #Ermitteln Sie den durchschnittlichen quadratischen Fehler
    score = mean_squared_error(y_test, pred_y)
    return score

Lineare Regression

#Für die lineare Regression
from sklearn.linear_model import LinearRegression
#Modell bauen
lr = LinearRegression()
#Berechnen Sie den durchschnittlichen quadratischen Fehler
lr_score = calc_model(lr)
lr_score
# >>>Ausgabe
0.02824050462867693

Ridge kehrt zurück

#Zur Zeit von Ridge Rückkehr
from sklearn.linear_model import Ridge
#Modell bauen
ridge = Ridge()
#Berechnen Sie den durchschnittlichen quadratischen Fehler
ridge_score = calc_model(ridge)
ridge_score
# >>>Ausgabe
0.028202963714955512

Unterstützung der Regression von Vektormaschinen

#Zum Zeitpunkt der Unterstützung Vektor Maschine Regression
from sklearn.svm import SVR
#Modell bauen
svr = SVR()
#Berechnen Sie den durchschnittlichen quadratischen Fehler
svr_score = calc_model(svr)
svr_score
# >>>Ausgabe
0.08767857928794534

Zufällige Waldregression

#Zum Zeitpunkt der zufälligen Waldrückgabe
from sklearn.ensemble import RandomForestRegressor
forest = RandomForestRegressor()
#Berechnen Sie den durchschnittlichen quadratischen Fehler
forest_score = calc_model(forest)
forest_score
# >>>Ausgabe
0.03268455739481754

Infolgedessen war der mittlere quadratische Fehler der nichtlinearen Regression groß.

Vorverarbeitung von Testdaten

Vorhandensein oder Nichtvorhandensein fehlender Werte

#Vorverarbeitung von Testdaten
#Extrahieren Sie den Wert von Id
df_test_index = df_test['Id']
#Bestätigung fehlender Werte
df_test = df_test[['OverallQual', 'YearBuilt', 'TotalBsmtSF', 'GrLivArea']]
df_test.isnull().sum()
# >>>Ausgabe
OverallQual    0
YearBuilt      0
TotalBsmtSF    1
GrLivArea      0
dtype: int64

Ergänzen Sie den fehlenden Wert von TotalBsmtSF mit dem Durchschnittswert.

#Ergänzen Sie fehlende Werte mit Durchschnittswerten
df_test['TotalBsmtSF'] = df_test['TotalBsmtSF'].fillna(df_test['TotalBsmtSF'].mean())
#Überprüfen Sie, ob Werte fehlen
df_test.isnull().sum()
# >>>Ausgabe
OverallQual    0
YearBuilt      0
TotalBsmtSF    0
GrLivArea      0
dtype: int64

Es fehlen keine Werte.

Ausgabe in CSV-Datei

#Modell montieren
pred_y = ridge.predict(df_test)

#Erstellen eines Datenrahmens
submission = pd.DataFrame({'Id': df_test_index,
                          'SalePrice': np.exp(pred_y)})
#Ausgabe in CSV-Datei
submission.to_csv('submission.csv', index=False)

Das Ergebnis war 0,17184 und das Ergebnis stieg nicht an.

Recommended Posts

Kaggle ~ Home Preisprognose ② ~
Kaggle ~ Home Preisprognose ~
Kaggle House Preise ③ ~ Prognose / Einreichung ~
Herausforderung Kaggle [Hauspreise]
Aktienkursprognose 2 Kapitel 2
Preisschwankungsprognose für virtuelle Währungen
Aktienkursprognose 1 Kapitel 1
Python: Aktienkursprognose Teil 2
Kaggle House Preise ② ~ Modellierung ~
Kaggle House Preise ~ ~ Feature Engineering ~
Python: Aktienkursprognose Teil 1
Bitcoin-Preisprognose mit TensorFlow (LSTM)
[Python] Meine Aktienkursprognose [HFT]
Ich habe einen UNIQLO-Aktienprognosedatensatz an Kaggle gesendet
Aktienkursprognose mit maschinellem Lernen (Scikit-Learn)
Aktienkursprognose mit Deep Learning (TensorFlow)
Aktienprognose mit TensorFlow (LSTM) ~ Aktienprognose Teil 1 ~