2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【G検定対策】「教師なし学習」を整理してみた

2
Posted at

はじめに

G検定の勉強をしていると、「教師なし学習って何?」「用語が多すぎて整理できない…」 となることがあると思います。

私自身も最初は、

  • クラスタリング
  • PCA
  • t-SNE
  • 協調フィルタリング
  • LDA

などが一気に出てきて、「全部バラバラに見えて何が何だかわからない」 状態でした。

そこで今回は、「教師なし学習」をできるだけやさしく整理 してみます。

教師なし学習とは?

教師なし学習とは、「正解ラベルがないデータから、パターンや構造を見つける学習」 です。

たとえば…

  • 教師あり学習 → 「このメールは迷惑メールです」という正解付きデータを学習して判定する
  • 教師なし学習 → 「正解はないけど、このデータたちの中に似たもの同士のまとまりや特徴はないかな?」を見つける

つまり、一言でいうと

教師なし学習 = データの中に隠れている“ルール”や“まとまり”を見つける方法

です。

教師なし学習の4分類

教師なし学習で出てくる用語は、4つのグループ に分けるとかなり整理しやすいです。

  1. 似たもの同士をまとめる → クラスタリング
  2. データを見やすく・扱いやすくする → 次元削減
  3. ユーザーにおすすめする → レコメンド
  4. 文章の話題を見つける → トピックモデル

この4つを軸に覚えると、かなり混乱しにくくなります。

1. クラスタリング:似たもの同士をまとめる

まず、クラスタリングとは、似ているデータを自動でグループ分けする手法 です。
たとえばECサイトの顧客データがあるとします。

  • よくまとめ買いする人
  • セール品ばかり買う人
  • 高価格帯の商品をよく買う人

こういった人たちを、人がラベルを付けなくても自動で分類してくれるのがクラスタリングです。

k-means法

クラスタリングの代表的な手法です。

何をする?

データを k個のグループ に分けます。
たとえば、

  • 3グループに分けたい → k=3

のように指定して使います。

イメージ

image.png

  1. 最初にグループの中心を仮に置く
  2. 各データを一番近い中心に割り当てる
  3. 中心を再計算する
  4. これを繰り返す

ポイント

  • シンプルでよく使われる
  • 何グループにするかを最初に決める必要がある

覚え方

k-means = 「k個に分けるクラスタリング」

デンドログラム(樹形図)

これは、クラスタリング結果を木の形で表した図 です。

イメージ

image.png

  1. 最初は全データがバラバラ
  2. 似ているもの同士が少しずつ結合
  3. 最後は1つにまとまる

この過程を木のように表したものがデンドログラムです。

何がわかる?

  • どのデータ同士が近いか
  • どこで区切れば何個のグループにできるか

ウォード法

これは、階層的クラスタリングで「どのクラスタ同士をくっつけるか」を決める方法 です。

image.png

ざっくり言うと

「なるべくグループ内のバラつきが増えないように」クラスタを統合する方法

です。

関係を整理すると

  • クラスタリング:仲間分け全体
  • k-means:k個に分ける方法
  • デンドログラム:木構造で見せる図
  • ウォード法:くっつけ方のルール

2. 次元削減:データを見やすくする

次元削減とは、情報をなるべく保ちながら、特徴量を減らすこと です。

たとえば、顧客データに以下のような特徴があるとします。

  • 年齢
  • 年収
  • 購買回数
  • 平均購入単価
  • サイト滞在時間
  • 購入カテゴリ数
  • ログイン頻度
    etc...

こうなると、情報が多すぎて理解しづらい です。

そこで、

「大事な特徴だけを残して、もっとシンプルにしよう」

というのが次元削減です。

何がうれしい?

  • 計算が軽くなる
  • ノイズを減らせる
  • 可視化しやすくなる
  • データの構造が見やすくなる

主成分分析(PCA)

次元削減の代表です。
データのばらつきが大きい方向(=情報が多い方向)を見つけて、そこに圧縮する 手法です。

image.png

散らばったデータがあるときに、

「一番特徴がよく出ている方向はどこ?」

を見つけて、
そこを新しい軸にするイメージです。

覚え方

PCA = 「データの特徴をなるべく保ったまま圧縮する方法」

特異値分解(SVD)

これは少し数学っぽいですが、今回は 「PCAと関係が深い行列分解」 くらいにしておきます。

覚え方

SVD = データを“重要な成分”に分解する方法

PCAとの関係

ざっくり言うと、

  • PCA:次元削減の手法
  • SVD:その背景にある数学的な分解手法

というイメージです。

image.png

多次元尺度構成法(MDS)

これは、データ同士の距離関係をなるべく保ったまま低次元にする手法 です。

image.png

覚え方

MDS = 「距離感を保って地図みたいに配置する方法」

t-SNE (t-distributed Stochastic Neighbor Embedding)

可視化でよく出てくる手法です。
似ているデータ同士が近く見えるように、2次元や3次元に落とし込む手法 です。

PCAとの違い

PCA

  • 全体の構造を見やすい
  • 情報圧縮寄り

t-SNE

  • 近いもの同士のまとまりを見やすい
  • 可視化寄り

覚え方

t-SNE = 「似たもの同士が近く見えるように可視化する方法」

image.png

次元削減のまとめ

image.png

  • 次元削減:特徴を減らして整理
  • PCA:代表的な次元削減
  • SVD:行列分解
  • MDS:距離関係を保つ
  • t-SNE:近さを保って可視化

3. レコメンド:おすすめを作る

協調フィルタリング

これは、「似た行動をした人」をもとにおすすめする方法 です。

AmazonやNetflixでよくあるやつです。

  • あなたと似た人が見た作品
  • この商品を買った人が買った商品

をおすすめする仕組みです。

覚え方

協調フィルタリング = 「似た人の行動からおすすめ」

コンテンツベースフィルタリング

これは、アイテムそのものの特徴に基づいておすすめする方法 です。

あなたが

  • SF映画
  • 宇宙もの
  • アクション

をよく見ているなら、
同じ特徴を持つ映画 をおすすめするイメージです。

覚え方

コンテンツベース = 「好きなものに似た内容をおすすめ」

協調フィルタリングとの違い

  • 協調フィルタリング → 他人の行動を使う
  • コンテンツベース → アイテムの特徴を使う

コールドスタート問題

最初はデータが少なくて、うまくおすすめできない問題 です。

  • 新規ユーザー → 行動履歴がない
  • 新商品 → まだ評価がない

この状態だと、特に 協調フィルタリング が弱くなります。

覚え方

コールドスタート問題 = 「最初は情報がなくて推薦しづらい問題」

4. トピックモデル:文章の話題を見つける

これは文章データでよく使われます。
文書の中にどんな話題(トピック)が含まれているかを見つける手法 です。


ニュース記事が大量にあるときに、

  • スポーツ
  • 政治
  • 経済
  • エンタメ

などの話題を自動で見つけるイメージです。

潜在ディリクレ配分法(LDA)

トピックモデルの代表手法です。

LDAでは、

  • 文書は複数のトピックからできている
  • トピックは複数の単語からできている

と考えます。

イメージ

image.png

ある記事が、

  • 70% スポーツ
  • 20% 経済
  • 10% 政治

みたいに表されるイメージです。

つまり、1つの文書に複数の話題が混ざっている と考えるわけです。

覚え方

LDA = 「文章の中にどんな話題がどれくらい含まれているかを推定する方法」

教師なし学習の整理表

image.png

1. 仲間分けしたい ➔【クラスタリング】

  • クラスタリング:似たものをまとめる(全体概念)
  • k-means:データを「k個」のグループに分ける
  • デンドログラム:クラスタリングの過程を「木(樹形図)」で表す
  • ウォード法:バラつきが最小になるようにクラスタを結合するルール

2. 情報を減らして見やすくしたい ➔【次元削減】

  • 次元削減:情報の本質を残しつつ特徴量を減らす(全体概念)
  • PCA(主成分分析):分散が最大になる(=一番特徴が出ている)方向を新しい軸にする
  • SVD(特異値分解):行列分解を用いて次元を圧縮する(PCAとも密接な関係)
  • MDS(多次元尺度構成法):データ間の「距離関係」を保ちながら地図のように配置する
  • t-SNE:「似たもの同士が近くに見える」ように局所的な構造を保って可視化する

3. おすすめしたい ➔【レコメンド】

  • 協調フィルタリング:行動履歴が似ている「他の人」をベースにおすすめする
  • コンテンツベース:アイテムの「特徴や内容」をベースにおすすめする
  • コールドスタート問題:新規ユーザーや新商品など、最初はデータ不足でおすすめしにくい問題

4. 文章の話題を知りたい ➔【トピックモデル】

  • トピックモデル:大量の文書から隠れた話題(トピック)を発見する(全体概念)
  • LDA(潜在ディリクレ配分法):1つの文書の中に「どんな話題がどれくらいの割合で混ざっているか」を推定する

💡 混同しやすいポイント(比較まとめ)

試験対策として、それぞれの「目的の違い」や「何を使うか」を対比させて覚えるのがおすすめです。

比較テーマ 手法・概念 A 手法・概念 B
データへのアプローチ クラスタリング
データをグループに分ける
次元削減
情報を保ったままデータを圧縮する
次元削減の目的 PCA
全体構造や情報を保ちながら圧縮したい
t-SNE
似たものを近くに配置し、見やすく可視化したい
レコメンドの基準 協調フィルタリング
似ている他人の行動履歴を使う
コンテンツベース
アイテム自体の特徴・内容を使う
テキストの分析 クラスタリング
文書を特定のグループに分類する
トピックモデル
1つの文書に含まれる複数の話題の割合を見る

G検定向けにまず覚えるべき最小セット

image.png

おわりに

教師なし学習は、単語が多いです。
そこで、まず以下の4つに分けて考えればかなり整理できるのではないかと思います。

  • クラスタリング
  • 次元削減
  • レコメンド
  • トピックモデル

まずは、細かい数式よりも「何をする手法なのか」を理解すること がかなり大切です。
「これは何をしたい技術なのか?」 を軸に整理していくのが良いと思いました。


学習に利用している書籍

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?