Tableau から始めるDataRobot  (Tableau + DataRobot連携の今)

皆さん、こんにちはbashiiです。今回は。「Tableau から始めるDataRobot  (Tableau + DataRobot連携の今)」と題して、Tableau とDataRobotの連携についてご紹介したいと思います。


更新:

2019-02-21 : DataRobot What-If Extension の追加

2019-04-11: DataRobot What-If Extension 画面と内容の追加

——————————————————

Tableau と DataRobotは2018年7月に協業を発表しました。そして2018年10月にはアメリカ・ニューオーリンズで開かれたTableau Conference 2018で、その実装の第一弾であるInsight連携(DataRobotと連携するダッシュボードExtension)が発表されました。

さて、Tableau とDataRobotを組み合わせることによってどんな世界が待っているのでしょうか。そもそもDataRobotって何?というところから、現在どのような連携方法があるのか、一緒に勉強していきましょう!

(本記事はTableau社、DataRobot社の正式なレビューを受けておりません。あくまでデータ活用の最新事例を提案する目的の一技術文書としての投稿となりますのでご了承ください。)

 

「過去データ」の可視化から、「未来データ」の可視化へ

データ活用のステージは今、過去のデータをもとにインサイトを発見するレベルから、未来のデータを予測し、予測した結果をビジネスアクションに繫げるフェーズに移りつつあるといわれています。Tableau を使えば、今手にしているデータから簡単に色々なインサイトが得られるのですが、さすがに”今ここにない”データを可視化することはできないのです。ここはビジネス・インテリジェンスツールの限界ともいえるでしょう。しかし、DataRobot と連携することで、高度な機械学習モデルを利用し、未来を精密に予測して、予測した結果を可視化することができるのです。

※図1: データ活用の成熟度 (出典:Gartner)

 

DataRobotって何ですか?

ところで、DataRobotって一体どんなものでしょう?何だか色んなところでニュースになっていてスゴそうだけど、どうしてそんなに注目される技術なのでしょうか。

DataRobotは高精度な機械学習モデルを生成し、その中身を理解し、システムに組み込むまでの全プロセスを自動化してくれます。

つまり、いわゆるデータサイエンティストが心血を注ぎ、ほぼ職人技のように行って来た予測モデルの作成と予測を高めるためのチューニング工程を、DataRobotにほぼ全自動でお任せしてしまえるのです。

 

 

予測するってどういう事?

例えば、夏になれば気温が上がってビールの売り上げが伸びるだろうとか、雨が降れば道が渋滞しやすいので早めに出勤しようとか、私たちの日常の中でも経験をもとに予測をする事は良くありますよね。

私たちは多くの場合、これを経験や勘によって予測を行なっているのですが、もっと的中率の高い予測を機械(コンピュータ)を使って導き出したいですよね。ここで機械学習の登場となるわけです。

機械学習では過去データを機械が学習して、ある法則を導きだします。(例えば気温が1℃上がるとビールが100ケース売れる等) これを予測モデルと言います。この予測モデルを利用して、今分かっている情報(説明変数)をもとに、予測結果(目的変数)を導きだします。例えば明日の気温が30℃だったら、ビールは何ケース売れるかを予測する…という具合です。

 

予測モデルを作るってどういうこと?

さて、予測モデルを作ると一口に言っても、その精度はピンからキリまでで、高い精度の予測モデルを作るためには、データサイエンティストの並々ならない努力や知恵がつぎ込まれています。これはKaggleなどの予測コンペティションで入賞者が獲得する賞金額を見ても理解できるかと思います。

予測モデルの精度を高めるためには、本当にザックリと以下のような工程が存在します。

* データクレンジング(欠損値の補完、外れ値の除去、クリーニング)
* 特徴量(説明変数)の選択
* 機械学習予測モデルの選択
* 膨大なデータの学習実施
* 予測モデルハイパーパラメータのチューニング
* 予測モデルの精度確認
* 予測モデルの適用

 

これらの工程をトライアンドエラーしながら何度も繰り返し、予測モデルの精度を上げていくのですが、一つの工程が数時間から数日かかるということもあります。本当に気の遠くなる作業です。

 

Data Robot の嬉しさ

上記のようなデータサイエンティストの仕事を自動的に、パラレル処理をしてくれるのがDataRobotのスゴさなのです。
ユーザーは、学習データをDataRobotにドラッグアンドドロップするだけで、非常に多くのアルゴリズムの中からこの課題に最適なアルゴリズムを幾つか選定し、複数のモデルを作成して、その中から最適なモデルをサジェスチョンしてくれます。

※図2: DataRobot画面(予測アルゴリズムをパラレルで検証中)


しばらく待って、DataRobotからの予測モデルのサジェスチョンが出たら、出来上がった予測モデルに、テストデータを適用し、実際の予測結果を得ることができます。予測結果はCSVとして吐き出すこともできますし、APIを使ってREST経由でクラウド上にデプロイされたモデルに問い合わせ、予測結果を得ることもできます。

 


Tableau と DataRobot を 連携する嬉しさ

次にTableau とDataRobotを連携する嬉しさについて見ていきましょう。

データサイエンスのプロセスでは、ビジネスゴールを設定→データの理解→データの準備→予測モデルの作成→結果の評価と共有 といったプロセスを繰り返し、実際のビジネスにおけるデータ活用を進めていくとされています(参考 CRISP-DMによるデータマイニングプロセス)。このプロセスの中で、データの理解にTableau Desktop、データの準備にTableau Prep、データの共有にTableau Serverが利用できますが、更に予測モデル作成のプロセスにDataRobotが加わることで、データサイエンスのプロセスを包括的にカバーすることができるようになります。

図3: Tableau とDataRobotがもたらす相乗効果

 

 

 

Tableau と DataRobot を 連携する3つの方法

現在、Tableau とDataRobotを連携する方法は、

① データソース連携 (バッチ予測)

② ダッシュボード・エクステンション連携(JavaScriptによる開発柔軟性)

③ Tabpy連携 (リアルタイム・インタラクティブ予測)

の3つがあり、応用シーンに応じて連携の方法を使い分けます。それぞれについて、もう少し詳しく説明していきます。

 

 

① データソース連携 (バッチ予測)

こちらは、最もシンプルな連携の形態になります。DataRobotから導き出された予測結果(CSV形式)をテストデータ自体と結合しTableau のデータソースとして利用します。DataRobotの予測結果をバッチ的に利用するのであれば、手軽に利用することができます。予測結果もCSV出力の一つのフィールドとして扱うことができますので、Tableau から見れば、通常のメジャーやディメンジョンと変わりがないので、予測結果をもとに散布図を書いたり、色やサイズに設定したり、ソートに利用したりと自由に可視化、分析を行うことができます。

※図4:データソース(CSV) 連携

 

 

※図5:DataRobotから予測結果をCSVとしてダウンロードする

 

 

※図6:予測結果とオリジナルのデータセットを結合しTableauから参照する

 

この方法であれば、予測値は通常のメジャー(またはディメンジョン)となりますので、予測値(例えばローンの貸し倒れ確率など)確率の高い顧客をリストしたり、確率を色に利用したビジュアライゼーションをおこなうことができます。

 

※図7: 予測結果を用いたビジュアライゼーションの例

 

② ダッシュボード・エクステンション (JavaScriptによる開発柔軟性)

2つ目の方法は、Tableau のダッシュボード・エクステンション(Extension API)を利用する方法です。ダッシュボード・エクステンションはTableau 2018.2から利用できる機能で、Tableau のダッシュボードの中に、Webサーバー上に展開されるJapaScriptのアプリケーションを組み込むことができます。ダッシュボード上でソースとなるワークシートを選択し、そのワークシート内のデータをもとにJavaScriptでの処理をおこない、出力結果を別のウィンドウの中で表示します。

図8:ダッシュボード・エクステンション連携

 

現在、この仕組みを利用して、目的変数に対して、相関の強い(その原因を説明する)変数のサジェスチョンを行うエクステンション( DataRobot Insights for Tableau )がDataRobotより提供されており、Tableau のエクステンション・ギャラリーより利用できます。

※図9: Extension Gallery から DataRobot Insights を利用

 

利用イメージとしては、例えば銀行ローンの利用客について、その顧客が貸し倒れるかどうかを説明する要因として、”利率”、”顧客の格付けグレード”があり、これらと相関関係が高いといったインサイトを得ることができます。(こちらはDataRobotの予測モデルを利用するというよりは、予測したい目的変数に対して、どの説明変数が最も相関関係があるのかを示唆します。)

※図10: DataRobot Insights画面

ダッシュボード・エクステンションを利用したJavaScriptアプリケーションの開発は自由に行うことができるという点で柔軟性はありますが、DataRobotによる計算結果をTableauのメジャーとして再利用することはできず、ダッシュボード上の別ウィンドウ内で起動するアプリケーションとして表現しなければいけません。(つまり描画も含めてJavaScriptで開発をおこなう必要がある)一方、DataRobotから既に提供されるExtensionを利用するのこと自体は大変簡単ですので、今後提供されるエクステンションが増えることに期待です。

DataRobot Insight for Tableau の詳細についてはDataRobot Hajime Obataさんのブログ記事:TableauとDataRobot (その1):Insight連携 を参照ください。

## Update – Feb 21, 2019 : DataRobotよりWhat-If Extension の追加が発表になりました→ Running Simulations with the New DataRobot What-If Extension for Tableau

What-If Extensions も DataRobot Insights extension と同様に、Tableau のダッシュボード・エクステンションの一つとして利用可能となります。こちらのWhat-If Extensions は既にデプロイ済みのDataRobotの予測モデルに対して、特定の説明変数をパラメータとして与えた時に予測値がどのように変わるかをシミュレーションすることができます。例えば下のように、銀行ローンの貸し倒れをするかどうかの予測モデルを利用して、グレードが”D” 目的がが”Small Business ”だった場合に貸し倒れる確率がどのようになるか、パラメータを色々変更してみて予測したい確率がどのように変化するのかを確認(比較もできます。)することができます。

③ Tabpy連携 (リアルタイム・インタラクティブ予測)

3番目の方法はTabpy連携を使う方法です。こちらの方法は、DataRobotが予測した結果をTableauのメジャー(またはディメンジョン)として可視化に再利用できます、また、Tableau のパラメータやフィルタの変更、リフレッシュの度に予測結果の再計算が行われるため、インタラクティブ、リアルタイムに予測結果を取得したいという場合に応用ができると考えられます。利用方法としては、TableauからTabpyサーバーに計算処理を行わせる計算フィールドを作成し、その中でDataRobotの予測モデルをREST API経由で呼び出し、予測結果を取得します。

※図11: Tabpy 連携

 

Tabpyを利用した計算フィールドの作成方法は以下の図のようになります。例えば以下の図では、”利率”と”年収入”を説明変数とした時に、その顧客が”貸し倒れる確率”(目的変数)を予測し、計算式のメジャーとして利用します。

※図12: Tabpy 連携詳細

 

デプロイされた予測モデルを利用する場合、予測結果はJSON形式で予測結果が返りますので、Tabpyの計算式の中でこれをリスト形式として取り出し、メジャーとして返します。

図13:REST API経由でDataRobotから予測値を得る

 

予測結果はメジャー(またはディメンジョン)として利用できますので、②のCSV連携と同じようにTableau の中で可視化を行うことができます。(ただし、その他のTabpy連携と同様、表計算としての利用になります。)

例えば、テストデータの更新が頻繁に行われるケースで、ワークシートを更新するたびに予測結果を更新したい場合や、パラメータを変更してみてその都度新しい予測結果を得たいというように場合にこちらのTabpy連携の適用が考えられます。

連携の詳細方法、利用例については、2019-01-24 にDataRobot: Haruyuki Nakamura さん講師で開催された、「【月次無料ワークショップ】DataRobot + Tableau =」を参照ください。

 

まとめ

今回の記事では、DataRobotがどのようなものなのか、現在、Tableau と DataRobotを連携する方法としてどのようなものがあるかをご紹介しました。

DataRobotによって可能となる高精度な予測結果を、Tableau のビジュアライゼーションの力でより人の心に響く形に可視化し、未来のデータを可視化する、AIとBIが融合した新たなソリューションが作り出せるかもしれません。今後もTableauとDataRobotの協業により、データサイエンスの民主化が進むことに期待ですね!

 

追記

本記事の執筆にあたり、DataRobot の 中山(Haruyuki Nakayama)さん、小幡(Hajime Obata ) さんに多大なるご支援、ご教示を頂きました。改めて感謝いたします。

返信を残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です