密度聚类里的老大哥,OPTICS的排序式聚类方式挺,不直接告诉你分了几类,而是用一串“可视化”顺序,帮你自己发现聚类结构。挺适合那种你压根不知道要分几类的数据集。你要是用过DBSCAN,那上手它也不难,就是多个参数别调太死,灵活点更好玩。
OPTICS排序式聚类算法
相关推荐
OPTICS聚类算法MATLAB实现
这是一个基于密度的聚类算法OPTICS的MATLAB程序,来源于官方,经过测试好用。
数据挖掘
17
2024-05-21
OPTICS聚类算法Python实现
资源包含OPTICS聚类算法的Python实现代码,此算法是对DBSCAN算法的优化改进。
算法与数据结构
12
2024-05-21
密度聚类方法DBSCAN、OPTICS、DENCLUE
基于密度的聚类方法的思路挺巧妙,不靠你事先指定簇的个数,而是看哪里数据密集就往哪儿凑。像DBSCAN、OPTICS、DENCLUE这些算法,都能搞定各种不规则的簇形,噪声点也还不错。
DBSCAN的逻辑蛮:找邻居、看密度,够密就拉进来一起玩,太稀就当噪声。适合用来图片区域、地理坐标、甚至是社交网络的社群划分。
OPTICS就比 DBSCAN 细腻点,在数据密度变化大的时候挺实用,排序之后你再来观察哪里是簇,挺有意思的。
DENCLUE是基于数学密度函数来的,思路有点偏学术,但优势是对复杂数据形态的捕捉更强,适合你那种非均匀分布的数据。
资源方面我翻了下,有不少现成的实现,Matlab、Pyth
算法与数据结构
0
2025-07-02
经典排序算法
十大经典排序算法分为两类:
比较类排序(时间复杂度不能突破 O(nlogn)):- 冒泡排序- 快速排序- 简单插入排序- 希尔排序- 简单选择排序- 堆排序- 二路归并排序
非比较类排序(线性时间运行):- 多路归并排序- 桶排序- 基数排序
算法与数据结构
14
2024-05-24
基于计数的排序算法桶排序
桶排序是一种基于计数的排序算法,其核心思想是将待排序元素分散到有限数量的桶中,然后分别对每个桶中的元素进行排序。首先,扫描待排序序列找出最大值和最小值,根据这两个值确定桶的范围。接着,将每个元素分配到对应的桶中,再分别对每个桶中的元素进行排序。最后,按照桶的顺序依次输出所有元素即可。
Matlab
10
2024-09-30
JavaScript经典排序算法基数排序
排序里的基数排序,用起来还挺顺手的。它不比大小,而是按位来分桶。比如先看个位,再看十位、百位,一轮轮下来,数据就排好了。这招在大量整数时管用,尤其是数值不太大的时候,效率还挺高的。
基数排序靠的是分桶,每一位都设十个桶(0-9),把数字按当前位数扔进去,再按顺序拿出来。整个过程不比大小,所以不会出现“越比较越乱”的情况,也不会影响相等元素的顺序,稳定性不错。
方式也蛮直接的,通常用计数排序来配合分桶操作。因为它在小范围整数排序上快得飞起。排序的时候你只需要知道最大数有几位,从个位开始一轮轮地排,像流水线一样,有条理。
说点实在的,时间复杂度是 O(n * k),n 是元素数量,k 是最大数的位
算法与数据结构
0
2025-06-29
选择排序简单高效的排序算法
选择排序的思路蛮直接,没啥复杂逻辑。每次从还没排好的里面挑个最小的,放到前面去,直到全排好。代码不长,逻辑也清晰,适合刚开始摸排序算法的同学。
选择排序的核心点就在于“挑最小的”这个动作。不管你是用for循环还是配个minIndex,思路都挺清楚的。而且数据量不是大的时候,表现还不错。
像写课程设计或者整理代码库的时候,选它做示例挺合适。比如这篇代码优化的文章,就讲了怎么把选择排序搞得更干净点,适合参考参考。
哦对了,如果你还在理清楚各种排序算法的关系,推荐去看看这篇排序算法汇总,还有个脑图版的思维导图也蛮有用,方便你整体把握。
如果你是刚接触排序,想练练基本功,那就试试手撸一遍。写完之后记得
算法与数据结构
0
2025-06-14
起泡排序:分治策略下的排序算法
起泡排序通过逐次交换相邻较小元素,将最大元素移动至末尾。经过 n-1 趟遍历,所有元素将按照从小到大的顺序排列,其中最小元素位于数组首位。
算法与数据结构
14
2024-05-15
排序裁剪算法原理
逐边裁剪算法:
按顺序排列多边形顶点。
将相邻顶点连接成边,形成 N 条边。
数据挖掘
16
2024-05-15