今回は機械学習の自動化が出来るかもしれない
ライブラリを使ってみました。

解説動画はこちら



今回使用するのは
PyCaretというライブラリです。


これはPythonで実装された
オープンソースの機械学習ライブラリーで
機械学習の一連の作業を自動化する
「AutoML」をサポートしています。

つまり
数行で機械学習のコードを
代替できてしまう優れものです。

利用するためには
あらかじめインストールされている必要があります。

pip install pycaret


それでは早速サンプルコード見ていきましょう。


ボストンの住宅価格のデータで
検証してみることにします。

目的変数は
medv : 住宅価格
になります。

最初にライブラリ群を読み込みします。
データもPyCaretの中から読み込みます。

# ライブラリの読み込み
import pandas as pd
from pycaret.regression import *
from pycaret.datasets import get_data
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_absolute_error

boston_data = get_data('boston')
train, test = train_test_split(boston_data)

次にセットアップです。
ここではデータと目的変数を指定します。
# セットアップ
#データと目的変数を指定する
exp1 = setup(data = train , target = 'medv', ignore_features = None, session_id=1)
たったこれだけで、データの検証が終わってしまいます。
スクリーンショット 2021-12-11 16.48.38



これが終わったら次は
モデルの精度を比較します。

# モデルを比較する
compare_models()
スクリーンショット 2021-12-11 16.48.53
1行実行するだけで複数のモデルを比較して
結果を出してくれます。

今回は回帰のモデルで比較を行いましたが
一番良いのは「et」(Extra Trees Regressor)
というモデルでした。

これを使ってみることにしましょう。
# 精度の良さそうなやつでモデルを作ってみる
model = create_model('モデルのラベル')
スクリーンショット 2021-12-11 16.48.59


クロスバリデーションも自動で行ってくれてるようです。
次はパラメータをチューニングしてみましょう。

これも1行で出来てしまいます。

# モデルのチューニングを行う
tuned_model = tune_model(model , optimize = 'MAE')
スクリーンショット 2021-12-11 16.49.05

パラメータチューニングをした方が
やや精度が落ちている気がしますが
気にしないことにしましょう。

これでモデル作りは終わりなので
形にします。

# 最終的なモデルを作る
final_model = finalize_model(tuned_model)
final_model
スクリーンショット 2021-12-11 16.49.11

はい、モデルが出来上がりました。
早くてあっとゆーまでした。

モデルの評価部分も自動でたくさんの
評価軸を出してくれます。

# モデルの評価
evaluate_model(tuned_model)
スクリーンショット 2021-12-11 16.49.18

UIでいろいろ指標を変更できるようです。

最後にテストデータでの検証を見てみましょう。

#テストデータで検証
result = predict_model(final_model, data = test)
y_true = result['medv']
y_pred = result['Label']

mean_absolute_error(y_true, y_pred)
3.2223362928049464

パラメータチューニングの結果と
遜色ない結果となりました。

さらにアンサンブル学習のモデルを作るのも
簡単です。
モデルを指定したのを引数に加えるだけです。

# アンサンブル学習
model1 = create_model('gbr')
model2 = create_model('et')
model3 = create_model('lightgbm')
ensemble = blend_models([model1, model2,model3])
スクリーンショット 2021-12-11 16.49.30

これもなかなか精度が良さそうな結果になっています。

複数のモデルを使った検証が
10行ほどのコードで出来てしまいます。

いやー
恐ろしい物ですねー


まとめ

あれ?これだけのコードで済むなら
機械学習エンジニア要らなくね?????
と思ってしまいました。

特にこれと似たようなサービスである
DataRobotさんはほぼほぼ要らなく無いですかねー

こういう便利なライブラリが出てくると
機械学習のモデルを作っているエンジニアって
めっちゃくちゃ価値が下がってきますね・・・

要らなくならないように、頑張らないと・・・・

ということで今回は
機械学習の自動化が出来ちゃう
PyCaretのご紹介でした。

それでは。