教師なし学習とはどんなものか。何に使われるか。


教師なし学習とは

教師なし学習とは、目標値を持たない問題設定に対して用いる機械学習です。
データがとりあえずたくさんあって、それらをどう分類すると、どのような結果が見えてくるかを人間が理解して利用する必要があります。

例えば、コンビニの購買データが1000件あったとして、

  • お弁当とコーヒーを買うグループ
  • サラダとサンドイッチを買うグループ
  • お酒とおつまみを買うグループ

に分類することができたりします。
上記は、適当にありえそうな組み合わせを想像して書いただけですが、実際にデータを分類してみると、
「お弁当とコーヒーを一緒に買うような人は全くいない」という事実が浮かび上がってくるかもしれませんし、
サラダとサンドイッチを一緒に買う人は、サラダチキンも一緒に買っていると示される可能性もあります。

うまく分類できたら、例えば、「お酒とおつまみを買うグループ」に向けて
「お酒とおつまみ2品購入で合計金額から10%オフ」といったキャンペーンを打ち出し、
キャンペーン中のデータを取得して、また分類することで、キャンペーンの効果があったかどうかを確かめることもできそうです。

手法

代表的な手法として、以下の二つがあります。

  • 主成分分析(Principal Component Analysis)
  • k平均法 (k-means)

主成分分析

主成分分析は次元削減の手法です。
4次元のデータ(列数が4つのデータ)があった場合、2次元などの低次元に落とし込みこむことです。
2次元などに落とし込むことでデータを可視化することができます。

主成分分析でわかることは、

  • 主成分を見ることで、どの方向にデータがばらつくか分かる
  • 主成分得点を見ることで、データを要約できる
  • explained variance ratioを見ることで、どの程度情報を保持しているか分かる(80〜90%が基準になる)

↓の動画がわかりやすかったです。

【相関で情報を圧縮】主成分分析の気持ちを理解する【いろんな分析 vol. 2 】 https://youtu.be/mMmTHoZKWTI

第1主成分を求める

z_1 = w_{11}x_1 + w_{12}x_2 + ... + w_{1n}x_n = w_1x

この時、$||w_1||$で$V(z_1)$が最大になる$w_1$の時の$|z_1|$が第1主成分得点です。

第2主成分を求める

z_2 = w_{21}x_1 + w_{22}x_2 + ... + w_{2n}x_n = w_2x

この時、$||w_2||$で$V(z_2)$が最大になる$w_2$の時の$|z_2|$が第2主成分得点です。
ただし、$w_2 \perp w_1$です。
$w_1$と$w_2$は違う方向を向いていて欲しいからです。
$w_1$と垂直方向にばらついているということは、2番目にばらつきが大きい方向と考えることができます。

第k主成分は、k番目にばらつきが大きい方向のことです。
4番目以降のことはイメージとして認識することは難しいですがね。

そして、$z$から$x$への回帰分析をすると、残差が最小になります。

k平均法

k平均法はクラスタリングと呼ばれる手法に当たり、データを複数のクラスター(グループ)に分けて、おおまかな特徴を捉える際に使用します。
最初に書いたコンビニの例では、こちらを使用します。

  • 人間側がクラスター(グループ)の数を決める
  • ランダムに振られた点(重心)から近いものをクラスターとする
  • 紐づいたクラスターとの距離を元に重心を移動させる

上記の3つを重心が動かなくなるまで繰り返します。