I'm running into a performance bottleneck when using a custom distance metric function for a clustering algorithm from sklearn
.
The result as shown by Run Snake Run is this:
Clearly the problem is the dbscan_metric
function. The function looks very simple and I don't quite know what the best approach to speeding it up would be:
def dbscan_metric(a,b):
if a.shape[0] != NUM_FEATURES:
return np.linalg.norm(a-b)
else:
return np.linalg.norm(np.multiply(FTR_WEIGHTS, (a-b)))
Any thoughts as to what is causing it to be this slow would be much appreciated.