全1787文字

 目的変数がある構造化データを利用する教師あり学習に対し、目的変数を持たない構造化データからデータに含まれるパターンを見つけるアルゴリズムを「教師なし学習」と呼びます。教師なし学習では、列と行のどちらの方向性で情報を整理するかで、大きく2つにアルゴリズムの種類を分けることができます。

 教師なし学習の適用例の1つが、データのパターンを発見するケースです。100人の顧客が50本の映画について評価した、100行50列のデータがあったとします。

 このデータを使って、映画に対する趣味嗜好の近い顧客をグループ分けし、そのパターンを明らかにしたいと考えます。このとき教師なし学習の1つである「k-means」というアルゴリズムを用いると、顧客の評価パターンから、顧客間の類似度を計算し、100人の顧客をいくつかのグループに分類することができます。

 このように目的変数を与えることなく、データのパターンをいくつかのグループに分けるアルゴリズムを、教師なし学習で利用するアルゴリズムの中でも「分類系のアルゴリズム」と呼びます。分類系のアルゴリズムは、データの観点から見た場合、行を整理しているとの見方ができます。

 これに対し、列を「圧縮」しているタイプの教師なし学習のアルゴリズムもあります。圧縮タイプのアルゴリズムの場合、列のデータの傾向を分析し、類似した列をまとめることに利用します(図1)。

図1●教師なし学習の考え方
図1●教師なし学習の考え方
[画像のクリックで拡大表示]

具体的なアルゴリズムによる違い

 今までの内容をもう一度、整理してみましょう。

 構造化データを対象にしたアルゴリズムは、目的変数の有無により、教師あり学習と教師なし学習に分類できます。目的変数があるデータを利用する教師あり学習に分類されるアルゴリズムは、目的変数の種類によって識別系か予測系かに分かれます。目的変数がラベルで表示できるカテゴリー型の場合は識別系、売上高や身長など数字のデータの場合は予測系となります。

 一方で目的変数のない教師なし学習では、構造化データの行と列のどちらの方向で情報を整理するかでアルゴリズムを使い分けます。行方向でデータをグループ化したい場合は分類系のアルゴリズムを、列方向のデータをまとめたい場合は圧縮系のアルゴリズムを利用します。