R - 二进制博客数据的聚类分析

R - cluster analysis on binary weblog data

我有一个类似于以下示例的网络数据。 它仅具有用户和二进制值,用于表示该用户是否点击了网站内的特定 link。 我想对这些数据进行一些聚类。我的主要目标是根据在线行为找到相似的用户。 对此有什么好的聚类算法? 我尝试过 k-means,它不能很好地处理二进制数据。 我也尝试过球形 k-means skmeans()。我想做平方误差总和的陡坡图,但我不知道如何从 skmeans 中获取 SSE。

   User   link1 link2 link3 link4
    abc1     0     1     1     1
    abc2     1     0     1     0
    abc3     0     1     1     1
    abc4     1     0     1     0

如果 "clicked a link" 是不对称的,您可以尝试使用像 jaccard 这样的二元距离度量进行层次聚类:

dat <- read.table(header = TRUE, row.names = 1, text = "User   link1 link2 link3 link4
abc1     0     1     1     1
abc2     1     0     1     0
abc3     0     1     1     1
abc4     1     0     1     0")
d <- dist(dat, method = "binary")
hc <- hclust(d)
plot(hc)

(clusters <- cutree(hc, k = 2))
# abc1 abc2 abc3 abc4 
#    1    2    1    2