本ページでは、R と Python それぞれで線形回帰による数値予測 (重回帰分析) を行う方法を紹介します。
本例では、あくまで両環境でのコードや分析結果の表示についての比較の目的で行ったため、分析手法の説明や学習や検証における詳細なパラメータ設定は行っていないことをあらかじめご了承ください。
R での実装例
lm 関数を用いて実行できます。
ソースコード
1 2 3 4 5 6 7 8 9 10 |
data(iris) trainset <- iris[1:149,] testset <- iris[150,][-4:-5] fit <- lm(Petal.Width ~ + Sepal.Width + Petal.Length + Sepal.Length, data=trainset) coef(fit) predict(fit, testset) iris[150,][4] |
出力結果
実際の値 (1.8) に対して、約 1.88 と予測できています。
Python での実装例
scikit-learn の sklearn.linear_model.LinearRegression
クラスを用いて実行できます。
ソースコード
1 2 3 4 5 6 7 8 9 10 11 |
from sklearn.datasets import load_iris from sklearn.linear_model import LinearRegression iris = load_iris() X, y = iris.data[:-1], iris.target[:-1] regression = LinearRegression() regression.fit(X, y) print(regression.coef_) print(regression.predict([iris.data[-1]])) |
出力結果
実際の値 (1.8) に対して、約 1.67 と予測できています。