0

我只是按照这里的文档实现了层次聚类:http: //www.mathworks.com/help/stats/hierarchical-clustering.html?s_tid=doc_12b

所以,让我试着放下我想做的事。看看下图:

树状图

现在,这个树状图是从以下数据生成的:

                         node1        node2         dist(node1,node2)   num_elems
assigning index  **37  to  [ 16.          26**.           1.14749118   2.        ]
assigning index  38  to  [ 4.          7.          1.20402602  2.        ]
assigning index  39  to  [ 13.          29.           1.44708015   2.        ]
assigning index  40  to  [ 12.          18.           1.45827365   2.        ]
assigning index  41  to  [ 10.          34.           1.49607538   2.        ]
assigning index  42  to  [ 17.          38.           1.52565922   3.        ]
assigning index  43  to  [  8.          25.           1.58919037   2.        ]
assigning index  44  to  [  3.          40.           1.60231007   3.        ]
assigning index  45  to  [  6.          42.           1.65755731   4.        ]
assigning index  46  to  [ 15.          23.           1.77770844   2.        ]
assigning index  47  to  [ 24.          33.           1.77771082   2.        ]
assigning index  48  to  [ 20.          35.           1.81301111   2.        ]
assigning index  49  to  [ 19.         48.          1.9191061   3.       ]
assigning index  50  to  [  0.          44.           1.94238609   4.        ]
assigning index  51  to  [  2.         36.          2.0444266   2.       ]
assigning index  52  to  [ 39.          45.           2.11667375   6.        ]
assigning index  53  to  [ 32.          43.           2.17132916   3.        ]
assigning index  54  to  [ 21.         41.          2.2882061   3.       ]
assigning index  55  to  [  9.          30.           2.34492327   2.        ]
assigning index  56  to  [  5.          51.           2.38383321   3.        ]
assigning index  57  to  [ 46.          52.           2.42100025   8.        ]
assigning index  58  to  [ **28.          37**.           2.48365024   3.        ]
assigning index  59  to  [ 50.          53.           2.57305009   7.        ]
assigning index  60  to  [ 49.          57.           2.69459675  11.        ]
assigning index  61  to  [ 11.          54.           2.75669475   4.        ]
assigning index  62  to  [ 22.          27.           2.77163751   2.        ]
assigning index  63  to  [ 47.          55.           2.79303418   4.        ]
assigning index  64  to  [ 14.          60.           2.88015327  12.        ]
assigning index  65  to  [ 56.          59.           2.95413905  10.        ]
assigning index  66  to  [ 61.          65.           3.12615829  14.        ]
assigning index  67  to  [ 64.          66.           3.28846304  26.        ]
assigning index  68  to  [ 31.         58.          3.3282066   4.       ]
assigning index  69  to  [ 63.          67.           3.47397104  30.        ]
assigning index  70  to  [ 62.          68.           3.63807605   6.        ]
assigning index  71  to  [  1.          69.           4.09465969  31.        ]
assigning index  72  to  [ 70.          71.           4.74129435  37.     

所以基本上,我的数据中有 37 个点,索引从 0-36 相同。现在,当我看到这个列表中的第一个元素时......我分配 i + len(thiscompletelist) + 1 例如,当 id 是37 在以后的迭代中再次出现,那么这基本上意味着它也链接到一个分支。我使用 matlab 生成此图像。但我想查询这些信息,query_node(node_id)以便它按级别返回一个列表..这样......query_node(37)我得到了

{ "left": {"level":1 {"id": 28}} , "right":{"level":0 {"left" :"id":16},"right":{"id":26}}}

实际上..我什至不知道什么是正确的数据结构来执行此操作..基本上我想按节点查询并了解当我站在该节点上并查看下方时该树状图的结构是什么样的。:(

编辑1:

*哦,我不知道您将无法缩放图像..基本上左边的第四个元素是28,绿色条目是数据的第一行..

所以树状图上的第四条垂直线代表 28

旁边那条线(第一条绿线)代表 16

在那条线旁边(第二条绿线)代表 26*

4

1 回答 1

2

嗯,建立在已经存在的东西上总是好的,所以看看scipy 中的 dendrogram 。

于 2013-01-29T21:29:48.940 回答