単に数字が書かれている場合と、(数字)となっている場合は何が違うのでしょうか?
単に数字が書かれている場合は、ラベルを意味します。括弧付きの場合は、Dendrogram が省略されており、その下に何個のノードが存在しているかを示しています。 p
の値を充分に大きくすれば、省略はされず括弧付きの表示はなくなるはずです。
ラベルについては、指定しない場合は単に添字としてインデックスが表示されている状態です。(データにもよりますが)このままでは判別が付かないのでラベルを与えると数字以外で表記されます。
ラベルを指定しない場合
python
1from matplotlib import pyplot as plt
2from scipy.cluster.hierarchy import dendrogram, linkage
3import numpy as np
4
5%matplotlib inline
6
7answer = ([0, 0, 0, 0], [1, 1, 1, 1], [0, 0, 0, 1], [0, 0, 0, 0], [1, 0, 1, 0], [0, 1, 0, 0])
8
9result = linkage(answer, method='ward')
10dendrogram(result, truncate_mode='lastp')
11plt.show()
ラベルを指定した場合
python
1name = ('Lloyd', 'Collet', 'Refill', 'Kratos', 'Genius', 'Zelos')
2answer = ([0, 0, 0, 0], [1, 1, 1, 1], [0, 0, 0, 1], [0, 0, 0, 0], [1, 0, 1, 0], [0, 1, 0, 0])
3
4result = linkage(answer, method='ward')
5dendrogram(result, truncate_mode='lastp', labels=name)
6plt.show()
p を小さくした場合
ラベルを指定してかつ p 値を (あえて) 小さくした場合以下のようになります。
python
1name = ('Lloyd', 'Collet', 'Refill', 'Kratos', 'Genius', 'Zelos')
2answer = ([0, 0, 0, 0], [1, 1, 1, 1], [0, 0, 0, 1], [0, 0, 0, 0], [1, 0, 1, 0], [0, 1, 0, 0])
3
4result = linkage(answer, method='ward')
5dendrogram(result,p=3, truncate_mode='lastp', labels=name)
6plt.show()
小さなラベルの確認方法
画像を大きくして判別する方法
以下のように図のサイズを変更できます。(あまり大きくすると固まるので注意)
python
1plt.figure(figsize=(10, 10))
生データを見る方法
Dendrogram を生成するための情報を直接みてもよいでしょう。
python
1r = dendrogram(result, truncate_mode='lastp', labels=name)
2r["leaves"]
3# => [5, 2, 0, 3, 1, 4]
4
5r["ivl"]
6# => ['Zelos', 'Refill', 'Lloyd', 'Kratos', 'Collet', 'Genius']
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/10/15 00:04
2016/10/15 01:43
2016/10/15 07:44