python 密度聚类_(数据科学学习手札15)DBSCAN密度聚类法原理简介&Python与R的实现...

DBSCAN算法是一种很典型的密度聚类法,它与K-means等只能对凸样本集进行聚类的算法不同,它也可以处理非凸集。关于DBSCAN算法的原理,笔者觉得下面这篇写的甚是清楚练达,推荐大家阅读:https://www.cnblogs.com/pinard/p/6208966.htmlDBSCAN的主要优点有:1) 可以对任意形状的稠密数据集进行聚类,相对的,K-Means之类的聚类算法一般只适用于凸...
摘要由CSDN通过智能技术生成

DBSCAN算法是一种很典型的密度聚类法,它与K-means等只能对凸样本集进行聚类的算法不同,它也可以处理非凸集。

关于DBSCAN算法的原理,笔者觉得下面这篇写的甚是清楚练达,推荐大家阅读:

https://www.cnblogs.com/pinard/p/6208966.html

DBSCAN的主要优点有:

1) 可以对任意形状的稠密数据集进行聚类,相对的,K-Means之类的聚类算法一般只适用于凸数据集。

2) 可以在聚类的同时发现异常点,对数据集中的异常点不敏感。

3) 聚类结果没有偏倚,相对的,K-Means之类的聚类算法初始值对聚类结果有很大影响。

DBSCAN的主要缺点有:

1)如果样本集的密度不均匀、聚类间距差相差很大时,聚类质量较差,这时用DBSCAN聚类一般不适合。

2) 如果样本集较大时,聚类收敛时间较长,此时可以对搜索最近邻时建立的KD树或者球树进行规模限制来改进。

3) 调参相对于传统的K-Means之类的聚类算法稍复杂,主要需要对距离阈值ϵ,邻域样本数阈值MinPts联合调参,不同的参数组合对最后的聚类效果有较大影响。

R中的fpc包中封装了dbscan(data,eps,MinPts),其中data为待聚类的数据集,eps为距离阈值ϵ,MinPts为样本数阈值,这三个是必须设置的参数,无缺省项。

一、三种聚类算法在非凸样本集上的性能表现

下面我们以正弦函数为材料构造非凸样本集,分别使用DBSCAN、K-means、K-medoids算法进行聚类,并绘制最终的聚类效果图:

library(fpc)

library(cluster)#构造非凸样本集

x1

y1

y2

points(x1,y2)

c1

c2

data1

构造的样本集如下:

接着我们依次使用上述三种聚类算法:

#分别绘制三种聚类算法的聚类效果图

par(mfrow&

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值