Python中的简单二维聚类算法

Posted

技术标签:

【中文标题】Python中的简单二维聚类算法【英文标题】:Simple 2-D Clustering Algorithm in Python 【发布时间】:2019-04-28 16:05:49 【问题描述】:

作为无监督方法的新手,我需要使用一些半简单的代码来推动正确的方向,以通过一些数据作为案例研究。我正在处理的数据只有 300 个左右的观察值,但我想了解如何将聚类应用到行为相似的非常大的集合中。

我有 2 个特征数据集,我想使用欧几里德距离运行 DBSCAN 或类似的东西(如果这是正确的聚类方法)。

例如,数据如下所示:

我只能通过肉眼判断,这种聚类方式可能不是最好的方法,因为分布看起来不规则。

我应该使用什么方法来开始理解类似的分布 - 特别是当集合非常大(数千个观察值)时。

【问题讨论】:

【参考方案1】:

对于大多数机器学习任务,scikit-learn 是您的朋友。对于 DBSCAN,scikit-learn 有sklearn.cluster.DBSCAN。来自 scikit-learn 文档:

>>> from sklearn.cluster import DBSCAN
>>> import numpy as np
>>> X = np.array([[1, 2], [2, 2], [2, 3],
...               [8, 7], [8, 8], [25, 80]])
>>> clustering = DBSCAN(eps=3, min_samples=2).fit(X)
>>> clustering.labels_
array([ 0,  0,  0,  1,  1, -1])
>>> clustering 
DBSCAN(algorithm='auto', eps=3, leaf_size=30, metric='euclidean',
    metric_params=None, min_samples=2, n_jobs=None, p=None)

您还可以通过 scikit-learn 使用其他聚类算法。大家可以看到here。

【讨论】:

以上是关于Python中的简单二维聚类算法的主要内容,如果未能解决你的问题,请参考以下文章

建议收藏!10 种 Python 聚类算法完整操作示例

聚类算法中的四种距离及其python实现

看完这篇文章,包你懂得如何用Python实现聚类算法的层次算法!

Python无监督学习的4大聚类算法

python K-Means聚类算法的实现

使用 k-Means 聚类算法预测值