誰のためのデザイン?(D.A.ノーマン)を読んでみた

大変ご無沙汰しています!!Kaori改めKTです。
久しぶりの投稿でTableauのTipsじゃないのかい!!って感じなのですが今日はイギリスのTableau テクノロジーエヴァンジェリストでThe Big Book of Dashboardsを書いたAndy Cotgreaveがおすすめしてくれた"The Design of Everyday Things"という本がありまして、「誰のためのデザイン?」という邦訳版があるので読んでみたKey Take Awayと感想を書き綴りたいと思います。
この本はハードカバー452ページという、なかなかに読み応えのある本なのですが、読み終わったときにTableauを使う上での考え方はもちろん、日常生活の考え方まで、ごっそり変わった大変素晴らしい本でしたので、備忘録と自分の理解を深める意味も込めてまとめを残しておこうと思います。

今回紹介する本はこちらです。

(邦訳)
誰のためのデザイン? 増補・改訂版 ―認知科学者のデザイン原論   D. A. ノーマン

(原作)
The Design of Everyday Things: Revised and Expanded Edition   Don Norman


全7章の構成になっていて、ざっくり1章ずつ書いていきたいと思います。



第1章 毎日使う道具の精神病理学

目の前にあるものの使い方がわからなかったり、誤った操作をしてしまうということはよくあると思いますが、そういったものすべてはデザインが悪いのであり、使い方がわからない人間のせいではない、という極限まで人間中心を貫いたデザインを考えよという章です。
美しいデザイン≠良いデザイン
美しいデザインが必ずしもいいデザインとは限らない。良いデザインとは、説明しなくても理解できるような発見可能性と理解から成り立っています。
もちろん、何も説明されなくても理解できるデザインでありながら見た目にも美しいデザインというものは理想ですが、あまりにも美しさ「のみ」を追求するあまり、つなぎ目を消してしまって出口がわからなくなるドアの例なんかも挙げられています。
そこにインタラクションできるという気付きをデザインから与えてあげることが良いデザインにとっては非常に重要です。
そういったわかりやすいデザインを大前提としながら、美しくも見えるデザインを考えていきたいものですね。
でもわかりやすいデザインって、余計な説明がなくてもわかるデザインなので、結果的にごちゃごちゃしなくて美しかったりもしますね。


第2章 日常場面における行為の心理学

では良いデザインを考えるためになにを理解すればいいか?ということで、人間中心デザインなのだから人間のことを理解しましょうという章です。
人間が物事をどのように行い、どのように認知を行うかということで自分のやりたいこと(ゴール)と外界の間を七段階理論に分け、考える方法を解説します。
また、人間の認知の方法を三つの処理レベル「本能的」「行動的」「内省的」に分け、行為の七段階理論と結びつけます。
この三つの処理レベルは以下のようになものです。
「本能レベル」
無意識に認識される最も原始的な反応。良いか悪いか、安全か危険か、基本的にすべての人が同じように考えるような直感的な反応。この本能レベルで嫌われると使ってもらえなくなるので、まずデザインする人はこの本能レベルをクリアすることを考えなくてはなりません。どんなに便利なものも、使ってもらわなければ意味がないので。
「行動レベル」
これは学習されたスキルの原点です。話したり、動いたり、実際に行動を起こすレベルのこと。自分の意志で動いているように見えますが、行動レベルは実は潜在意識的。
なにかをしようと思った時、やっている行為そのものは意識していない(たとえば、言葉は発するまで何を言おうと思っていたかはっきりとわかっていたわけではなかったり、手を動かすとき右手を動かしたいと思っているだけでどの筋肉をどう動かすなどと認識しているわけではないこと)ですよね。
「内省レベル」
これは意識的な認知の原点です。本能や行動レベルは分析を伴わないため即座に反応する迅速なものですが、内省レベルは深くゆっくりとしていて、たいていの場合あとからゆっくり起こるものです。私たちは内省的なレベルでの意識処理には気づくことができます。

認知は意識的なものでしかないとイメージしてしまいそうですが、上記の通りそんなことはありません。むしろ潜在意識的なものの方が多いです。
そして認知は情動と切り離して考えられがちですが、これら三つの処理レベルはすべて連動して動き、楽しい苦しいという情動が認知に影響を与えたり、認知した結果が嬉しいつまらないなどといった情動をもたらすので、切り離して考えることはできません。したがって、すべてに対してデザインは考えなければなりません。
冒頭で話したTableauのエヴァンジェリスト、Andyは本能レベルと行動レベルに向けてビジュアルベストプラクティスを通してデザインする方法を語りました。
本能レベルと行動レベルの方が、比較的すべての人に対して共通した考えでデザインすることができるからですね。
もちろん、実際のダッシュボードデザインにおいては相手にもたらす内省レベルのインパクトについても十分考えなければならないでしょう。これは「使い手は誰か」という考え方がまさにそれで、渡した相手がどういう理解をして意識していくのか考えて、自分の伝えたいことと相手の理解がなるべく一致するようなデザインにしていくべきですね。そこにはもちろん、本能と行動が深くかかわっていて、ビジュアルベストプラクティスで上手に制御されたデザインが内省的な意識、理解を導くのではないかなと考えています。

それから、この章にはもう一つおもしろい節があって、「語り手としての人間」という節です。人間は元来物事を原因を探し、「説明」や「物語」を作り上げるようにできています。だからこそ「物語」は人の理解をスムーズにすることができるんですね。Tableauがストーリーテリングを重視するのと繋がります。


第3章 頭の中の知識と外界にある知識

私たちはすべてのことを記憶しているわけではないのに様々なことを日々判断して生活することができますよね。知識には自分自身の記憶と外界の知識(自然な対応づけや制約)があり、私たちは外界の知識と自身の記憶を結びつけて判断するためにそういったことができる、という章です。
外界の知識というのはなんだか難しい言葉ですが、たとえば忘れないようにメモを書いて机の目立つところに貼っておくとか、会議の予定が決まったらカレンダーアプリで時間と場所と概要を登録するとかいったことです。人間はずっと昔から全部を記憶していたわけではなく、生きるために必要な様々な情報を外に置いておき、必要に応じて使ってきました。
なぜそういうことをしてきたかというと、すべてを記憶するには世界の情報はあまりにも膨大だからですね。
記憶には短期記憶と長期記憶があり、短期記憶はすぐ引き出せるし回転も速くて便利なのですが、覚えておける量も少なくインタラプションに弱いので、話しかけられたりすると途切れて忘れてしまうことがあります。2階に忘れ物をして取りに戻ったのに2階の部屋に入ると何を忘れたのか忘れる私ですが、これは階段を上るっていう行動のインタラプションのせいだなということがわかりました(笑)
長期記憶は長い期間、量の多い情報を記憶しておくことができますが、すべてを正確に覚えているわけではなく、思い出すたびに断片が再構成されます。記憶がどのように解釈されたか次第で、その記憶を引き出すのに時間がかかったり、できなかったりします。
この短期記憶と長期記憶が頭の中の知識であり、これと外界の知識をうまく掛け合わせながら人間は効率よく生きています。この知識のそれぞれの特徴を把握し、いいところを使えるデザインにすることでより使いやすいデザインになっていくわけですね。
言葉で発する、字を書く、絵を描く、これらすべて外にアウトプットすることが外界の知識であり、なぜアウトプットすることで理解がたやすくなるのかわかると思います。
Tableauを使う話に置き換えると、ドラッグアンドドロップした瞬間にデータに基づいたなにかが表示される、あれは外界の知識ですね。すでに表示されているものを解釈するのは自分の頭の中で全部考えるより簡単です。
頭の中の知識に全部頼ろうとすることは得策ではありません。使えるものは使う、外界の知識を簡単に作ることができて、簡単に利用することができるのなら、使えばいいのです。


第4章 何をするかを知る ― 制約、発見可能性、フィードバック

目の前にあるものをどう使うのか、どうやって解釈するのかについての章です。
制約とは大きさが同じの丸い穴と四角い棒と丸い棒があったら、丸い棒を穴に刺すでしょう。四角い棒が丸い穴に入らないのがわかるからです。このようにデザイン的に制約をつけておくことで人の行動を促すことができます。
発見可能性とはそのようにするもの、という指示が見つけられるかどうかということ。先ほどの例が微妙にサイズの違う丸い棒二つだったらどうでしょうか? おそらく二本とも刺してみて、より穴にぴったりな方を選ぶことになるでしょう。もっとわかりやすくするためになにか工夫しなければならないです(例えば、穴と棒に同じ名前を付けておくとか)
フィードバックはなにかアクションをしたとき、反応が返ってくるか、自分の操作が正しかったのかどうかわかるように、反応を返すことです。エレベーターのボタンを押して、光らないと何度も連打してしまう。フィードバックがないので、自分の操作が伝わっていないのではないかと思ってしまうからです。
制約ですべてを伝えきれればよいですが個々人の慣習などによってその制約は解釈が変わる可能性があります。なるべくターゲットにしている使い手が発見可能なデザインであり、触った後に反応する(フィードバックを返す)ことが重要です。
Tableauのダッシュボードだと、もしパフォーマンスが悪くてフィルターをいじってもいつまでも動かなかったら動いているのか心配になりますよね。
なるべく触ったらすぐフィードバックを返せるようなデザインを心がけておくことが大切です。


第5章 ヒューマンエラー? いや、デザインが悪い
第6章 デザイン思考

この2章はとても面白い章なのですが、Tableauの使い方の観点ではあまり関係なかったので割愛します。なにかが起こった時、それが起こったのは人のせいではなく、改善するためにとれるアクションをデザインで解決しようというアプローチや、デザイン思考とはなにかということが書かれているので興味がある方はぜひ本を読んでみてくださいね。


第7章 ビジネス世界におけるデザイン

ここまで、理想のデザインとは何かについて書かれてきましたが、商品としての製品を作るときのデザインの制限(最高のデザインをいろんな枷があって作ることができないとき。時間的なものや量産の問題、競争圧力など)が実世界にはあるよ、というビジネスにおいてのデザインについて書かれています。
主に新製品を開発する観点からの解説ですが、Tableauというひとつの製品を取り扱う私にとってもすごく参考になりました。
ひとつは急進的なイノベーションと斬新的なイノベーションの話。既存のものから進化してゆっくりとした変化をしていく斬新的なイノベーション。これは今ある人の生活を良くし、イメージが付きやすいの受け入れられやすいです。
急進的イノベーションは今までなかったものを出し、人の生活を劇的に変化させるものです。受け入れられる可能性は斬新的イノベーションよりはるかに低く、消えてしまうものもありますが、受け入れられれば、人々の生活をパラダイムシフトさせることができます。
Tableauが斬新的か、急進的イノベーションか、判断はみなさんにお任せしますが、どちらの変化も人には必要です。

それから、チェスで強い人間や強いコンピュータではなく、コンピュータをうまく使いこなす人間が勝てるという節も印象的です。まさにAIや機械学習、様々なオートメーションが台頭してくる中、どちらか一方が最高レベルというより、これらのテクノロジーをどれだけ有効に活用できるかがその人の能力を決めることになり、その人やコンピュータ自身は単体で最強である必要はなく、「テクノロジーの有効活用」つまり「外界の知識をどれだけ有効に使えるか」ということそのものが強い力として今後台頭してくることになるということですね。
まさにTableauを使いこなすみなさんが、日々世界を変えていることそのものだなと思いました。


かなり長くなってしまいましたが、じっくり読んだので備忘録がてらまとめてみました。最近私の話を聞いた人はこの本に相当影響受けてるなというのがバレると思いますが(笑)本当に自分の考え方からごっそり整理され、腑に落ちたり、AHAモーメントの連続の良い本でしたので、もしこの記事を読んで興味を持っていただきましたら読んでみてくださいね。

それでは!
(次はもうちょっと間をあけずに書きたいな、な)
KTより

ジッターチャートの作り方(重なりのあるマークをずらして表示)


Nanaeです。こんにちは。
今回はジッターチャートをご紹介します。ジッターチャートは、円のグラフや箱ひげ図の応用版です。(これ↓)

あるメジャーの分布や外れ値をみたいとき、箱ひげ図を使うことは多いと思います。


箱ひげ図を使った場合、全体としてマークが多い部分や外れ値はわかりますが、マークが多いと箱ひげ以上の情報が把握しづらく、どれくらい重なっているのかわかりません。また、上の方や下の方のマークにどんな項目があるか知りたくても重なりすぎているとマウスオーバーできず確認が難しいです。このあたりの不都合を解消するのがジッターチャートです。

ジッターチャートとは、近くにマークが集中して重なり合っていても、マークをランダムにずらして、ひとつひとつのマークを認識しやすくしたチャートです。ジッターとは「微小な不規則な動き」という意味で、マークをわずかにずらして表現することからジッターチャートと呼ばれているようです。
上図の箱ひげ図の円を各年の中で左右にランダムに配置をずらすため、各年で横方向に軸を作って、縦長の散布図を年数分作るような処理をします。
横軸となる計算フィールドには、ランダムで揺れを作るために、各マークに番号を振り(index関数)、それを13(←数字は13でなくてももちろん良い)で割った余りを出します。
 

これを列に入れ、列のヘッダーを非表示にし、幅を狭め、書式設定で見た目を調整すれば完成です。


ツールヒントと併せて活用すると、ひとつひとつのマークを確認しやすいですね。


さらに、パラメータで項目を選択できるようにして、選択した項目のマークだけを目立たせるようにしても見やすいです。このVizでは、パラメータと一致した項目のサイズを変え、一致した項目のみラベルを中央に出しています。詳しくは、Tableau Publicからダウンロードしてご確認ください。


Nanae


たった3クリック!積み上げ棒グラフをあるセグメントでソートする


Nanaeです。
 
積み上げ棒グラフを作ったとき、ある色セグメント(ある項目)で並び替えたいこともあると思います。ふつう計算式で対応すると思いますが、アドホックに分析しているときはグラフ上で操作した方が早いし簡単です。
 
では、このグラフを、オレンジのファーストクラスで地域の棒を並び替えてみます。
 
 
1クリック目:オレンジの棒のどこかを押す


2クリック目:ツールヒントの中で、並び替えをしたいファーストクラスを押す


 

3クリック目:降順マークを押す

 
完成!

 
九州は、全体の売上に対して、ファーストクラスの売上が少ないことに気づきます。でもそれを確認するなら、割合を表す100%積み上げ棒グラフにした方がわかりやすいです。合計に対する割合で表現しながらある色セグメントで並び替えたいとき、計算式で対応すると少し複雑になりますので、今回お伝えした方法のメリットが活きてくると思います。

以上、10.3の新機能、ツールヒント内の選択機能を使ったアドホック分析の実用シーンのご紹介でした。

Nanae 

 

ハイライト表でNULLにも色を塗る

Nanaeです。大変お久しぶりです。

今回は、ハイライト表を作ったとき、データが存在しないセルにも色を塗るTipsです。

白くなっているところはデータがないから色が塗られないわけなので、色を塗りたいところのデータをビュー上で生成します。 そのとき、表計算を行うことで、表全体のすべてのセルに数字を持たせることができます。他の関数でもよいですが、index()を使ってみます。


このフィールドをどこかのシェルフ(列とか詳細とかツールヒントとかフィルターとか…)に入れます。すると、白かった部分も黄色に色が塗られます。

では、Index()のフィールドをツールヒントに入れてみます。空白のセルにも、ツールヒントで確認するとindex()に数字が入ったことがわかり、これによって色が塗られました。


ツールヒントではなく、フィルターに入れて特別→全ての値にした方がきれいですね。


これで完成です!


See you!
Nanae

R連携でTwitterをセンチメント分析

Nanaeです。

Tableau×Rの連携で、文章の中身を分析するセンチメント分析を行います。データは、Web Data Connectorで抜いてきたTwitterデータを使います。

■やってみた分析
センチメント分析の中でも以下2つをやってみました。(※英語のテキストが対象です)
Emotion分析
テキストを6種類の感情+それ以外、の7つに分類する分析。6種類の感情とは、Anger, disgust, fear, joy, sadness, surprise。
Polarity分析
いわゆるネガポジ分析。テキストを、Positive, neutral, negativeの3つに分類する分析。

■Rで使うパッケージ
これらの分析を行うために必要なRのパッケージは3つあります。
1. tm
テキストマイニング用のパッケージで、テキストをみて、関連性をみつけたり、グルーピングしてまとめたり、分類したりする。
2. rstem
語幹が異なる同じ単語をマッチングさせる。例:swim, swims, swimming
3. sentiment
センチメント分析を行うパッケージで、これを動かすにはtmとrstemが必要。sentimentのパッケージそのものは現在削除されているらしく、install.packages("sentiment")は利用できない。代替手段としてGitHubから落とす方法を利用する。

■R:準備
これらのパッケージをRStudioからRにインストールして読み込ませます。
(Rで直接トライしてもうまくできず。。。RStudioから行いました。日本語化が原因!?)
以下、RStudioから行ってください。

TableauとRを連携させるとき、まずは必ずこれが必要。Rserveを読み込ませます。
library(Rserve); Rserve()

tmとrstemをインストールします。
install.packages("tm")
install.packages("Rstem")

sentimentを使うために、devtoolsというパッケージをインストールしてから、GitHubからsentimentをインストールして読み込ませます。
install.packages("devtools")
library(devtools) 
install_github("aloth/sentiment/sentiment")
library(sentiment)

これでR側の準備は完了。

★テストデータでTRY
■テストデータ
次に、今回使うデータです。最初はわかりやすいように、サンプルとして5レコードのデータを使ってみました。そのあとに同じことをTwitterデータで行います。


各レコードに対して、感情とネガポジを出していきます。

■Tableau:計算フィールドの作成
Tableauに移って、感情判定用の計算フィールド: get_emotionを作成します。計算フィールドの中身はこちら。
SCRIPT_STR('
library(sentiment)
get_emotion(.arg1,algorithm="bayes") '
,ATTR([Status Text]))


ネガポジ用の計算フィールド:get_polarityも作成します。
SCRIPT_STR('
library(sentiment)
get_polarity(.arg1,algorithm="bayes")'
,ATTR([Status Text]))


■Tableau:Vizの作成
各レコード=各テキストに対して、感情とネガポジを判定させます。
列に、元データにある"sentence"と、作成した計算フィールドの"get_emotion"と"get_polarity"を行に入れます。R連携した計算フィールドは表計算となるので、「次を使用して計算」は「セル」を指定しておきます。


判定されました!1行目"He is sad."を見てみると、これは"sad"を含んでおり、感情はsadness、ネガポジはnegativeとなっていて、きちんと判定されているようです!



★Twitterデータで実践!

■Twitterデータ
それでは次に本番、Twitterデータです。Twitterのデータを取るためにはWeb Data Connectorが必要です。コネクタは、ここのものを使わせてもらいました。
http://files.tableaujunkie.com/twittersearch/twitterwebconnect.html

検索は”@tableau"としました。


■Tableau:計算フィールドの作成とVizの作成
計算フィールドはサンプルデータのときと同じです。メジャー名を変えるだけです。サンプルデータのときと同様、作成した計算フィールドを使うときは、「次を使用して計算」から「セル」を指定するのを忘れないようにしてくださいね。

以上で、Twitterのデータを使ったセンチメント分析が実現します!

今回は、R連携、Web Data ConnectorというTableauの外とつなぐ機能を使いました。
いろいろ組み合わせると、どんどん可能性が広がっていきますね!

Nanae

リストから選んだ全く別のウェブサイトを表示

Nanaeです。こんにちは。

URLフィルターに関連するテクニックです。選択した項目ごとに全く別のWebサイトを表示させる方法です。

★URLアクション
通常、選択した項目によって表示させるWebサイトを変えたいとき、URLアクションを使おうと考えると思います。たとえばこんな感じ。上の地図でJapanをクリックするとWikipediaの中で"Japan"のWikipediaサイト、Chinaをクリックすると"China"のWikipediaサイトを表示させることができます。

そのとき、URLアクションの設定画面では、Wikipediaの検索ワード前までのURLを入れ、連動させたいフィールドをそのうしろに入れますよね。

★パラメータを使ったURL連動
ここまでは通常の使い方ですが、選択した項目によって、全く別のサイトを表示させたいこともあると思います。Wikipedia内など1つのサイト内でのページではなく、たとえば、"日本"を選択したときは日本が運営している日本観光サイト、"中国"を選択したときは中国が運営している中国観光サイトなど、全く別のWebサイトに飛びたいといったニーズです。これは、URLアクションではなくパラメーターを使うことで実現します。

(ここから先で作るダッシュボードの完成図)

☆パラメータを使って全く別のWebページを表示させる
まず、パラメーターを作成します。URLは、このパラメーター作成画面でリストとして入力します。右側の表示名は、シート内でパラメーターを選択するリストとして出てくる文字なので、わかりやすく国の名前を書いておきます。

これをダッシュボード内に配置するWebページのオブジェクトに入れ込みます。このURLの入力エリアには、パラメーターも入れられるのです!


これで、パラメータに連動した、全く別のWebサイトを表示させることができるようになります!


☆パラメータを使ってフィルターされたVizを作る
次に、パラメータで日本が選択されているとき、上のシートにある地図では日本だけに絞った表示をしたいと思います。

地図ではこんなデータを使いました。観光での人気 Top 100の都市における2015年の入国人数のデータで、東アジアだけをピックアップしています。

まず、国と都市名でマッピングを行います。
次に、パラメータで日本が選択されているときには、Japanの地図だけを表示させるような仕組みを作ります。日本が選択されているとき、内部でパラメータがもっている値は日本のサイトのURLですので、URLとJapanを対応させる必要があります。このやり方を2種類お伝えします。

①計算フィールドを使う方法
URLとデータにある国を一つづつ対応させます。処理内容はわかりやすいと思います。

こんな流れで、Japan↔URL↔日本を引き継いでいます。

最後に、パラメーターで日本が選択されているとき、地図の方はJapanのデータだけ見せるようにするために、上の計算フィールドとデータにある国のフィールドが一致しているかどうかの計算フィールドを作ります。

これを満たすとき、すなわち"真"のときだけ、地図を表示させるフィルターを設定します。

②プライマリグループを使う方法
URLと国の対応表を作成して、接続します。


国でリレーションを張ってブレンドしてから、行の中に、プライマリとして元のデータから国、セカンダリとしてURLと国の対応データからURLを入れ、プライマリグループを作成します。

元のデータに、URLというグループができました。


国をグループ化したものですが、新しくURLという列ができているような動きをします。


こちらは元のデータにURL列を持ってきているので、流れはもっとシンプルになります。

最後に、上のURL列とパラメータが一致しているかどうかの計算フィールドを作り、"真"でフィルターをかけます。


これで、パラメーターで国名を選択すると、その国のデータにフィルターがかかった地図と、選択した国のWebサイトが表示されるようになりましたー!!!
ぜひ使ってみてください★

Nanae

クラスター分析をやってみよう! ~アルコール消費量から都道府県をグルーピングする~

皆さまこんにちは、 bashiiです。

突然ですが、 V10の新機能、クラスタリング(クラスター分析)機能って、みなさん使われていますか?
とても便利な機能なのですが、まだ使ったことがない・・・いまいち使いどころがわからない・・・といった方もいらっしゃるのではないでしょうか?

ということで; 今回は Tableau Version 10からの新機能であるクラスタリング機能について、面白い利用方法を考察してみたいと思います。

最終的にはアルコール消費量のデータからクラスター分析を用いて県民性を覗いてみたいと思います。 
(↓イメージ図)



◆ クラスタリングとは何か
クラスタリングとは簡単にいうと、物事をその特徴に応じて、いい感じのグループに分けるということです。これをクラスター分析と言い、機械学習の一つとして位置づけられます。

ビジネスの分野でもマーケティングの戦略立案や製品ポジショニングの分析などに利用されています。
例えば製品の中で季節ごとの売れ筋商品のグループを作り、製品グループごとのキャンペーンを行ったり、顧客の中からお得意様グループを見つけ出し、そのグループに対して特別なキャンペーンを行ったり・・・といった具合に、何かの施策をするときに特定のグループ分割を把握することでメリットが得られるシーンがあります。
このようなグルーピングを機械学習の力で行い、新たな気づきを得ることがクラスター分析の醍醐味と言えるでしょう。
クラスター分析の手法(データをグループに分割するアルゴリズム)としては、K-meansアルゴリズムが有名で、Tableau でもこの方法を採用しています。

(クラスター分析の厳密な定義については、いろいろなリンクがありますのでWebで検索ください。この記事では概要を感覚的に理解することを趣旨とさせていただきますのでご了承ください。)

◆ K-meansの仕組み
Tableauでも利用されているK-means法について簡単な説明をいたします。

1.まずクラスタの中心点を対象データからランダムにk個決める(例では2個)
2.各データを最も近くにある中心点のクラスタに割り当てる
3.クラスタ内のデータの平均値を新たなクラスタの中心点にする
4.各データを最も近くにある中心点のクラスタに割り当てる
5.クラスタ内のデータの平均値を新たなクラスタの中心点にする
6.各データを最も近くにある中心点のクラスタに割り当てる
7.クラスタ内のデータの平均値を新たなクラスタの中心点にする

8.各データを最も近くにある中心点のクラスタに割り当てる(上記手順を繰り返す)

9.繰り返しの結果、クラスタの中心点が変化しなくなったら終了

◆ Tableau での使い方
Tableau でK-meansのクラスタリングを実施する方法はいたって簡単です。

3種類のアイリス(アヤメ科の一種)の花弁の長さ、幅、花ガクの長さ、幅の4つの情報を標本として取得したデータセットがあります。(このデータはRやPythonに入っているとっても有名なデータセットです。)

このデータセットを散布図として表示します。
これをK-meansアルゴリズムを使ってクラスターに分類してみます。


操作はいたって簡単です。
アナリティクスタブを開く → 「クラスター」 を散布図にドラッグ
以上です。

花弁の長さ、幅、花ガクの長さ、幅の4つの情報をもとに、自動的に最適なクラスタ数を調整して分類した結果、クラスター1~クラスター3の3つのグループに標本を分類することに成功しました。

データセットには実際のアイリスの種別(Setosa,Versicolor,Virginica)の品種情報があるので、これに従って分類してみると以下のようになります。
・・・ほとんど変わらないですね。 

このケースでは、K-meansによって分類したグループが実際のアイリスの品種分類と変わらないことが分かります。つまり、K-meansによって分類がある程度言い当てられていることが感覚的に見て取れます。
Tableau でのクラスタリング機能の詳細については、以下のリンクを参照ください。
Understanding Clustering in Tableau 10 - writen by Bora Beran
https://boraberan.wordpress.com/?s=K-means

◆ アルコール消費量のデータから県民性がわかるか?
それではもう少し、現実的な例を取り上げてみましょう。
今ここで、ワイン、酒、焼酎、ビール、ウィスキーの一人当たりの消費量を得ることができたとします。

このデータから何が見えてくるでしょう。クラスター分析の前に、
まずデータの中身をざっくり見てみましょう。

アルコール消費量全体のランキングをとってみます。

1位 東京
2位 新潟
3位 大阪
4位 高知
5位 秋田

という結果でした。 大都市は飲食店も多くやはりアルコール消費量が多いようです。
次にワイン、酒、焼酎、ビール、ウィスキーの一人当たりの消費量を行と列に配置し散布図を作ってみます。さて、ここから何か情報が得られますか? 何か気づきましたか?

よく見てみると、アルコール種別ごとに消費量が突出している県があるようです。
例えば
日本酒は 新潟、秋田
ワインは 山梨、東京、長野、北海道
焼酎については断トツ宮崎、鹿児島。続いて熊本、大分といったとこでしょうか。
もうなんだか県民性が出てきましね。


次に傾向線に着目してみましょう。傾向として以下がみられるようです。
① 傾向線が右下がりであることから焼酎の消費量が増えると、日本酒の消費量は減る傾向にある
② 同様に日本酒の消費量が増えると焼酎の消費量は減る傾向がある
③ 傾向線が右上がりであることからビールの消費量が増えるとウィスキーの消費量が増える傾向にある


それではこの辺で本題のクラスター分析に入っていきたいと思います。
これらの傾向をもとにアルコール消費の嗜好別に都道府県をグループ化してみましょう。アルコール消費量に似たような傾向がある都道府県を同じグループにまとめまるということをします。

わかりやすいように、列と行の組み合わせを下のように減らしてみます。

ここにアナリティクスペインから「クラスター」をドラッグします。
クラスター数を4あたりに設定します。(クラスター数は面白い結果が出るところを試行錯誤する必要があるのですが、今回は4つから初めてみましましょう。)

「クラスター」をドラッグして、クラスター数を指定するだけで、クラスターによる色分けができましたね!
なんとなく、色分けされたクラスターごとにアルコール消費量の特徴が見えてきましたか?

Tableauのクラスター分析のとっても便利なところは、作成されたクラスターをグループとして、新しいディメンジョンに利用できるということなんです。(これは実はとても便利な機能です!)


色に作られた「クラスター」をディメンジョンエリアにドラッグしてみてください。
クラスターに所属する都道府県をグループにまとめたディメンジョンが追加されます。
これを「アルコール消費量クラスター」と名前を付けます。
新たにできたディメンジョンごとに、アルコールごとの消費量の比率を見てみます。
すると、クラスター1はビールの消費量が多いビール派。
クラスター2はワイン派。 クラスター3は焼酎派といった傾向が見えてきます。
このように、出来上がったクラスターを人間の主観で意味を検討しネーミングすることもクラスター分析の作業の一つです。

さて、作成されたクラスターを地図にマッピングしてみましょう!


圧倒的に、九州中南部、大分、熊本、宮崎、鹿児島は焼酎派! なんですね。ここは揺るぎがありません。
山梨と北海道はワイン派クラスター。日本海側にビール派が多いということも浮き上がってきましたように思います。

クラスターの数を5つにするとまた秋田、新潟の日本酒クラスターが出現しました。

このようにクラスターの数を変えたり、入力の変数を変えて意味のあるクラスターを試行錯誤して探っていくと、面白い発見に出会えるかもしれません。

アルコール消費量傾向によって都道府県をグループ化できれば、焼酎クラスター
である宮崎、鹿児島、大分、熊本で焼酎キャンペーンを実施したり、逆に消費量の少ない日本酒のキャンペーンをやってみるというのも新鮮かもしれません。

皆さんもお手持ちのデータをTableauのクラスタリング機能を使って分析してみてください。新たな発見が得られるかもしれません!!

ワークブックはこちらからダウンロードいただけます。
https://public.tableau.com/shared/Y38T47BC2?:display_count=yes

Tableauからデータサイエンスを始めましょう!!
では、またお会いしましょう・・・


参考文献:

DATA GO.JP
http://www.data.go.jp/

[DoSS@d - DATA] 都道府県別アルコール類の消費量
http://mo161.soci.ous.ac.jp/@d/DoDStat/sake/sake_dataJ.xml

Understanding Clustering in Tableau 10 - writen by Bora Beran
https://boraberan.wordpress.com/?s=K-means

クラスタリングの定番アルゴリズム「K-means法」をビジュアライズしてみた
http://tech.nitoyon.com/ja/blog/2009/04/09/kmeans-visualise/