OPTICS聚类

密度聚类的一种,是DBSCAN聚类的改进算法,其对输入参数不敏感。

OPTICS聚类:有效的解决了密度不同导致的聚类效果不好的问题。

OPTICS也需要密度和半径两个参数,使用这两个参数确定核心对象。

核心距离:只有核心对象才有核心距离,在核心对象中,最小邻域内密度达到阈值时的半径值。

如果样本的核心距离小于半径则为核心点,否则不是核心点。

欧几里得距离:核心对象到点 p 的欧几里得距离。

可达距离:只有核心对象才有可达距离,用于对样本点排序;

                  核心对象到 p 的可达距离是欧几里得距离和核心距离中较大的值

                  核心距离内 : 样本 O 与其核心距离内的样本的可达距离都是核心距离值 ;

                  核心距离外 ( 半径ε-邻域内 ) : 样本 O 与其核心距离外的样本的可达距离都是

                                                                  样本 O 与其的欧几里得距离 ;

聚类顺序 : 从 低层 到 高层 ; 从 稠密 到 稀疏 ;

聚类时 , 低层 聚类分组 先构建完成 , 也就是半径 ε 参数较小的聚类分组 ;

密度可达的两种情况情况 : 

① ε 参数小 : ε 参数较小的时两个样本就密度可达 ;

② ε 参数大 : ε 参数取值很大时 , 才密度可达 ;

扩展样本优先级 : 扩展样本对象时 , 优先选择第一种情况 , ε 参数较小的时就可密度可达的样本 ;

每个样本对象需要存储两个值 : 核心距离 可达距离 ;

聚类过程

1. 定义两个队列,有序队列,存储核心点及密度直达点,按可达距离升序排列;

   结果队列存储样本点输出次序;有序队列中的点为待处理样本,结果队列中的点为处理后样本。

2. 选取未处理的核心点放入结果队列,计算邻域样本的可达距离,

    按可达距离升序将样本点依次放入有序队列。

3. 从有序队列中提取第一个样本,如果为核心点则计算可达距离,

    将可达距离最小放入结果队列;如果不是核心点则跳过该点,选取新的核心点,重复第二步。

4. 迭代第二、三步,直到处理所有样本点,输出结果队列中的样本点及可达距离。

OPTICS聚类继承了DSCAN聚类的优点并增强了其稳定性。

>>> from sklearn.cluster import OPTICS
>>> import numpy as np
>>> X = np.array([[1, 2], [2, 5], [3, 6], [8, 7], [8, 8], [7, 3]])
>>> clustering = OPTICS(min_samples=2).fit(X)
>>> clustering.labels_
array([0, 0, 0, 1, 1, 1])

参考:

https://blog.csdn.net/z962013489/article/details/86593031 

https://blog.csdn.net/shulianghan/article/details/105936710

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值