jmi*_*738 3 r cluster-analysis k-means
我有一个与下面的示例类似的网络数据。它仅具有用户和二进制值,用于表明该用户是否点击了网站内的特定链接。我想对这些数据进行一些聚类。我的主要目标是根据用户的在线行为找到相似的用户。对此有什么好的聚类算法?我尝试过 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
Run Code Online (Sandbox Code Playgroud)
如果“单击链接”是不对称的,您可以尝试使用像 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)
Run Code Online (Sandbox Code Playgroud)

(clusters <- cutree(hc, k = 2))
# abc1 abc2 abc3 abc4
# 1 2 1 2
Run Code Online (Sandbox Code Playgroud)