gluon_train#
Contents
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” のいずれかを指定する。このオプションによる指定がなければ |
||||
oversampling_threshold |
2値分類の時だけに適用されるオプション。再サンプリング後の多数派クラスのサンプル数に対する少数派クラスのサンプル数の望ましい比率を指定する。0を指定すると無効になる。 |
no |
float |
0.001 |
0.01 |
proba_calibration |
オーバーサンプリング後に Probability Calibration を実行するかどうかの指定を行う。 |
no |
boolean |
TRUE |
FALSE |
eval_metric |
モデルに適用する評価指標を指定する。指定されていない場合、与えられた |
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)でモデルを再トレーニングするかどうかを指定する。 |
no |
string |
FALSE |
以下、さらに詳しい説明が必要なオプションについて解説していく。
oversampling_threshold#
Note
2値分類の時のみに適用されるオプションである。
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
: LightGBMCAT
: CatBoostXGB
: XGBoost
Decision Tree variants
RF
: RandomForestXT
: Extremely Randomized Tree (ExtraTree)
Neural Networks:
FASTAI
: FastAI Neural NetworkNN
: 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。