关于optics算法的一些基本概念,在此一一忽略。
先求得所有节点的核心距离,用cd矩阵表示;
然后对每个节点进行处理,这个时候不需要考虑该节点是不是核心对象,按顺序取节点,如果该拓展点是核心对象,处理该节点,然后更新其他所有节点的可达距离。这个时候该核心对象的邻居节点求得的可达距离肯定是比较小的,所以优先处理这些邻居节点,最后得到的排序结果也是紧挨着的;处理完所有的邻居节点,这个时候,那就是得到了相对来说离这团数据很近的一个节点,其实,这个相当于还是盲取,这个本身就是要在剩下的节点中随机去一个数据,所以,都关系不大啦,然后得到该节点的邻居直到处理完所有的节点。
如果当前节点不是核心对象,那么还是任意取值。反正就是要把所有的节点处理完,所以影响不大。
如果处理的节点不是某一团数据的一个边缘值,那么总能处理到该团数据的核心值,这样也能改变其他未被处理过的对象的可达距离,他们最终还是一类;
最后得到RD矩阵,就是可达距离,而输出序列就是order矩阵。根据order矩阵得到输出序列,然后rd矩阵对应可达距离,这样即可得到如下图:
关于上图的解释:
每一个凹槽对应于一个聚类结果,因为核心对象的可达距离肯定很大,对吧,而在一个聚类簇中,其他对象到该核心对象的距离肯定很