Tableau Conference 2016 at Austin [レポート]TabPyイントロダクション:データサイエンス with Python in Tableau #data16

2016.11.13

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

Tableau Conference 2016@Austinのセッション参加レポート:2本目は「TabPyイントロダクション:データサイエンス with Python in Tableau」の紹介をしていきます。

セッションの紹介文は下記の通りです。

 The power and flexibility of Python are now accessible in Tableau through integration with TabPy, a local HTTP Python server. TabPy opens up a vast range of analytical capabilities in Tableau from execution of ad hoc functions to complete data science work-flows. This session will explore creating Python functions in Tableau, hosting functions in TabPy where they can be easily called, and specific data science applications for TabPy like sentiment analysis and classification.

前のセッションが終わる前(休憩時間は30分ありますので、開始30分以上前)に会場の前に向かったのですが、そこにはすでに長蛇の列が!

P_20161110_095738_vHDR_Auto

そして前のセッションが終わった頃に後ろを振り返ると、さらに凄いことになっていました。。

P_20161110_100857_vHDR_Auto

この方がスピーカーのNathan Mannheimerさん。

P_20161110_102925_vHDR_Auto

左側はStaff Product ManagerのBora Beranさん。セッション終了後に、質疑応答の対応をされてました。

P_20161110_102955_vHDR_Auto

アジェンダ

  • アドホック版、デプロイ版Python
  • TabPyサーバを使う
  • モデルを作成、使用する
  • Tableauを使ったデータサイエンス・アプリケーション

P_20161110_105410_vHDR_Auto

セッションビデオ・スライド

本セッションの録画版、およびPDF版のスライドは、下記のサイトで公開されています。(※登録必要ですが無料で利用・アクセス可能)

http://tclive.tableau.com/Library/Video?vCode=BRK53875

TabPyのGitHubサイト

https://github.com/tableau/TabPy

サイト上の表記は「Tableau Python Server - Beta」になっていますね。

プレスリリース

Leverage the Power of Python in Tableau with TabPy [2016/11/04]

https://www.tableau.com/ja-jp/about/blog/2016/11/leverage-power-python-tableau-tabpy-62077

Tableauのアドバンスト・アナリティクス

BRK53875_PPT_Introducing_TabPy 2

P_20161110_103227_vHDR_Auto

ご存知の通り、Tableauには製品に統合された分析機能として「回帰」「予測」「クラスタリング」などの機能がある。

P_20161110_103248_vHDR_Auto

画面左上のサインカーブの例や、左下のロジスティック回帰、もっと複雑な右側のマシンラーニングの例。製品自体で様々な分析アルゴリズムの最新の状態について行くのは困難。

P_20161110_103326_vHDR_Auto

「予測」の例。本来は上のグラフの、赤色の部分が予測結果であるが、矢印のようにスパイクがあると、既存の予測機能はスパイクに影響されて緑のグラフようになってしまう。

Pythonは、より多くのシナリオ、より大きな柔軟性、より制御可能なアドバンスト・アナリティクスをもたらしてくれる。

P_20161110_103435_vHDR_Auto

アドホック版、デプロイ版Python

P_20161110_103504_vHDR_Auto

P_20161110_103549_vHDR_Auto

センチメント分析の例を見ていきます。テキストは顧客が記入した製品レビュー。

P_20161110_103725_vHDR_Auto

レビューの内容を、ポジティブ/ネガティブに判別して、色を付けます。

P_20161110_103740_vHDR_Auto

次のシートの例に移動。チャートの値はネットプロモートスコア(NPS)。

P_20161110_103929_vHDR_Auto

このチャートに、ZTestを使って95%の信頼区間で有意な値に色を付けた。

P_20161110_104047_vHDR_Auto

ZTestをアドホックな書き方で記述する。

P_20161110_104305_vHDR_Auto

クラスタリングのデモ。

P_20161110_104625_vHDR_Auto

下記のようなデータセットを用意。2種類のクラスタリングで比較を行ってみる。

P_20161110_104657_vHDR_Auto

ドラッグ&ドロップで適用できるTableauのK-meansのクラスタリング。比較的よく判別ができているが、一部そうでないところも見られる。

P_20161110_104712_vHDR_Auto

Python経由でカスタム・クラスタリング・アルゴリズムを使うと、データセットに完璧にフィットした結果が得られた。

P_20161110_104739_vHDR_Auto

クラスタリングのコードの内容。(アドホック版)

P_20161110_104756_vHDR_Auto

同じ内容を、TabPyのデプロイモデルを使って、シンプルなワンライナーのコードで書いた例。(デプロイ版)

oneliner

 

アドホック版

BRK53875_PPT_Introducing_TabPy 11

デプロイ版

本来は、def ztest()のところに関数の定義を記述する。

BRK53875_PPT_Introducing_TabPy 15

BRK53875_PPT_Introducing_TabPy 17

Pythonの関数をTabPyサーバにデプロイする。

deploy

TabPyサーバを使う

P_20161110_105436_vHDR_Auto

TabPy_Server_Functionality

P_20161110_105548_vHDR_Auto

モデルを作成、使用する

P_20161110_105657_vHDR_Auto

P_20161110_110429_vHDR_Auto

モデルのトレーニング用のデータセット。

P_20161110_110640_vHDR_Auto

採用するモデルを決定する。

P_20161110_110654_vHDR_Auto

トレーニング用データを使い、モデルに基いて学習させる。

P_20161110_110706_vHDR_Auto

「bad_loans」モデルの学習。IDEはPycharmを使ってますね。

train

Tableauを使ったデータサイエンス・アプリケーション

P_20161110_110340_vHDR_Auto

P_20161110_110953_vHDR_Auto P_20161110_111103_vHDR_Auto P_20161110_111230_vHDR_Auto P_20161110_111255_vHDR_Auto

スコアを算出する。

P_20161110_111358_vHDR_Auto

様々な条件で実行。

P_20161110_111455_vHDR_Auto P_20161110_111511_vHDR_Auto P_20161110_111715_vHDR_Auto

最後に

以上、TabPyイントロダクションのセッションでした。

Twitterのタイムラインを見ていたところ、TabPyについて「Looks like #tableau + #python is a happy marriage!!」というツイートを見かけましたが、私も同じ意見です。TabPyもガンガン使い倒していきましょう!

なお、本レポートではTabPyの動作検証を行っておりませんが、追って試してみたいと思います。