はじめに:今回掘るテーマ
ある日のもぐTechの地下研究室。モグラ先生がスコップでガシガシ地面を掘っていると——
モグラ先生:おや?この土の中から“PyCaret 3”というキラリと光る宝石を見つけたぞ!⛏️✨
というわけで今回は、最新バージョン 3.2になってパワーアップした低コード機械学習ライブラリ PyCaret を、モグラ先生と一緒に楽しく深掘りします。
PyCaretって何者?⛏️
PyCaretは「面倒な前処理・モデル比較・ハイパーパラメータ調整」を数行で自動化してくれるAutoMLライブラリです。2025年4月時点の最新版はv3.2.0で、Python 3.9〜3.12に対応しました。 (Releases · pycaret/pycaret – GitHub, PyCaret: Home)
モグラ先生:難しい数式は一旦置いといて、「全部試して良いモデルを教えて!」が合言葉だよ〜🐾
インストール環境を整える
1. 仮想環境を掘り起こす
python -m venv .venv
.venv\Scripts\activate
2. PyCaret 3をドカンと導入
# 依存を含めフルインストール
pip install "pycaret[full]" --upgrade
モグラ先生:joblib 1.4系とPyCaret 3.2は相性NGだから、もしエラーが出たら
pip install "joblib<1.4"
で回避しよう!掘り進める前に足場固めだよ。 ([BUG]: Can’t use RegressionExperiment with the latest version of joblib (1.4.0) · Issue #3959 · pycaret/pycaret · GitHub)
10行でサクッと実験!🪹
from pycaret.classification import *
# 1) データを用意(df は pandas.DataFrame)
s = setup(df, target="t1", session_id=123)
# 2) モデルを全部比較してベストをゲット
best = compare_models() # 👑
# 3) ハイパーパラメータを自動チューニング
tuned = tune_model(best, optimize="Accuracy")
# 4) テストデータで予測
pred = predict_model(tuned, data=test_df)
# 5) 可視化(重要特徴量)
plot_model(tuned, plot="feature")
# 6) モデルの保存
save_model(tuned, "final_model")
モグラ先生:この6ステップで前処理→比較→チューニング→予測→保存まで一気通貫!「掘って見つけた!」感あるでしょ?⛏️
小さな穴掘りポイント
モグラ先生:
compare_models(turbo=False)
にするとお時間かかるけど高性能モデルも比較できるよ。深い層まで掘りたいときにどうぞ!
モデルを呼び出して即再利用
from pycaret.classification import load_model, predict_model
clf = load_model("final_model")
new_pred = predict_model(clf, data=new_df)
モグラ先生:保存済みモデルはpickle形式。別環境でも同じスコップで宝を掘り当てられるよ!
より深く掘るためのTips
- 可視化バリエーション
plot_model(tuned, plot="confusion_matrix") # 分類結果
plot_model(tuned, plot="auc") # ROC-AUC
- 特徴量の掘削
interpret_model(tuned) # SHAPで「なぜ当たった?」を解明
- 分散処理:大量データなら Fugue 連携でSpark/Dask対応もOK。 (examples/PyCaret 3 Fugue Integration.ipynb at main – GitHub)
まとめ:掘り出した宝物💎
PyCaret 3のおかげで、「とりあえず全部試して最適モデルを選出」が本当に数行で完結します。
モグラ先生:数学が苦手でも「掘って見つけた!」を味わえる時代になったねぇ🐾
- 最新版は Python 3.12 まで対応、インストールは
pip install "pycaret[full]"
でOK。 - joblib 1.4問題には注意(
<1.4
で固定)。 - compare → tune → predict → save の黄金ルートを覚えれば、あなたも今日からAutoML掘り師!
それでは次回の“穴掘り”でまたお会いしましょう。Happy digging! 🎉