早上好, 我已经使用tf idf矩阵进行了k均值聚类,以便在歌曲文本中找到重复出现的主题。 最后,我得到了4个集群。我使用以下代码进行绘图:
from sklearn.manifold import TSNE
from sklearn.decomposition import TruncatedSVD
k = 4
tfs_reduced = TruncatedSVD(n_components=k, random_state=7).fit_transform(tfidf_matrix)
tfs_embedded = TSNE(n_components=2).fit_transform(tfs_reduced)
fig = plt.figure(figsize = (10, 10))
ax = plt.axes()
plt.scatter(tfs_embedded[:, 0], tfs_embedded[:, 1], c=labels)
plt.show()
该绘图似乎是正确的,但我无法添加说明图例,其中将所用的每种颜色分配给特定的群集。 我该怎么办?
答案 0 :(得分:0)
我相信您的代码有两个问题。
tfs_embedded
变量所需的所有代码,因此我不知道您的情况将涉及到什么。但是,大概可以将数据细分为对散布函数的多次调用。下面的示例代码将向您展示其工作方式。输出图为here。
import matplotlib.pyplot as plt
x = [1,2,4,3,7,5]
y = [2.2,1.0,0.8,8.6,3.6,7.8]
C1 = 'red'
C2 = 'blue'
L1 = "Cluster 1"
L2 = "Cluster 2"
fig = plt.figure(figsize = (10, 10))
ax = plt.axes()
ax.scatter(x[0:3], y[0:3], label=L1, c=C1, edgecolors='none')
ax.scatter(x[3:6], y[3:6], label=L2, c=C2, edgecolors='none')
ax.legend()
plt.show()