Help us understand the problem. What is going on with this article?

PyCaret | DataRobotの無料版!?機械学習を自動化するライブラリPyCaret入門

PyCaretとは

つい先日Announcing PyCaret 1.0.0という記事を拝見しました。
面白そうなライブラリだったため、この記事では、実際にPyCaretの使い方を解説していきます。
PyCaretとは、機械学習のモデル開発においてデータ前処理や可視化、モデル開発を数行のコードで出来てしまうPythonのライブラリです。

PyCaretはいくつかの主要な機械学習ライブラリ(scikit-learn, XGBoost, LightGBMなど)をPythonでラッパーしたものです。
分類や回帰、クラスタリング、異常検知、自然言語処理が扱えます。
言わば、PyCaretは、DataRobotの無料版のようなイメージです。

基本的に、前処理、モデリング、性能評価、チューニング、可視化まで一通り出来るそうです。
さらに、スタッキング等も出来ます。
(時系列解析やLog lossなどの一部の評価指標がなさげです。)
PyCaret/Github

また、対象読者は、既にscikit-learnを用いて機械学習の一連を入門したよ!って言う方です。
(機械学習初学者だと、内容がわからなくなる可能性があります。とりあえずなんか過ごそう。。って感じで終わると思います。自社サービスで恐縮ですが、AI Academyなどを使って、機械学習プログラミングを入門してみてください!)

PyCaretを使って、kaggleのCredit Card Fraud Detectionに取り組んだ解説動画もありますので、こちらも是非見てみてください。

PyCaretをやってみよう!

まずはPyCaretのインストールです。

ターミナルやコマンドプロンプトからインストールの場合は、以下のコマンドでインストール出来ます。

pip install pycaret

Jupyter NotebookやGoogle Colabでは先頭に!をつけて以下のコマンドにてインストール出来ます。

!pip install pycaret

必要なモジュールの読み込み&データの準備

今回は、irisデータセットを用いて多クラス分類をしてみます。
まずは必要なコードを読み込みます。

import warnings
# 不要な警告文消すよ
warnings.filterwarnings("ignore")
# 今回の主役!PyCaretを読み込みます。
from pycaret.classification import *
# Irisデータセットを読み込みます。
from sklearn.datasets import load_iris
# データフレーム扱うのでPandasも読み込みます。
import pandas as pd

次に、データを準備します。

iris = load_iris()
X = pd.DataFrame(iris.data, columns=iris.feature_names)
y = pd.DataFrame(iris.target, columns=["target"])
df = pd.concat([X,y], axis=1)

先頭5件表示。

df.head()

前処理

いざ!前処理。

setup()を使うと、欠損値処理、データ分割などを行なってくれます。

targetには、目的変数を渡します。

exp1 = setup(df, target = 'target')

モデルを比較しよう

モデルの比較はcompare_models()を使うだけです。

compare_models()

スクリーンショット 2020-04-21 0.14.17.png

モデリング

https://pycaret.org/create-model/を参考にして、学習に利用するアルゴリズムの名称を入力します。
今回は、正解率が最も高かった『2次判別分析 (Quadratic Discriminant Analysis)』と決定木を利用します。
Quadratic Discriminant Analysisは、'qda'と入力すれば良いそうなので、今回はqdaと入力します。

qda = create_model('qda')

スクリーンショット 2020-04-21 0.14.38.png

決定木も試してみましょう。

tree = create_model('dt')

スクリーンショット 2020-04-21 0.14.44.png

チューニング

決定木をチューニングしてみます。

tuned_tree = tune_model('dt')

スクリーンショット 2020-04-21 0.14.44.png

パラメータの取得

tuned_tree.get_params

モデルの可視化

plot_model(tuned_qda)

download.png

plot_model(tuned_tree)

download-1.png

アンサンブル学習

lgbm = create_model('lightgbm')
xgboost = create_model('xgboost')

ensemble = blend_models([lgbm, xgboost])

スクリーンショット 2020-04-21 0.15.43.png

スタッキング

stack = stack_models(estimator_list = [xgboost], meta_model = lgbm)

スクリーンショット 2020-04-21 0.15.48.png

予測

pred = predict_model(qda)

はい、便利。

最後に

数行で、一通り出来ました。。
これから少しずつ使ってみようかと思います。

参考サイト

参考にさせて頂いた記事です。
この記事以外にも是非参考にしてみてください。

参考記事1
参考記事2
参考記事3

この記事を書いた人

サイバーブレイン株式会社
代表取締役CEO 谷 一徳
フォローお待ちしております!
Twitter
Facebook
5000名以上が参加しいてるAIコミュニティも運営しております。
毎日AIに関する情報を提供しておりますので、こちらのご参加もお待ちしております!
人工知能研究コミュニティ
AI Academy

tani_AI_Academy
AI Academy運営サイバーブレイン株式会社 代表取締役 CEO&Founder オンライン上でPythonやR、機械学習などが学べるAI Academyを開発・運営。 普段は下記にてAI教育を行なっております。 https://aiacademy.jp/bootcamp
https://aiacademy.jp/
cyberbrain
『テクノロジーで学びと教育のあり方を変える』をミッションに、EdTech領域のサービスを展開しています。オンラインであなたにあったカリキュラムでPython・AIプログラミングが学べるAI Academyを開発・運営しています。https://aiacademy.jp/
https://aiacademy.jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした