階層的凝集クラスタリングを使用してドキュメントをクラスタ化するプログラムを作成しようとしていますが、プログラムの出力は、最大の純度を得るレベルで樹形図をカットすることに依存しています。
以下は、私が現在取り組んでいるアルゴリズムです。
Create dedrogram for the documents in the dataset
purity = 0
final_clusters
for all the levels, lvl, in the dendrogram
clusters = cut dendrogram at lvl
new_purity = calculate_purity_of(clusters)
if new_purity > purity
purity = new_purity
final_clusters = clusters
このアルゴリズムに従って、計算された純度がすべてのレベルで最高になるクラスターを取得します。
問題は、デンドログラムを最低レベルで切り取ると、すべてのクラスターにドキュメントが 1 つしか含まれないことです。つまり、100% 純粋であるため、クラスターの平均純度は 1.0 です。しかし、これは望ましい出力ではありません。私が欲しいのは、ドキュメントを適切にグループ化することです。私は何か間違ったことをしていますか?