1
0

More than 3 years have passed since last update.

LinerRegressionでfitせずに回帰係数と切片から予測モデルを作成する

Last updated at Posted at 2019-12-01

はじめに

システムの都合上、scikit-learnで予測モデルを作らなければならないが、作りたい予測モデルが線形回帰モデルであり、回帰係数と切片が既に判明しているとしよう。既存の予測モデルをPythonで新たに構築したい場合などにありうるだろう。この場合わざわざ学習データを用意してfitメソッドを呼び出して学習するのもかったるいし、計算上の誤差などが出ることもある。であれば、回帰係数と切片から直接予測モデルを作ってしまえばいいではないかということで、できるかどうか調べてみた。結論として可能だったため、ここにメモっておく。

環境

python 3.6
scikit-learn 0.21.2

やり方

やり方はまさにそのままで、fitメソッドを使わずに、回帰係数と切片を直接予測モデルのオブジェクトに設定する。ソースは以下の通りだ

ScikitLearnTest2.py
from sklearn.linear_model import LinearRegression
import numpy as np

def main():

    model = LinearRegression()
    model.coef_ = np.array([3, 4])
    model.intercept_ = 2
    print(model.predict([[3, 2]]))

if __name__ == "__main__":
    main()

上のソースでは説明変数が2個でそれぞれの回帰係数が3, 4であり、切片が2の予測モデルをfitメソッドを使わず作成している。
このモデルに対し、説明変数が(3,2)のデータのデータを与えると結果は、3 x 3 + 2 x 4 + 2 = 19 となるはずだが、実際にpredictの結果は、19となっており、正しく予測モデルが生成されていることが分かる。

1
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0