大数据之数据挖掘理论笔记 聚类问题之K-means
推荐参考博文: http://www.cnblogs.com/leoo2sk/archive/2010/09/20/k-means.html
推荐参考博文: http://blog.csdn.net/cyxlzzs/article/details/7416491 试过了,确实可运行。
http://blog.csdn.net/ghostfromheaven/article/details/6516188
1. 聚类的理解
聚类是一个划分数据对象集的过程。一个数据对象集被划分为几个簇,并且簇内对象之间具有较高的相似性,但与其他簇中的对象却很不相似。划分依据往往是描述对象的属性值评估,通常涉及距离量度。划分方法采用聚类算法,即使对于相同的数据集,不同的聚类方法可能产生不同的聚类结果。
聚类的类标号信息是未知的(即每个训练元组隶属哪一类示先并未知晓),因此聚类是无监督学习。
2. 聚类应用领域
商务智能、图像识别、Web搜索等
聚类用于离群点检测 outlier detection(如:信用卡欺诈检测)
3. 聚类的两种经典方法
基于距离的方法 K-means
基于密度的方法 DBScan
4. K-means (K-均值)
聚类算法核心思想:把数据集中的对象分区,每个分区代表一个簇;簇的形成旨在优化一个客观划分准则(如基于距离的相异性函数,e.g.簇中所有对象与该簇代表形心之间的误差平方和),使得根据数据集的属性,在同一个簇中的对象相似,不同簇中的对象相异。
K-means算法的核心要点:1. K-means算法把簇的形心定义为簇内所有点的均值;2. 根据业务需求K示先给定。
5. K-means 算法过程简述:
initialization
1、从数据集D中随机取k个元素,作为k个簇的各自的中心。
2、分别计算剩下的元素到k个簇中心的相异度,将这些元素分别分配到相异度最低的簇。
repeat
3、根据聚类结果,重新计算k个簇各自的中心,计算方法是取簇中所有元素各自维度的算术平均数。
4、将D中全部元素按照新的中心重新聚类。
until
5、重复第4步,直到聚类结果不再变化。
6、将结果输出。
输入:K——簇的数目,即划分的组数;D——数据集
输出:聚类结果
6. 相异度的数学内函计算
推荐参考博文: http://www.cnblogs.com/leoo2sk/archive/2010/09/20/k-means.html 之内容4.2相异度的计算
另外补充一句,博主给的例子很有趣~
7. K-means算法java实现
推荐参考博文: http://blog.csdn.net/cyxlzzs/article/details/7416491 试过了,确实可运行。
http://blog.csdn.net/ghostfromheaven/article/details/6516188