データ分析基礎知識

“分析力をコアとするデータソリューションカンパニー”
株式会社ALBERTが、データ分析にまつわる基礎知識をわかりやすく解説します。

クラスター分析の手法①(概要)

クラスター分析とは

クラスター(cluster)とは、英語で「房」「集団」「群れ」のことで、似たものがたくさん集まっている様子を表します。クラスター分析とは、異なる性質のものが混ざり合った集団から、互いに似た性質を持つものを集め、クラスターを作る方法です。対象となるサンプル(人、行)や変数(項目、列)をいくつかのグループに分ける、簡単にいえば「似たもの集めの手法」です。

クラスター分析は、あらかじめ分類の基準が決まっておらず、分類のための外的基準や評価が与えられていない「教師無しの分類法」です。従って、データを単純に男女別や年代別に分けた塊をクラスターとは呼びません。

図1.クラスター分析のイメージ

クラスター分析は、ビッグデータの分析、その中でもOne to oneマーケティングに用いる分析手法としては、最も重要な地位を占めており、最もよく使われる手法の1つです。情報が氾濫するなか、いかに消費者にとって有用な情報のみを提示するか、いかに施策のコンバージョンを上げることができるかが最大の関心事ですが、そのためには、顧客を緻密にクラスタリングし、購買を予測し、的確なアクションを打つことが求められます。

クラスター分析を始めるときに決めなくてはならないことは、一般的には以下の4つで、それぞれ、どれを選択するかがポイントになります。

「1.グループ分けの対象」は目的が決まれば自動的に決まりますし、「2.分類の形式」はビッグデータにおいてはほとんどが非階層的方法を用いるので迷うことはほとんどありません。「4.クラスター合併方法」も非階層的方法ではあまり選択する必要はありません。最も難しいのが 「3.分類に用いる対象間の距離」の選択です。クラスター分析は「似たもの集めの手法」だと述べましたが、「似ている」または「似ていない」をどう定義するかが、ビッグデータにおけるクラスター分析では、最も大きな問題にも関わらず遅れている分野といっても過言ではありません。

クラスター分析は指定するパラメータの種類が多く、「クラスター分析のクラスター分析をしなくてはならない」といわれるほどで、「これが最適」という選択方法や「これが最高」というクラスターの定義もありません。例えば、最適なクラスター数はいくつかという質問がよくあるのですが、正解はありません。そのほか、初期値をどう設定するかによって結果が異なるというやっかいな問題もあり、とても難しい分析手法の1つに数えられます。

サンプル間の距離測定方法

距離には、『距離の公理』というものがあります。簡単に表現すると、
(1)距離はマイナスにはならない
(2)同一であれば距離はゼロ
(3)2つの距離はどちらから測っても同じ
(4)三角形の2辺の距離の合計は、もう1辺の距離より大きい

といったものです。しかし、この距離の公理を満たす定義は、無限にあります。我々が最もよく使う距離はユークリッド距離といわれるもので、ピタゴラスの定理で求められるような直線距離を指します。

一方、距離と似ていることばに「類似度」というものがあります。クラスター分析は、「似たもの集めの手法」でしたから、似ているものを集める必要があります。「類似度」と似ていることばに「距離」があります。類似度と距離の関係は、

似ている=類似度が高い=距離が近い(小さい)
似ていない=類似度が低い=距離が遠い(大きい)

ということになりますが、クラスター分析では、各データのもつ性質の差=距離ととらえ、その距離の大小により類似性を表現します。データ間の差を用いて距離にはいくつか種類がありますが、最も優れたものはなく、そのデータの性質により用いる距離を選択する必要があります。

■n次元ベクトルの距離
(1)ユークリッド距離(平面ならピタゴラスの定理)

日常で用いる距離で、もっとも一般的なものです。平面なら2点の座標が求まればピタゴラスの定理で表せます。これをn次元空間に拡張したものが、以下の式で表せます。

ピタゴラスの定理

直角三角形の斜辺(c)の2乗は、他の2辺(aとb)の2乗和と等しいというピタゴラスの定理(3つの正方形があるので三平方の定理という)は、余りにも有名です。その証明方法もたくさんあるのですが、その中でユークリッドが証明したといわれる方法をご紹介しましょう。

左のような補助線を引いて、s1=s2、s3=s4であることを証明しようというものです。 下記で、s1=s2であることを証明してみます。用いる定理は、「3角形の面積は底辺×高さ÷2」と、「合同である3角形の面積は等しい」の2つだけです。 s1とs2が等しいことが証明できれば、同様の方法でs3とs4も証明でき、(s2+s4)=s1+s3 すなわち、ピタゴラスの定理が証明されたことになります。

(2)標準化(平均)ユークリッド距離

各データを標準偏差で割って計算したもので、以下の式で表せます。

クラスター分析における距離の標準化

通常のユークリッド距離は式からわかるとおり、各データの性質の差の2乗和の平方根です。よって、簡単に言えばこの距離は、各性質の単位を無視しているということになります。例えば、長さの差3m(メートル)と気温の差3℃が同等の割合で性質の差(クラスターの割り当て)に影響すると考える、ということです。
それに対して、標準化ユークリッド距離はその逆で、標準化を行なうことでデータの持つ性質の差が性質ごとに開きがないように配慮しているわけです。 標準化ユークリッド距離は各性質の差を標準化していますが、標準化ユークリッド距離のほうがユークリッド距離よりも優れているということではありません。なぜなら、標準化するということは、性質ごとの影響力、重みをなくすということであり、本来影響力がある性質の差も、ほとんど影響のない性質の差も等しく扱うということになってしまうからです。

(3)マハラノビス距離

変数同士に相関があるとき用いられます。例えば、図2のような、身長と体重をプロットした平面を考えます。各点は対象とした人々を表しています。平均的なAさんからの距離(Aさんと似ているかどうか)を考える時、PさんやQさんは全体の大きさ(体格)は異なるものの、体型は全く同じです。Rさんは少し太り気味で、Sさんは少しやせ気味ですが、まあまあ近いといえるでしょう。
しかし、Xさんはかなり太っていますし、Yさんは相当痩せています。そういう意味では、Aさんから見た時の距離は、PさんやQさんと比較してかなり遠いといってもよいのではないでしょうか。ところが、平面上での距離(ユークリッド距離)である、AP、AQ、AX、AYは全部等しくなってしまいます。 こういう時に用いるのがマハラノビスの距離です。相関が強い方向の距離は実際の距離よりも相対的に短くするという考え方です。

図2.マハラノビス距離のイメージ
(4)マンハッタン距離(市街地距離)

マンハッタンや京都のような碁盤の目のような街を移動する時の距離であり、どこを通っても最短距離は等しくなります。例えば、地点Pから地点Qに行く時には最低でも10ブロックを通過しなくてはなりません。2乗していないので外れ値の影響を抑えることができます。将棋でいえば、飛車の動いた距離ということになります。

(5)チェビシェフ距離

ユークリッド距離が、原点を中心に円状に広がっていくのに対し、チェビシェフの距離は、斜めも同じ距離と考えるので、正方形上に広がっていく距離です。将棋でいくつ動かすかを考えたとき、マンハッタン距離が飛車だけだとすると、チェビシェフの距離は飛車も角も当てはまるといったイメージでしょうか。同じ次元の変数を、別の次元の変数とみなしたい場合に使います。

(6)ミンコフスキー距離

ユークリッド距離を一般化したもので、非常に離れた距離の重みを増やしたり、減らしたりできます。a=b=1がマンハッタン距離、a=b=2がユークリッド距離、a=b=∞がチェビシェフ距離に一致します。

各距離について、原点から等距離にある点を結ぶと右図のように表せます。

図5.各距離の比較
■n次元ベクトルの類似度

ベクトルの内積
ベクトルとは大きさと向きを兼ね備えた量です。内積は以下のように表します。

例えば右図のように、60°の方向の大きさが3と2のベクトルがあった場合、ベクトルの内積は以下のようになります。

3×2×cos60°= 6×(1/2)= 3

ここでcos類似度は、ベクトルの内積をそれぞれの大きさで割っていますから、3/(3×2)=0.5にとなり、長さが1のベクトルになるので、cosθと一致します。

図6.ベクトルの内積
図7.n次元ベクトルのcos類似度計算方法(1/0データの場合)

cos類似度は文章の類似度を計算する場合に用いられますが、購買履歴データで、購入したか否かのデータとも相性がよいことが知られています。

(1)コサイン類似度

n次元ベクトルの向きの類似性を表す値で、cosθを用います。ベクトルの向きが一致している時、最大値の1をとり、直交ならば0、向きが逆ならば最小値の-1をとります。具体的な値としては、ベクトルX,Yの内積X・Yをそれぞれの長さ|X|,|Y|で割ったものです。距離という基準を用いずに、n次元空間でのベクトルの類似性を求めることができます。ビッグデータの分析には、このコサイン類似度を用いるケースがよくあります。

図8.コサイン類似度
(2)ピアソンの相関係数

詳細はこちらを参照

上記2つの類似度は、-1から1の値をとりますので、距離に変換する場合は、
距離=1-類似度
等を用います。その他、類似度を距離に変換する場合、exp(-類似度)とすることもあります。

図9.類似度の距離の変換
このページをシェアする

About

ALBERTについて