当K可能大于等于1000(880023行数据,~200000个特征)时,找到最佳K

2024-03-28 23:18:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我有大约1500个朋友在Facebook上的8800023条帖子。我想把这些帖子按“他们谈论的故事/话题/具体的事情”分类。例如,它们可能按电视节目的名称、人名、一些正在传播的单词等进行分类。这意味着我必须选择非常具体的单词,而不是一般的单词,所以这就是我要做的(使用python中的sklearn库)。你知道吗

tfidf_vectorizer = TfidfVectorizer(max_df=0.001, max_features=2000000,
                             min_df=0.00001,
                             use_idf=True, tokenizer=tokenize_only,ngram_range=(1,3))

如您所见,我将max_df=0.001和min_df=0.00001设置为获取我上面所说的特定功能,最终得到大约200k个功能。你知道吗

接下来,我想使用Kmean对它们进行聚类,但是我遇到了一个问题:如果人们在那些帖子中谈论很多事情,那么找到可能超过1000的最佳K。你知道吗

我试过差距统计,范等,但它是如此之慢,我不能等待。当我试着用一个小的数字,比如1-8,它说1是最好的簇数,这是不可能的。你知道吗

请帮我处理一下。你知道吗


Tags: 功能名称dffacebook分类朋友sklearnmin
1条回答
网友
1楼 · 发布于 2024-03-28 23:18:39

在这些数据上,k-均值还有其他更严重的问题:

  1. 用户可能谈论多个主题,并且应该属于多个集群。你知道吗
  2. 用户可能什么都没说,根本不应该属于任何集群。你知道吗
  3. k-means对噪声和数据初始化非常敏感。运行10次,得到10个完全不同的结果。你知道吗

尤其是最后一个使得寻找“最优”k变得不可能,因为在下一次运行中,不同的k将是“最优”的。你知道吗

我宁愿用LDA。你知道吗

相关问题 更多 >