クラスタリング
- クラスタリングの意義
評判情報などに使いやすい
データをまずベクトルで表現する
学習データ(訓練データ)を利用
どのようなクラスタができるか、どのような分類がされるかは未知
- 凝集型
ボトムアップに近いものからくっつけていく(樹形図ができる)
実装が簡単・クラス数を最初に定義しなくてよい
クラスタ間の距離がわかりやすい
距離計算をどう定義するかが難しい
(単連結(近いところ), 完全連結(遠いところ), 重心)
単連結→長い列みたいなクラスタができる
完全連結→鎖にはならない
- k-means
最初にK個のクラスタに分ける、と決める
K個の代表ベクトルを無作為に決める
それぞれについて距離が一番近い代表ベクトルのところに所属させる
各クラスに含まれる点の平均を取り、それを新しい代表ベクトルにする→繰り返し
利点: クラス数が決まっている場合綺麗に取れる
問題: 初期値依存が大きい, クラス数を決めないといけない, 初期値に凝集型で決めたものを使うとか
- 混合正規分布によるクラスタリング
k-meansをソフトクラスタリングにしたもの
全てのクラスタは正規分布に基づいた値を生成すると仮定して、各事例のP(x|C)を決める(分散も既知とする方が簡単)
P(C|x)を、各xの生起確率と、クラスタの事前分布に基づいて計算する(クラスタの事前分布は適当に与えるとか、テストデータで与えるとか)
全部のP(C|x)を計算し終えたら、代表ベクトルを再計算する
再計算できたら、またP(C|x)を考える
- EMアルゴリズム
対数尤度最大化によって平均ベクトルの再計算を行ないたい→が、各事例のCは未知で、P(c|x;θ')が与えられる
対数尤度ΣlogP(c,x;θ)の代わりにΣΣP(c|x;θ')logP(c,x;θ)を最大化するθを探すのがEMアルゴリズム
EMアルゴリズムは必ずしも事前分布を仮定しなくともよい
Q関数は単調増加
さっきの混合正規分布で適当に与えていたP(C)は各事例があるクラスタに属する確率の和を正規化して与えることができる
- PLSI
PLSA(確率的洗剤意味解析)で得られた隠れ変数を使う
2変数の共起確率を、異なる分布がいくつかあるような混合分布で考える
尤度でも事前分布でも好きなものを使ってQ関数を立てる
- クラスタリングの問題
クラスタリングに期待しているのは、「大まかな分類」
常にクラスタ数の問題がある(タスクに合わせましょう)
初期値依存の問題
クラスタリングそのものの評価は難しいので、別タスクに適用して評価するとか