線形回帰③ (重回帰モデル構築)

重回帰を使ったモデルの構築を行います。

重回帰は、複数の説明変数を用いて1つの目的変数を予測するアルゴリズムです。

単回帰と式の複雑さは変わりますが、学習により係数(傾き・重み)と切片を求めることは変わりません。

  • 単回帰
    学習により傾き(a)と切片(b)を求める。
     y = ax + b
  • 重回帰
    学習により各説明変数の重み(w1~wn)と切片(b)を求める。
     y = w1x1 + w2x2 + ・・・・ + wnxn + b

重回帰モデルの構築

scikit-learnLinearRegressionクラスを使って重回帰モデルを構築します。

単回帰と重回帰は説明変数を複数使用するかどうかの違いだけなので、LinearRegressionの引数であるデータセットを変更するだけで対応可能です。

[Google Colaboratory]

1
2
3
from sklearn.linear_model import LinearRegression

multi_reg = LinearRegression().fit(X_train_scaled, y_train)

次に予測値を算出します。

[Google Colaboratory]

1
2
3
4
5
6
7
y_train_pred = multi_reg.predict(X_train_scaled)
y_test_pred = multi_reg.predict(X_test_scaled)

print(len(y_train_pred))
print(y_train_pred[:5])
print(len(y_test_pred))
print(y_test_pred[:5])

[実行結果]

以上で、モデルの構築と予測値の算出まで完了しました。非常に簡単ですね。

次回は、今回作成したモデルの精度評価を行います。