非負値行列因子分解(NMF)
行列を分解して特徴を抽出する?非負値行列因子分解について勉強中。
雑感
ドキュメント群を教師無しのカテゴリ分けする場合に使えるか?
潜在意味解析(LSA)してk-meansするのとどう違うのかわからない
pythonライブラリ
https://code.google.com/p/pymf/
http://nimfa.biolab.si/index.html
python3に対応してないっぽい?
scikitのサンプル
http://scikit-learn.org/stable/modules/decomposition.html#non-negative-matrix-factorization-nmf-or-nnmf
集合知プログラミングのソースコード10章のnnmy.pyがそのまま使える
http://examples.oreilly.com/9780596529321/
クラスタリングに使う際のクラス数について Consensus Clustering
Nonnegative matrix factorization(NMF)でconsensus clustering
NMFの便利なところは元の特徴(この論文の場合は遺伝子発現量)からより少ない任意の特徴量(論文中ではmetagene)に変換できるところであり、さらにそのままクラスターの分割に利用できる。
たとえば2つのmetageneで表現した場合、より発現量の大きいmetageneで分割すれば2つのクラスに分けられる。
続いて、重要なのがクラスの安定性である。要するに最適なクラスタの数はいくつなのかということである。これに対して、この論文ではConsensus Clusteringというリサンプリングと隣接行列(connectivity matrix)を利用する方法をモディファイした方法を使っている。
この画像の見方がよくわからないけれど0と1がくっきり分かれているほどいいクラス数ってことなのかな。青と茶色に綺麗に分かれている方がいいと。