Description: 程序说明:
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,支持重复键,当然,这,好像是微软应该做的工作了 ^_^
Eric Guo
<http://www.cnblogs.com/ericguo/>
-procedures : Form1.cs clustering algorithm is applied DBSCAN (Density-Based Spati cal Clustering of Application with Noise) example, two parameters can EPS and MinPts regulation clustering. DBSCAN.cs is, the clustering algorithm further information please refer to the "data mining" or books related data clustering example from sxdb.m db, an Access database. Known issues and recommendations for further improvement : : 64 dbscan.cs OK, SortedList not support duplicate keys, and therefore if two data points from the same pool can not be solved by adding : By applying an artificially reduce a small amount of data from different points without clustering results on the impact of a solution of the problem : double.Epsilon small decrease in the amount of helplessness to make that 2:00 S Platform: |
Size: 26624 |
Author:Huang Yi |
Hits: