Kaggle ~ Prévision de prix de l'immobilier ② ~

introduction

Précédente, je l'ai implémenté par régression linéaire, mais cette fois je l'ai implémenté en utilisant la non-linéarité.

J'ai continué à implémenter le prétraitement des données en me référant à cet article. "Prétraitement des données" - Tutoriel populaire Kaggle

Créer un modèle

① Régression linéaire ② Régression Ridge (Ridge) ③ Prise en charge de la régression de la machine vectorielle (SVR) ④ RandomForestRegressor J'ai fait un modèle pour ces quatre.

#Variables explicatives et objectives
x = df_train[['OverallQual', 'YearBuilt', 'TotalBsmtSF', 'GrLivArea']]
y = df_train['SalePrice']

#Module d'importation
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_squared_error
#Séparez les données d'entraînement et les données de test
X_train, X_test, y_train, y_test = train_test_split(x, y, test_size=0.2, random_state=42)

Créer une fonction pour calculer l'erreur quadratique moyenne

def calc_model(model):
    #Former le modèle
    model.fit(X_train, y_train)
    # X_Valeur prédite pour le test
    pred_y = model.predict(X_test)
    #Obtenez l'erreur quadratique moyenne
    score = mean_squared_error(y_test, pred_y)
    return score

Régression linéaire

#Pour la régression linéaire
from sklearn.linear_model import LinearRegression
#Construire un modèle
lr = LinearRegression()
#Calculer l'erreur quadratique moyenne
lr_score = calc_model(lr)
lr_score
# >>>production
0.02824050462867693

Retour de crête

#Au moment du retour de Ridge
from sklearn.linear_model import Ridge
#Construire un modèle
ridge = Ridge()
#Calculer l'erreur quadratique moyenne
ridge_score = calc_model(ridge)
ridge_score
# >>>production
0.028202963714955512

Régression de la machine vectorielle de soutien

#Au moment de la régression de la machine vectorielle de support
from sklearn.svm import SVR
#Construire un modèle
svr = SVR()
#Calculer l'erreur quadratique moyenne
svr_score = calc_model(svr)
svr_score
# >>>production
0.08767857928794534

Régression forestière aléatoire

#Au moment du retour aléatoire de la forêt
from sklearn.ensemble import RandomForestRegressor
forest = RandomForestRegressor()
#Calculer l'erreur quadratique moyenne
forest_score = calc_model(forest)
forest_score
# >>>production
0.03268455739481754

En conséquence, l'erreur quadratique moyenne de la régression non linéaire était importante.

Prétraitement des données de test

Présence ou absence de valeurs manquantes

#Prétraitement des données de test
#Extraire la valeur de Id
df_test_index = df_test['Id']
#Confirmation des valeurs manquantes
df_test = df_test[['OverallQual', 'YearBuilt', 'TotalBsmtSF', 'GrLivArea']]
df_test.isnull().sum()
# >>>production
OverallQual    0
YearBuilt      0
TotalBsmtSF    1
GrLivArea      0
dtype: int64

Complétez la valeur manquante de TotalBsmtSF avec la valeur moyenne.

#Compléter les valeurs manquantes avec des valeurs moyennes
df_test['TotalBsmtSF'] = df_test['TotalBsmtSF'].fillna(df_test['TotalBsmtSF'].mean())
#Vérifiez les valeurs manquantes
df_test.isnull().sum()
# >>>production
OverallQual    0
YearBuilt      0
TotalBsmtSF    0
GrLivArea      0
dtype: int64

Il n'y a aucune valeur manquante.

Sortie vers un fichier CSV

#Ajuster le modèle
pred_y = ridge.predict(df_test)

#Créer un bloc de données
submission = pd.DataFrame({'Id': df_test_index,
                          'SalePrice': np.exp(pred_y)})
#Sortie vers un fichier CSV
submission.to_csv('submission.csv', index=False)

Le résultat était de 0,17184, et le résultat n'a pas augmenté.

Recommended Posts

Kaggle ~ Prévision de prix de l'immobilier ② ~
Kaggle ~ Prévision de prix à domicile ~
Prix Kaggle House ③ ~ Prévisions / Soumission ~
Challenge Kaggle [Prix de la maison]
Prévision du cours de l'action 2 Chapitre 2
Prévision de la fluctuation des prix de la monnaie virtuelle
Prévision du cours de l'action 1 Chapitre 1
Python: prévision du cours de l'action, partie 2
Prix des maisons Kaggle ② ~ Modélisation ~
Prix des maisons Kaggle ① ~ Ingénierie des fonctionnalités ~
Python: prévision du cours de l'action partie 1
Prévisions de prix Bitcoin avec TensorFlow (LSTM)
[Python] Mes prévisions de cours de bourse [HFT]
J'ai publié un ensemble de données de prévision boursière UNIQLO sur Kaggle
Prévision du cours des actions à l'aide de l'apprentissage automatique (scikit-learn)
Prévision du cours des actions à l'aide du Deep Learning (TensorFlow)
Prévision de stock avec TensorFlow (LSTM) ~ Prévision de stock Partie 1 ~