今回紹介する「H2O Driverless AI(以下、Driverless AI)」は、H2O.ai社が提供する、機械学習をプログラミングなしで自動化する製品です。

Driverless AIは、「AIの民主化」を目指して開発された製品です。「AIの民主化」とは、良いデータとその活用方法の明確なビジョンを持つ企業であれば、専門家の力を借りなくても、自力でAIを利用して利益を生み出せるような世の中にしよう、といった取り組みです。

そして、この製品の開発には「Kaggle Grandmaster」など世界でトップレベルのデータサイエンティストが多数携わっており、その高度なノウハウが組み込まれています。

今回はDriverless AIの概要と、基本的な利用方法として、データセットの確認およびデータ分析の進め方について説明します。

Driverless AIの特徴

Driverless AIで実装されている機械学習は、テーブル形式のデータセットに対する教師あり学習(回帰・分類問題)です。これをほんの数クリックで実行できます。

このため、通常は数日から数週間ほどかかるデータ変換・機械学習アルゴリズムの調整・機械学習の実行といった処理をすべて任せることができ、数分から数時間でデータサイエンティストレベルの高精度な予測モデルを得ることが可能です。

また、次回の応用編で詳しく解説しますが、Driverless AIでは予測モデルの説明性にも力を入れており、「データの各変数が予測結果に与える影響を示す」、「より単純な構造のモデルに置き換えた場合の動きを示す」など、生成された予測モデルに対するユーザの理解を手助けする機能が備わっています。

Driverless AIは有償製品ですが、トライアル版で試してみることも可能です。トライアルには2種類あり、1)21日間のトライアルライセンスを取得する方法と、2)「Aquarium」というトライアル専用の環境を利用する方法があります。

トライアルライセンスを取得する場合は、Driverless AIをインストールするサーバ環境が必要です。GPUサーバの環境が推奨されているため、ある程度費用がかかります。

一方で、Aquariumは、AWS上のDriverless AIを何度でも無料で利用可能な環境です。ただし、作成した環境は2時間で消える仕様になっています。パブリッククラウド環境のため、実データではなく、最初から入っているデータセットで試すほうがよいでしょう。

本稿では、Aquarium環境 / バージョン1.8.2を利用します。

データセットの確認

データセットを確認するにあたっては、データセットの取り込み、可視化を行います。

データセットの取り込み

Driverless AIにはWebブラウザでアクセスします。ログイン後に、データセット一覧の画面が表示されます。

  • 図1:データセット一覧画面

Driverless AIで扱うことのできるデータセットは、1件のデータが1行に入り、各列がそれぞれの変数を表すような、テーブル形式のデータセットです。

今回は、Aquariumの環境に最初から用意されているデータセットを利用します。なお、データセットの取り込み方法は、CSVやエクセル形式のファイルをブラウザ画面に直接ドラッグ&ドロップで取り込むほか、Amazon S3などのクラウドストレージの利用、JDBC(Java Database Connectivity)によるデータベース取得など、さまざまなデータソースからデータを取り込むこともできます。

続いて、Driverless AIで取り込まれたデータセットの内容を確認していきます。

まず、データセットの概要を確認することができます。

  • 図2:データセットの概要

この画面では、データセットの列ごとに、データタイプや、最大・最小・平均などの基本統計量、欠損値やユニーク値の数などの情報に加え、値のヒストグラム(テキストの場合は最頻出の項目)が表示されます。 また、データセット内の実際の各データの値も確認できます。

  • 図3:データの一覧

これらの画面により、データセットの変数の構成やおおまかな分布を把握することができます。

データの特徴の可視化

さらに、Driverless AIでは、「AutoViz」とよばれるデータ可視化機能が備わっています。こちらは、対象データセットを機械学習にかける前にあらかじめ注意すべき特徴をグラフ化して表示する機能で、データの変数が多い場合は非常に有用です。

  • 図4:AutoViz画面

  • 図5:相関関係の強い変数の散布図

  • 図6:外れ値のプロット

例えば、データの中に相関の大きな変数がいくつも含まれている場合は、機械学習に利用する変数を絞ったほうがよいケースがあります。また、外れ値や欠損値のあるデータについては、それが本当に正しい値であるか見直して修正または除去する、といった対応が必要なケースもあります。