聚类分析(二) K-MEANS 博客分类: 数据分析/挖掘 K-MEANS
K-means 算法
一般情况,聚类算法可以划分为以下几类:划分方法(partitioning method )、层次方法(hierarchical methods )、基于密度的方法(density-based methods )、基于网格的方法(grid-based methods )、基于模型的方法(model-based methods ).k-means 算法属于划分方法中的一种。
K-means 算法的整个流程:首先从聚类对象中随机选出K 个对象作为类簇的质心(当然了,初始参数的K 代表聚类结果的类簇数),对剩余的每个对象,根据它们分别到这个K 个质心的距离,将它们指定到最相似的簇(因为K-means 是利用距离来量化相似度的,所以我们这里可以理解为是“将它们指定到离最近最近距离的质心所属类簇”)。然后重新计算质心位置。以上过程不断反复,直到准则函数收敛为止。通常采用平方误差准则,定义如下:
其中,E
代表的意思是所有类簇中各对象到其所属类簇质点平方误差和.
K: 聚类结果类簇个数
Ci: 第i 个类簇
P :类簇中聚类对象
mi: 第i 个类簇的质心
K-means 的优点和不足:能处理大型数据集,结果簇相当紧凑,并且簇和簇之间明显分离。计算复杂性O(tkn) t: 迭代次数、K :聚类数 n: 样本数;但是
1) 该算法必须事先给定类簇数和质点,簇数和质点的初始值设定往往会对聚类的算法影响较大。
2 ) 通常会在获得一个局部最优值时停止,
3 ) 并且只适合对数值型数据聚类,
4) 只适用于聚类结果为凸形的数据集,K-means 方法不适合发现非凸面形状的类簇,或者大小差别很大的簇。
5) 对“ 噪音” 和孤立点数据敏感,少量的该类数据对质点的计算会产生极大的影响。
关于K-means的代码实现网上有很多,java版的本人自己也实现了,有需要则可以留下MAIL。:)
推荐阅读
-
关联规则(一)Apriori算法 博客分类: 数据分析/挖掘 关联规则Apriori
-
聚类分析(二) K-MEANS 博客分类: 数据分析/挖掘 K-MEANS
-
聚类分析(五)基于密度的聚类算法 — DBSCAN 博客分类: 数据分析/挖掘 基于密度的聚类算法DBSCAN
-
聚类分析(五)基于密度的聚类算法 — DBSCAN 博客分类: 数据分析/挖掘 基于密度的聚类算法DBSCAN
-
聚类分析(六)基于密度的聚类算法 — OPTICS 博客分类: 数据分析/挖掘 基于密度的聚类OPTICS
-
关联规则(二)强关联规则一定就是用户感兴趣的规则吗 博客分类: 数据分析/挖掘 关联规则强关联规则提升度
-
聚类分析(四)层次聚类算法 博客分类: 数据分析/挖掘 层次聚类AGENESDIANA
-
聚类分析(一) 什么是聚类分析 博客分类: 数据分析/挖掘 聚类分析
-
数据分析挖掘 博客分类: 数据库 olap
-
企业应该如何运用商业智能 博客分类: 商业智能见解 商业智能数据挖掘数据分析BI