# S.Chekanov (C) jHepWork
# cluster analysis
#
from java.awt import Color
from java.util import *
from jhplot import *
from jminhep.cluster import *
# create a data holder
data = DataHolder("Example")
# fill 3D data with Gaussian random numbers
rand = Random()
for i in range(100):
a =[]
a.append( 10*rand.nextGaussian() )
a.append( 2*rand.nextGaussian()+1 )
a.append( 10*rand.nextGaussian()+3 )
data.add( DataPoint(a) )
del a
# show the data
# HTable(data)
data.print()
# initialte partitioner
pat = Partition(data);
# set mode
pat.set(3, 0.001, 1.7, 1000);
# probability for membership (only for Fuzzy algorithm)
pat.setProbab(0.68)
# define types of cluster analysis
mode =[];
mode.append(111)
mode.append(112)
mode.append(113)
mode.append(114)
mode.append(121)
mode.append(122)
mode.append(131)
mode.append(132)
for i in range(len(mode)):
pat.run(mode[i])
print "algorithm: " + pat.getName()
print "Compactness: " + str(pat.getCompactness())
print "No of final clusters: " + str(pat.getNclusters())
Centers = pat.getCenters()
# Centers.Print()
# jHepWork @S.Chekanov