gluon_train#

parameter name

description

required

data type

default value

example value

input_table

トレーニングに使用するTDテーブルを dbname.table_name の形式で指定する。

yes

string (dbname.table_name)

ml_dataset.gluon_train

target_column

学習を行うカラムを指定する。この値の形式(2値/多値, または数量)によって自動で推論タイプが特定される。

yes

string

class

model_name

モデル名。モデル名は{td_account_id}/{td_user_id}/{model_name} というルールで S3 上に保存されるため、ユーザーが異なれば model_name は重複しても問題ない。

yes

string

gluon_model

problem_type

予測問題のタイプ、”binary”, “multiclass”, “regression” のいずれかを指定する。このオプションによる指定がなければ target_column で指定したカラムから自動推論される。

oversampling_threshold

2値分類の時だけに適用されるオプション。再サンプリング後の多数派クラスのサンプル数に対する少数派クラスのサンプル数の望ましい比率を指定する。0を指定すると無効になる。

no

float

0.001

0.01

proba_calibration

オーバーサンプリング後に Probability Calibration を実行するかどうかの指定を行う。

no

boolean

TRUE

FALSE

eval_metric

モデルに適用する評価指標を指定する。指定されていない場合、与えられた problem_type に対して適切な評価指標(デフォルトでは分類問題に対しては accuracy、回帰問題に対しては root_mean_squared_error)を自動的に選択する。

no

string

roc_auc(分類)、root_mean_squared_error(回帰)

log_loss

ignore_columns

学習に使用したくないカラム(timestamp, レコードごとにユニークな id などの値を持ったカラム)を指定する。

no

string (comma seperated)

time

time, rowid

time_limit

学習にかける時間のソフトリミットを秒数で指定。

no

integer

60 * 60

3 * 60 * 60

fi_time_limit

Feature Importance の計算にかける時間のソフトリミットを秒数で指定。

no

integer

5 * 60

10 * 60

sampling_threshold

サンプリング数の閾値を指定。

no

integer

10_000_000

20_000_000

export_leaderboard

leaderboard table を出力したい場合にを指定。

no

string ([dbname.]table_name)

None

ml_test.leaderboard

export_feature_importance

Feature Importance table を出力したい場合に指定。

no

string ([dbname.]table_name)

None

ml_test.feature_importance

exclude_models

除外したい model があれば指定する。

no

string (comma seperated)

KNN

KNN, FASTAI

hide_table_contents

Notebook 内において、表を表示しないようにする。

no

boolean

FALSE

FALSE

share_model

アカウント内で他のユーザーと model を共有したい場合に指定する。

no

boolean

FALSE

TRUE

refit_full

すべてのデータ(training + validation)でモデルを再トレーニングするかどうかを指定する。bestfalse のいずれかを指定。best を指定すると、time_limit オプションが無効になることに注意。bagged model に対してはすべてのトレーニングデータに適合する単一のモデルに畳み込むことでモデルの推論時間を最適化する。この処理により通常、精度がわずかに低下し、推論速度が大幅に向上する。通常、推論速度は元の original bagged ensemble model の10倍から200倍速くなる。non-bagged model に対しては validation セットを使用せず、100%のデータで再トレーニングを行うことで、モデルの精度を最適化する。通常、精度はわずかに向上し、推論時間に変化はない。実行時間は元の実行時間とほぼ同じになる。

no

string

FALSE

以下、さらに詳しい説明が必要なオプションについて解説していく。

oversampling_threshold#

Note

2値分類の時のみに適用されるオプションである。

2値分類において、一方のクラスに対して、もう片方のクラスが極端に多いか少ないデータのことを不均衡データと呼ぶ。この不均衡データは片方のクラスが極端に少ないためにうまく学習ができない。そこで不均衡データを使って何らかのモデルを学習させる場合は、データ数の偏りを補正して均衡にすることを考えなければならない。この際に取りうる方法は、

  1. 多数派のクラスに属するデータをアンダーサンプリング

  2. 少数派のクラスに属するデータをオーバーサンプリング

があるが、その中でオーバーサンプリングに対応している。

AutoGluon Notebook では SMOTE オーバーサンプリングを採用している。少ない方のデータをただ単にコピーするのではなく、近傍にあるデータを用いて増やす方法である。

proba_calibration#

分類を行うときにはラベルを予測するだけでなく、予測確率(Predicted Probability)と呼ばれる、それぞれのラベルの確率(確信度)も同時に求められるものがある。この確率は、予測に対するある種の信頼性を与えるものであり、例えばスパムメールの判定問題において、90%という予測確率が出力されたような100通のメールのうち、90通が本当にスパムメールだろうと期待される。

ただし実際に生成されるモデルにおいては、モデルの予測確率は真の確率と乖離してしまっているケースが多い。先ほどの例で言うと本当のスパムメールの数が90を下回るような自信過剰のモデルであったり、逆に90を上回る自信不足のモデルになってしまっていたりするため、モデルが出力する予測確率を間に受けてしまってはいけない。

そこで、モデルの予測確率は真の確率がどのくらい乖離しているのかを測り、予測確率を真の確率に近づける補正方法が Probability Calibration と呼ばれるものである。proba_calibration オプションは、この補正を行うためのオプションである。

特に Oversampling を行う必要のあるような不均衡データは、予測確率が偏りを持っている可能性が高く、多数派のクラスへ分類することを過度に好んでしまう。このオプションを有効にすることで、ラベルの確率のキャリブレーション(調整)を行うことが必須となる。

参考文献

eval_metric#

classification に指定可能な metric#

See also

各 metric における詳細な説明は sklearn.metrics module のドキュメントから Classification metrics を参照。

  • accuracy

  • balanced_accuracy

  • f1

  • f1_macro

  • f1_micro

  • f1_weighted

  • roc_auc(デフォルト)

  • roc_auc_ovo_macro

  • average_precision

  • precision

  • precision_macro

  • precision_micro

  • precision_weighted

  • recall

  • recall_macro

  • recall_micro

  • recall_weighted

  • log_loss

  • pac_score

regression に指定可能な metric#

See also

各 metric における詳細な説明は sklearn.metrics module のドキュメントから Regression metrics を参照。

  • root_mean_squared_error(デフォルト)

  • mean_squared_error

  • mean_absolute_error

  • median_absolute_error

  • r2

exclude_models#

除外対象として指定できるモデルは以下になる。

  • Gradient Boosting

    • GBM: LightGBM

    • CAT: CatBoost

    • XGB: XGBoost

  • Decision Tree variants

    • RF: RandomForest

    • XT: Extremely Randomized Tree (ExtraTree)

  • Neural Networks:

    • FASTAI: FastAI Neural Network

    • NN: MXNet Neural Network

  • KNN: k-Nearest Neighbor:

gluon_train 実行後に利用できるようになる変数#

gluon_train 実行後、実行に関する情報を以下の変数から取得することができる。

${automl.last_executed_notebook}#

保存された Notebook の Console URL。

${automl.last_executed_user_id}#

WF を実行したuser id。

${automl.last_executed_user_email}#

WFの実行者の email。

${automl.shared_model}#

共有されたモデルの UUID。