source: orange/docs/reference/rst/code/hierarchical-example.py @ 9906:77274e331dbb

Revision 9906:77274e331dbb, 1.5 KB checked in by lanumek, 2 years ago (diff)

Test scrip for hierarchical clustering.

Line 
1import Orange
2m = [[],
3     [ 3],
4     [ 2, 4],
5     [17, 5, 4],
6     [ 2, 8, 3, 8],
7     [ 7, 5, 10, 11, 2],
8     [ 8, 4, 1, 5, 11, 13],
9     [ 4, 7, 12, 8, 10, 1, 5],
10     [13, 9, 14, 15, 7, 8, 4, 6],
11     [12, 10, 11, 15, 2, 5, 7, 3, 1]]
12matrix = Orange.misc.SymMatrix(m)
13root = Orange.clustering.hierarchical.HierarchicalClustering(matrix,
14        linkage=Orange.clustering.hierarchical.HierarchicalClustering.Average)
15
16def printClustering(cluster):
17    if cluster.branches:
18        return "(%s%s)" % (printClustering(cluster.left), printClustering(cluster.right))
19    else:
20        return str(cluster[0])
21
22def printClustering2(cluster):
23    if cluster.branches:
24        return "(%s%s)" % (printClustering2(cluster.left), printClustering2(cluster.right))
25    else:
26        return str(tuple(cluster))
27
28matrix.objects = ["Ann", "Bob", "Curt", "Danny", "Eve",
29                  "Fred", "Greg", "Hue", "Ivy", "Jon"]
30
31root.mapping.objects = ["Ann", "Bob", "Curt", "Danny", "Eve", "Fred", "Greg", "Hue", "Ivy", "Jon"]
32   
33def prune(cluster, togo):
34    if cluster.branches:
35        if togo<0:
36            cluster.branches = None
37        else:
38            for branch in cluster.branches:
39                prune(branch, togo-cluster.height)
40
41def listOfClusters0(cluster, alist):
42    if not cluster.branches:
43        alist.append(list(cluster))
44    else:
45        for branch in cluster.branches:
46            listOfClusters0(branch, alist)
47           
48def listOfClusters(root):
49    l = []
50    listOfClusters0(root, l)
51    return l       
Note: See TracBrowser for help on using the repository browser.