AutoML「AutoGluon-Tabular」が、少なくとも私の観測範囲の中で局所的に話題になっています。
構造化データに対するAutoMLとしてAutoGluon-Tabularは基本モデルを積み重ねる多層スタックアンサンブルを利用。各層は前層の予測結果と入力を受け取り、過学習を防ぐよう交差検定のテスト集合に対する予測のアンサンブルを出力する。他OSSや商用AutoMLを上回る https://t.co/MYiY6ryAfC
— Daisuke Okanohara (@hillbig) March 17, 2020
テーブルデータに対し自動で予測モデルを構築するAutoGluon-Tabularの発表。モデル1つ選びパラメーター探索する手法と異なり、k-foldのBaggingで学習を行ったモデルを積んでいく(予測結果平均が次層の入力になる)。既存の商用/OSSのAutoMLを上回る精度という。https://t.co/euPtkaYISw
— piqcy (@icoxfog417) March 18, 2020
人気のある2つのKaggleコンペティションで、AutoGluonは生データのトレーニングをわずか4時間行った後、参加しているデータサイエンティストの99%を破りました。AutoMLつよい
— 小猫遊りょう(たかにゃし・りょう) (@jaguring1) March 18, 2020
AutoGluon-Tabular: Robust and Accurate AutoML for Structured Datahttps://t.co/CiV81JM3mF
本記事では、この「AutoGluon-Tabular」を取りあえず恒例のTitanicで試してみました。なおコードの全体像はKaggleのNotebook*1にて公開しています。
インストール
公式ページ*2の指示に従います。
!pip install --upgrade mxnet !pip install autogluon
学習・予測
あとはREADME*3の指示に従い、直接学習・予測が実行できます。TitanicのデータセットにはNameなど文字列型のカラムも存在している中で、前処理などもせずファイルパスを指定するだけです。
from autogluon import TabularPrediction as task train_data = task.Dataset(file_path='../input/titanic/train.csv') test_data = task.Dataset(file_path='../input/titanic/test.csv') predictor = task.fit(train_data=train_data, label='Survived') y_pred = predictor.predict(test_data)
Titanicでスコア議論するのは野暮ですが、0.77990とそこそこな値が出ています。
おわりに
本記事では、AutoML「AutoGluon-Tabular」を紹介しました。前処理不要でファイルパスを渡すだけで学習・予測が完了するのは非常に便利だなと感じました。