使用 K-means 对数据集中的热门主题进行聚类

Posted

技术标签:

【中文标题】使用 K-means 对数据集中的热门主题进行聚类【英文标题】:Using K-means to cluster top topics in a dataset 【发布时间】:2021-05-30 11:14:18 【问题描述】:

我正在尝试使用 K-means 对 twitter 数据进行聚类,以显示数据集中讨论的主要主题。我目前有一个 CSV 文件,该文件已被清理、标记并删除了停用词。

我现在正在尝试通过使用一个简单的 GUI 来应用 k-means,我希望最终将结果可视化,它现在能够运行,但它只创建一个包含“文本”内容的集群。如何创建多重集群?

我的代码:

def k_means_clustering(self):          

            df = pd.read_csv("test_data.csv")

            vectorizer = TfidfVectorizer(stop_words='english')
            X = vectorizer.fit_transform(df)

            true_k = 1 
            model = KMeans(n_clusters=true_k, init='k-means++', max_iter=100, n_init=1)
            model.fit(X)

我用这个问题来尝试应用 K-means Clustering text documents using scikit-learn kmeans in Python

【问题讨论】:

【参考方案1】:

更改true_k 的值将更改KMeans 函数生成的簇数。

【讨论】:

如果我更改 true_k 值,它会产生以下错误:ValueError: n_samples=1 should be >= n_clusters=5。 假设你正在使用sklearn库;显示此错误是因为没有足够数量的数据进行训练。当您增加n_claster 值时,此n_sample 值也会增加。更多info 它目前读取了大约 15000 条推文。不确定如何按照@nipun 的建议增加样本量

以上是关于使用 K-means 对数据集中的热门主题进行聚类的主要内容,如果未能解决你的问题,请参考以下文章

理解和应用 k-means 聚类进行主题建模

使用光谱聚类对看不见的点进行聚类

基础聚类算法:K-means算法

深度学习小知识K-means聚类

K-Means 聚类

一个完整的K-means聚类算法指南!