バイナリ行列のクラスタリング


22

次元250k x 100 のバイナリフィーチャの半小さなマトリックスがあります。各行はユーザーであり、列は、「likes_cats」などのユーザー動作のバイナリ「タグ」です。

user  1   2   3   4   5  ...
-------------------------
A     1   0   1   0   1
B     0   1   0   1   0
C     1   0   0   1   0

ユーザーを5〜10個のクラスターに適合させ、負荷を分析して、ユーザーの行動のグループを解釈できるかどうかを確認します。バイナリデータにクラスターをフィッティングするためのアプローチはかなりあるように思われます-このデータに最適な戦略は何だと思いますか?

  • PCA

  • Jaccard Similarityマトリックスを作成し、階層クラスターを適合させてから、上位の「ノード」を使用します。

  • Kメディアン

  • K-medoid

  • プロキシマス

  • アグネス

これまでのところ、階層的クラスタリングを使用することである程度の成功を収めてきましたが、それが最善の方法であるかどうかは確かではありません。

tags = read.csv("~/tags.csv")
d = dist(tags, method = "binary")
hc = hclust(d, method="ward")
plot(hc)
cluster.means = aggregate(tags,by=list(cutree(hc, k = 6)), mean)

ここに画像の説明を入力してください


1
大規模(多数のノード)および高次元データの場合、グラフクラスタリングアルゴリズムを試すことも価値があります(たとえば、タニモトの類似性とLouvainクラスタリング、RNSC、mclなどの方法を使用)。あなたのタイプのデータが意味のあるクラスターを生成するかどうかは疑いがあります(もちろんそうかもしれません)が、それらの疑いは特定のタイプのクラスタリングではなく、一般的なクラスタリングに関連しています。PCAは間違いなく試してみるものです。
ミカン14

6
正直に言うと、この質問がそれほど注目されていなかったことに驚いています。なぜそうですか?私には、これは非常に興味深い質問のように聞こえます。
Dror Atariah

回答:


9

潜在クラス分析は、可能なアプローチの1つです。

A、B、およびCが1または0の値を取ることができる次の確率分布を取ります。

PABjCk

これらが互いに独立している場合、次のように表示されます。

PABjCk=PAPBjPCk

この可能性が排除されると、観測された依存性は、観測されていないサブグループ内でクラスタリングされた値によるものであるという仮説を立てることができます。このアイデアをテストするために、次のモデルを推定できます。

PABjCk=PバツnPA|バツnPBj|バツnPCk|バツn

ここで、と潜在カテゴリ変数であるレベル。もしspecfy、及びモデルパラメータ(限界クラスメンバーシップの確率、及び各変数のクラスの特定の確率)は期待値最大化を介して推定することができます。バツnn

実際には、で複数のモデルを推定し、理論、尤度ベースの適合指数、分類品質(クラスメンバーシップの事後確率を計算することで評価できます)に基づいて最適なモデルを「選択」できます観察)。5n10

しかし、おそらくそれ自体(でトリッキーな十分な話題であるモデル、推定する前にダウンし、そのリストを削減する必要があります5-10グループと100個の変数に意味のあるパターンを識別しようとしているREFを)。


素晴らしい、面白い。他のどの技術よりもその手法を使用する利点は何だと思いますか?
wije 14

1つの利点は、クラスタリングがファジーであるため、後続のクラス割り当ての不確実性を考慮できることです。もう1つは、モデルベースのメソッドであるためです。モデル選択のガイドに役立つ尤度ベースの適合インデックスが得られます。もちろん、これには分布の仮定をする必要があります...他の有効な方法にはそれぞれのトレードオフがあると確信しています。
DLダーリー14

5

実際、頻繁なアイテムセットのマイニングは、そのようなデータをクラスタリングするよりも良い選択かもしれません。

通常のベクトル指向のアルゴリズムのセットはあまり意味がありません。たとえば、K-meansは、バイナリではない平均を生成します。


タグ(列)ではなくユーザーをクラスター化する場合でも、頻繁にアイテムを使用するのは理にかなっていますか?
wije

1
私見はい。ただし、明らかな理由により、関連付けルールはデータセットの厳密なパーティション分割ではありません。ユーザーは、複数の「頻繁なアイテムセット」のメンバーである場合があります。つまり、ユーザーは猫ファンでも犬ファンでもかまいません。これらの2つのグループは、ばらばらに強制されません。
アノニムース

どのIMHOが実際に良いですか。すべてのユーザーがちょうど1つのクラスターのメンバーであると仮定すると、私には過度に素朴に思えます。
アノニムース
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.