モデルを作成する
プログラム(Python)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
# -*- coding: utf-8 -*- import pandas as pd from sklearn import linear_model from sklearn.externals import joblib # CSVァイルからデータフレームに読み込む df = pd.read_csv("data_suri.csv") # 説明変数を設定する:定性データ(性別、文理)から変換したダミー変数 x = pd.get_dummies(df[['性別', '文理']]) # 目的変数を設定する:満足度 y = df['満足度'].values # モデルを作成する clf = linear_model.LinearRegression() clf.fit(x, y) # 回帰係数と切片の抽出 a = clf.coef_ b = clf.intercept_ # 回帰係数 print("説明変数:", x) print("回帰係数:", a) print("切片:", b) print("決定係数:", clf.score(x, y)) # 学習結果を出力する joblib.dump(clf, 'model_suri.learn') |
データファイル
実行結果
1 2 3 4 5 6 7 8 9 |
説明変数: 性別_女 性別_男 文理_文系 文理_理系 0 0 1 0 1 1 1 0 0 1 2 0 1 1 0 3 1 0 1 0 4 0 1 1 0 回帰係数: [-1. 1. -1. 1.] 切片: 3.0 決定係数: 0.8 |
モデルで予測する
入力データファイルは「モデルを作成する」で生成したファイルを使用する。
プログラム(Python)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
# -*- coding: utf-8 -*- import pandas as pd from sklearn.externals import joblib # 学習結果を読み込みする clf = joblib.load('model_suri.learn') # データを読み込みする df = pd.read_csv("data_suri.csv", sep=",") # 説明変数を設定する:定性データ(性別、文理)から変換したダミー変数 x = pd.get_dummies(df[['性別', '文理']]) # 学習結果を利用して予測する z = clf.predict(x) #予測結果を出力する print(z) |
実行結果
1 |
[5. 3. 3. 1. 3.] |