绘制多维K-均值聚类NLP-python
我有一个为NLP分类器设计的多维向量 以下是数据帧(text_df): 我使用TFIDFvectorier创建向量:绘制多维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,
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-分量),然后将上面看到的结果绘制成图表。我查看了主题建模,它超出了我在本例中尝试实现的范围。我希望能将作者的句子进行分组,看看作者是否在每一组中进行了一致的分组。也许这会有所帮助?