【发布时间】:2018-08-28 23:29:21
【问题描述】:
我有一个为 NLP 分类器设计的多维向量。
这是数据框(text_df):
我使用了 TfidfVectorizer 创建向量:
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 的形状是 (13834, 2701)。
我为 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 的集群是否正常?我希望有更多独特的集群。有没有办法清理这个集群图? (即更清晰的分组、不同的边界、更靠近的聚类点等)。
【问题讨论】:
-
也许这会有所帮助? lvdmaaten.github.io/tsne
标签: python nlp k-means scatter-plot dimensionality-reduction