source: orange/docs/reference/rst/code/hierarchical-example-2.py @ 10008:d14bb6404f67

Revision 10008:d14bb6404f67, 1.4 KB checked in by Miha Stajdohar <miha.stajdohar@…>, 2 years ago (diff)

Missing some methods from another example.

Line 
1import Orange
2
3iris = Orange.data.Table("iris")
4matrix = Orange.misc.SymMatrix(len(iris))
5matrix.setattr("objects", iris)
6distance = Orange.distance.Euclidean(iris)
7for i1, instance1 in enumerate(iris):
8    for i2 in range(i1 + 1, len(iris)):
9        matrix[i1, i2] = distance(instance1, iris[i2])
10
11clustering = Orange.clustering.hierarchical.HierarchicalClustering()
12clustering.linkage = clustering.Average
13clustering.overwrite_matrix = 1
14root = clustering(matrix)
15
16def prune(cluster, togo):
17    if cluster.branches:
18        if togo < 0:
19            cluster.branches = None
20        else:
21            for branch in cluster.branches:
22                prune(branch, togo - cluster.height)
23
24def listOfClusters0(cluster, alist):
25    if not cluster.branches:
26        alist.append(list(cluster))
27    else:
28        for branch in cluster.branches:
29            listOfClusters0(branch, alist)
30
31def listOfClusters(root):
32    l = []
33    listOfClusters0(root, l)
34    return l
35tables = [Orange.data.Table(cluster) for cluster in listOfClusters(root)]
36
37prune(root, 1.4)
38for n, cluster in enumerate(listOfClusters(root)):
39    print "\n\n Cluster %i \n" % n
40    for instance in cluster:
41        print instance
42
43for cluster in listOfClusters(root):
44    dist = Orange.statistics.distribution.Distribution(iris.domain.class_var, cluster)
45    for e, d in enumerate(dist):
46        print "%s: %3.0f " % (iris.domain.class_var.values[e], d),
47    print
Note: See TracBrowser for help on using the repository browser.