PyCaretのドキュメントを眺める

## はじめに

[PyCaret](https://pycaret.org/)は機械学習のワークフローを自動化するオープンソースです。最近気になり調べているのですが、[公式ドキュメント](https://pycaret.readthedocs.io/en/latest/index.html)や使ってみた系の日本語の記事もいくつかあるものの、全体としてできることがちょっと分からずにいました。
そこで、[公式ドキュメント](https://pycaret.readthedocs.io/en/latest/index.html)の説明をもとに、各モジュールのAPIを整理して全体の雰囲気を掴んでみることにしました。

## 注意点など
* [公式ドキュメント](https://pycaret.readthedocs.io/en/latest/index.html)をもとに、各モジュールについてメソッド名を拾っていき、ドキュメントに存在したものについて`〇`を付与しています。
* PyCaretのドキュメントのversionは2022/3/21時点のlatestです。
    * [GitHub](https://github.com/pycaret/pycaret)によるとv2.3.8です。
* 実際にすべての機能を利用したわけではなく、認識に誤りがある部分があるかもしれません。気づいたらご教示ください。

## PyCaretのAPI一覧

| api                | pycaret.classification | pycaret.regression | pycaret.clustering | pycaret.anomaly | pycaret.nlp | pycaret.arules | pycaret.datasets |
|--------------------|------------------------|--------------------|--------------------|-----------------|-------------|----------------|------------------|
| setup              | 〇                      | 〇                  | 〇                  | 〇               | 〇           | 〇              |                  |
| compare_models     | 〇                      | 〇                  |                    |                 |             |                |                  |
| create_model       | 〇                      | 〇                  | 〇                  | 〇               | 〇           | 〇              |                  |
| tune_model         | 〇                      | 〇                  | 〇                  | 〇               | 〇           |                |                  |
| ensemble_model     | 〇                      | 〇                  |                    |                 |             |                |                  |
| blend_models       | 〇                      | 〇                  |                    |                 |             |                |                  |
| stack_models       | 〇                      | 〇                  |                    |                 |             |                |                  |
| assign_model       |                        |                    | 〇                  | 〇               | 〇           |                |                  |
| plot_model         | 〇                      | 〇                  | 〇                  | 〇               | 〇           | 〇              |                  |
| evaluate_model     | 〇                      | 〇                  | 〇                  | 〇               | 〇           |                |                  |
| interpret_model    | 〇                      | 〇                  |                    |                 |             |                |                  |
| calibrate_model    | 〇                      |                    |                    |                 |             |                |                  |
| optimize_threshold | 〇                      |                    |                    |                 |             |                |                  |
| predict_model      | 〇                      | 〇                  | 〇                  | 〇               |             |                |                  |
| finalize_model     | 〇                      | 〇                  |                    |                 |             |                |                  |
| deploy_model       | 〇                      | 〇                  | 〇                  | 〇               |             |                |                  |
| save_model         | 〇                      | 〇                  | 〇                  | 〇               | 〇           |                |                  |
| load_model         | 〇                      | 〇                  | 〇                  | 〇               | 〇           |                |                  |
| automl             | 〇                      | 〇                  |                    |                 |             |                |                  |
| pull               | 〇                      | 〇                  | 〇                  |                 |             |                |                  |
| models             | 〇                      | 〇                  | 〇                  | 〇               | 〇           |                |                  |
| get_metrics        | 〇                      | 〇                  | 〇                  |                 |             |                |                  |
| add_metric         | 〇                      | 〇                  | 〇                  |                 |             |                |                  |
| remove_metric      | 〇                      | 〇                  | 〇                  |                 |             |                |                  |
| get_logs           | 〇                      | 〇                  | 〇                  | 〇               | 〇           |                |                  |
| get_config         | 〇                      | 〇                  | 〇                  | 〇               | 〇           |                |                  |
| set_config         | 〇                      | 〇                  | 〇                  | 〇               | 〇           |                |                  |
| save_config        | 〇                      | 〇                  | 〇                  | 〇               |             |                |                  |
| load_config        | 〇                      | 〇                  | 〇                  | 〇               |             |                |                  |
| get_leaderboard    | 〇                      | 〇                  |                    |                 |             |                |                  |
| dashboard          | 〇                      | 〇                  |                    |                 |             |                |                  |
| convert_model      | 〇                      | 〇                  |                    |                 |             |                |                  |
| eda                | 〇                      | 〇                  |                    |                 |             |                |                  |
| check_fairness     | 〇                      | 〇                  |                    |                 |             |                |                  |
| create_api         | 〇                      | 〇                  |                    |                 |             |                |                  |
| create_docker      | 〇                      | 〇                  |                    |                 |             |                |                  |
| create_app         | 〇                      | 〇                  |                    |                 |             |                |                  |
| get_clusters       |                        |                    | 〇                  |                 |             |                |                  |
| get_outliers       |                        |                    |                    | 〇               |             |                |                  |
| get_topics         |                        |                    |                    |                 | 〇           |                |                  |
| get_rules          |                        |                    |                    |                 |             | 〇              |                  |
| get_data           |                        |                    |                    |                 |             |                | 〇                |

## 所感

* チュートリアルやブログ記事では`setup`～`predict_model`を中心とした基本的な機能について取り上げているものが多く、それだけでもすごいと思っていたのですが、そのほかにも気になる機能が実装されていることに気づきました。
    * `automl`は、現在のセッションにあるモデルから最良のものを選んで返してくれるみたいです。`compare_models`も近い機能のように思いますが、最適化したいメトリクスを１つ選ぶという点が違いでしょうか。
    * バイアスや公平性といったワードも昨今のAIや機械学習の分野では注目されるポイントですが、`check_fairness`という機能も用意されているようです。
    * `deploy_model`や`create_docker`のように、モデルのデプロイをサポートする機能もあるようです。
* 大きく分けて教師あり/教師なしで実装されている機能が異なり、実際に使う時にはどれがどれにあったっけ？と混乱することが多いのですが、こうやって全体として眺めてみると少し整理できた気がします。