今回は、一般的なデータマイニング・プロセス(CRISP-DM)のフェーズの中で IBM SPSS ModelerとTableauがどのように連携できるか考えてみたいと思います。
IBM SPSS ModelerとTableauはともにドラッグアンドロップで操作でき、デスクトップでの分析からスモールスタートできるという点でとても相性が良いです。
◆ IBM SPSS Modelerとは
IBM SPSS Modelerは、IBMから提供されるデータマイニングワークベンチで、分かりやすいビジュアルインタフェースにより、さまざまな形式のデータにアクセス・整理・モデリングを実現します。ストリームという形で処理を組み立てることができ、ETL処理や統計モデリングによる高度な予測分析が可能です。ドラッグ・アンド・ドロップ操作でフローを構築できるため、RやPythonのようなコーディングが必要ありません。
◆ データマイニングプロセス(CRISP-DM)の中でのTableauとSPSS Modeler
CRISP-DM(CRoss-Industry Standard Process for Data Mining)は、SPSSなどが中心となるコンソーシアムにて開発されたデータマイニングのための方法論を規定したもので、データマイニングプロセスを進める標準的な手順が6つのフェーズに分解されています。ここでは、このプロセスのどのフェーズでTableauとSPSS Modelerが役割を分担していくとよいかを紹介して行こうと思います。
それぞれのフェーズは次のように定義されています。
1.ビジネスの理解
ビジネスの全体像を理解したうえで課題を設定し、プロジェクト全体の目的を明らかにするフェーズです。
2.データの理解
データを収集し、データの理解を深めることで仮設構築の下地を作るフェーズです。与えられたデータから、この後の作業内容にあたりをつけるために、Tableauによる可視化を行うと便利です。
3.データの準備
分析モデル作成が可能になるようにデータの整形・準備作業を行います。たとえば、複数テーブルの結合、サンプリング、欠損地保管、派生する計算フィールドの生成などが含まれます。地味な作業となりますが、このフェーズがデータマイニングの大半を占めるといわれます。ここでは、SPSS Modelerによってバッチ的にストリームを流してモデリングと可視化に適したデータをあらかじめ作成しておくことができます。
4.モデリング
統計的手法、マシンラーニング手法を用いて課題を解決するための数理モデルの構築するフェーズです。
このフェーズではSPSS Modelerが提供する様々な機械学習ロジックが適用できます。
5.評価
構築した数理モデルを評価するフェーズです。前のフェーズで作成したモデルが最初に定めたビジネス目標に合致するものであるかを評価します。
ここで、SPSS Modelerで作成された予測結果や分類結果をTableauで人間の理解できる形に可視化して評価を行います。
6.展開/共有
データマイニングで得られた結果を共有し実際のビジネスに適用します。
Tableau Serverを利用すれば、得られた知見をレポートとして組織で共有し、適切なアクションにつなげることができます。
実際のデータマイニング作業では、必要に応じて各プロセスを間を、行ったり来たり繰り返していきながら適切な結果へと結びつけます。
それでは実際にTableauとSPSS Modelerでデータを扱いながら、データマイニングのプロセスを見ていきましょう。ここでは中古車価格の情報が与えられているとしましょう。
◆ データの理解 → まずTableauであたりをつける
まずデータを与えらたら、何をしましょうか・・・そうですね、データを理解するところから始めていきましょう。
まずはTableauからデータに繋いでみます。
この時点でどのようなフィールドが存在するか、業務的にどのような意味を持つかを理解するためにビジネスの理解が必要となります。
中古車の内訳見てみましょう!
IDを右クリックして列にドラッグしカウントを選択します。
ざっと中古車の性質を確認してみましょう。全体の構成をみるにはツリーマップが便利です。
ダイハツとスズキがほとんどを占めています。
Tableau の便利なところは、考えるスピードと同じスピードで可視化して確認できるってことですね。
県別に見てみるとどうでしょう? 都道府県別では福岡県、愛知県が多いです。
これぐらいはTableau でドラッグアンドドロップすることで簡単にできます。
表示形式から地図を選択するのも面白いです。
・ 散布図
本体価格が何に影響受けているか散布図を描いてみます。
走行距離が増えると本体価格が下がる、車検残月数が多いと価格が上がるということが見て取れます。
• 異常値の確認
車検が36か月以上のサンプルがありますね。車検期間は最大3年なのでこれは異常値です。
異常値をマウスの範囲指定しセットを作成すると簡単に分別できます。
ツールチップを使うとこの異常値が奈良県の2014年式ワゴンRだったことがすぐにわかります。
・ SPSS Modelerでも可視化が行えますが、Tableauを利用するともう一歩インタラクティブな可視化が可能になります。
たとえば以下はSPSS Modelerでの散布図です。
Tableauの散布図だとこのような感じになります。
年式でフィルタした場合も簡単につけられますね。
車検残月数を大きさに、傾向線も入れてみましょう。
なんだかアートっぽくなってきてしまいました・・・;
※ もちろん、SPSS Modelerでもデータ理解に利用できる便利な機能があります。
Data Audit 機能を利用すると、各フィールドのデータの分布が一発でわかります。これは便利です。
◆ データの準備 → SPSS Modeler で実施
準備作業としては以下のような作業があります。
* スタースキーマのジョイン
* フィルター
* 複雑なグルーピング
* ユニオン
* 欠損値補完
* 外れ値の削除
* 複雑な計算式の追加
これらの作業をバッチとして流して結果を可視化するようにすると可視化がスムーズなります。
SPSS Modeler を利用すると一連のフローをストリームを作成してバッチ的に実行することができます。
この結果をCSVなどで出力することで、Tableauから可視化することができます。
◆ データの予測 → SPSS Modelerで実施
次に、SPSS Modelerによるデータの統計的モデリングを行います
◇ クラスタリング
SPSS ModelreではK-MeansクラスタリングやAuto-Clusterノードが利用できます。
入力するフィールドを選択し、K-Meansノードに接続して実行します。
生成されたナゲットを開くと、クラスタリングの結果が表示されます。3つのクラスターに分割されています。
クラスターごとの分布からクラスターの性質を考察します。
クラスター1は価格下落率が高い、価格下落率が高い、走行距離が長い、車検残月数が短い
→ バーゲン品クラスター?
クラスター2は価格下落率が低い、価格下落率が低い、本体価格が高い
→ ほぼ新品クラスター ?
クラスター3は新車価格が低い、そのほかの項目は中程度
→ お手頃クラスター ? などとラベリングできるでしょうか?
次にTableau を用いて可視化をおこないます。
SPSS Modelerによって算出されたクラスターは新しい列($KM-K-Means)としてデータに追加されます。
これをCSVに吐いて、Tableauから新しいデータソースとして読み込みます。
Export からFlat Fileノードを選択し、CSVファイルに吐き出します。
ここでUTF-8で吐き出すのを忘れずに・・・
Tableauから接続します。
Tableau から見ると生成されたK-MEANSのクラスターがディメンジョンとして認識されています。
あとはごく普通にこのディメンジョンを可視化していけば良いわけです。
特徴のありそうなメジャーを選び、散布図を描きます。
SPSS Modelerによって作成されたクラスター列($KM-K-Means)を色にドラッグします。
先ほどのクラスターの定義が散布図からも見て取れそうです。
クラスター1 → バーゲン品クラスター ?
クラスター2 → ほぼ新品クラスター ?
クラスター3 → お手頃クラスター ?
クラスターごとに都道府県の比率を出します。
北海道ではお手頃クラスターの割合が他の県と比べて少ないですね。
都道府県にハイライターを使うとわかりやすくなります。
お手頃価格の商品を追加してもいいかも知れない・・・という商品戦略が見えてきます。
実はK-MEANSクラスタリングについては、既にTableauに実装されているため、Tableauだけで分類が可能です。しかし、SPSS Modelerを利用すると、TwoStepやKohonenと言ったK-MEANS以外のクラスタリングロジックを試すことができます。
以下Auto-Clusteringノードを使って最適なクラスタリング手法を見つける場合の例です。
この例ではTwoStepが選ばれました。
◇ 線形回帰分析
SPSS Modeler を使って中古車の属性から本体価格を予想してみましょう。ここでは線形回帰モデルを利用します。
Partitionノードを使って、データを学習データ80%とテストデータ20%に分類します。
テストデータを線形回帰ノードに接続して予測モデルを作成します。
目的変数は本体価格、Inputとなる説明変数に諸々の中古車属性を入れます。
ナゲットが作成され、予測モデルの詳細を確認できます。
目的変数の中でどのような項目が重要かがあらわされます。
年式と走行距離が本体価格に影響を与えているようです。確かに、年式が古い、走行距離が長いと本体価格も下がるので、この結果は納得感があります。
テスト用に分けておいたデータを作成されたモデルに接続して、本体価格の予測値を算出します。
こちらも、$L-本体価格 というフィールドが新たに追加されていますので、これをCSVに落としてTableauから接続し、可視化を行っていきましょう。
本体価格と予測された$L-本体価格で散布図を描くと、大体y =x の直線状に分布しています。
本体価格 と 予測値の差を取り、ビンを作成することでヒストグラムを作成します。
何かツールチップに情報を入れると、誤差が非常に多いポイントがどのようなサンプルだったかわかります。(愛知県の2014年式、ダイハツ・ムーブでした)
◆ 知見の共有 → Tableauを活用する!
・ レポートの作成
最終的に得られた知見をTableauのダッシュボードにまとめてインタラクティブなレポートを作成してみましょう。
都道府県のマップをセレクターとして使用し、選択した都道府県で散布図のフィルターを行います。
またクラスター分類の都道府県比率にハイライターをかけます。
Tableau Online にパブリッシュすればブラウザー経由でレポートを共有することが可能です。Tableau Desktopをインストールしていないメンバーにも情報提供することが可能です。
北海道選択時
福岡県選択時: 北海道と比べて傾向の違いが見られますか?
他の県ではどうでしょう? など疑問がわいてきますね。最終的なレポートから、さらに動的に分析を自発的に進めることができるという点が面白いところです。レポートを受け取る経営判断層にも自分で手を動かし分析して、理解してもらうことでよりレポートの信頼性が増すことでしょう。
以上、SPSS Modeler とTableau連携の可能性について模索してみました。
IBM SPSS Modelerのデータ前準備機能と統計的予測機能がTableauの可視化機能と補完し合い、データ分析プロセスにシナジーを生み出すのではないでしょうか?
ぜひ皆さまもチャレンジしてみて下さい!!
長文になりましたが、最後まで読んでいただきありがとうございます。