refactoring
This commit is contained in:
@@ -19,24 +19,25 @@ class ClustersFactory:
|
|||||||
clusters = [[i] for i in range(numClusters)]
|
clusters = [[i] for i in range(numClusters)]
|
||||||
while keepClustering:
|
while keepClustering:
|
||||||
maxDistance = 0
|
maxDistance = 0
|
||||||
bestCombo = None
|
bestClusterIndexCombo = None
|
||||||
keepClustering = False
|
keepClustering = False
|
||||||
numClusters = preferenceMatrix.shape[0]
|
numClusters = preferenceMatrix.shape[0]
|
||||||
for i in range(numClusters):
|
for clusterIndexA in range(numClusters):
|
||||||
set_a = preferenceMatrix[i]
|
preferenceSetA = preferenceMatrix[clusterIndexA]
|
||||||
for j in range(i):
|
for clusterIndexB in range(clusterIndexA):
|
||||||
set_b = preferenceMatrix[j]
|
preferenceSetB = preferenceMatrix[clusterIndexB]
|
||||||
distance = ClustersFactory._intersectionOverUnion(set_a, set_b);
|
distance = ClustersFactory._intersectionOverUnion(preferenceSetA, preferenceSetB);
|
||||||
if distance > maxDistance:
|
if distance > maxDistance:
|
||||||
keepClustering = True
|
keepClustering = True
|
||||||
maxDistance = distance
|
maxDistance = distance
|
||||||
bestCombo = (i, j)
|
bestClusterIndexCombo = (clusterIndexA, clusterIndexB)
|
||||||
|
|
||||||
if keepClustering:
|
if keepClustering:
|
||||||
clusters[bestCombo[0]] += clusters[bestCombo[1]]
|
(clusterIndexA, clusterIndexB) = bestClusterIndexCombo
|
||||||
clusters.pop(bestCombo[1])
|
clusters[clusterIndexA] += clusters[clusterIndexB]
|
||||||
preferenceMatrix[bestCombo[0]] = np.logical_and(preferenceMatrix[bestCombo[0]], preferenceMatrix[bestCombo[1]])
|
clusters.pop(clusterIndexB)
|
||||||
preferenceMatrix = np.delete(preferenceMatrix, bestCombo[1], axis = 0)
|
preferenceMatrix[clusterIndexA] = np.logical_and(preferenceMatrix[clusterIndexA], preferenceMatrix[clusterIndexB])
|
||||||
|
preferenceMatrix = np.delete(preferenceMatrix, clusterIndexB, axis = 0)
|
||||||
|
|
||||||
return clusters
|
return clusters
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user