K-means算法详解

来源:互联网 发布:淘宝类目选择 编辑:程序博客网 时间:2024/05/23 11:04


一、K-means算法概述

K-means算法,也被称为k-平均或k-均值算法,是一种得到最广泛使用的聚类算法。它是将各个聚类子集内的所有数据样本的均值作为该聚类的代表点,算法的主要思想是通过迭代过程把数据集划分为不同的类别,使得评价聚类性能的准则函数达到最优(平均误差准则函数E),从而使生成的每个聚类(又称)内紧凑,类间独立。 

二、聚类与分类的区别

•聚类(clustering)是指根据“物以类聚”的原理,将本身没有类别的样本聚集成不同的组,这样的一组数据对象的集合叫做簇,并且对每一个这样的簇进行描述的过程。
•在分类(classification )中,对于目标数据库中存在哪些类是知道的,要做的就是将每一条记录分别属于哪一类标记出来。
•聚类分析也称无监督学习,因为和分类学习相比,聚类的样本没有标记,需要由聚类学习算法来自动确定。聚类分析是研究如何在没有训练的条件下把样本划分为若干类。

三、欧式距离


四、 平均误差准则函数



五、K-means算法过程

算法  k-means算法

输入:簇的数目k和包含n个对象的数据库。

输出:k个簇,使平方误差准则最小。

算法步骤:

Ø1.为每个聚类确定一个初始聚类中心,这样就有K个  初始聚类中心。
Ø2.将样本集中的样本按照最小距离原则分配到最邻近聚类 
Ø3.使用每个聚类中的样本均值作为新的聚类中心。
Ø4.重复步骤2.3直到聚类中心不再变化。
Ø5.结束,得到K个聚类

六、算法实例





七、K-means算法的优点分析

n主要优点:
Ø是解决聚类问题的一种经典算法,简单、快速
Ø对处理大数据集,该算法是相对可伸缩和高效率的。
Ø因为它的复杂度是0 (n k t ) , 其中, n 是所有对象的数目, k 是簇的数目, t 是迭代的次数。通常k < <n 且t < <n 。
Ø当结果簇是密集的,而簇与簇之间区别明显时,它的效果较好。

八、K-means算法的缺点分析
Ø在簇的平均值被定义的情况下才能使用,这对于处理符号属性的数据不适用。
Ø必须事先给出k(要生成的簇的数目),而且对初值敏感,对于不同的初始值,可能会导致不同结果。经常发生得到次优划分的情况。解决方法是多次尝试不同的初始值。
Ø它对于“躁声”和孤立点数据是敏感的,少量的该类数据能够对平均值产生极大的影响。

九、K-means算法总结
ØK-means算法属于聚类分析方法中一种基本的且应用最广泛的划分算法;
Ø它是一种已知聚类类别数的聚类算法。指定类别数为K,对样本集合进行聚类,聚类的结果由K 个聚类中心来表达;
Ø基于给定的聚类目标函数(或者说是聚类效果判别准则),算法采用迭代更新的方法,每一次迭代过程都是向目标函数值减小的方向进行,最终的聚类结果使目标函数值取得极小值,达到较优的聚类效果。
Ø使用平均误差准则函数E作为聚类结果好坏的衡量标准之一,保证了算法运行结果的可靠性和有效性。



0 0