前回は、「クラスター分析」で使う素性ベクトルの(特にテキストマイニングの分野で)定番であるTF-IDF法をまとめました。
第6回『テキストマイニングの「クラスター分析」などで使われる、知らないと恥ずかしい「素性ベクトル作成の定番的方法」とは?』
クラスター分析ってなんだっけ?って方は、本連載の第1回をどうぞ↓
第1回『「クラスター分析」とは?膨大な情報の内容を、ラク〜にサクッと理解したいあなたはこちらをどうぞ』
今回は、これまで説明してきた素性ベクトルをつかっての「クラスター分析のやり方」をまとめたいと思います。
まずは、クラスター分析がどのようなものかざっくり説明しますね。
本記事の概要
クラスター分析には、2種類の使い方がある
データ分析を行うときには、まず最初に「データの特徴を知る」のが大事です。
- データはどんな分布なのか
- 外れ値はないか
- 欠損値はないか
のようなデータの特徴を知ることで、
そのあと、どうデータ分析するのかについて、ヒントが得られます。
このように、本番のデータ分析の前に、データがどんな特徴を持っているかを調べるためにクラスター分析が重宝するわけです。
クラスター分析には、(他の手法と違って)データさえあれば実行できるというメリットがあります。
なので、何処の馬の骨かわからないようなデータも、とりあえずクラスター分析してみて、データの傾向や特徴を見てみる、といった使い方をすることがあるわけです。
ちなみに、このようなデータ分析を「探索的データ分析」と呼びます。
なにものか分からないデータをとりあえず探索してみて、適切な手法の当たりをつけるための分析、のような意味合いです。
なので、クラスター分析には、
①、クラスター分析をしたくてやる場合
②、データの「特徴把握」や、データ分析の「手法選択」のために、当たりをつけるため行う(探索的データ分析)
の2種類が(おおざっぱには)あります。
クラスター分析のやり方はこんな感じです
そもそも、なぜ、クラスター分析をするの?
クラスター分析の目的は、目の前にある雑然としたデータを、スッキリ整理整頓することです。似たもの同士をグループ分けして塊にすることで、データの全体像がつかみやすくなります。
というわけで、クラスター分析には、各データ同士の似ている・似ていないの評価が必要です。
この似ている・似ていないを数値化したものを「類似度」と呼びます。
この類似度をもとに、似ているものを同じグループにまとめていくわけです。
クラスター分析で必須の「類似度」は、どう求めるの?
では、類似度はどうやって決めるかというと、
あるデータXと、データYの特徴をそれぞれベクトルで表現して、ベクトル同士の計算を行うことで算出したりします。
たとえば、テキストマイニングでのクラスター分析などでよく使われる「コサイン類似度」はその1つです。(詳しくは次回説明しますね)
類似度にはコサイン類似度だけでなく、他にもたくさんあり、データの特徴や、やりたいデータ分析手法に応じて、適切なものを選ぶ必要があります。
(どんな類似度があるの?それぞれどんな使い方をするの?などは今後まとめる予定です)
以上から、クラスター分析のやり方は、
①、各データの特徴をベクトルで表現する(「素性ベクトル」または「特徴ベクトル」)
②、素性ベクトルを使って、類似度を計算する
③、類似度に基づいて、似ているもの・似ていないものを分類・整理する
という感じになります。
①の素性ベクトルの作り方やテクニックなどは、これまでの連載でまとめてきました。(過去記事は下にございます)
②の類似度の計算は、ベクトルの演算の知識が必要で、高校数学で習いますので、忘れちゃったって方は復習してみてください↓
『「ベクトル」を学びたい・復習したい方にチェックしてほしい良書、10冊はこちらです』
③ですが、じつはひと言で「クラスター分析」といっても、類似度からグルーピング(分類・整理)するやり方には、様々なものがあります。おおざっぱにいうと、以下の2つの考え方があります。
- データ全体を1つのクラスターと考えて、どんどん分割していくやり方
- データ1つ1つをクラスターと考えて、どんどん合併させていくやり方
のように真逆の考え方があります。どちらもデータを階層的に分けていくので、「階層的クラスター分析」または「階層的クラスタリング」と呼ばれます。
クラスター分析の結果は、図示するとわかりやすいんですが、どちらの階層的クラスタリングでも、結果は「樹形図(デンドログラム)」で可視化することができます。
ちなみに、
階層的があるなら、階層的でないクラスター分析もあるの?
と思われた方もおられるかもしれません。
その通りです。
「非階層的クラスター分析」という手法もあります(k-means法など)。
これは階層的クラスタリングよりも計算量が少ないので、大きいデータに使えるメリットがあります。
他にも、
「確率モデル」
を使ったクラスター分析もありますし、
データを「グラフ」と捉えて、大きなグラフを小さなグラフに分割する、というクラスター分析もあり、
「スペクトラルクラスタリング」
と呼ばれています。
また、k-means法の親戚である、
「Fuzzy(ファジー)c-means法」
といった方法もあります。
ファジーというのは、”あいまい”という意味ですが、
k-means法との違いは、k-means法では各データはどれか1つのクラスターにのみ所属しますが、
Fuzzy c-means法では、必ずしも1つでなく、複数のクラスターに所属してもよいというクラスター分析手法になっています。
クラスターへの所属があいまいなところからファジークラスタリングと呼ばれているわけです。
このように、クラスター分析といっても、多くの分析手法が存在しています。
え?じゃあどれを使ったらいいの?
って思われるかとおもいますが、それぞれの手法には長所・短所の特徴がありますので、それを踏まえて最適なものを選ぶことが重要です。
本連載では、今後それぞれの手法を詳しく説明していく予定です。
というわけで今回は「クラスター分析のやり方」を簡単に説明しました。
データの特徴をベクトルで表現して、類似度を求める。類似度を使って分類・整理する、ということを学びました。
また、クラスター分析といってもいろいろな手法があり、、階層的・非階層的、確率モデルを使ったやり方など、さまざまなものがあることをご紹介しました。
これらの手法の詳細は、今後くわしく説明していきたいと思います↓
第8回『「距離行列」とは?データ分析手法全般でよく使う「類似度」について学びたいあなたはこちらをどうぞ』
過去記事はこちらです↓
第6回『テキストマイニングの「クラスター分析」などで使われる、知らないと恥ずかしい「素性ベクトル作成の定番的方法」とは?』
第5回『テキストマイニングなどの「クラスター分析」で必要な「素性ベクトル」を洗練する2つのテクニックとは?』
第4回『テキストマイニングなどのクラスター分析で必要な「素性ベクトル」をつくりたいあなたが知らないと損をする必須のテクニックとは?』
第3回『テキストマイニングなどのクラスター分析でも重要な「素性ベクトル」を作るための3つのステップとは?』
第2回『テキストマイニングの「クラスター分析」でも必要な「素性ベクトル」とは?なぜ必要なの?』
第1回『「クラスター分析」とは?膨大な情報の内容を、ラク〜にサクッと理解したいあなたはこちらをどうぞ』
本連載では、クラスター分析について定期的に更新しています。
Twitterなどフォローしてもらえると、更新情報が届くので便利です!
こちらもございます↓
↓こちら無料で読めます
こちらの記事もございます
『「機械学習」に入門したいあなたにチェックしてほしい良書、10冊はこちらです』
『「データマイニング」を勉強したいあなたにチェックしてほしい良書、10冊はこちらです』
『「エクセル」で「データ分析」できるようになりたいあなたにチェックしてほしい良書10冊はこちらです』
『「データ分析」を活用したい!けど分からないことだらけの方、その悩みを解決する良書10冊はこちらです』