使用 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 对数据集中的热门主题进行聚类的主要内容,如果未能解决你的问题,请参考以下文章