【Scikit-learn】重回帰モデルのファイルを読み込む(インポート)

この記事では、Pythonと機械学習ライブラリ「scikit-learn」を用いて、重回帰分析した結果を出力(エクスポート・ダンプ)する方法について解説します。

重回帰分析とは

重回帰分析とは、以下のような線形回帰モデルを用いて予測する手法です。

(1)   \begin{eqnarray*} y = a_1x_1 + a_2x_2 + a_3x_3+ .... +a_nx_n \end{eqnarray*}

変数 説明
y 目的変数(予測したい値)
x_1, x_2, x_3 ... x_n 説明変数(予測に利用するデータ)
a_1, a_2, a_3 ... a_n 回帰係数(相関係数)

説明変数が複数の場合は「重回帰分析」と呼ばれます。
PythonモジュールScikit-learnでは、「linear_model.LinearRegression()」を用いることで重回帰分析を行うことができます。
今回は、CSVファイルを読み込んで、そのデータから重回帰分析を行い、生成して出力した回帰モデルを復元(インポート)しました。
(sklearn.externals.joblib.loadを使います)

ソースコード

サンプルプログラムのソースコードです。

# -*- coding: utf-8 -*-
import pandas as pd
import numpy as np
from sklearn import linear_model
from sklearn.externals import joblib

def main():
    clf = joblib.load('multiple.learn')
    # 回帰係数と切片の抽出
    a = clf.coef_
    b = clf.intercept_
    # 回帰係数
    print("回帰係数:", a)
    print("切片:", b)

if __name__ == "__main__":
    main()

【data.csv】

"x1","x2","x3"
45,17.5,30
38,17.0,25
41,18.5,20
34,18.5,30
59,16.0,45
47,19.0,35
35,19.5,25
43,16.0,35
54,18.0,35
52,19.0,40

【学習ファイル】multiple.learn

実行結果

サンプルプログラムの実行結果です。
前回の記事で出力した回帰モデルを読み込めました。

回帰係数: [ 0.70068905 -0.64667957]
切片: 12.1846948155
関連記事
1 Scikit-learn入門・使い方
2 Scikit-learnをインストールする方法
3 Python入門 サンプル集

コメント