statepipyの日記

興味のある分野(統計、疫学、機械学習、品質管理、手料理)と、PCスキルの維持を目的に書き続けます!

回帰分析

# 必須インポート
import numpy as np
# MSEを求めるために必要(MMSEは直接計算できない)
from sklearn.metrics import mean_squared_error as MSE

# 説明変数を指定
select_columns = ["変数A","変数B","変数C","変数D","変数E"]

# ダミー変数化(k個のカテゴリーをダミー化する場合、k-1個のダミー変数があればよいが、get_dummies()関数ではデフォルトでk個のダミー変数に変換される。 引数drop_first=Trueとするとすれば、最初のカテゴリーが除外されk-1個のダミー変数に変換される。)
dummy_data = pd.get_dummies(data[select_columns],drop_first=True)

# データを、学習用データと評価用データに分割
X_train,X_test,y_train,y_test = train_test_split(dummy_data, data["y"], random_state = 123)

# 回帰分析の実施
lr = LinearRegression()
lr.fit(X_train, y_train)


# 学習用データから y の予測値を算出
y_pred_train = lr.predict(X_train)
# 評価用データから y の予測値を算出
y_pred_test = lr.predict(X_test)


# 学習用データのRMSEを求める
rmse_train = np.sqrt(MSE(y_train, y_pred_train))
# 評価用データのRMSEを求める
rmse_test = np.sqrt(MSE(y_test, y_pred_test))

  ## MMSEは直接求めることができないため、MSEを算出し、その平方根をとることでを算出。


# 学習用データ及び評価データのRMSEを表示
print(rmse_train)
print(rmse_test)