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

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

回帰分析とは

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

【式】
y = a1*x1 + a2*x2 + a3*x3+ …. +an*xn

y :目的変数(予測したい値)
x1, x2, x3 … xn:説明変数(予測に利用するデータ)
a1, a2, a3 .. .an:回帰係数(相関係数)

【詳細】回帰分析とは?(目的変数・説明変数・回帰係数など)

説明変数が複数の場合は「重回帰分析」と呼ばれます。
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

【おすすめ関連記事】
Scikit-learn入門・使い方
Scikit-learnをインストールする方法
Python入門 基本文法