scipy 階層クラスタリングの結果を json に変換して d3.js に表示しようとしています ここに例があります
次のコードは、6 つの分岐を持つデンドログラムを生成します。
import pandas as pd
import scipy.spatial
import scipy.cluster
d = {'employee' : ['A', 'B', 'C', 'D', 'E', 'F'],
'skillX': [2,8,3,6,8,10],
'skillY': [8,15,6,9,7,10]}
d1 = pd.DataFrame(d)
distMat = xPairWiseDist = scipy.spatial.distance.pdist(np.array(d1[['skillX', 'skillY']]), 'euclidean')
clusters = scipy.cluster.hierarchy.linkage(distMat, method='single')
dendo = scipy.cluster.hierarchy.dendrogram(clusters, labels = list(d1.employee), orientation = 'right')
dendo
私の質問 d3.jsが理解できる形式でjsonファイルのデータを表現するにはどうすればよいですか
{'name': 'Root1’,
'children':[{'name' : 'B'},
{'name': 'E-D-F-C-A',
'children' : [{'name': 'C-A',
'children' : {'name': 'A'},
{'name' : 'C'}]
}
}
]
}
恥ずかしい真実は、この情報を樹状図から抽出できるのか、連鎖行列から抽出できるのか、またどのように抽出できるのかわからないということです。
私が得ることができるどんな助けにも感謝します。
明確にするために編集
これまでのところ、 totreeメソッドを使用しようとしましたが、その構造を理解するのが困難です (はい、ドキュメントを読みました)。
a = scipy.cluster.hierarchy.to_tree(clusters , rd=True)
for x in a[1]:
#print x.get_id()
if x.is_leaf() != True :
print x.get_left().get_id(), x.get_right().get_id(), x.get_count()