前回、教師なし学習について説明するなかで、教師なし学習が得意な課題の1つとしてクラスタリング(データのグループ化)があることを紹介しました。教師なし学習を使ったクラスタリングでは、クラスタ分け(グループ分け)という行為自体が「学習」に相当します。

これを踏まえて今回は、具体的なクラスタリング手法について解説していきます。

最も似ているもの同士をくっつける「凝集型クラスタリング」

非常にシンプルなクラスタリング方法は、最も似ているもの同士をくっつけていくことです。これは「凝集型クラスタリング」、または「ボトムアップクラスタリング」と呼ばれます。

早速、凝集型クラスタリングを実践してみましょう。今回は、学習するデータとして次の5つの文を用意しました。

  1. メロンパンとジャムパンを食べる。
  2. メロンパンとジャムパンとソーセージパンを買ってきて。
  3. ソーセージパンとクリームパンは美味しい。
  4. 野球もサッカーも好きです。
  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つができました。

最も似ている文1のクラスタと文2のクラスタを融合した

この状態から、また最も似ているものを探していくわけです。

「単連結法」と「完全連結法」

この記事は
Members+会員の方のみ御覧いただけます

ログイン/無料会員登録

会員サービスの詳細はこちら