Tableauはグラフの表示だけでなく、クラスター分析機能もあります。
Pythonは無料だし、それだけで十分手軽にクラスター分析できるのですが、Pythonでクラスター分析を行おうとすると、データ前準備として標準化したり、エルボー法のグラフを描いてクラスター数を考えたりなどの作業が発生します。また、変数を入れ替えたり、変数を使った計算式を変数にしたりする際に、都度コード修正作業が発生し、若干手間でもあったりします。
そんな時はTableauを使うと、GUIで試行錯誤が行え、かつ面倒な調整も自動で行ってくれるので、より手軽にクラスター分析できますよというお話です。
以下、よくあるクラスター分析作業を、Tableauを使ってやるやり方のメモになります。
データ準備
いかにもクラスター分類できそうなデータということで、下記のマクドナルドのメニューの栄養成分データを用いました。
栄養成分は「カロリー」「コレステロール」「タンパク質」「炭水化物」「脂肪」「食塩」「食物繊維」で、グラムあたりの保有量になおしています。
散布図マトリックスでザックリ相関を見る
まずは各々の2変数の散布図と傾向線を描いて、全体の分布状況をザックリと把握してみます。
栄養成分を「列」と「行」に放り込んでいきます
栄養成分の合計値のプロットのマトリックスができます。
これを散布図にします。
[分析]-[メジャーの集計]のチェックを外します
また、各プロットが何のメニューかが分かるように、「カテゴリー」「メニュー」を「マーク」の「ラベル」にドロップしておきます。
- 高コレステロールのメニュー群があるなぁ
- 高タンパクなメニューが多いなぁ
など、何となく全体の分布状況を見ます。
次に、散布図に傾向線を入れてみます。
左のアナリティクスペインから[モデル]-[傾向線]をグラフにドロップします
相関係数の可視化は面倒なので、「信頼区間」で代用します。
[分析]-[傾向線]-[すべての傾向線の編集]>「信頼区間の表示」にチェックを入れます
真ん中の線が線形相関関数で、上下が信頼区間が表示されます。信頼区間の幅が狭いほど、相関が高いと言えます。
- 脂質・炭水化物はカロリー高いんだなぁ
- 食塩は味付けだから、他の栄養成分との関連性は薄いのかなぁ
など、何となく相関を見ます。
クラスター分析をする
次に本命、クラスター分析をしてみます。
その前に、[分析]-[傾向線]-[すべての傾向線の表示]
のチェックを外して、先程表示した傾向線が邪魔なので消しておきます。
左のアナリティクスペインから[モデル]-[クラスター]をグラフにドロップします
「クラスター」ダイアログが表示されるので、クラスター分析に使用する変数を指定します。ここでは「カテゴリー」「メニュー」は使わないのでドロップします。
するとクラスターが作成されます。これだけです!
正規化も自動でやってくれ、クラスター数もよさげなものにしてくれます。(今回Tableauはクラスター数を5つで提案してきました)
後述しますが、変数の変更やクラスター数の変更もGUIで行えるので、納得のいく分類ができるまで、手軽に試行錯誤できます。
クラスターの名前を推測する
各クラスターが何を意味するかを決めるのは人間の仕事なので、それを行います。
中央値で推測
クラスターの中心点は「色」の「クラスター」の[クラスターの説明]で見れます。
正直よくわかりません…。
分布で推測
先程作成した散布図のポイントにマウスオーバーすると、そのポイントの「カテゴリー」と「メニュー名」が表示されるので、具体的にどんなメニューかを見て推測します。
- 高コレステロールの青クラスターのメニューは「エッグマックマフィン」等だから、青クラスターは「卵系」かな?
- 高カロリー・高炭水化物の外れにある緑クラスターは「チョコレートチップクッキー」等だから、緑クラスターは「粉物系」かな?
他は重なりあってるので、散布図からは推測難しそうです…。
他のグラフから推測
作成したクラスタで、他のグラフを色分けすることができるので、それから推測してみます。
「色」の「クラスタ」を左のデータの「ディメンション」にドロップします
するとクラスタがディメンションになるので、後は適用したいグラフで、ディメンションのクラスターを「色」にドロップするだけです。
例)カテゴリー毎のクラスター分布
例)クラスターの詳細メニュー表
これらから、
- オレンジクラスターは「肉系」かな?
- 赤色クラスターは「揚げ物系」かな?
- 水色クラスターは「野菜・乳製品系」かな?
と推測しました。
他のグラフへの展開
クラスター名が決まったので、上記と同様、他のグラフの「色」に「クラスター」をドロップして、クラスター分析結果を応用していきます。
例えば、マクドナルドのメニュー分類結果は下記になります。
クラスターの調整
クラスターの変数を変えたり、クラスター数を変えたりは、クラスターのダイアログで行います。
クラスターのダイアログは、最初に作成した散布図の「色」の「クラスター」の「クラスターの編集」で表示します。
初めから1発でクラスターは決まらず、ここで何度も試行錯誤することになるかと思います。
ですので、手軽にクラスター分析するなら、Pythonより手軽に試行錯誤できるTableauがオススメというお話でした。