前回はこちら

 前回は機械学習の大まかな解説をしました。今回はそのうちの教師なし学習(unsupervised learning)について詳しく見ていきましょう。

 教師なし学習は、学習対象のデータはあるものの、それが何かという正解(文脈によってはラベル、教師信号ともいう)は与えられていないので、どうにかして何かしらの構造や法則を見いだすための手法です。大抵の場合、クラスタリング系のアルゴリズムを扱うことが多いので、ここでもクラスタリングの手法を中心に説明します。

 クラスタリング(clustering)は、機械学習に限らずによく使われる言葉なので親しみやすいかと思います。簡単に言えば、与えられたデータに対して、似たような物を同じグループにまとめる処理です。もう少し詳しく言うと、同じグループ内のデータ同士は互いに似ていて、別のグループのデータの間では互いに似ていないようにデータを分割します。

クラスタリングには前提が必要

図1 異なる属性を持つデータ
図1 異なる属性を持つデータ
[画像のクリックで拡大表示]

 例えば、図1を見てください。図中の図形のひとつひとつをデータだと思ってください。データには普通、複数の属性(attribute)があります。ここでいえば、パッと見でも色と形の属性がありそうです。

 この図形をクラスタリング、つまりグループ分けしてくださいと言われたら、どのように分けますか?これには正解がありませんよね。何しろ、何を基準にしてグループ分けすればいいのかも分からないし、いくつのグループに分ければいいのかも分からないのですから。実際、以下のようにいろいろな分け方が考えられます。

図2 分類の仕方はさまざま
図2 分類の仕方はさまざま
[画像のクリックで拡大表示]

 Aは色で3つに分けたもの、Bは形で3つに分けたものです。これらはそこそこ妥当な感じがします。でも分け方はほかにもいろいろ考えられます。Cは「丸いかどうか(角があるかどうか)」で分けたものですし、Dは「元の図の下の方に描かれているかどうか」で分けたものです。なんでもアリですね。でも分け方の基準がないのだから、仕方ありません。