勉強のアウトプットして書いてるのでもしかしたら間違えてる部分もあるかもしれないのでお気軽にコメントして下さい。今回は予測 統計(実践編 単回帰) Pythonの続きで、さらに予測精度を上げていきます。
内容
・重回帰分析とは
・ダミー変数とは
・重回帰のモデリング方法
重回帰分析とは
重回帰分析と単回帰分析の違いは、説明変数が複数なのか一つなのかの違いだけです。重回帰分析の方が目的変数を説明する事象(説明変数)が増えるので予測精度が上がります。しかし、説明変数が多すぎると過学習になっていしまい逆に予測精度が下がってしまうことがあります。よって、説明変数の選択が重回帰においてはとても大切なことです。
ダミー変数とは
ダミー変数とは天気のような数値であらわせないものをすうちで表すことです。これは重回帰においてとても重要な要素になります。pythonではダミー変数化できる関数が用意されています。以下のようにすれば数値に変換することができます。
pd.get_dummies("ダミー変数化したい変数")
重回帰のモデリング方法
重回帰におけるモデリングは単回帰とほとんど変わりません。代入する説明変数が増えるだけです。コードを書く量も単回帰よりも少ないかもしれません。実際にコードを見てみましょう。(欠損値は修正済)
import pandas as pd
import numpy as np
from matplotlib import pyplot as plt
# 現行のブラウザに表示
%matplotlib inline
from sklearn.linear_model import LinearRegression as LR
# 過去データ
train = pd.read_csv("train.csv")
# 予測データ
test = pd.read_csv("test.csv")
# 予測値をいれるためのデータ
sample = pd.read_csv("sample.csv")
# 説明変数を代入
# 数値データは除外して実行してくれます。
trainX = pd.get_dummies(train[["列名1","列名2",...,"列名n"]])
testX = pd.get_dummies(test[["列名1","列名2",...,"列名n"]])
# 目的変数の代入
y = train["列名"]
# 回帰モデルの変数を作成
model = LR()
# 重回帰モデルの作成
model.fit(trainX,y)