vlambda博客
学习文章列表

最邻近规则的试探聚类算法

一、算法说明:

设有n个样本, X1,...,Xn, 不妨令任一 样本作为聚类中心 Z1,并选取任一非负的阈值T,为方便起见,我们选X=Z1 ,然后计算X2到Z1的距离D21,若D21>T。则建立一新的聚类中心Z2,且X2=Z2,若D21<T,则认为X2在以Z1为中心的域中,即X1,X2同属一类。
然后分别计算X3到Z1, Z2的距离,得到D31, D32,若D31>T, D32>T,则建立一新的聚类中心Z3,且X3=Z3,否则将X3划分到最近的聚类中心的域中,并重新计算该类的聚类中心(该类的样本均值)。
用类似的方法对所有样本计算距离,比较國值,决定归属,直至所有样本分类结束。


二、编程实现

1)从sampletxt中读取样本数据;

注意这种方法读取文件数据应该是一个点的横纵坐标在一行,可以用逗号、空格、tab键隔开,用一个c来接收;第二个点在第二行,读取的时候会直接跳过换行符。

2)阈值输入4 (分别为-3.).4.0.6.6);3)距离计算;

4)聚类中心计算;

5)实现基于最邻近规则的试探法聚类程序;

6)将聚类结果输出至resuttxt文件中。

最邻近规则的试探聚类算法


遇到.exe已触发了一个断点或者未加载 wntdll.pdb的异常,检查内存溢出以及释放的问题,删除debug文件重新编译。