H2O FlowでAutoMLを試してみる

H2O FlowでAutoMLを試してみる

前回、Google Cloud Platform上にH2O Flowの環境を構築しました。今回は、H2OのAutoML機能を使ってみます。AutoMLは、データに対して複数のモデルを適用した結果から最適なモデルの提案をしてくれる機能です。使用するデータは、kaggleで提供されているタイタニックのデータを使います。

データのアップロードと読み込み

ブラウザからH2O Flowが起動しているURLにアクセスをします。先ずはデータを読み込ませます。メニュータブの[Data]-[Upload File]から使用するTrain.csvを選択して、Uploadを行います。

スクリーンショット 2018 12 06 13 57 17

今はデータが仮で読み込まれてる状態です。ヘッダーや区切り文字などが異なっている場合は、ここで修正します。今回は生存確率を予測しようと思うので、Survivedのデータ型をEnumに変更しておきます。Enumとは列挙型というらしく、データ分析で言えばカテゴリー型って感じです。あまり馴染みのない型だったので、最初知りませんでした。

スクリーンショット 2018 12 06 14 01 37

修正が完了したら、セクションの一番下の[Parse]をクリックします。

スクリーンショット 2018 12 06 14 14 45

処理が完了したら、[View]をクリックして確認します。

スクリーンショット 2018 12 06 14 16 11

AutoMLの実行

Key_Frame_train.hexが処理済みのデータになります。ここで最大値や平均などを確認できます。このデータに対してAutoMLを実行していきます。メニュータブから、[Model]-[Run AutoML]を選択します。

スクリーンショット 2018 12 06 14 21 21

取り敢えず、実行させるために以下の項目を入力・選択していきます。取り敢えず、他はデフォルトのままで実行させます。

  • Project Name : 任意のプロジェクト名
  • Training Frame : Key_Frame_train.hex (アップロードして読み込んだフレーム)
  • Response Cloumn : Survived (目的変数)
  • Ignored Columns : PassengerId、Nameにチェック (無視する変数。今回はIDと名前を除外)

詳しいオプションについては、以下を参照して下さい。

設定後にセクション下部の[Build Model]を押すと、モデルの作成が開始されます。あとは気長にコーヒーでも飲みながら待ちます。試してくれるモデルは、一般化線形モデル、ランダムフォレスト、ブースティングモデル、ニューラルネットなどです。

スクリーンショット 2018 12 06 15 35 11

マシンタイプ:n1-standard-8で、全てのモデルを試すのに大体1時間でした。[View]を押すと、モデルの結果が出力されます。

モデルオブジェクトの確認

スクリーンショット 2018 12 06 15 43 33

結果を確認すると、StackedEnsembleが0.876%の的中率で最も精度が良い結果となってます。ただ、GLMも0.847%と検討していました。計算時間を考えるとコスパが良いです。各モデルをクリックするとROC曲線や予測結果などの詳細を確認することが可能です。
では、このモデルを使って、test.csvの生存を予測してみましょう。

予測

train.csvをアップロードしたときと同様の処理をtest.csvに対しても行います。ちなみにtestにはSurvived変数はないので、前処理は必要ないです。読み込みが完了したら、メニュータブの[Score]-[Predict]を選択して、

スクリーンショット 2018 12 06 15 54 47

Modelは最も精度が高かった「StackedEnsemble_BestOfFamily_AutoML_20181206_053430」オブジェクト、提供するデータを「Key_Frame_test.hex」を選びんで、[Predict]を押してモデルを使って予測を行います。

スクリーンショット 2018 12 06 16 03 32

Prediction_frameの「prediction-59892143-7b81-484c-a91d-b66005b0fcfa」をクリックして、[ViewData]で確認すると予測結果を確認できます。train.csvと結合させる場合は[Combine predictions with frame]を押したあとに[ViewData]で確認を行います。

まとめ

H2O FLOWを使ってのAutoMLを実行方法してみました。今回は、デフォルトで実行させてみました。交差検証方法、トレーニングデータと検証データの割合、精度指標などはオプションで変更できるので、色々試してみてもらえればと思います。使い勝手はDataRobotの方が優れていますが、コスパを考えると正直こちらで十分な気がします。

Tipsカテゴリの最新記事