Python でジャカード類似度行列を計算しました。最高の類似性を最低のものにクラスタリングしたいのですが、どのリンケージ関数を使用しても、同じデンドログラムが生成されます! この関数は、行列が元のデータのものであると想定しているように感じますが、最初の類似行列は既に計算済みです。この類似性マトリックスをデンドログラムに渡して正しくプロットする方法はありますか? それとも、行列を出力して、単に R で実行する必要がありますか。単語の類似性を計算しているため、元の生データを渡すことはできません。助けてくれてありがとう!
ここにいくつかのコードがあります:
SimMatrix = [[ 0.,0.09259259, 0.125 , 0. , 0.08571429],
[ 0.09259259, 0. , 0.05555556, 0. , 0.05128205],
[ 0.125 , 0.05555556, 0. , 0.03571429, 0.05882353],
[ 0. , 0. , 0.03571429, 0. , 0. ],
[ 0.08571429, 0.05128205, 0.05882353, 0. , 0. ]]
linkage = hcluster.complete(SimMatrix) #doesnt matter what linkage...
dendro = hcluster.dendrogram(linkage) #same plot for all types?
show()
このコードを実行すると、完全に逆向きのデンドログラムが表示されます。どのリンケージ タイプを使用しても、同じデンドログラムが生成されます。これは直感的に正しくありません。