OPTICS聚类算法原理
2015-10-29 07:42
2216 查看
OPTICS聚类算法原理
基础
OPTICS聚类算法是基于密度的聚类算法,全称是Ordering points to identify the clustering structure,目标是将空间中的数据按照密度分布进行聚类,其思想和DBSCAN非常类似,但是和DBSCAN不同的是,OPTICS算法可以获得不同密度的聚类,直接说就是经过OPTICS算法的处理,理论上可以获得任意密度的聚类。因为OPTICS算法输出的是样本的一个有序队列,从这个队列里面可以获得任意密度的聚类。定义
OPTICS算法的基础有两点,参数(半径,最少点数):
一个是输入的参数,包括:半径ε \varepsilon ,和最少点数MinPtsMinPts。
定义(核心点,核心距离,可达距离,直接密度可达):
另一个是相关概念的定义:
核心点的定义,如果一个点的半径内包含点的数量不少于最少点数,则该点为核心点,数学描述即
Nε(P)>=MinPtsN_\varepsilon(P)>=MinPts
在这个基础上可以引出核心距离的定义,即对于核心点,距离其第MinPtsth MinPts_{th} 近的点与之的距离
coreDist(P)={UNDIFED, MinPtsth Distance in N(P),if N(P)<=MinPtselsecoreDist(P)= \begin{cases}UNDIFED, & \text{if $ N(P)<=MinPts $} \\\ MinPts_{th} \ Distance\ in\ N(P), & \text {else}\end{cases}
可达距离,对于核心点P,O到P的可达距离定义为O到P的距离或者P的核心距离,即公式
reachDist(O,P)={UNDIFED, max(coreDist(P), dist(O,P)),if N(P)<=MinPtselsereachDist(O,P)= \begin{cases}UNDIFED, & \text{if $ N(P)<=MinPts $} \\\ max(coreDist(P),\ dist(O,P)), & \text {else}\end{cases}
O到P直接密度可达,即P为核心点,且P到O的距离小于半径。
算法
OPTICS算法的难点在于维护核心点的直接可达点的有序列表。算法的计算过程如下:输入:数据样本D,初始化所有点的可达距离和核心距离为MAX,半径ε \varepsilon ,和最少点数MinPtsMinPts。
1、建立两个队列,有序队列(核心点及该核心点的直接密度可达点),结果队列(存储样本输出及处理次序)
2、如果D中数据全部处理完,则算法结束,否则从D中选择一个未处理且未核心对象的点,将该核心点放入结果队列,该核心点的直接密度可达点放入有序队列,直接密度可达点并按可达距离升序排列;
3、如果有序序列为空,则回到步骤2,否则从有序队列中取出第一个点;
3.1 判断该点是否为核心点,不是则回到步骤3,是的话则将该点存入结果队列,如果该点不在结果队列;
3.2 该点是核心点的话,找到其所有直接密度可达点,并将这些点放入有序队列,且将有序队列中的点按照可达距离重新排序,如果该点已经在有序队列中且新的可达距离较小,则更新该点的可达距离。
3.3 重复步骤3,直至有序队列为空。
4、算法结束。
输出结果
给定半径ε \varepsilon ,和最少点数MinPtsMinPts,就可以输出所有的聚类。计算过程为:
给定结果队列
1、从结果队列中按顺序取出点,如果该点的可达距离不大于给定半径ε\varepsilon,则该点属于当前类别,否则至步骤2;
2、如果该点的核心距离大于给定半径ε\varepsilon,则该点为噪声,可以忽略,否则该点属于新的聚类,跳至步骤1;
3、结果队列遍历结束,则算法结束。
相关文章推荐
- 美国军方网站还在用老旧的 SHA-1 证书
- LeetCode Expression Add Operators
- HP Helion公有云宣布停服 放弃或是为了更好地进攻
- centos6.5 尝试下用 yum 安装 oddo
- CentOS进程管理
- 进程切换switch_to()注释
- Hadoop核心架构HDFS+MapReduce+Hbase+Hive内部机理详解
- CentOS yum安装sun Java jre jdk和openjdk
- 基于Smack4.1.4+ Openfire3.10.2下学习开发IM(一)实现用户登录、修改密码和注销等
- Centos yum安装并启动telnet
- Centos查看端口占用情况和开启端口命令
- Linux test、[]、[[]]总结及性能比较
- 我的linux服务器
- tomcat pipline设计模式
- [置顶] Test Top
- Tomcat学习之Request/Response封装
- nginx实现带参数目录域名重定向二级域名方法
- Nginx正则表达式之匹配操作符详解
- 使用Linux正则表达式灵活搜索文件中的文本
- nginx用cookie控制访问权限实现方法