各向异性点聚类

Posted

技术标签:

【中文标题】各向异性点聚类【英文标题】:Anistropic points clustering 【发布时间】:2018-04-17 02:50:25 【问题描述】:

K-means 方法不能处理各向异性点。根据 scikit-learn,DBSCAN 和高斯混合模型似乎可以使用它。我尝试使用这两种方法,但它们不适用于我的dataset。

DBSCAN

我使用了以下代码:

db = DBSCAN(eps=0.1,min_samples=5 ).fit(X_train,Y_train)
labels_train=db.labels_
# Number of clusters in labels, ignoring noise if present.
n_clusters_ = len(set(labels_train)) - (1 if -1 in labels_train else 0)
print('Estimated number of clusters: %d' % n_clusters_)

并且仅检测到 1 个集群(估计集群数:1),如 here 所示。

高斯混合模型

代码如下:

gmm = mixture.GaussianMixture(n_components=2, covariance_type='full')
gmm.fit(X_train,Y_train)
labels_train=gmm.predict(X_train)
print(gmm.bic(X_train))

无法区分这两个集群,如图here。

如何检测两个集群?

【问题讨论】:

【参考方案1】:

阅读文档。

fit(X, y=None, sample_weight=None)

X : 数组或稀疏 (CSR) 形状矩阵 (n_samples, n_features) [...]

...

y : 忽略

所以你的调用会忽略 y 坐标。

我们不是都喜欢 python/sklearn,因为它甚至不会警告你,而是默默地忽略y

X 应该是整个数据,而不仅仅是 x 坐标。

“训练”和“预测”的概念对聚类没有意义。不要使用它。只使用fit_predict

【讨论】:

以上是关于各向异性点聚类的主要内容,如果未能解决你的问题,请参考以下文章

ElasticSearch:地理点聚类

阅读《基于转弯点聚类的航空飞行轨迹分析》笔记

点聚weboffice插件自定义菜单

点聚weboffice插件自定义菜单

点聚weboffice插件自定义菜单

点聚weboffice隐藏自带工具栏