PyCaret とは?

PyCaret

PyCaret

NRIのOpenStandiaが提供するPyCaret最新情報

PyCaretの保守サポートサービスの内容はこちら PyCaretの導入については、こちらのフォームからお問い合わせ下さい OSS全般の事例紹介はこちら

PyCaretバージョンアップ情報

すべてを見る

更新日:2021-05-19

PyCaretの概要

PyCaret トップ画像

PyCaretは、Pythonで実装されたオープンソースの機械学習ライブラリーで、機械学習の一連の作業を自動化する「AutoML」をサポートしています。他のオープンソースの機械学習ライブラリーで実装すると、数百行を超えるようなコードを、PyCaretでは数行のみに置き換えることができます。これにより、機械学習の実験サイクルを指数関数的にスピードアップし、生産性を向上させることができます。

PyCaretは基本的に、scikit-learn、XGBoost、LightGBM、CatBoost、spaCy、Optuna、Hyperopt、Rayなどのいくつかの機械学習ライブラリーとフレームワークのPythonラッパーです。PyCaretにより、以前であれば多くの専門知識を必要としていた分析タスクが、現在では専門外のユーザーでも実現可能になります。経験豊富なデータサイエンティストを見つけるのは難しく、雇用するのに費用がかかりますが、PyCaretを使いこなせれば、そのギャップを緩和し、ビジネスにおけるデータ関連の課題に効果的に対処できます。

PyCaretの素晴らしさを理解するには動かしてみるとのが一番です。ここでは、PyCaretの関数get_data()で取得可能なデータセット「credit」(※)を使用した二値分類の例を簡単に紹介します。

まず、データセットをロードします。

from pycaret.datasets import get_data
data = get_data('credit')

関数setup()にこのデータセットと目的変数のラベル名を与えると、データ型の推定と変換や欠損値の補填、カテゴリー変数のエンコーディングなどを自動的に行います。

from pycaret.classification import *
setup(data = data, target = 'default', session_id=123)

これにより、データの行数、特徴量の数、訓練データおよびテストデータの件数などが表示されます。

関数compare_models()を呼び出すと、複数のモデルを構築し、それらの精度を比較します。

best_model = compare_models()

この関数は、モデルライブラリー内のすべてのモデルを学習し、メトリック評価のための層化交差検証を使用してそれらをスコアリングします。 出力は、学習時間とともに、精度、AUC、再現率、適合率、F1、Kappa、およびMCCを出力します。ここでは、LDAが最も高い精度を出したので、変数best_modelにはLDAのモデルオブジェクトが代入されます。

ハイパーパラメーターをチューニングするには、関数tune_model()を使用します。

tuned_model = tune_model(best)

この関数は、ランダムグリッドサーチを使用してモデルのハイパーパラメーターを自動的に調整します。出力は、モデルの最高の精度、AUC、再現率、適合率、F1、kappa、およびMCCを出力します。

PyCaretは主要なグラフの表示も簡単にできます。例えば、ROC曲線は以下のようなコードで表示できます。

plot_model(tuned_model, plot = 'auc')

PR曲線は以下のようなコードで表示できます。

plot_model(tuned_model, plot = 'pr')

特徴量の重要度も簡単に表示できます。

plot_model(tuned_model, plot='feature')

混同行列も1行のコードで表示できます。

plot_model(tuned_model, plot = 'confusion_matrix')

※get_data('credit')で取得できるデータセットは、「Default of Credit Card ClientsDatase」と呼ばれるUCI(機械学習リポジトリー)のデータセットです。このデータセットには、2005年4月から2005年9月までの台湾のクレジットカードクライアントの支払い状況、人口統計学的要因、クレジットデータ、支払い履歴、および請求明細に関する情報が含まれています。24,000のサンプルと25の特徴量があります。

TOPに戻る

PyCaretの機能および特徴

主な機能は以下の通りです。

データ前処理の自動化 setup()を呼び出すだけで、データ型の推定と変換や欠損値の補填、カテゴリー変数のエンコーディングなどを自動的に行います。
モデルの比較の自動化 compare_models()を呼び出すと、すべてのモデルを比較して、それぞれの精度を高い順に表示します。
ハイパーパラメーターのチューニングの自動化 tune_model()でモデルのハイパーパラメーターのチューニングを自動的に行います。
モデルの評価 evaluate_model()で同時に複数の評価値の確認が可能です。
アンサンブリング ensemble_model()に学習済みモデルオブジェクトを渡すだけで、バギングやブースティングができます。また、blend_models()を呼ぶことで、複数のモデルをブレンドさせることもできます。
予測 学習したモデルを使ってpredict_model()で予測ができます。
モデルの可視化 plot_model()で様々なグラフを可視化することができます。
モデルの保存とロード save_model()でモデルを保存し、load_model()で保存したモデルをロードすることができます。

主な特徴は以下の通りです。

簡単 高度な機能を非常に簡単に実行することができます。学習コストも非常に低く抑えられます。インストールも簡単で以下のコマンドを実行するだけです。
pip install pycaret
短いコードで実装可能 PyCaretを使用しなければ、数百行のコードを書かなければいけないような処理を数行のコードで実現できます。
高機能 Pythonで実装された様々な機械学習ライブラリーとフレームワークのラッパーであるため、非常に高機能です。

TOPに戻る

PyCaretのライセンス

PyCaretのライセンスは、MITライセンスです。MITライセンスは、X Window System (X11)などのソフトウェアに適用されていることから、X11ライセンス、またはXライセンスとも表記されます。MITライセンスは、数あるソフトウェ アライセンスの中で最も制約が少なく、ソースコードの無償の使用のほか、改変、再配布することも認められています。

PyCaretのライセンスについてご不明な点がありましたら、お気軽にお問い合わせください。

TOPに戻る

PyCaretと同類のソフトウェア

AutoMLができるOSSの機械学習のフレームワークとして有名なものは他にH2O.ai、AutoKeras、MLBoxなどがあります。

TOPに戻る

NRIのPyCaretサポート(保守/サポートサービス)

現在、OpenStandiaではPyCaretのサポートを実施していません。

※詳細はお問い合わせください。

TOPに戻る

関連OSS

TOPに戻る

OpenStandiaに関する
資料請求・お問い合わせはこちら

  • 資料請求
  • お問い合わせ

※定期的にメンテナンスを実施しておりますが、一部情報が古い場合がございます。ご了承ください。

  • OpenStandiaサポート対象オープンソース|50種類以上のOSSのサポートをご提供します。
  • 人気midPoint
  • 人気Keycloak
  • 注目MongoDB
  • ForgeRock AM(OpenAM)
  • ForgeRock IDM(OpenIDM)
  • MongoDB
  • Postfix
  • Apache HTTP Server
  • ZABBIX
  • PostgreSQL
  • Apache Struts
  • Apache Kafka
  • Apache Hadoop
  • Apache Spark
  • Spring Framework
  • Apache Tomcat
  • Solr
  • iBATIS
  • DRBD
  • MySQL
  • JBoss
  • Ruby on Rails
  • Jaspersoft
  • OpenLDAP
  • Apache log4j
  • Apache Subversion
  • ForgeRock DS(OpenDJ)
  • Pacemaker
  • Samba
  • Red Hat Enterprise Linux
  • Nginx
  • BIND
  • Dovecot
  • Pentaho
  • sendmail
  • Courier-IMAP
  • ForgeRock DS(OpenDJ)
  • Heartbeat
  • Hibernate
  • Hinemos
  • MyBatis
  • MySQL Cluster
  • Apache Axis2
  • Squid
  • OpenSSO