Chapter 63

予測とモデルの保存

poclabweb
poclabweb
2022.10.23に更新

7. 予測: finalize_model(), predict_model()

finalize_model

compare_modelsやtune_modelでは、交差検証(クロスバリデーション)で検討しているので、訓練データの全てを使用していない。finalize_modelを行うことで訓練データの全て(テストデータを除く)を使ったモデルを作ることができる。

final_lr = finalize_model(tuned_lr)
test_predictions = predict_model(final_lr)
test_predictions

predict_model

predict_modelは予めテストデータとして分割した値を予測する。

train_data = predict_model(final_lr, data = df_train)
test_data = predict_model(final_lr, data = df_test)

df_test["Label"] = test_data["Label"]
df_test

df_train["Label"] = train_data["Label"]
df_train

前回と同じグラフを作成してみる。

# グラフ作成をmatplotlibで行う
import matplotlib.pyplot as plt 

# 得られた学習結果と実験値とを比較する。
plt.figure()

# トレーニングデータのプロット
x1 = train_data["logS"]
y1 = train_data["Label"]

plt.scatter(x1, y1, alpha=0.5, label="train") # alphaを入れると薄くなる。

# テストデータのプロット
x2 = test_data["logS"]
y2 = test_data["Label"]

plt.scatter(x2, y2, label="test")

# 範囲の指定
plt.xlim(-10, 2)
plt.ylim(-10, 2)

# タイトルを入れる。
plt.title("Fig. Prediction of logS by xgboost and finger print")

# X軸とY軸にラベルを作成
plt.xlabel('data')
plt.ylabel('Predict')

# 凡例の場所を指定
plt.legend(loc="upper left", fontsize=14) 

# 表示させる
plt.show()

モデルの保存

save modelで結果を保存できる。

save_model(final_lr, 'my_best_pipeline')

保存したmodelは、load_modelで呼び出せる。

loaded_model = load_model('my_best_pipeline')
print(loaded_model)