У меня есть многомерный вектор, разработанный для классификатора НЛП.
Вот кадр данных (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
Форма Х (13834, 2701).
Я использовал 7 кластеров для KMeans:
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()
Это нормально для кластеров на основе НЛП? Я надеялся на более характерные кластеры. Есть ли способ очистить этот кластерный граф? (то есть более четкие группировки, четкие границы, точки скопления ближе друг к другу и т. д.).