フィットするために使用する文字列のリストがありますsklearn.cluster.KMeans
:
X = TfidfVectorizer().fit_transform(docs)
km = KMeans().fit(X)
ここで、クラスターの中心を元の文字列表現で取得したいと思います。私は知ってkm.cluster_centers_
いますが、の関連するインデックスを取得する方法を理解できませんでしたdocs
。
フィットするために使用する文字列のリストがありますsklearn.cluster.KMeans
:
X = TfidfVectorizer().fit_transform(docs)
km = KMeans().fit(X)
ここで、クラスターの中心を元の文字列表現で取得したいと思います。私は知ってkm.cluster_centers_
いますが、の関連するインデックスを取得する方法を理解できませんでしたdocs
。
k -meansにはクラスター中心の「元の表現」はありません。それらは実際には入力セットからのポイント(ベクトル化されたドキュメント)ではなく、複数のポイントの手段です。単語の袋の表現は用語の順序を破壊するため、このような手段をドキュメントに戻すことはできません。
考えられる近似の1つは、重心ベクトルを取得し、それを使用TfidfVectorizer.inverse_transform
して、ゼロ以外のtf-idf値を含む項を見つけることです。
実際の入力ポイントを重心として割り当てるk -medoidsアルゴリズムを使用すると、目的を達成できますが、scikit-learnには実装されていません。