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

PyCaret2.0 (pycaret-nightly)を試してみた

はじめに

image.png

試し方

  • pipしてください。
pip install pycaret-nightly
  • pipすると、version 2.0.0を試すことができます。

image.png

試す

不均衡データに対する前処理

  • v2では、2値分類での不均衡(正例、負例の一方がごく少数)データに対する前処理が追加されています。
  • 指定方法は簡単で、setupする際の引数にて、fix_imbalance=True を指定します。
from pycaret.classification import *
exp1 = setup(
    data, 
    target = 'default',
    fix_imbalance=True # この行を追加
)
  • この指定により、不均衡データに対する前処理が実施されます。

image.png

実施される前処理(SMOTE)

他の前処理

  • 冒頭の記事にあったとおり、ADASYNRandomOverSampler等にも対応しているようです。
  • 内部的には、v2(Nightlyビルド版)では、依存ライブラリに、imbalanced-learnが追加されています。
  • docstringにも下記の記述がありますね。
fix_imbalance_method: obj, default = None
When fix_imbalance is set to True and fix_imbalance_method is None, 'smote' is applied 
by default to oversample minority class during cross validation. This parameter
accepts any module from 'imblearn' that supports 'fit_resample' method.

他の前処理の指定方法

  • 上記のdocstringの指示のとおり、imblearnのclassを指定してみたいと思います。
  • imblearn.over_samplingから指定するover_samplingアルゴリズムをimportして指定します。
from pycaret.classification import *
from imblearn.over_sampling import ADASYN, BorderlineSMOTE, KMeansSMOTE, RandomOverSampler, SMOTE, SMOTENC, SVMSMOTE
exp1 = setup(
    data, 
    target = 'default',
    fix_imbalance=True,
    fix_imbalance_method=ADASYN() # この行で指定
)

image.png

指定できたアルゴリズム

モデル評価時の表示上の工夫

  • 不均衡データに対する前処理の実装と共に、精度一覧上にMCC(Matthews相関係数)が追加されています。
  • 少数(マイノリティ)クラスを正例としている場合では、F-measureでも良いのですが、そういった考慮ができていない状況でも、MCCは不均衡データに対する学習精度を正しく評価できるので良いですね。
  • 不均衡データ時の、F-measureとMCCの関係性はこちらのブログが参考になるのでリンクさせていただきます。

image.png

最後に

  • 今回は、v2の不均衡データに対する対応をご紹介しました。
  • これ以外にも、mlflowへの対応等が計画されているようで、v2の正式リリースが楽しみです。
  • 雑な記事となりましたが、最後までお付き合い頂きありがとうございます。

関連記事

shnchr
機械学習と数理最適化のエンジニアやってます
https://signate.jp/users/7681/
nri
NRIは「コンサルティング」「金融 ITソリューション」「産業 ITソリューション」「IT 基盤サービス」の4事業でお客様のビジネスや快適な社会、暮らしを支えています。※各記事の内容は個人の見解であり、所属する組織の公式見解ではありません。
https://www.nri.com/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
ユーザーは見つかりませんでした