Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
绘制多维K-均值聚类NLP-python_Python_Nlp_K Means_Scatter Plot_Dimensionality Reduction - Fatal编程技术网

绘制多维K-均值聚类NLP-python

绘制多维K-均值聚类NLP-python,python,nlp,k-means,scatter-plot,dimensionality-reduction,Python,Nlp,K Means,Scatter Plot,Dimensionality Reduction,我有一个为NLP分类器设计的多维向量 以下是数据帧(text_df): 我使用TFIDFvectorier创建向量: from sklearn.feature_extraction.text import TfidfVectorizer tfidf_v = TfidfVectorizer(max_df=0.5, max_features=13000, min_df=5,

我有一个为NLP分类器设计的多维向量

以下是数据帧(text_df):

我使用TFIDFvectorier创建向量:

from sklearn.feature_extraction.text import TfidfVectorizer

tfidf_v = TfidfVectorizer(max_df=0.5,
                          max_features=13000,
                          min_df=5,
                          stop_words='english',
                          use_idf=True,
                          norm=u'l2',
                          smooth_idf=True
                          )

X = tfidf_v.fit_transform(corpus).toarray()
y = text_df.iloc[:,1].values
X的形状是(138342701)

我对KMeans使用了7个集群:

from sklearn.cluster import KMeans
kmeans = KMeans(n_clusters=7,random_state=42)
我尝试使用PCA,但我不确定图表是否正确

from sklearn.decomposition import PCA

X_pca = PCA(2).fit_transform(X)

plt.scatter(X_pca[:,0],X_pca[:,1],c=y_kmeans)
plt.title("Clusters")
plt.legend()
plt.show()


这对于基于NLP的集群正常吗?我希望有更多与众不同的集群。有没有办法清理这个集群图?(即更清晰的分组、清晰的边界、更紧密的聚类点等)

K-Means聚类在高维数据上效果不佳(请参见),通常在降维(PCA,在您的示例中)

另一方面,如果您的目标是根据文档的主题对文档进行集群,那么这是值得探索的。然后,可以使用主题建模算法确定的主题分布进行聚类。

我使用PCA(2-分量),然后将上面看到的结果绘制成图表。我查看了主题建模,它超出了我在本例中尝试实现的范围。我希望能将作者的句子进行分组,看看作者是否在每一组中进行了一致的分组。也许这会有所帮助?