在 Python 中绘制文本数据的 KMeans 聚类

问题描述

我有代码可以清理一些文本数据,使用 TfidfVectorizer 对其进行矢量化,并通过 KMeans 模型运行。一切正常,除了实际绘制集群。

我不完全理解 TfidVectorizer 的输出

例如:

vectorizer = TfidfVectorizer()

X = vectorizer.fit_transform(df['column 1'].values.astype('U'))

print(X)

(0,36021)  0.17081171474660714

(0,36020)  0.17081171474660714

(0,36011)  0.13668653157547714

有人可以帮助我了解如何实际绘制集群吗?我有点不知道该去哪里。或者是否有更好的向量化器可用于 KMeans?

另外,当我查看聚类中心时,我看到了奇怪的输出,它最终有几千列,如下所示......它是一个相对较小的数据集,大约有 3000 条文本记录

print(kmeans.cluster_centers_)

[[8.71020045e-05 8.71020045e-05 8.71020045e-05 ... 1.34902052e-05
  1.34902052e-05 1.34902052e-05]

以下是推荐的聚类示例代码:

df = pd.read_csv('----------------.csv')

vectorizer = TfidfVectorizer()

X = vectorizer.fit_transform(df['column 1'].values.astype('U'))

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

model.fit(X)

print('Top Terms Per Cluster:')
order_centroids = model.cluster_centers_.argsort()[:,::-1]
terms = vectorizer.get_feature_names()
for i in range(true_k):
    print('cluster %d' % i),for ind in order_centroids[i,:10]:
        print(' %s' % terms[ind]),print

print(model.cluster_centers_)
print(X)

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)