前回は、H2O.ai社が提供する、機械学習をプログラミングなしで自動化する製品「H2O Driverless AI(以下、Driverless AI)」の概要とデータセットの確認とデータ分析の方法を説明しました。今回は応用編として、Driverless AIをさらに深く利用する機能を紹介します。

Driverless AIの効果的な利用方法

最初に、今回の内容で実現できるDriverless AIの効果的な使い方を説明します。

Driverless AIを使うと、「現状の手持ちのデータで分析課題をクリアできそうか」「数ある中でどの分析課題にまず取り組めばよさそうか」といった、データ分析の検討段階における判断スピードを高める効果が期待できます。さらに、今回紹介する「MLI」からその予測モデルの課題もみえてくるため、初期の判断材料として有効です。

また、PythonやRなどの他の機械学習ツールを使って詳細な前処理やデータ分析を行いつつ、並行してDriverless AIの結果をベンチマークとして利用する、といったことも可能になります。

他のツールでデータの前処理をした効果をDriverless AIで確認する、Driverless AIによる予測モデルの機械学習パラメータや特徴量生成の手法を参考に、他ツールによる分析の精度を高めていく、など、お互いの成果をお互いに活用していくプロセスは効果的です。

加えて、後述する「カスタムレシピ」で機械学習アルゴリズムや特徴量生成手法の性能を検証してから他ツールでの分析に利用するなども可能です。Driverless AIを利用すると、機械学習アルゴリズムと特徴量の生成・選択をすべて絡めた実践的な性能検証を手早く実行できるようになります。

MLI(Machine Learning Interpretability)

それでは、順を追って各機能について説明していきます。

Driverless AIの機械学習機能「Experiment」では、特徴量エンジニアリングと高性能な機械学習アルゴリズムを駆使して、できるだけ精度の高い予測モデルを生成するように動作します。このため、結果の予測モデルの構造は複雑になりがちで、モデルがどのような仕組みで動いているのかを直観的に理解しづらくなります。

Driverless AIでは、この予測モデルの解釈を手助けするための機能「MLI」を用意しており、この中で予測モデルの動作の特徴をさまざまな手法を使って可視化してくれます。

  • 図1: MLIのサマリー画面

予測モデルとデータ変数の関係性を可視化:

例えばMLIでは、生成された予測モデルから、変数の重要度・Shapley値・Partial Dependence Plotの指標やグラフを計算して提供します。これらの指標は、「データの各変数がモデルの予測結果にどれだけの影響を与えたか」「各変数の値が変動したら予測結果はどのような値を示すか」など、予測モデルと各データ変数の関係性を説明してくれます。

  • 図2: 変数の重要度

  • 図3: Shapley値

  • 図4: Partial Dependence Plot

代理モデルによる説明:

さらにMLIでは、データセットと予測結果の値から、より単純な構造の予測モデル(代理モデルとよばれます)を生成する機能が備わっています。

決定木、ランダムフォレスト、LIME(局所的な一般化線形モデル)の代理モデルが生成され、その挙動の可視化情報が提供されます。代理モデルは、元の予測モデルを模倣するように学習が行われるため、元のモデルのおおよその動作のイメージをつかむことができます。

また、代理モデルで元のモデルの動きをどの程度再現できたかを表す指標も確認できるので、これは代理モデルの単純なアルゴリズムでも十分精度が出るのでは、といった予想もつけられます。

  • 図5:代理モデルによる可視化情報

予測モデルの「公正さ」を説明:

Driverless AIのバージョン1.7.1では「Disparate Impact Analysis」という機能が追加されました。これは、生成されたモデルが各データ変数に対してどれだけ「公正な」モデルかを表す機能となります。例えば、性別や人種など、分析課題によっては不適切な変数の値に依存して、予測モデルが明らかに偏った判定を返していないか、といった判断材料を提供してくれます。

  • 図6: Disparate Impact Analysis

What-If分析機能:

さらにバージョン1.8.1では、「Sensitivity Analysis」という機能が追加されました。これは、データの値を変動させて予測結果がどう変化するかを検証できる(What-If分析)機能になります。フィルタリングの機能を使い、複数データに対してこの検証を行うこともできます。

  • 図7: Sensitivity Analysis

このように、MLIの機能を利用すると、さまざまな角度から予測モデルに対する理解を深めることができます。また、明らかにおかしな変数の影響が強くないか、ある集団に偏ったモデルになっていないかなど、現状の予測モデルの改善点の洗い出しにも利用できます。