def cluster_dbscan(self, image_cols):
print 'DBSCAN'
# TODO handle outliers/noise
# Look at different metrics?
db = DBSCAN(eps=self.params.epsilon, min_samples=10, metric='euclidean')
db.fit(image_cols)
# from IPython import embed; embed(); import ipdb; ipdb.set_trace()
self.number_of_clusters = np.max(db.labels_) + 1
# Ignore -1 cluster, it's noise
print 'number of clusters', self.number_of_clusters
# Clusters
centers = np.zeros((self.number_of_clusters, 3))
for i in range(0, self.number_of_clusters):
cluster_points = image_cols[db.labels_ == i]
cluster_mean = np.mean(cluster_points, axis=0)
centers[i, :] = cluster_mean
return centers
评论列表
文章目录