简单二维聚类算法在Python中的应用

作为无监督方法的新手,我需要一些半简单的代码来作为案例研究,帮助我正确地处理数据。我目前处理的数据只有大约300个观察值,但我希望学习如何将聚类应用于行为相似的非常大的数据集。

我有一组包含两个特征的数据,我希望使用欧几里得距离运行DBSCAN或类似的方法(如果这是正确的聚类方法的话)。

例如,数据看起来像这样:

enter image description here

通过观察我可以看出,这种聚类方式可能不是最佳方法,因为数据分布看起来不规则。

对于类似这样的分布,尤其是当数据集非常大(数十万个观察值)时,我应该使用什么方法开始理解这些分布?


回答:

对于大多数机器学习任务,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

Related Posts

在使用k近邻算法时,有没有办法获取被使用的“邻居”?

我想找到一种方法来确定在我的knn算法中实际使用了哪些…

Theano在Google Colab上无法启用GPU支持

我在尝试使用Theano库训练一个模型。由于我的电脑内…

准确性评分似乎有误

这里是代码: from sklearn.metrics…

Keras Functional API: “错误检查输入时:期望input_1具有4个维度,但得到形状为(X, Y)的数组”

我在尝试使用Keras的fit_generator来训…

如何使用sklearn.datasets.make_classification在指定范围内生成合成数据?

我想为分类问题创建合成数据。我使用了sklearn.d…

如何处理预测时不在训练集中的标签

已关闭。 此问题与编程或软件开发无关。目前不接受回答。…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注