●データセットの内容を確認する

今回紹介する「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:外れ値のプロット

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

●機械学習を実行する

Driverless AIにおけるデータ分析(機械学習)は「Experiment」画面で行います。

活用方法としては、例えば、収集したセンサーデータから製品や設備の特定の異常を検知する、顧客の行動履歴データから顧客の信用を評価する、サービスの履歴データから不正利用を検知する、などが挙げられます。

○機械学習の設定

Experimentの設定画面では、まず、学習用のデータセット、予測したい「答え」の変数(教師ラベルの変数)、最終的な予測モデルのテスト用データセットを指定します。するとDriverless AIがデータセットの中身からExperiment設定を自動調整してくれるので、そのまま下の「Launch Experiment」をクリックすればデータ分析を実行できます。

図7:Experiment設定画面

あとはExperimentプロセスの完了を待つだけです。プロセスの進捗はいつでも確認できるので、ブラウザ画面を閉じてしまっても問題ありません。

図8:Experiment進捗画面

○特徴量エンジニアリングの自動化

このExperimentの実行中に動いているのは、機械学習アルゴリズム(GLM・XGBoost・LightGBM・TensorFlowなど)の選択・ハイパーパラメータの調整・特徴量エンジニアリング、といった選択と調整のプロセスと、調整されたモデルの学習のプロセスになります。

「特徴量エンジニアリング」とは、データの変数(特徴量ともよばれます)から、機械学習で精度のでやすい形の変数(特徴量)を生成していくプロセスです。

例えば、「製品分類」というカテゴリデータは機械学習で扱いづらいため、「このカテゴリか否か」の二値データで表す、カテゴリの頻度を計算してその値で置き換える、などその特徴を数値データの形に変換する必要があります。

また、数値データに対しても、足し合わせたり掛け合わせたり、クラスタリングを試したり、などの処理によりデータの特徴が強調されてモデルの予測精度が上がることがあります。

上記のような「どの変数をどう変換するのが有効か」は、データの特徴や、データと教師ラベルの関係性、また機械学習アルゴリズムでも変わってしまうため、特徴量エンジニアリングはデータの扱い方に関する知識や経験値に加えて試行錯誤が重要なプロセスになります。

Driverless AIの大きな特徴は、Experimentにおいて、特徴量の生成・機械学習の実行・学習結果の精度評価、のサイクルを何度も繰り返すことで、有効な特徴量(と機械学習アルゴリズム)を自動で探索し、予測モデルの精度を高めていくことです。

生成された特徴量やその生成の手法については、変数重要度の欄に表示されるほか、Experiment完了後に取得できるレポートでも確認できます。

○機械学習の調整

Experimentのプロセスに対して調整を行いたい場合は、Experimentの設定にて表示される「Accuracy」「Time」「Interpretability」のつまみと「Scorer」の選択で調整できます。

調整後のExperimentの挙動については、左側の欄に詳細説明が表示されます。機械学習アルゴリズムの候補・学習プロセスの繰り返し回数・特徴量エンジニアリング手法の制限などの項目が変動します。

図9:Experimentの設定調整

○機械学習の結果の確認

Experiment完了後は、このような画面になります。

図10:Experimentの設定調整

Experimentのサマリ、変数の重要度、予測モデルの精度の推移、ROC曲線、混同行列、予測誤差の分布、などExperimentの結果の情報を確認できます。

また、学習用・テスト用データセットの予測結果のダウンロード、他データセットに対する予測の実行、予測モデルを外部の環境で実行するためのモジュール(Pipelineとよばれます)のダウンロードなど、生成された予測モデルを活用するための機能が利用できます。

なお、Experimentのデータ分析機能ですが、対象は数値データやカテゴリデータだけでなく、時系列データに対する将来予測や、テキストデータに対する自然言語処理(NLP)にも対応しています。今回は割愛しますが、ご興味あればお試しいただければと思います。(日本語テキストのNLPの場合、事前に分かち書き処理をしてからデータをアップロード・分析したほうが分析精度は上がるようです)

以上、今回はDriverless AIの概要と、データセットの確認およびデータ分析の方法について説明しました。次回は、Driverless AIをさらに使いこなすための機能を紹介します。

著者プロフィール

○有馬 直尭

ネットワンシステムズ株式会社

ビジネス開発本部 第1応用技術部

2018年入社。前職にて運用自動化への応用を目的とした機械学習の検証を担当していた縁で、入社後は製造業におけるデータ分析PoC案件に携わる。現在は主にデータ分析関連ツールの調査や検証に従事している。