1
我對處理文本數據相當陌生。如何計算kmeans在tfidf矩陣中解釋的方差?
我有一個約300,000個獨特產品名稱的數據框,我試圖用k方法將相似的名稱聚類在一起。我使用sklearn的tfidfvectorizer矢量化名稱並將其轉換爲tf-idf矩陣。
接着我跑與羣集嘗試計算方差時爲5至10。
我在卡在錯誤的數目的TF-IDF矩陣K用於D_k
ValueError: setting an array element with a sequence.
欲解釋繪製解釋的方差v。聚類數量圖,以便我可以區分肘部的位置。
from sklearn.feature_extraction.text import TfidfVectorizer
#define vectorizer parameters
tfidf_vectorizer = TfidfVectorizer(use_idf=True,
stop_words = 'english',
ngram_range=(2,4))
%time tfidf_matrix = tfidf_vectorizer.fit_transform(unique_names)
# clustering with kmeans
from sklearn.cluster import KMeans
num_clusters = range(5,10)
%time KM = [KMeans(n_clusters=k).fit(tfidf_matrix) for k in num_clusters]
from scipy.spatial.distance import cdist, pdist
centroids = [k.cluster_centers_ for k in KM]
D_k = [cdist(tfidf_matrix, cent) for cent in centroids]