NISHIO Hirokazu[Translate]
バイクラスタリング
o1 Proバイクラスタリング(biclustering)は、行と列の両方に対して同時にクラスタリングを行う手法である。従来のクラスタリングは、データ行(例:サンプル)について似通ったグループを作るものだが、バイクラスタリングは、行と列(例:サンプルと特徴量)を同時に考慮し、ある部分行列(subset of rows and columns)が共通のパターンを示すようなグループ(バイクラスター)を抽出する。

たとえば、遺伝子発現データでは遺伝子(行)と条件(列)を同時に分け、特定の遺伝子群が特定の条件下で似たパターンを示す部分集合を見つけ出せる。この手法は、データマトリックス内の潜在的な局所パターン発見に適しており、遺伝子発現解析、生物情報学、テキストマイニング(ドキュメント×単語行列の分析)など、多くの領域で応用される。

バイクラスタリング問題は一般に計算量が大きく、NP困難な場合も多い。そのため、多様なヒューリスティック手法や確率的、情報理論的アプローチが提案されている。バイクラスターには、値が一定のもの、行方向または列方向で一定の傾向を示すもの、加法的・乗法的なパターンの整合性を持つものなど、さまざまなタイプがある。

総じて、バイクラスタリングは行と列の両面から意味のある部分構造を取り出し、データへの理解を深めるための強力なツールである。

代表的な実装例・ツール:
Python (scikit-learn)
SpectralCoclusteringSpectralBiclustering クラスが用意されており、コーディングが容易で、基本的なコクラスタリング(バイクラスタリング)手法を簡便に試せる。
py
from sklearn.cluster import SpectralCoclustering model = SpectralCoclustering(n_clusters=5, random_state=0) model.fit(data_matrix) # model.rows_, model.columns_ で行・列ごとのクラスター情報を取得


"Engineer's way of creating knowledge" the English version of my book is now available on [Engineer's way of creating knowledge]

(C)NISHIO Hirokazu / Converted from [Scrapbox] at [Edit]