From 0feaf36cf62f8963b05014d50be477778e7e818f Mon Sep 17 00:00:00 2001 From: Andy Eschbacher Date: Thu, 13 Oct 2016 15:52:00 +0000 Subject: [PATCH] outputting consistent labels and centers --- src/py/crankshaft/crankshaft/clustering/kmeans.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/py/crankshaft/crankshaft/clustering/kmeans.py b/src/py/crankshaft/crankshaft/clustering/kmeans.py index 18a711f..86e8931 100644 --- a/src/py/crankshaft/crankshaft/clustering/kmeans.py +++ b/src/py/crankshaft/crankshaft/clustering/kmeans.py @@ -53,14 +53,13 @@ def kmeans_nonspatial(query, colnames, num_clusters=5, try: db_resp = plpy.execute(full_query) - plpy.notice('query: %s' % full_query) except plpy.SPIError, err: plpy.error('k-means cluster analysis failed: %s' % err) # fill array with values for kmeans clustering if standarize: cluster_columns = scale_data( - extract_columns(db_resp, id_col='cartodb_id')) + extract_columns(db_resp, id_col=out_id_colname)) else: cluster_columns = extract_columns(db_resp) @@ -69,7 +68,8 @@ def kmeans_nonspatial(query, colnames, num_clusters=5, kmeans = KMeans(n_clusters=num_clusters, random_state=0).fit(cluster_columns) - return zip(kmeans.labels_, map(str, kmeans.cluster_centers_), + return zip(kmeans.labels_, + map(str, kmeans.cluster_centers_[kmeans.labels_]), db_resp[0][out_id_colname])