前回、教師なし学習について説明するなかで、教師なし学習が得意な課題の1つとしてクラスタリング(データのグループ化)があることを紹介しました。教師なし学習を使ったクラスタリングでは、クラスタ分け(グループ分け)という行為自体が「学習」に相当します。
これを踏まえて今回は、具体的なクラスタリング手法について解説していきます。
最も似ているもの同士をくっつける「凝集型クラスタリング」
非常にシンプルなクラスタリング方法は、最も似ているもの同士をくっつけていくことです。これは「凝集型クラスタリング」、または「ボトムアップクラスタリング」と呼ばれます。
早速、凝集型クラスタリングを実践してみましょう。今回は、学習するデータとして次の5つの文を用意しました。
- メロンパンとジャムパンを食べる。
- メロンパンとジャムパンとソーセージパンを買ってきて。
- ソーセージパンとクリームパンは美味しい。
- 野球もサッカーも好きです。
- サッカーはとても楽しいね。
こうしたデータは「学習データ」、または「訓練データ」と呼ばれます。呼び方は違いますが、教師あり学習における「教師データ」と同様、人間があらかじめコンピュータに与えるデータです。
最初は、これらの文は全て別々のクラスタだと考えます。「文1のみから成るクラスタ」「文2のみから成るクラスタ」といった具合に、クラスタが5つ存在する状態を想像してください。
後は、最も似ているクラスタ同士を順番にくっつけて(融合して)いくだけなのですが、何をもって「最も似ている」と言えばよいのでしょうか。
これに関しては、データによってさまざまな定義が考えられます。例えば、データが数値ならば、「クラスタに含まれる2つの数値の差が最も小さいもの」を最も似ていると定義すれば良いでしょう。「最も似ている」の定義は、学習データに応じて適切に決めることが大切です。
今回は「各文に含まれる名詞が一致している数」を「似ている度合い」だと考え、似ている度合いが最大のもの(同じ名詞を含んでいる数が最大のもの)を「最も似ている」と定義することにします。
文1~5はそれぞれ、以下の表で「○」が付いている名詞を含んでいます。
メロンパン | ジャムパン | ソーセージパン | クリームパン | 野球 | サッカー | |
---|---|---|---|---|---|---|
1 | ○ | ○ | ||||
2 | ○ | ○ | ○ | |||
3 | ○ | ○ | ||||
4 | ○ | ○ | ||||
5 | ○ |
文1に着目してください。
まず、文1の文2~5に対する似ている度合いを算出します。似ている度合いは「各文に含まれる名詞が一致している数」ですから、文1と文2の似ている度合いは「2」、文1と文3の似ている度合いは「0」、文1と文4の似ている度合は「0」、文1と文5の似ている度合は「0」と計算できます。
次に文2に着目し、同じように似ている度合いを計算します。文2と文3の似ている度合いは「1」、文2と文4の似ている度合は「0」、文2と文5の似ている度合いは「0」です。
文3以降も同じ要領で、全ての組み合わせで似ている度合いを算出します。すると、最も似ているクラスタは、似ている度合いが「2」である文1のクラスタと文2のクラスタであることがわかります。
そこで、この2つのクラスタを融合します。これで、「文1と文2から成るクラスタ」「文3から成るクラスタ」「文4から成るクラスタ」「文5から成るクラスタ」の4つができました。
この状態から、また最も似ているものを探していくわけです。