【问题标题】:k-means clustering-- why all same clusters?k-means 聚类——为什么都是相同的聚类?
【发布时间】:2014-06-04 17:14:44
【问题描述】:

我正在对一组包含 10842 条推文的文本数据进行 k-means 聚类。我将 k 设置为 5,我得到了如下所示的集群

cluster1:booking flight NA

cluster2:航班预订不适用

cluster3:航班预订不适用

cluster4:航班预订不适用

cluster5:booking flight NA

我不明白为什么所有的集群都是一样的??

myCorpus<-Corpus(VectorSource(myCorpus$text))
myCorpusCopy<-myCorpus
myCorpus<-tm_map(myCorpus,stemDocument)
myCorpus<-tm_map(myCorpus,stemCompletion,dictionary=myCorpusCopy)
myTdm<-TermDocumentMatrix(myCorpus,control=list(wordLengths=c(1,Inf)))
myTdm2<-removeSparseTerms(myTdm,sparse=0.95)
m2<-as.matrix(myTdm2)
m3<-t(m2)
set.seed(122)
k<-5
kmeansResult<-kmeans(m3,k)
round(kmeansResult$centers,digits=3)

for(i in 1:k){
cat(paste("cluster",i,":",sep=""))
s<-sort(kmeansResult$centers[i,],decreasing=T)
cat(names(s)[1:3],"\n")
}

【问题讨论】:

    标签: r k-means


    【解决方案1】:

    请记住,k-means 聚类需要您提前指定聚类的数量(与层次聚类相反)。如果无法访问您的数据集(因此无法重现您在此处提供的内容),您获得看似同质的集群的最明显原因是您事先指定的集群数量存在问题。

    最直接的解决方案是尝试 R 中的 NbClust 包,以确定适合您数据的集群数量。

    这是一个使用玩具数据集的示例代码,可让您了解如何进行:

    # install.packages("NbClust")
    library(NbClust)
    set.seed(1234)
    df <- rbind(matrix(rnorm(100,sd=0.1),ncol=2),
         matrix(rnorm(100,mean=1,sd=0.2),ncol=2),
         matrix(rnorm(100,mean=5,sd=0.1),ncol=2),
         matrix(rnorm(100,mean=7,sd=0.2),ncol=2))
    
    # "scree" plots on appropriate number of clusters (you should look
    # for a bend in the graph)
    nc <- NbClust(df, min.nc=2, max.nc=20, method="kmeans") 
    table(nc$Best.n[1,]) 
    
    # creating a bar chart to visualize results on appropriate number
    # of clusters
    barplot(table(nc$Best.n[1,]), 
          xlab="Number of Clusters", ylab="Number of Criteria",
          main="Number of Clusters Chosen by Criteria")
    

    如果您在指定集群数量后仍然遇到问题 NbClust 包中的功能建议,然后是另一个问题 可能与您删除稀疏术语有关。尝试调整“稀疏” 向下选项,然后检查 k-means 聚类的输出。

    【讨论】:

    • 您好,请问您现在所说的“向下调整“稀疏”选项”是什么意思?我注意到在删除SparseTerms 并转置矩阵后,我的数据集仅包含“booking”和“flight”两列。不知道为什么?
    猜你喜欢
    • 2015-04-11
    • 2021-04-29
    • 2011-08-13
    • 2013-08-08
    • 2013-02-14
    • 2018-01-14
    • 2019-03-16
    • 2016-05-29
    • 2010-11-22
    相关资源
    最近更新 更多