FAQ#
AutoGluon でできることは何ですか?#
AutoGluon Notebook は「教師あり学習」を実行し、
2値分類
多値分類
回帰(数量予測)
のいずれかを実行することができます。AutoGluon では、target_column
に設定されたカラムの値の内訳から、自動的に上記3つのどれを実行するかを自動判定してくれます。 また、機械学習にはこの「教師あり学習」のほかに「教師あり学習」や「強化学習」とよばれるものがあり、さらに「教師あり学習」の中でも、上記3つ以外の手法も存在します。AutoGluon でできること、できないことをしっかりと把握することはとても重要です。
インプットテーブルは手動でデータクレンジングが必要になりますか?#
手動での対応が必要なケースもあるかもしれませんが、欠損値の対応やIDなど全カラムが固有値を持つカラムの除去など基本的なデータクレンジングについては自動化されております。 インプットテーブルに対して自動処理される項目につきましては、特徴量エンジニアリングをご参照ください。
AutoGluonではクロスバリデーションは自動でやってくれるのでしょうか?train, testのテーブルを両方用意しないといけないのでしょうか?#
k-fold(k:3-8)の交差検証を自動的にやってくれます。
自動で特徴量を計算して補完してくれる機能はあるのでしょうか。 平均、最大、最小、偏差値など#
今の所、統計量などの特徴量を新たに自動計算して補完する機能はありません。
学習に必要な時間を短縮するにはどうしたら良いですか?#
time_limit
オプションを指定し、待機してもよい秒数を指定します。sampling_threshold
オプションを指定することで、データをサンプリングすることで学習に必要なデータ数を減らすことができます。特定のタイプのモデルが、他のタイプのモデルよりもデータのトレーニングに非常に時間がかかっている場合、
exclude_models
オプションによってそのモデルを学習から除外することができます。Feature Importance を導出するのにも、実は時間がかかります。
fi_time_limit
オプションを指定することによって、Feature Importance 導出にかかる時間を減らすことができます。
詳しくは gluon_train におけるフルオプションリストを参照してください。
2値分類において、 predicted_proba (予測確率)の対象となる Positive のラベルがどちらかわかりません#
2値分類の予測結果の出力の1つである predicted_proba は、片方のラベルに対する予測確率を与えます。その “片方” がどのように決まるのかという質問ですね。
2値の内、文字列の意味で値の大きい方(降順に並び替えた上で Top にくる方)が Positive のラベルとして predicted_proba の対象になります。以下に例を挙げておきます。
Yes/No: Yes が Positive
1/0: 1 が Positive
True/False: True が Positive
True/false: false が Positive
特定のモデルを指定して学習することはできますか?#
できません。ただ、逆に特定のモデルを除外して実行するオプション(exclude_models
)は存在します。
AutoGluon で作成したモデルを、(精度比較などを目的に)AutoGluon 以外のツールで再現できますか?#
AutoGluon を使用せずに AutoGluon モデルの結果を正確に再現することは困難です。(例:AutoGluon に依存せずに AutoGluon の LightGBM の結果を再現しようとする場合。)
AutoGluon は、データ前処理、エッジケース処理、カスタム早期停止、カスタム・アーキテクチャなど、元々のモデルにはない様々なテクニックを使用します。これらはすべて、オリジナルのモデルフレームワーク(LightGBM、XGBoost、FastAI など)に存在するものよりも性能を向上させ、使い方を単純化するために使用されます。これは AutoML フレームワークの中核的な利点であり、複製するのは本質的に複雑です。(AutoGluon が裏で行っていることの多くを再実装する必要があります。)それでも結果を再現したい場合は、ソースコードからロジックを導き出すことができます。
AutoGluonでは欠損値の補完を行なってくれますか?#
Datetime カラムに対しては、欠損値は平均値で補完されますが(特徴量エンジニアリング参照)、AutoGluon は一般的に欠損値の補完を行いません。その代わりに、欠損値を各モデルに送り、各モデルは欠損値に対して異なるカスタム処理を行います。これによりモデルの多様性が向上し、アンサンブルの最終的な強度が向上します。欠損値がどのように処理されるかについては、モデルのソースコードを参照してください。
モデルの保存期間やアクセス可能期間は?#
モデルは永久に保存されます。ただし、Notebook にアクセスできるのは作成日から365日間だけです。その後、Notebook は削除されます。Notebook へのアクセスが必要な場合は、Notebook の内容をダウンロードすることができます。
他のユーザーが作成したモデルにアクセスできますか?#
share_model
オプションを有効にすることで、共有可能なモデルの UUID が ${automl.shared_model}
に格納されます。他のユーザーは、この UUID を自身の予測タスクのshared_model
オプションに指定することで、共有モデルにアクセスすることができます。Quick Start の多値分類にて share_model
オプションの使用例が見れます。
time_limit に推奨の設定値(学習時間の推奨値)はありますか?#
タスクやデータセットによって異なりますが、TD では大規模なプロダクションデータセットの場合、全体としての学習時間を6時間程度に設定することを推奨しています。または、model の学習フェーズに3時間程度かけることを推奨します。なお、AutoGluon は20以上のモデルを構築しようとするため、各モデルに9分(3 * 60分 / 20モデル = 9分)かかることになります。
オーバーフィッティングを避けるために何かをしていますか?#
AutoGluon は n-repeated k-fold bagging
と呼ばれる技術を使ってオーバーフィッティングを回 避します。また、SHAP 値や Feature Importance を見ることである特徴がオーバーフィットしているかどうかをチェックすることができます。
重回帰モデルにおける多重共線性をどう扱いますか?#
多重共線性とは、特徴量の中に相関が強い組み合わせが存在することを言います。(例:体重と BMI)
AutoGluon Notebook では Gradient Boosting Decision Tree(GBDT)モデルをアンサンブルするようになっています。これらのモデルは枝が情報利得を最大化するように成長するため、相関のある特徴量の一方は枝に選択されない傾向があります。ゆえに多重共線性に頑健となっています。
不均衡データをどう扱いますか?#
AutoGluon Notebook では、不均衡データに対して Synthetic Minority Over-sampling Technique(SMOTE)と、Oversampling 後の予測確率のキャリブレーションを行なっています。
さらに、random forest や XGBoost といった、不均衡データに対して頑健なモデルを採用しています。
回帰において外挿に対応していますか?#
外挿とは、回帰問題において学習データの範囲外のデータに対して予測値を与えることを指します。単純な線型回帰モデルをイメージすると、学習データの範囲外にもモデルがのびているイメージですが、一般に非線形モデルになると学習データの範囲外の予測は与えられません。
AutoGluon では Tree モデル(XGBoost, LightGBM, CatBoost, RandomForest)が外挿に対してロバストではないため、外挿をうまく扱うことができません。一方、時系列予測は、将来の売上予測などの外挿に使用できます。
学習に必要なメモリー消費量を知ることはできますか?#
オプションの task_mem
で使用するタスクユニットを設定できるが、そもそもその学習にどれくらいのメモリが必要かが問題になりますね。一度実行する必要がありますが、モデルの学習に対してどれくらいのメモリを消費したかは Notebook の出力から確認できます。該当箇所はModel Fittingの「使用したメモリリソース情報」よりご確認ください。
学習タスクで出力された予測モデルには、誰がアクセスできるのでしょうか?#
AutoGluon のように学習タスクを実行して予測モデルを出力するものにおいては、Workflow Session ごとにそれを実行したユーザーが、予測モデルのオーナーとなります。 スケジュールされたワークフローの場合、ワークフローの最後の編集者がそのセッションのオーナーとなります。 また、基本的に予測モデルはオーナーのみが利用できます。
ただし、シェアモデルオプションによってモデルを共有できます。オーナーはこのオプションを有効にした上で学習タスクを実行すると、そのモデルにアクセスするためのUUIDを得ることができます。この UUID を他のユーザーに共有することで、他ユーザーもこのモデルを使って予測タスクを実行できます。
AutoGluon の実行にはどれくらいのメモリ(タスクユニット)が必要ですか?#
必要なメモリは、データセットとタスクによって異なりますが、AutoGluon では 384GB のメモリインスタンスを推奨しています。少なくともトレーニングタスクにおいては最低 256GB(Tier 2と3は384GBを推奨)、予測タスクには128GBを推奨しています。64GBは試行錯誤のための探索には十分かもしれません。