##はじめに
LightGBM は、2016年に米マイクロソフト社が公開した決定木アルゴリズムに基づいた勾配ブースティング(Gradient Boosting)の機械学習フレームワークです。今回はLightGBM をモデルとし、中古物件のデータから住宅価格を予測しました。
予測の精度はさておき、まずはモデルをまわして予測値を出すところまでやったので、やり方を備忘録として残しておきます。
##コードの説明
###ライブラリをインポート
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import lightgbm as lgb
from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_squared_error
from sklearn.metrics import r2_score
###CSVデータをPandasデータフレームへ格納
CSVデータには、住宅価格の他に位置情報、部屋数、海からの近さなどの情報が入っている。
df = pd.read_csv('/../input/housing.csv')
###データの準備
住宅価格以外の項目を全て説明変数とし、住宅価格を目的変数とした。
x = df_replace.drop(['house_value'],axis=1).values# 説明変数
y = df_replace['house_value'].values # 目的変数(house_value)
データを学習データとテストデータに分割する。テストデータは全データの20%に設定。
x_train, x_test, y_train, y_test = train_test_split(x, y,test_size=0.20)
テストデータの予測
モデルの学習と予測値算出。
model = lgb.LGBMRegressor()
model.fit(x_train, y_train)
y_pred = model.predict(x_test)
###モデルの評価
RMSE(平均平方二乗誤差)とR2(決定係数)を計算。
mse = mean_squared_error(y_test, y_pred) # MSE(平均二乗誤差)
rmse = np.sqrt(mse) # RMSE(MSEの平方根)
print('RMSE :',rmse)
r2 = r2_score(y_test,y_pred)
print('R2 :',r2)
#出力
RMSE : 47534.167567117795
R2 : 0.8340967595740189
##まとめ
とりあえずLightGBM を使ってみることを目的に、中古物件のデータから住宅価格を予測し、予測結果からRMSE(平均平方二乗誤差)とR2(決定係数)を計算しました。今後はデータの前処理をしっかりし、精度を高めていきたいと思います。