sklearn.cluster.DBSCAN聚类后的结果集怎么样获取

sklearn.cluster.DBSCAN聚类后的结果集怎么样获取,第1张

使用DBSCAN下的fit_predict(X, y=None, sample_weight=None)函数,可以返回每个数据的标签。然后遍历整个数据集,将相同标签的数据归为一个集合即可。

Kmeans聚类两个缺陷:

1对异常值敏感,容易受到异常样本点的影响,因为中心点是通过样本均值确定的

2不适合发现非球形的簇,即无法准确将非球形样本进行合理聚类,因为是基于距离确定样本之间的相似度

此处介绍另一种聚类算法,基于密度的聚类(Density-Based Spatial Clustering of Applications with Noise,具有噪声的基于密度的聚类方法)。

这类密度聚类算法一般假定类别可以通过样本分布的紧密程度决定。同一类别的样本,他们之间的紧密相连的,也就是说,在该类别任意样本周围不远处一定有同类别的样本存在。

参数(ϵ, MinPts)用来描述邻域的样本分布紧密程度。其中,半径ϵ描述了某一样本的邻域距离阈值,对应领域内最少的样本数量MinPts描述了某一样本的距离为ϵϵ的邻域中样本个数的阈值。

可以非常方便发现样本中的异常点。

综上,可以发现任何形状的样本簇,而且该算法具有很强的抗噪声能力。

具体过程类似“贪吃蛇”,从某个点出发,不停向外扩张,直到获得一个最大的密度相连,进而得到一个样本簇,样本簇以外的即为异常值。

当为球形样本时,效果同Kmeans聚类。

还有一种聚类方法:层次聚类,层次的方法(Hierarchical Method)则是指依次让最相似的数据对象两两合并,这样不断地合并,最后就形成了一棵聚类树。

比较适合小样本的聚类,通过计算各个簇内样本点之间的相似度,进而构建一棵有层次的嵌套聚类树,与kmeans一样,不适合非球形样本的聚类。

聚类树又分为按照凝聚过程和分裂过程,这里只介绍基于凝聚树,点与点的相似性仍通过欧氏或者曼哈顿距离,而簇与簇之间距离通过最小距离法(所有簇间样本点距离的最小值)、最大距离法(最大值)、平均距离法(平均值)。

eps为半径,min_samples为最小样本量

左边为Kmeans聚类,右边为密度聚类,而且密度聚类发现了一个异常点

样本仍然采用随机抽样

构造了3个簇的样本点

左边为Kmeans聚类,右边为密度聚类,而Kmeans聚类对于非球形簇聚类效果不理想,并且密度聚类再次标记出了4个异常点

中间用最大距离法时效果不好,左边为最小,右边为平均,效果均较好

通过肉眼可发现3个簇,用密度聚类进行验证

对于聚类,无论是哪种,都要先对原始数据做标准化处理

对于密度聚类,要不停地调试参数,因为聚类效果在不同参数组合下有较大差异

如果需要将数据聚类为3类,则

对比之前散点图,当异常值个数为4时比较合理,即129一行

但将数据聚为几类比较合理,需要通过轮廓系数法等或者主成分分析

此时先根据129行参数组合,构造密度聚类模型,实现原始数据集的聚类

五角星为异常点,聚类效果不错,例如,以北京、天津、上海为代表的省份,属于低出生率和低死亡率类型。。

再次利用层次聚类,进行聚类

所有散点聚为3类,与密度聚类相比,除了将异常点划分到簇中,其他分类正确

再使用Kmeans聚类进行分析,用轮廓系数法确定最佳K值

当簇的个数为3时,轮廓系数最大,说明为3 类比较合理,也验证了之前肉眼所观察到的结论。

当为球形数据时,层次、Kmeans、密度的效果几乎一致,所不同的是密度聚类可以很方便的发现异常点。

以上就是关于sklearn.cluster.DBSCAN聚类后的结果集怎么样获取全部的内容,包括:sklearn.cluster.DBSCAN聚类后的结果集怎么样获取、用DBSCAN和层次聚类分析各个省份人口出生率与死亡率关系、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10127170.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存