- 6
- 0
- 约5.77千字
- 约 8页
- 2019-06-07 发布于浙江
- 举报
K means聚类算法以及实现
一、Kmeans算法
k-means 算法接受参数 k ;然后将事先输入的n个数据对象划分为 k个聚类以便使得所获得的聚类满足:同一聚类中的对象相似度较高;而不同聚类中的对象相似度较小。聚类相似度是利用各聚类中对象的均值所获得一个“中心对象”(引力中心)来进行计算的。
K-means算法是最为经典的基于划分的聚类方法,是十大经典数据挖掘算法之一。K-means算法的基本思想是:以空间中k个点为中心进行聚类,对最靠近他们的对象归类。通过迭代的方法,逐次更新各聚类中心的值,直至得到最好的聚类结果。
假设要把样本集分为c个类别,算法描述如下:
(1)适当选择c个类的初始中心;
(2)在第k次迭代中,对任意一个样本,求其到c个中心的距离,将该样本归到距离最短的中心所在的类;
(3)利用均值等方法更新该类的中心值;
(4)对于所有的c个聚类中心,如果利用(2)(3)的迭代法更新后,值保持不变,则迭代结束,否则继续迭代。
该算法的最大优势在于简洁和快速。算法的关键在于初始中心的选择和距离公式
二、算法流程
首先从n个数据对象任意选择 k 个对象作为初始聚类中心;而对于所剩下其它对象,则根据它们与这些聚类中心的相似度(距离),分别将它们分配给与其最相似的(聚类中心所代表的)聚类;然后再计算每个所获新聚类的聚类中心(该聚类中所有对象的均值);不断重复这一过程直到标准测度函数开始收敛为止。一般都采用均方差作为标准测度函数. k个聚类具有以下特点:各聚类本身尽可能的紧凑,而各聚类之间尽可能的分开。
Kmeans算法实现的步骤具体描述为:
(1)从疗个数据对象中任意选取k个对象作为初始的聚类中心。
(2)分别计算每个对象到各个聚类中心的距离,把对象分配到距离最近的聚类中。
(3)所有对象分配完成后,重新计算k个聚类的中心。
(4)与前一次计算得到的k个聚类中心比较,如果聚类中心发生变化,转(2),否则转(5)。
(5)输出聚类结果。
实现的流程框图为
首先从n个数据对象中任意选择k个对象作为初始聚类中心;而对于所剩下的其它对象,则根据他们与这些聚类中心的相似度(距离),分别将他们分配给与其最相似的(聚类中心所代表的)聚类。
然后再计算每个所新聚类的聚类中心(该聚类中所有对象的均值)。不断重复这一
过程直到标准测度函数开始收敛为止。一般都采用均方差作为标准测度函数,具体定义如下:
其中E为数据库中所有对象的均方差之和;p为代表对象的空间中的一个点;
m,为聚类G的均值(p和m,均是多维的).上述公式所示聚类标准旨在使所获得的k个聚类具有以下特点:各聚类本身尽可能的紧凑,而各聚类间尽可能的分开。
三、设计实现
K-Means算法是聚类算法的一种,它通过计算样本数据点之间的逻辑距离来判断某个样本数据点属于哪一个簇,算法最终的目的是要把用于算法的样本数据点分配到K个簇中,使簇内的点有较大的相似度,而簇间的点有较小的相似度。K-Means中的K表示聚类中心的个数,在算法运行过程中,要反复扫描所有样本数据点,要计算每个非中心数据点与某个聚类中心点的距离,并将这个数据点归为与其距离最小的那个聚类中心对应的簇之中。每扫描一次就要重新计算每个聚类中心点的位置。当聚类中心点的位置变化在一定的阈值之内的时候停止处理,最后就可以得到K个簇,并且簇中每个样本数据点到本簇的中心的距离都小于到其它簇中心的距离。
本程序使用C++实现算法本身,然后用C#调用C++函数完成了数据的传送和接收算法的输出并可视化结果。并且数据是保存在Access数据库中的一个sample表格中然后通过字符串连接数据库读入数据
也可以使用其他数据库,例如sqlserver,修改相应的字符串连接语句即可。
下面主要介绍一个导出的函数DataMining_KMeans,这个函数要接收C#传过来的原始数据、K值及其它参数,同时还要将处理的结果赋值给引用参数以便在C#中可以接收到处理结果。DataMining_KMeans函数的原型如下:
/*?
*?@Author:YinPSoft?
*?@param:?
*?raw:?原始数据?
*?count:?数据点个数?
*?K:?聚类中心个数?
*?means:?初始聚类中心?
*?minOffset:?聚类中心的最小偏移量,用于控制聚类处理的精度。?
*?times:?最大迭代次数
*?c:每个聚类的数据点索引值?
*?sizes:每个聚类的容量?
*?finalMeans:最终的聚类中心位置?
*/?
void?DataMining_KMeans(double*?data,
int?count,?
int?K,?
int*?means,?
double?minOffset,?
i
您可能关注的文档
最近下载
- 2025年湖南铁道职业技术学院单招职业技能考试题库含答案.docx VIP
- 2025年浙江省中考数学试卷及答案详细解析.docx VIP
- 精品解析:2026届肥城一中高三上学期一模考前模拟英语试题(解析版).docx VIP
- 武安精诚机械磐石克劈裂机规范操作说明书.pdf
- 《煤矿职业病危害防治》培训课件2025.pptx
- 园艺通论试题库及答案.doc VIP
- (编号TCAIM 001-2024)-《高血压病中西医结合诊疗指南》.pdf VIP
- 3套新版人教版小学数学五年级上册期末必备综合试卷(含答案解析).docx
- 2025高中历史中外历史纲要上下册知识点总结(复习必背)_可搜索.pdf VIP
- G银行J分行基层网点员工绩效考核体系优化研究.pdf VIP
原创力文档

文档评论(0)