🤖

PyCaretの使い方

2022/02/18に公開

はじめに

n番煎じですが、PyCaretという機械学習のコードを少し楽にしてくれる便利なライブラリの使い方をご紹介したいと思います。
環境構築は結構手間取ったので別の機会に環境構築だけでも詳しくまとめたいと思っています。

最近HPも新しくなり、見やすくなりました!
若干Pytorchライクな気がする感じのページに生まれ変わってます。

PyCaretとは

PyCaretという様々な機械学習のコードを簡単に実装してくれるものです。
公式サイトで詳しく見たいからは以下からどうぞ。

https://pycaret.gitbook.io/docs/

環境

OS : macOS Big Sur
Anaconda : conda version : 4.11.0
conda-build version : 3.21.4
python version : 3.8.8.final.0

環境構築

仮想環境の準備

PyCaretの公式に乗っ取ってanacondaで環境構築をします。
PyCaretOfficial Environment
Anacondaが入っている環境で、以下のコマンドを叩けば環境が立ち上がります。環境名は個々人お好きな名前にしてください。

# create a conda environment
conda create --name yourenvname python=3.8

# activate conda environment
conda activate yourenvname

# install pycaret
pip install pycaret

# create notebook kernel
python -m ipykernel install --user --name yourenvname --display-name "display-name"

必要なパッケージのインストール

以下のパッケージは公式の方法にある

pip install pycaret

で入れてしまうと互換性のない最新バージョンが入ってしまい動かないことになってしまう。そのため、conda環境内で下記のコマンドを実行して、パッケージのバージョンをPyCaretに合わせなくてはいけないということが僕の環境では発生しました。ですので、下記コマンドで個別にインストールすることで、対応できます。下記以外のパッケージのバージョン確認は公式のDependenciesをご覧ください。

conda install -c conda-forge lightgbm
conda install numpy=1.21  -c conda-forge
conda install scikit-learn=0.23.2  -c conda-forge
モジュール インポート方法
分類 pycaret.classification
回帰 pycaret.regression
クラスタリング pycaret.clustering
異常検出 pycaret.anomaly
自然言語処理 pycaret.nlp
アソシエーション分析 pycaret.arules

注意

LightBGMは、MacのLightGBMでエラー image not found
で紹介されているように、Macの場合Homebrew・pipで入れてしまうと仮想環境下で入れたパッケージから見えなくなってしまい利用できないので、condaコマンドを使って入れなければいけないです。

データの読み込み

よくある、ボストンの住宅価格のデータセットを使ってみると、

# パッケージの読み込み

import pandas as pd
from pycaret.regression import ***
from pycaret.datasets import get_data 

data = get_data('boston')

として読み込むことができます。
データ解析などで手持ちのデータを使いたい場合は、

data = pd.read_csv('****.csv')

とCSVファイルを読み込めば大丈夫です。

データの前処理

PyCaretを起動してデータの前処理を行います。

# PyCaretを起動
exp1 = setup(data, target = 'medv', ignore_features = None)

# 第一引数 : 読み込んだデータ
# 第二引数 : 目的変数
# 第三引数 : 除外する変数 (option)
# 最後にnumeric_features = ['カラム名']のような形で指定することでデータタイプを変更できます。

setupの引数は非常に多いので、下記の記事が参考になるかと思います。
https://qiita.com/Asagumo63/items/99357d4b472a9219040e#回帰-regression-pycaret20

前処理が終われば、Enterを押して次に進めます

モデルの評価

モデルの評価もPyCaretでは様々な評価指標を使って評価することができます。そのコマンドが、以下のコマンドです。

# モデルの比較
compare_models()

パラメータのチューニング

下記のようにパラメータを最適化することができます。

# Random Forestのモデルを作成
rf = create_model('rf')
tuned_rf = tune_model(rf, n_iter = 500, optimize = 'r2')

# n_iter : グリットサーチの回数
# optimize : 最適化の対象(損失関数)

モデルの可視化

以下にモデルの可視化によく使われるコマンドを列挙しておきます。

# 解析結果の確認
evaluate_model(tuned_rf)

これで出てくる選択肢から選択して行くと好きなプロットを作成することができます。

モデルの確定と予測

以下のようにモデルを確定し、予測することができます。

#モデルの確定
final_rf = finalize_model(tuned_rf)
print(final_rf)
#未知なるデータを読み込みそれでテストを行う
test_data = pd.read_csv('test_data.csv')
test_data_predictions = predict_model(final_rf, data = test_data)

また、モデルの評価結果ですが、以下のようにしてダウンロードすることが可能です。

#CSVファイルでダウンロードする
test_data.to_csv('test_data_preds.csv')

参考

https://pycaret.gitbook.io/docs/

https://qiita.com/shuhigashi/items/0fb37468e64c76f4b245

GitHubで編集を提案

Discussion