我有一个尺寸为 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 个集群并分析负载,看看我是否可以解释用户行为组。似乎有很多方法可以在二进制数据上拟合集群 - 我们认为什么可能是该数据的最佳策略?
主成分分析
制作Jaccard 相似度矩阵,拟合层次聚类,然后使用顶部“节点”。
K-中位数
K-中心点
比邻星?
艾格尼丝
到目前为止,我在使用层次聚类方面取得了一些成功,但我真的不确定这是最好的方法......
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)