【解説】クラスタリングってナニ?単純な分類とは何が違うの?

クラスタリングとは?

クラスタリング(clustering)とは、機械学習における教師なし学習の代表的な一種で、データ間の類似度にもとづいて、データをグループ分けする手法です。クラスタリングはクラスター分析、クラスター解析 (cluster analytics) 、データ・クラスタリング (data clustering) とも呼ばれます。クラスタリングによってできた、似たもの同士が集まったグループのことをクラスターと呼びます。データの集合をクラスターという部分集合に分けることであり,内的結合 (internal cohesion) と外的分離 (external isolation) の性質を持ちます。活用例として、顧客情報をクラスタリングして顧客をグループ分け(セグメンテーション)し、同じグループ内で同じ商品が複数回購入された場合、その顧客と同じグループに属している他の人たちにも同じ商品をレコメンドする、受信した膨大なメールを中身の文章の特徴から学習・グループ分けするといったものがあります。

ここでは、機械学習や統計学の文脈でのクラスタリングの概要や分類との違い、さまざまな手法について紹介します。

各データが1つのグループのみに所属するようにグループ分けするものをハードクラスタリング、各データが複数のグループに所属することを許してグループ分けするものをソフトクラスタリングといいます。ソフトクラスタリングでは、データがグループに所属する確率を割り当てます。この記事が次章以降で解説するのはハードクラスタリングの手法となります。

教師あり学習と教師なし学習

冒頭で先ほど、教師なし学習という用語が出てきましたが、これは機械学習の手法の一種です。そもそも機械学習の手法は大きく分けて,学習データが存在する教師あり学習と学習データが存在しない教師なし学習に分けられます。

  • 教師あり学習:人間が与えた正解を元に,観測データから予測する規則を生成 (例:競馬の勝ち馬予測など、先にそれぞれの正解を学ばせている)
  • 教師なし学習:観測データだけを対象に分析を行う (例:大量のデータを入れて,分類させるなど)

これらの違いを念頭に置いたうえで、次の項ではクラスタリングと分類の違いについて見ていこう。

クラスタリングと分類の違い

「データをグループ分けする」という言葉を聞くと、分類が思い浮かぶかもしれません。しかしクラスタリングと分類の意味合いは異なります分類は教師あり学習で、どのグループに所属するかの答えをもとに学習したモデルを用いて、答えが未知のデータがどのグループに所属するかを予測します。一方、冒頭でも説明したように、クラスタリングは教師なし学習で、どのグループに所属するなどの明確な分類基準や評価といった答えはなく、データをもとに特徴を学習しグループ分けします。

具体的に考えるため、先ほど軽く一例として触れた大量のメールを具体例として、分類するケースとクラスタリングするケースを紹介します。

分類では、迷惑メールか否かなど、答え(クラス)が分かっているデータから文章の特徴とクラスの関係を学習します。そしてクラスが不明の新着メールがどのクラスに当てはまるのかを予測します。対してクラスタリングでは、迷惑メールか否かなどの答え(クラス)がないデータから文章の特徴を学習し、特徴が似ているか否かでグループ分けをします。各グループが何を示しているかは解釈が必要です。例えば、先ほどのメールの分類例では、迷惑メールか否かの判断は人の解釈によって初めて与えられるということです。つまり,分類してみてから,どうしてそのように分類されたかを分析する必要があります。そもそも,教師なし学習の手法であるため,分類の基準が決まっておらず,分類のための外敵基準や評価が与えられていない場合に行う.そのため,これが最適と呼べるような数理的な最適解というのは、クラスター分析には存在するわけではないということを留意しなければなりません。言い換えると、クラスタリングの結果,グループ分けされた結果を解釈して,他者でも納得できるような意味を与えることが,クラスタリングの価値を大きく左右する重要なプロセスであり、データサイエンティストとしての手腕の見せ処とも言えます。

また,クラスタリングはあくまで分類のみであるため,分類された対象ごとに相関分析や回帰分析を行うことで,成立している法則性・相関関係・因果関係を考察しなければならない。

階層クラスタリングと非階層クラスタリング

クラスタリングは、データのグループ分けの仕方により大きく階層的クラスタリングと非階層的クラスタリングに分けられます。この章ではそれぞれの概要を紹介し、次章以降で細かな手法を紹介していきます。

階層的クラスタリングは、データ間の類似度が近いものからまとめていく(凝集型階層的クラスタリング)、あるいは遠いものから離していく(分割型階層的クラスタリング)ものです。階層クラスタリングの基本は、「最も似ている(もしくは似ていない)サンプル同士を1つずつ順番にグルーピングしていく」ことです。データをひとつひとつ比較して、似ているもの同士をクラスターと扱います。次に、そのクラスターに最も似ているデータもしくはクラスターをグルーピングすることを、すべてのデータがグルーピングされるまで繰り返し、最終的にひとつの樹形図が完成したらクラスタリング完了となります。

樹形図を完成させることによって、視覚的にデータの関係性を把握することができます。そのため、サンプル数がそこまで多くない集団に対しては有効なクラスタリングです。例えば、売上金額を参考に取引先について階層クラスタリングを行えば、クラスターごとに今後の取引の進め方などを検討することができるでしょう。同様に、顧客アンケートの内容に応じて商品をクラスタリングすることで、似た商品の売上傾向などを視覚的にとらえることも可能です。

階層クラスタリングを行う場合、サンプル同士が何をもって「似ている(もしくは似ていない)」と判断するかによって計算方法が異なります。階層クラスタリングの代表的な計算手法であるウォード法、群平均法、最短距離法、最長距離法については、「階層クラスタリングの代表的手法」にて詳細を解説します。 

非階層的クラスタリングとは、グループ分けの良さを表現する関数を定義し、反復的に計算していくことでその関数が最適となるグループ分けを見つけるものです。非階層クラスタリングとは、その名の通り、階層を作らずにデータをグルーピングしていく手法のことです。母集団の中で近いデータをまとめて、指定された数のクラスターに分類していきます。階層クラスタリングでは樹形図としてグルーピングされるため、クラスターを形成したあとで自由にクラスターを分けることができましたが、非階層クラスタリングでは事前にクラスター数を決定しておく必要があります。あらかじめ決められたクラスター数に要素を分けていくため、すべてのデータ同士の距離を計算する階層クラスタリングよりも計算量が少なく済みます。そのため、データ量の大きいビッグデータの分析にも適した手法です。ただし、注意が必要なのは、適したクラスター数を自動で計算する方法はまだないという点です。データの種類や量に応じてクラスター数も自動で分類してほしいという声もあるかもしれませんが、分析しやすいクラスター数は計算を開始する前にあらかじめ検討しておかなければなりません。

階層クラスタリングのメリットとデメリット

先述の通り、階層クラスタリングではデータが樹形図として分類されます。そのため、樹形図を上から順に辿っていくことで、目的に応じて好きな数にクラスタを分けることが可能になることが、階層クラスタリングのメリットです。

階層クラスタリングの場合、クラスターの数は最小で1(母集団を1つのクラスターとみなす)、最大でクラスタを構成する要素数(個々のデータを1つのクラスターとみなす)となり、自由にクラスターを分けることができます。そのため、事前にクラスター数を決める必要がなく、一度クラスタリングしてしまえばさまざまな用途で使うことができるのです。また、クラスタリングの結果を樹形図として図示することで、データ同士の繋がりを可視化し、分析やそれにより得られた結果の考察に役立てることも可能です。

一方、階層クラスタリングのデメリットは、その計算量の多さです。すべてのデータの組み合わせを計算して1つずつクラスターを作っていくため、データの数が多ければ多いほど計算量が膨大になります。データの数が多すぎると、たとえ樹形図を作成しても一つ一つの結果が読み取りづらく、活用もしづらいでしょう。したがって、ビッグデータのようにデータ数が膨大になるものは、階層クラスタリングには向いていないといえます。階層クラスタリングは、データ数が数十個以下のものが適しているともいわれているのです。

また、クラスター間の距離の計算手法が複数あり、どれを採用するかでクラスタリングの結果が変わります。どの計算手法を採用するかは試行錯誤する必要があり、データのばらつき具合によっては、同じ階層クラスタリングでも結果が大きく異なる場合もあることにも注意が必要です。

階層クラスタリングの代表的手法

以下では、階層クラスタリングの代表的な手法について説明していきます。

最短距離法 (単リンク法)

最短距離法は、2つのクラスター間で一番近いデータ同士の距離を、クラスター間の距離として採用する手法で、単連結法 (単リンク法) と呼ばれることもあります。クラスターを構成する要素同士の距離をすべて求め、その中で一番距離の短い組み合わせを選び、そのときの距離をそのままクラスター間の距離として考えます。

ウォード法などに比べて計算量が少なくなることがメリットですが、外れ値に弱いことがデメリットです。クラスター内に1つだけ離れたデータがあった場合、そのデータに近い別のクラスタが存在すると、そのクラスターと新たなクラスターを作ってしまうのです。クラスタ内に外れ値があった場合、最短距離法では鎖効果が出やすくなり、分類感度が低くなってしまいます。

メリットデメリット
計算量が少なくて済む外れ値の影響を受けやすい

最長距離法 (完全リンク法)

最長距離法は最短距離法とは逆の手法です。完全連結法と呼ぶこともあり、クラスターを構成する要素同士のすべての距離の中で最長のものを、クラスター間の距離として採用します。

最短距離法と同様に、計算量が少なくなることがメリットとされています。一方、外れ値があると拡散効果でクラスタ同士が離れてしまうというデメリットがあることに注意が必要です。最短距離法と同様に、クラスター内に1つだけ離れた特異データ (外れ値) がある場合には、その影響を受けやすいのです。ただし、各クラスターのサイズが一定になりやすいため、最短距離法より分類感度は高くなるという特徴もあります。

メリットデメリット
計算量が少なくて済む外れ値の影響を受けやすい
最短距離法よりも分類感度が高くなる傾向—————————-

群平均法

階層クラスタリングでクラスターを形成していくとき、最短距離法、最長距離法と同様に、群平均法でもクラスター間の距離を計算することでグルーピングしていきます。最初のクラスターを作るときは1つのデータを1つのクラスターとしてみなすため、データ同士の距離がそのままクラスターの距離となります。しかし、最短距離法、最長距離法と異なる点として、群計算法では、2回目以降の計算では集団同士の距離を計算することになるため、クラスター内のどのデータ同士の距離をクラスター間の距離とするかで計算結果が変わってくるのです。

要するに群平均法とは、2つのクラスターを構成するデータのすべての組み合わせの距離を求め、その平均をクラスター間の距離とする手法です。

群平均法ではすべての距離の平均を用いるため、クラスタ内に外れ値があったとしても影響を受けにくく、クラスターが帯状に連なってしまう鎖効果が起こりにくいというメリットがあります。また、ウォード法に比べると計算量が少ないため、負荷を抑えつつ、ある程度計算結果のバラつきも少なくしたい場合には有効な計算方法でしょう。

メリットデメリット
計算量が少なくて済む—————————-
外れ値の影響を受けにくい—————————-

最小分散法 (ウォード法)

ウォード法は、それぞれのデータと平均値の差を二乗した値の和 (分散×データ数) を求め、この平方和が小さなものからクラスターを作っていく手法です。平方和はデータのばらつきを表すもので、平方和が大きいほどデータのばらつきが大きい、逆に平方和が小さいほどデータのばらつきは小さいということになります。

最初に、すべてのデータの組み合わせに対して平方和を求めます。そのなかで、平方和が一番小さくなる組み合わせのものが最初のクラスターです。そして、そのクラスターを含めた各組合せに対して再度平方和を求めてクラスタ作成を繰り返します。

最終的に1つのクラスターになるまで平方和を求めて比較し続けることになるため、計算量が多くなることがデメリットとされていますが、平方和を用いることで分類感度はかなり高まります。そのため、バランスよくデータを分類することが可能で、階層クラスタリングの中ではよく使われる手法です。分析したいデータに応じた計算方法を選ぶことが重要ですが、「迷ったらウォード法」と言われるほど、ウォード法はバラつきを抑えた分析が可能になります。

メリットデメリット
分類感度が高い計算量が多くなる

非階層クラスタリングの代表的手法

以下では、非階層クラスタリングの代表的な手法について説明していきます。

k平均法 (k-means法)

非階層クラスタリングの代表的な手法として、k-means法 (k平均法) というものがあります。k-means法とは非階層クラスタリングを行うためのアルゴリズムで、「あらかじめ指定されたk個のクラスタに、平均(means)を用いて分類する」という意味で名付けられました。

k-means法は、最初に指定したクラスタの数だけ「重心」をランダムに指定し、その重心を基準にクラスタを分けていくという手法です。k-means法を用いるとすべてのデータ間の距離を計算する必要がなくなるため、計算量が軽く済むというメリットがあります。一方、最初の重心の指定はランダムに行われるため、同じ母集団でも計算する度に結果が少し変わることがある点に注意が必要です。より望ましい計算結果を得るためには、初期値を変えて何度か計算を実施し、それぞれのクラスター内の平均距離が最小になるものを選ぶなど、分析結果が初期値に依存しないような工夫が必要となります。

計算量が少なく、分析するデータ量が多くても問題ないk-means法は、ビッグデータの解析にも適しています。サイト内検索ワードの分類や顧客の購買傾向の分析など、ビジネスにおいても活用できるシーンは決して少なくはありません。

メリットデメリット
計算量が少ない場合が多い計算量が初期値に依存する傾向 (初期値生成問題)

コメントする

*
*
* (公開されません)

Return Top
Close Bitnami banner
Bitnami