見出し画像

[PyCaret]Pythonでの機械学習の自動化

PyCaretってご存じでしょうか?

私は今日知りました。


でも、すごい便利で半端じゃないので共有させてください。

この記事では、大まかなPyCaretの説明と、今すぐにでも実行できる簡易なコードも記載しております。


PyCaretとは?


PyCaretはほんとに最近実装されたフレームワークです。
エクセルのデータファイルを用意して、数行のコードを記入するだけで最適な解析を行うことができます。

特徴としては、前処理・モデルの決定・パラメータの最適化・結果の評価をまとめて行えます。

前処理

・欠損値の補完
・one-hotエンコーディング
・正規化
などを自動で行ってくれます。


モデルの決定

回帰
・線形回帰
・ランダムフォレスト
・決定木
・サポートベクターマシン
など20種類近くの回帰モデルを適用してくれます。

分類
・k近傍
・ロジスティック回帰
・Cat Boost
など20種類近くの分類モデルを適用できます。

僕自身無知なので違いはわかりませんが、きっとすごいでしょう。 

画像1

上が回帰解析の一例です。このように、あらゆる評価指標を提供してくれます。


パラメータの最適化

一行入力するだけで、自動で最適化してくれます。

画像2

このように、k分割交差検証とその平均を出力します。コメントとして、用いたパラメータの値も出力します。

例えば、回帰のランダムフォレストなら、決定木の個数を求めてくれます。(まだ勉強中なのでよくわかっていません。。)


結果の評価

結果はほんとに様々得られます。勉強不足なんで、コメントはできないですが、分析にはうってつけかと思われます。

画像3

画像4

これは、精度の悪い例ですが、このような結果が得られます。エクセルでこれらを作るのは大変だと思うので、すごい便利です。


PyCaretの導入

以下のコードで簡易な回帰解析を行えます。

1. インストールとデータの入力

pip install pycaret
from pycaret.regression import *
import pandas as pd
from pycaret.regression import *

data1 = pd.read_excel(r'C:\Users\myfile\demo.xlsx')

2.モデルの構築

model = setup(data1, target = 'value', ignore_features = None)

3. モデルの比較

compare_models()

4. 使用するモデルの決定と解析

rf = create_model('rf')

(今回はランダムフォレストのためrfで出力しています。対応する形はこちらに記載されています。)

5. チューニング

tuned_rf = tune_model('rf')

6. 結果の評価

evaluate_model(tuned_rf)
interpret_model(tuned_rf)
plot_model(tuned_rf)

7. 結果の出力

predictions = predict_model(rf, data=data1)
predictions

回帰なら各データの予測結果を出力します。また、data=のところで分けておいたテストデータを用いると上記で作成したモデルに適用することができます。

8. csvへの転記

predictions.to_csv("result.csv")


まとめ

機械学習を始めてまもないですが、すごいことは実感してます。また勉強して追記していきます。

いいなと思ったら応援しよう!