首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用HDBSCAN集群时获取集群中心

使用HDBSCAN集群时获取集群中心
EN

Stack Overflow用户
提问于 2017-05-11 08:49:50
回答 1查看 4K关注 0票数 1

集群和尝试HDBSCAN集群非常新,但我很难弄清楚如何获得集群中心。对于KMeans,它是与集群一起设置的。

我该如何获得集群中心呢?

这是我的密码:

代码语言:javascript
复制
#!/usr/bin/env python3

from sklearn.cluster import KMeans
from sklearn import metrics
import cv2
import numpy as np
import hdbscan
from pprint import pprint


# Read image into opencv
image = cv2.imread('4.jpg')

# Set color space
image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)

# reshape the image to be a list of pixels
pixels = image.reshape((image.shape[0] * image.shape[1], 3))

# Build the clusterer
cluster = hdbscan.RobustSingleLinkage(cut=0.125, k=7)
cluster.fit(pixels)


>>> pprint(vars(cluster))
{'_cluster_hierarchy_': <hdbscan.plots.SingleLinkageTree object at 0x110deda58>,
 '_metric_kwargs': {},
 'algorithm': 'best',
 'alpha': 1.4142135623730951,
 'core_dist_n_jobs': 4,
 'cut': 0.125,
 'gamma': 5,
 'k': 7,
 'labels_': array([  0,   0,   0, ..., 360, 220, 172]),
 'metric': 'euclidean'}

相对于此,KMeans输出提供了如下内容:

代码语言:javascript
复制
{'cluster_centers': (array([ 64.93473757,  65.65262431,  72.00103591]),
                     array([  77.55381605,   85.80626223,  102.29549902]),
                     array([ 105.66884532,  115.81917211,  131.55555556]),
                     array([ 189.20149254,  197.00497512,  205.43034826]),
                     array([ 148.0922619 ,  156.5       ,  168.33333333])),
 'cluster_centers_': array([[ 105.66884532,  115.81917211,  131.55555556],
       [  64.93473757,   65.65262431,   72.00103591],
       [ 148.0922619 ,  156.5       ,  168.33333333],
       [ 189.20149254,  197.00497512,  205.43034826],
       [  77.55381605,   85.80626223,  102.29549902]]),
 'copy_x': True,
 'inertia_': 1023155.888923295,
 'init': 'k-means++',
 'labels_': array([1, 1, 1, ..., 1, 1, 1], dtype=int32),
 'max_iter': 300,
 'n_clusters': 5,
 'n_init': 10,
 'n_iter_': 8,
 'n_jobs': 1,
 'precompute_distances': 'auto',
 'random_state': None,
 'tol': 0.0001,
 'verbose': 0}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-05-11 17:55:05

(H)DBSCAN中的簇没有中心。

集群可能是非凸的,如果计算所有点的平均值(数据是点--它们不需要),那么它就可能在集群之外。

还请注意,DBSCAN还提供噪声点,这些噪声点根本没有中心。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43910720

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档