1

次のイタリアの 6 つの都市間の距離のマトリックスを使用します。

0   662 877 255 412 996
662 0   295 468 268 400
877 295 0   754 564 138
255 468 754 0   219 869
412 268 564 219 0   669
996 400 138 869 669 0

R はそれらをクラスター化した順序で出力しますか?

City 3 and City 6, followed by
City 4 and City 5, followed by
City 1 to City 4 and City 5, finally City 2 to City 3 and City 6.

デンドログラムから読み取るのではなく、数値出力を取得することが重要です。

4

1 に答える 1

4

あなたの問題の完全な解決策はわかりませんが、mergeによって返される値を使用できるかもしれませんhclust

から?hclust:

マージ: n-1 x 2 の行列。「マージ」の行 i は、クラスタリングのステップ i でのクラスタのマージを示しています。行の要素 j が負の場合、観測 -j はこの段階でマージされました。j が正の場合、マージはアルゴリズムの (前の) ステージ j で形成されたクラスターで行われました。したがって、'merge' の負のエントリはシングルトンの凝集を示し、正のエントリは非シングルトンの凝集を示します。

あなたの例:

d <- as.dist(read.table(textConnection("
0   662 877 255 412 996
662 0   295 468 268 400
877 295 0   754 564 138
255 468 754 0   219 869
412 268 564 219 0   669
996 400 138 869 669 0")))

hc <- hclust(d, method="single")

plot(hc)

hcplot

hc$merge

#     [,1] [,2]  # from bottom up
#[1,]   -3   -6  # City 3 and 6
#[2,]   -4   -5  # City 4 and 5
#[3,]   -1    2  # join City 1 and City 4/5
#[4,]   -2    3  # join City 2 and City 1/4/5
#[5,]    1    4  # join City 3/6 and City 1/2/4/5
于 2013-08-13T17:24:57.200 に答える