comparison trafficintelligence/ml.py @ 1033:8ffb3ae9f3d2

work in progress
author Nicolas Saunier <nicolas.saunier@polymtl.ca>
date Wed, 20 Jun 2018 00:07:03 -0400
parents cc5cb04b04b0
children 75a6ad604cc5
comparison
equal deleted inserted replaced
1032:d0e339359d8a 1033:8ffb3ae9f3d2
208 if similarityFunc is None: 208 if similarityFunc is None:
209 print('similarityFunc is None') 209 print('similarityFunc is None')
210 return None 210 return None
211 211
212 # sort instances based on length 212 # sort instances based on length
213 indices = range(len(instances)) 213 indices = list(range(len(instances)))
214 if randomInitialization or optimizeCentroid: 214 if randomInitialization or optimizeCentroid:
215 indices = np.random.permutation(indices).tolist() 215 indices = np.random.permutation(indices).tolist()
216 else: 216 else:
217 def compare(i, j): 217 def compare(i, j):
218 if len(instances[i]) > len(instances[j]): 218 if len(instances[i]) > len(instances[j]):
219 return -1 219 return -1
220 elif len(instances[i]) == len(instances[j]): 220 elif len(instances[i]) == len(instances[j]):
221 return 0 221 return 0
222 else: 222 else:
223 return 1 223 return 1
224 indices.sort(compare) 224 indices.sort(key=lambda i: len(instances[i]))
225 # initialize clusters 225 # initialize clusters
226 clusters = [] 226 clusters = []
227 if initialPrototypeIndices is None: 227 if initialPrototypeIndices is None:
228 prototypeIndices = [indices[0]] 228 prototypeIndices = [indices[0]]
229 else: 229 else: