感谢Pharaoh 和Ninputer 的建议,两者方法都可以工作,但我最终采用了Pharaoh的技术方案,技术没有最好,只有更好嘛,现在这个实现以及解决下述所有问题,保留下文仅供怀旧,代码已更新了。
DBSCAN实现代码和示例下载:dbscan
因为前一阶段考试,好久没写blog了,我加入
商业智能团队后也从没出过一篇像样的blog,希望这篇关于DBSCAN聚类算法的CSharp实现的blog能够引起大家一些关注。
程序说明:
Form1.cs是应用聚类算法
DBSCAN (Density-Based Spatical Clustering of Application with Noise)的示例,可以通过两个参数EPS和MinPts调节聚类。DBSCAN.cs是全部算法的实现文件,聚类算法的进一步信息请参考“
数据挖掘”或者相关书籍。聚类示例数据来自于sxdb.mdb,一个Access数据库。
已知问题及解决方法:
问题:dbscan.cs行64,SortedList不支持重复键,因此若两个数据点距离相同则无法加入集合
解决方法:采用人为减小一个微小量,使数据点距离不同且不影响聚类结果
上一解决方案的问题:减小double.Epsilon微小量无助于使SortedList认为两点距离以及不同
解决方法:采用一个指数增长的微小量,连续重试直至SortedList认为距离已经不同
进一步改进建议:
可能通过double的强制转型为内存中的byte类型(假设double型转为8个byte)
然后最后一个byte减去0x01可以比较漂亮的解决问题,但是……呵呵,C#中我不会这个操作
也可以自己实现一个SortedList,支持重复键,当然,这,好像是微软应该做的工作了
分享到:
相关推荐
java版的DBSCAN聚类算法实现,是典型的算法思路实现,遍历未访问的所有点,如果是核心点,就新建一个簇,然后遍历其邻域内的所有点集A,不断扩展,如果簇内的点时核心点,就将其邻域所有点纳入点集A,并从点集移除已...
这几天由于工作需要,对DBSCAN聚类算法进行了C++的实现。时间复杂度O(n^2),主要花在算每个点领域内的点上。算法很简单,现共享大家参考,也希望有更多交流。 数据点类型描述如下: 代码如下:#include using ...
DBSCAN聚类算法C++代码实现,附上了测试数据,以及该测试数据对应的输出结果,下载可直接运行。
DBSCAN聚类算法matlab代码,内包含测试数据,下载可以直接运行。
DBSCAN 聚类,是一种基于密度的聚类算法,它类似于均值漂移,...作者博客中详细介绍了DBSCAN的算法原理,可以通过文章结合学习,代码包含详细注释,只需要导入自己的聚类数据,运行代码便可以得出聚类结论与图像。
k均值、合并聚类和DBSCAN聚类算法对鸢尾花数据集聚类代码.zip
是基于密度的DBScan聚类算法,最终会静态生成聚类图。内包含测试数据,下载可以直接运行。
最近研究聚类算法,自己写了个DBSCAN算法,数据存在文本文档中,我的数据是二维的空间坐标……
DBSCAN聚类算法的实现,对图片内的物体进行分类,综合考虑了像素和像素点的位置,运行速度较慢。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
基于数据场的改进DBSCAN聚类算法,杨静,高嘉伟,DBSCAN算法是一种典型的基于密度的聚类算法。该算法可以识别任意形状的类簇,但聚类结果依赖于参数Eps和MinPts的选择,而且对于一些密
经典DBASCAN聚类算法,适合新手小白学习,提供了数据可出效果图
如题,该程序是两种聚类算法的C#实现,有图形界面。
DBSCAN(Density-BasedSpatialClusteringofApplicationswithNoise)聚类算法,它是一种基于高密度连通区域的、基于密度的聚类算法,能够将具有足够高密度的区域划分为簇,并在具有噪声的数据中发现任意形状的簇。...
DBSCAN聚类算法PPT课件.pptx
DBSCAN聚类算法,初步实现,功能比较简单,数据集比较简单
名称:DBSCAN经典聚类算法 功能:聚类数据集 类别:密度聚类算法
DBSCAN聚类算法仿真,包括一个距离函数,一个eps函数,一个主程序
DBSCAN聚类算法,C++实现,IDE采用devC,文件内部包括源代码,测试数据集,聚类图形显示程序。详细解释访问http://blog.csdn.net/k76853/article/details/50440182