Python と R の違い (線形回帰による予測)

本ページでは、R と Python それぞれで線形回帰による数値予測 (重回帰分析) を行う方法を紹介します。

本例では、あくまで両環境でのコードや分析結果の表示についての比較の目的で行ったため、分析手法の説明や学習や検証における詳細なパラメータ設定は行っていないことをあらかじめご了承ください。

R での実装例

lm 関数を用いて実行できます。

ソースコード

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 と予測できています。

lr

Python での実装例

scikit-learn の sklearn.linear_model.LinearRegression クラスを用いて実行できます。

ソースコード

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 と予測できています。

lr-py