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 유사성 매트릭스를 만들고, 계층 적 클러스터에 맞추고 최상위 "노드"를 사용합니다.
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)