線形単回帰とは予測したいデータと予測に使用するデータが一つづつとなる回帰分析
データ同士の関連性を示す
予測したいデータをyとすると予測用データをxとすると
y = ax + b
の関係性を仮定しaとbを最小二乗法という方法で分析
yの値と推定するy=ax+bの差の二乗の総和が最小となるaとbを算出
この手法はscikit-learnのlinear_modelモジュールの
LinearRegressionを使用して回帰分析を行う
■線形回帰
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
from sklearn.linear_model import LinearRegression from sklearn.datasets import make_regression from sklearn.model_selection import train_test_split # データ生成 X, y = make_regression(n_samples=100, n_features=1, n_targets=1, noise=5.0, random_state=42) train_X, test_X, train_y, test_y = train_test_split(X, y, random_state=42) # 線形回帰モデル構築 model = LinearRegression() # 学習 model.fit(train_X, train_y) # 係数の出力 print(model.score(test_X, test_y)) |
■リッジ回帰
1 2 3 4 5 |
# リッジ回帰モデル model = Ridge() model.fit(train_X, train_y) # test_X, test_yに対する決定係数を出力してください print("リッジ回帰:{}".format(model.score(test_X, test_y))) |
■ラッソ回帰
1 2 3 4 5 |
# ラッソ回帰モデル(データ生成は線形回帰を参照) model = Lasso() model.fit(train_X, train_y) # test_X, test_yに対する決定係数を出力してください print("ラッソ回帰:{}".format(model.score(test_X, test_y))) |
コメントを残す