Leaderboard(gluon_train)#
See also
本節は、TabularPredictor.leaderboard をベースにしている。
Note
Feature Importance は、export_leaderboard
オプションを指定した時にテーブルとして出力される。
model |
score_val |
pred_time_val |
fit_time |
pred_time_val_marginal |
fit_time_marginal |
stack_level |
can_infer |
fit_order |
num_features |
num_models |
num_models_w_ancestors |
memory_size |
memory_size_w_ancestors |
memory_size_min |
memory_size_min_w_ancestors |
num_ancestors |
num_descendants |
model_type |
child_model_type |
hyperparameters |
hyperparameters_fit |
ag_args_fit |
features |
child_hyperparameters |
child_hyperparameters_fit |
child_ag_args_fit |
ancestors |
descendants |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
LightGBMLarge_BAG_L1 |
-0.3866731304 |
0.02031469345 |
3.35344696 |
0.02031469345 |
3.35344696 |
1 |
TRUE |
11 |
24 |
1 |
1 |
8879884 |
8879884 |
8879884 |
8879884 |
0 |
0 |
StackerEnsembleModel |
LGBModel |
{“use_orig_features”: True, “max_base_models”: 25, “max_base_models_per_type”: 5, “save_bag_folds”: True} |
{} |
{“max_memory_usage_ratio”: 1.0, “max_time_limit_ratio”: 1.0, “max_time_limit”: None, “min_time_limit”: 0, “ignored_type_group_special”: None, “ignored_type_group_raw”: None, “get_features_kwargs”: None, “get_features_kwargs_extra”: None, “drop_unique”: False} |
[“passanger”, “tocoupon_geq15min”, “coffeehouse”, “car”, “restaurantlessthan20”, “expiration”, “y”, “tocoupon_geq25min”, “direction_same”, “age”, “maritalstatus”, “bar”, “weather”, “restaurant20to50”, “has_children”, “occupation”, “destination”, “carryaway”, “income”, “gender”, “direction_opp”, “temperature”, “time_hour”, “education”] |
{“num_boost_round”: 10000, “num_threads”: -1, “learning_rate”: 0.03, “objective”: “multiclass”, “verbose”: -1, “boosting_type”: “gbdt”, “two_round”: True, “num_leaves”: 128, “feature_fraction”: 0.9, “min_data_in_leaf”: 3} |
{“num_boost_round”: 131} |
{“max_memory_usage_ratio”: 1.0, “max_time_limit_ratio”: 1.0, “max_time_limit”: None, “min_time_limit”: 0, “ignored_type_group_special”: None, “ignored_type_group_raw”: [“object”], “get_features_kwargs”: None, “get_features_kwargs_extra”: None} |
[] |
[] |
WeightedEnsemble_L2 |
-0.4978609895 |
0.7392261028 |
193.6493859 |
0.002149343491 |
2.073774338 |
2 |
TRUE |
12 |
10 |
1 |
17 |
5644 |
61412191 |
5644 |
6688247 |
2 |
0 |
WeightedEnsembleModel |
GreedyWeightedEnsembleModel |
{“use_orig_features”: False, “max_base_models”: 25, “max_base_models_per_type”: 5, “save_bag_folds”: True} |
{} |
{“max_memory_usage_ratio”: 1.0, “max_time_limit_ratio”: 1.0, “max_time_limit”: None, “min_time_limit”: 0, “ignored_type_group_special”: None, “ignored_type_group_raw”: None, “get_features_kwargs”: None, “get_features_kwargs_extra”: None, “drop_unique”: False} |
[“XGBoost_BAG_L1/T0_4”, “XGBoost_BAG_L1/T0_0”, “XGBoost_BAG_L1/T0_1”, “LightGBM_BAG_L1/T0_3”, “XGBoost_BAG_L1/T0_3”, “LightGBM_BAG_L1/T0_1”, “LightGBM_BAG_L1/T0_0”, “LightGBM_BAG_L1/T0_2”, “XGBoost_BAG_L1/T0_2”, “LightGBM_BAG_L1/T0_4”] |
{“ensemble_size”: 100} |
{“ensemble_size”: 57} |
{“max_memory_usage_ratio”: 1.0, “max_time_limit_ratio”: 1.0, “max_time_limit”: None, “min_time_limit”: 0, “ignored_type_group_special”: None, “ignored_type_group_raw”: None, “get_features_kwargs”: None, “get_features_kwargs_extra”: None, “drop_unique”: False} |
[“LightGBM_BAG_L1/T0”, “XGBoost_BAG_L1/T0”] |
[] |
model#
The name of the model
score_val#
eval_metric
によるモデルの検証スコア。
Note
メトリクスのスコアは常に高い方が良いという形で表示される。これは log_loss
やroot_mean_squared_error
のような小さい方が良いとみなされるメトリクスは符号が反転し、値が負になることを意味する。これは、Leaderboard を見るときに混同させないためである。
pred_time_val#
validation データにおける予測にかかる推論時間。そのモデルおよびすべてのベースモデルの pred_time_val_marginal
値の合計に相当する。
fit_time#
モデルをエンドツーエンドでトレーニングするのに必要な時間(モデルがスタックアンサンブルの場合はベースモデルも含む)。
そのモデルとすべてのベースモデルの fit_time_marginal
値の合計に相当する。
pred_time_val_marginal#
validation データの予測計算に必要な推論時間(ベースモデルの推論時間は無視)。 bagging が無効な場合、モデルをメモリにロードするのに必要な時間は無視されることに注意。
fit_time_marginal#
モデルのトレーニングに必要なフィット時間(ベースモデルは無視)。
stack_level#
モデルのスタックレベル。
can_infer#
モデルが新しいデータに対して推論を実行できるかどうか。False の場合、モデルが保存されていないか、削除されているかなどで推論できない。
fit_order#
モデルの適合順序。最初のモデルの適合は fit_order=1
で、N番目のモデルの適合は fit_order=N
である。この順序は、bagging されたアンサンブルの場合、最初の子モデルの適合に対応する。
num_features#
モデルが使用する入力特徴の数。モデルによっては、前処理されたデータの、特定の特徴を無視することがあるため数が異なる。
num_models#
この「モデル」オブジェクトを実際に構成するモデルの数。 non-bagged models の場合、これは1となる。bagged model の場合、これは bagged されたアンサンブルに含まれる子モデルの数に等しい。
num_models_w_ancestors#
モデルとその祖先の num_models
値の合計に相当する。
memory_size#
モデルがメモリに永続化される際に必要とするバイト単位のメモリ量。これは推論中にモデルが使用するメモリ量とは異なる。bagged model の場合、これはすべての子モデルの memory_size
の合計となる。
memory_size_w_ancestors#
このモデルとその祖先の memory_size
値の合計に相当する。これは、このモデルから予測を得るために推論を呼び出す間にモデルをロードしないようにするために必要なメモリ量です。オンライン推論では、これは非常に重要となる。オンライン推論を実行するマシンは、この値の2倍以上のメモリを持つことが重要で、モデルをメモリに永続化することで、推論を呼び出すたびにモデルをロードすることを避けることができる。
memory_size_min#
モデルが推論を実行するために最低限必要なメモリの量(バイト)。
non-bagged model の場合、これは memory_size
と等価である。bagged model の場合、これは最大の子モデルの memory_size_min
と等価である。
メモリ使用量を最小化するために、子モデルを1つずつロードしたりアンパースしたりして推論を行うことができる。これは、推論前にバッグされたモデルがまだメモリに保持されていない場合のデフォルトの動作である。
memory_size_min_w_ancestors#
モデルとその祖先の memory_size_min
値の最大値に相当する。これは、一度に1つのモデルだけをロードして推論を行うために必要な最小のメモリである。レイテンシが気にならないオフライン推論では、memory_size_w_ancestors
が大きすぎる場合、これを使用してマシンに必要なメモリを決定する。
num_ancestors#
指定されたモデルの祖先モデルの数。
num_descendants#
与えられたモデルの子孫モデルの数。
model_type#
指定されたモデルのタイプ。モデルがアンサンブル型の場合、child_model_type
は内部モデルの型を示す。LightGBM モデルをベースにしたスタックアンサンブルの場合、モデルタイプは StackerEnsembleModel
となる。
child_model_type#
子モデルのタイプ。モデルがアンサンブルでない場合はなし。
LightGBM モデルのスタック・アンサンブルは、子モデル・タイプとして LGBModel
を持つ。
子モデルは、指定された bagged ensemble model の予測を生成するためにグループとして使用されるモデルである。これらは、bagged ensemble の各フォールドでトレーニングされたモデルである。10-fold bagging では、bagged ensemble model は10個の子モデルを持つことになる。3回繰り返しの 10-fold bagging では、bagged ensemble model は30個の子モデルを持つことになる。子モデルは、祖先や子孫とは異なることに注意。
hyperparameters#
モデルに指定されたハイパーパラメーター値。このdictに表示されないハイパーパラメーターは、すべてデフォルト値のままである。
hyperparameters_fit#
フィット時にモデルが設定するハイパーパラメーター。
これは、hyperparameters_fit
に特定のキーの hyperparameters
値がある場合、それを上書きして、 フィットしたモデルの最終的なハイパーパラメーターを決定する。これは、モデルトレーニングの反復回数やエポックを示すハイパーパラメーターに設定するのが最も一般的である。このような場合、hyperparameters
で指定されたハイパーパラメーターがモデルの最大値として使用されるが、モデルはより良い検証スコアを達成するため、または時間的制約を満たすために、トレーニング中により小さい値で早期停止することができる。例えば、あるNNモデルにハイパーパラメーターとして epochs=500
が与えられたが、訓練中に epochs=60
が最適な検証スコアをもたらすことがわかった場合、そのモデルは epoch=60
を使用し、hyperparameters_fit={'epoch': 60}
が設定されます。
ag_args_fit#
モデルのフィットに影響する AutoGluon の特別な引数。 詳細については、TabularPredictor.fit() の hyperparameters 引数のドキュメントを参照。
features#
モデルが使用する feature 名のリスト。
child_hyperparameters#
hyperparameters
と等しいが、子モデルを対象とする。
child_hyperparameters_fit#
hyperparameters_fit
と同じだが、子モデルを対象とする。
child_ag_args_fit#
ag_args_fit
と同じだが、子モデルを対象とする。
ancestors#
モデルの祖先。祖先モデルとは、モデルの入力された特徴量を構築する際に予測を行うために必要となるモデルのことである。モデルの祖先が削除されると、そのモデルは新しいデータに対して推論できなくなり、’can_infer’ の値は False になる。モデルは、自分よりも stack_level
が低い祖先モデルしか持つことができまない。stack_level'=1
のモデルは祖先を持たない。
descendants#
モデルの子孫。子孫モデルとは、入力された特徴量を構築する際に、このモデルが予測を行うために必要とするモデルのことである。AがBの子孫であれば、BはAの祖先である。このモデルが削除されると、すべての子孫モデルは新しいデータに対して推論することができなくなり、’can_infer’ の値は False になる。モデルは、自分よりも ‘stack_level’ が高い子孫モデルしか持つことができない。
Leaderboard(gluon_predict)#
gluon_predict
タスクにおいて、テストテーブルに target_column
が含まれている場合(つまり正解がわかっている場合)、leaderboard を出力することができる。この場合の項目は gluon_train
の時とは少し異なる。
この結果は、モデル実験(試行錯誤)フェーズにて毎回のモデルの精度を記録して管理するために活用される。詳しくはRecord Evaluation Results for each Modelを参照。
分類の場合#
以下の複数のモデルの評価指標を同時に参照できるようになっている。score_test
は、eval_metric
で指定された指標をテストデータに対して求めたものである。
score_test
log_loss
accuracy
f1
balanced_accuracy
roc_auc
model |
score_test |
log_loss |
accuracy |
f1 |
balanced_accuracy |
roc_auc |
score_val |
pred_time_test |
pred_time_val |
fit_time |
pred_time_test_marginal |
pred_time_val_marginal |
fit_time_marginal |
stack_level |
can_infer |
fit_order |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
WeightedEnsemble_L2 |
0.8527516677 |
0.4098940795 |
0.8064363464 |
0.5830784913 |
0.7117318577 |
0.8527516677 |
0.8466274736 |
2.81829524 |
0.9766783714 |
124.4149685 |
0.003955364227 |
0.001969814301 |
1.615611553 |
2 |
TRUE |
5 |
CatBoost_BAG_L1/T0 |
0.8526000606 |
0.4085681124 |
0.8097491718 |
0.5922920892 |
0.7174016162 |
0.8526000606 |
0.8464694814 |
0.1147480011 |
0.1006178856 |
12.61592555 |
0.1147480011 |
0.1006178856 |
12.61592555 |
1 |
TRUE |
3 |
RandomForestEntr_BAG_L1/T0 |
0.8503489259 |
0.4146534572 |
0.7955513488 |
0.539445629 |
0.6855417425 |
0.8503489259 |
0.8429722288 |
0.1086888313 |
0.1864304543 |
0.5902302265 |
0.1086888313 |
0.1864304543 |
0.5902302265 |
1 |
TRUE |
2 |
LightGBM_BAG_L1/T0 |
0.8493215585 |
0.4247181206 |
0.7993374349 |
0.5391304348 |
0.6852735588 |
0.8493215585 |
0.819878879 |
1.030580997 |
0.146330595 |
20.52098203 |
1.030580997 |
0.146330595 |
20.52098203 |
1 |
TRUE |
1 |
NeuralNetFastAI_BAG_L1/T0 |
0.822272911 |
0.5903145311 |
0.7714150497 |
0.6076360682 |
0.7379725086 |
0.822272911 |
0.7835099637 |
1.560322046 |
0.5413296223 |
89.07221913 |
1.560322046 |
0.5413296223 |
89.07221913 |
1 |
TRUE |
4 |
回帰の場合#
以下の複数のモデルの評価指標を同時に参照できるようになっている。score_test
は、eval_metric
で指定された指標をテストデータに対して求めたものである。
score_test
mean_squared_error
mean_absolute_percentage_error
root_mean_squared_error
r2
mean_absolute_error
model |
score_test |
mean_squared_error |
mean_absolute_percentage_error |
root_mean_squared_error |
r2 |
mean_absolute_error |
score_val |
pred_time_test |
pred_time_val |
fit_time |
pred_time_test_marginal |
pred_time_val_marginal |
fit_time_marginal |
stack_level |
can_infer |
fit_order |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
CatBoost_BAG_L1/T2 |
-3637.413688 |
13230778.34 |
0.9864081393 |
3637.413688 |
-0.3378991525 |
1829.298613 |
-0.5230232141 |
0.01738619804 |
0.02107787132 |
1.852314949 |
0.01738619804 |
0.02107787132 |
1.852314949 |
1 |
TRUE |
6 |
CatBoost_BAG_L1/T0 |
-3637.414387 |
13230783.42 |
0.986393549 |
3637.414387 |
-0.3378996665 |
1829.297729 |
-0.5225133891 |
0.01821208 |
0.02219128609 |
2.072986364 |
0.01821208 |
0.02219128609 |
2.072986364 |
1 |
TRUE |
4 |
CatBoost_BAG_L1/T1 |
-3637.416136 |
13230796.15 |
0.9864029598 |
3637.416136 |
-0.3379009529 |
1829.298912 |
-0.522951075 |
0.02020359039 |
0.02140188217 |
2.67994976 |
0.02020359039 |
0.02140188217 |
2.67994976 |
1 |
TRUE |
5 |
RandomForestMSE_BAG_L1/T0 |
-3637.418506 |
13230813.38 |
0.9861249063 |
3637.418506 |
-0.3379026961 |
1829.30332 |
-0.5314347876 |
0.07208180428 |
0.1127390862 |
0.4769694805 |
0.07208180428 |
0.1127390862 |
0.4769694805 |
1 |
TRUE |
3 |