|
|
|
@ -131,16 +131,14 @@ def dbscan(simmat, nmin, eps, sw_clusterall):
|
|
|
|
|
if sw_clusterall:
|
|
|
|
|
for i in range(nev):
|
|
|
|
|
if eventsclusters[i] == -1:
|
|
|
|
|
ds_to_clusters = num.zeros(n_clusters-1)
|
|
|
|
|
cluster_sizes = num.zeros(n_clusters-1)
|
|
|
|
|
ds_to_clusters = num.ones(n_clusters)
|
|
|
|
|
for j in range(nev):
|
|
|
|
|
d = simmat[i, j]
|
|
|
|
|
ds_to_clusters[eventsclusters[j]] += d
|
|
|
|
|
cluster_sizes[eventsclusters[j]] += 1.
|
|
|
|
|
for k in range(n_clusters-1):
|
|
|
|
|
ds_to_clusters[k] = ds_to_clusters[k]/cluster_sizes[k]
|
|
|
|
|
if eventsclusters[j] != -1:
|
|
|
|
|
if d < ds_to_clusters[eventsclusters[j]]:
|
|
|
|
|
ds_to_clusters[eventsclusters[j]] = d
|
|
|
|
|
k, = num.where(ds_to_clusters == min(ds_to_clusters))
|
|
|
|
|
eventsclusters[i] == k[0]
|
|
|
|
|
eventsclusters[i] = k[0]
|
|
|
|
|
|
|
|
|
|
# resorting data clusters (noise remains as -1)
|
|
|
|
|
clustersizes = []
|
|
|
|
|