AutoML OSSを紹介する本連載第6回は、ローコード機械学習ライブラリ「PyCaret」を解説します。さまざまな機械学習ライブラリのラッパーであるPyCaretは、データ分析のあらゆる工程でコードの行数を削減します。
本記事で紹介したノートブックはGitHubにて公開しています。すぐに実行できますので、ぜひご利用ください。
本連載第5回では、Javaアプリと簡単に連携できるOSS(オープンソースソフトウェア)の「H2O」を紹介しました。今回はローコード機械学習ライブラリ「PyCaret」を紹介します。
PyCaretは、scikit-learn、XGBoost、LightGBM、CatBoost、spaCy、Optuna、Hyperopt、Rayなどのさまざまな機械学習ライブラリやフレームワークのPythonラッパーです。既存のライブラリを有効活用し、データ分析に必要なコードを関数化することで、ソースコードの行数を大幅に削減します。
開発元 | 個人(Moez Ali氏) |
---|---|
GitHub公開日 | 2020年4月 |
リポジトリ | https://github.com/pycaret/pycaret |
実装言語 | Python |
ライセンス | MIT License |
公式サイト | https://pycaret.org/ |
表1 PyCaretの基本情報 |
PyCaretは2020年4月にGitHubで公開されました。GitHubのStar数は1年たたないうちに3000を超えており、最も勢いのあるAutoMLのOSSの一つといえるでしょう。以下のグラフは、PyCaret、auto-sklearn、TPOTのGitHubに対するStar数の推移をグラフで比較したものです。緑の線がPyCaretですが、他の2つよりかなり後発でありながら、2021年内にはそれらに並ぶ勢いでStar数を増やしています。
PyCaretには、AutoMLができる他のOSSと比較して次のような特徴があります。
これらの特徴をもう少し詳しく解説します。
PyCaretは、データ分析のどの工程でも典型的な処理なら、1行で実行できます。例えば、ライブラリをインポートするコードを見てみましょう。PyCaretを使わずに分類問題に取り組む場合、以下のように多数のライブラリをインポートする必要があります。
import numpy as np import pandas as pd import matplotlib.pyplot as plt import seaborn as sns from sklearn.model_selection import train_test_split, GridSearchCV from sklearn.ensemble import RandomForestClassifier from sklearn.linear_model import LogisticRegression …(省略)…
一方で、PyCaretなら次の1行で基本的な分類問題に必要なライブラリを一度にインポートできます。
from pycaret.classification import *
データの前処理やモデルの構築と比較も1行のコードで済みます。これにより、コード量を大幅に削減できます。
# データの前処理 setup(data=train_df, target='Survived') # モデルの構築と比較 compare_models()
PyCaretは、機械学習で一般的に使用される既存のライブラリを有効に活用しています。従って、既存のライブラリを使ったことがある人にとっては、パラメーターの意味などが理解しやすく扱いやすいでしょう。
モデルの構築と可視化をPyCaretで実行する例を見てみましょう。以下のコードはSupport Vector Machine(以下、SVM)でモデルを構築し、特徴量の重要度(Feature Importance)を可視化します。
model = create_model('svm') plot_model(model, plot='feature')
上記コードの「svm」を「xgboost」に変更すればXGBoostでモデルを構築するようになり、「feature」を「boundary」に変更すれば、決定境界(Decision Boundary)を可視化するようになります。
Copyright © ITmedia, Inc. All Rights Reserved.