Professional Documents
Culture Documents
def dissimilarity(clusters):
totDist = 0.0
for c in clusters:
totDist += c.variance()
return totDist
def trykmeans(examples, exampleType, numClusters, numTrials,
verbose = False):
"""Calls kmeans numTrials times and returns the result with the
lowest dissimilarity"""
best = kmeans(examples, exampleType, numClusters, verbose)
minDissimilarity = dissimilarity(best)
for trial in range(1, numTrials):
clusters = kmeans(examples, exampleType, numClusters, verbose)
currDissimilarity = dissimilarity(clusters)
if currDissimilarity < minDissimilarity:
best = clusters
minDissimilarity = currDissimilarity
return best