自動機械学習で Kaggle に挑戦してみた

こんにちは!
Microsoft 認定トレーナーの小池です!
本章は下記のような方におすすめです。

  • AI・機械学習に難しそうなイメージを持っている
  • モデルの精度が上がらずに挫折してしまった
  • 手元のデータが機械学習モデルに適したデータなのか整合性を確認したい

皆さんは、Kaggle のタイタニックの問題はご存知でしょうか?
初めて聞いたという方は下記をご確認ください!

昨今、AI や機械学習の領域では自動機械学習というノンコードでだれでも簡単にモデル作成を行えるツールが発展しています。
本記事ではこのタイタニックの生存者予測の問題をこのノンコードの自動機械学習で実装してみます!

タイタニックのコンペティションは今まで 14,413 名の AI 開発者やデータサイエンティストがエントリーをしており、約半分の 7,000 のモデルの精度は 77% 程です。


出典:Kaggle

今回はマイクロソフトのクラウドサービスである Azure Machine Learning (以下 Azure ML)の Automated Machine Learning (以下 Auto ML) を利用し、ノンコードで精度 77% 以上のモデルの構築を目指しつつ、自動機械学習の性能についてご紹介していきます。

自動機械学習はデータの前処理・計算手法(アルゴリズム)の選択・ハイパーパラメータの調整などといったことを全てノンコードで実装してくれる便利なツールです。手軽に実装でき、高い精度のモデルを構築することができるので PoC やデータサイエンティストのいない会社の実務などで幅広く利用されています。

それでは早速 Azure ML を使用し、Kaggle のコンペティションに挑戦してみましょう!!

事前準備

今回使用するデータの準備から始めます。

参考
データKaggle タイタニック
test.csv と train.csv をダウンロードしてください。

こちらでは  Azureを使用して行きますのでサブスクリプションの登録が必要です。初めて利用する方は無料で使用でき、初めてでない方でも数十円程度で実装できます!

環境構築

リソースの作成

まずはリソースの作成をします。アプリをダウンロードするイメージです。
Image

machine learning と検索して頂き作成を押してください。
mechilelearning

リソースの設定は画像の通りです。設定ができましたら作成を押してください。
setting

作成が完了しましたらスタジオの起動を押してください。
kidou

起動後、下のような画面に遷移します。こちらが Auzre ML のホーム画面です。こちらで機械学習モデルの構築、運用を行うことができ、今回使用する自動機械学習以外にもデザイナー Notebook を使用して機械学習モデルを構築することができます。
それでは自動機械学習を使用して行きましょう。今すぐ開始をクリックしてください。

まずは使用するデータを Azure にアップします。データセットの作成を選択してください。
updata

ローカルファイルからを選択します。

データセット名は任意の名前をつけてください。

次にアプロードボタンからファイルアップロードを選択し、train.csv を選択します。
selectcsv
次へを選択してください。

列見出しから、最初のファイルのみにヘッダーがあるを選択してください。
header

次にスキーマの選択をしてください。デフォルトのままで次へを選択します。

確認画面に来ましたら作成を選択してください。
次に、一連の流れを test.csv に対しても行います。

両データのアップロードができましたらデータセットの選択から train データを選択して次へを選択します。

次に実験の構成を行います。実験名から新規作成を選択してください。 Auzre ML では 1 つの機械学習モデル作成プロジェクトを、実験という単位で作成します。名前は任意のものを選択してください。

次にターゲット列の選択です。こちらでは予測させたい値(目標値)を選択します。

今回のデータの各カラムの簡単な説明は下記のとおりです。

  • PassengerId – 乗客識別ユニークID
  • Survived – 生存フラグ(0=死亡、1=生存)
  • Pclass – チケットクラス(1=上層、2=中級、3=下層)
  • Name – 乗客の名前
  • Sex – 性別(male=男性、female=女性)
  • Age – 年齢
  • SibSp – タイタニックに同乗している兄弟/配偶者の数
  • parch – タイタニックに同乗している親/子供の数
  • ticket – チケット番号
  • fare – 料金
  • cabin – 客室番号
  • Embarked – 出港地(タイタニックへ乗った港)

今回は生存者の予測を行いますので Survived を選択してください。

次にコンピューティングの作成を行います。
新規作成を選択してください。そのままデフォルトの設定のまま作成します。

今回の場合、コンピューティングは演算装置のことを指しています。

作成が完了できますと下画像のように選択が可能となります。コンピューティングの作成には ~5 分ほどかかりますので、選択ができない方は画面の更新等を試してみてください。

選択ができましたら次へを選択してください。

次にタスクを選択します。
今回は生存するかどうかを予測する問題なので分類を選択してください。

次に詳細設定を行います。
Auto ML は様々な前処理、アルゴリズム選択、ハイパーパラメータチューニングを行うため、通常の実行だと時間がかかってしまいます。本記事では終了時刻を 0.5 時間とし 30 分間最適化を行います。

最後に次へを押してください。

オプションで検証とテストの種類を解釈というところがあります。
検証を自動
テストデータには先程ダウンロードをした test.csv を選択してください。

ステータスが実行中になりましたら学習が開始されています。

結果の解釈

左の実験タブから作成した実験を選択し状態が完了になっているものを選択します。

モデルタブを開くと最適化されたモデルを確認することができます。
VotingEnsemble 学習で 84.6% の精度がでました。

今回のモデルの精度を Kaggle で確認すると約 200 位くらいになります。

出典:Kaggle
10000 人以上が参加しているコンペティションですのでかなり高い順位ではないでしょうか?

また、Auto ML ではどういった前処理を行い、ハイパーパラメータを設定したのか詳細の確認をすることも可能です。

このようにノンコードで簡単に高精度のモデルを作成できました。また、モデルの精度向上で停滞しているときや PoC などにも使用できそうですね。

Azure ML は現在でも頻繁にアップデートが繰り返されており、11 月頃のアップデートでは画像分野を扱った自動機械学習サービスがプレビュー公開されました。物体検出モデルやセグメンテーションなどといった高難易度の問題設定に対しても自動化が進んでおり、今後の動向が楽しみです!
最後まで読んでいただきありがとうございました!

お知らせ:AI-900 無料資格対策講座もオススメ!

AI とクラウドについてより短時間で効率的に学びたいと考えている方は弊社のプラットフォームに無料登録で無料で受講できる AI-900 資格対策講座を是非ご視聴ください。

こちらはMicrosoftの認定講師(MCT)がAI-900 の試験範囲を 1 から解説致しますので体系的に短時間で学ぶことができます。

また上位資格のDP-100 はこちらのブログの記事をご確認ください。DP-100 は Azure Machine Learning を用いた機械学習モデルの構築、運用に特化した資格です。