人工智能1—K-means聚类算法

K-means聚类算法 

目录

K-means聚类算法 

1.聚类算法  

2.分析

2.1、原理

2.2、算法步骤

3、优点

4、缺点

5、解决


 

1.聚类算法  

聚类分析又称群分析,它是研究(样品或指标)分类问题的一种统计分析方法,同时也是数据挖掘的一个重要算法。聚类分析以相似性为基础,它是将抽象的集合划分出成为类似对象组成的的对象类(即簇)的一个过程,在一个聚类中的模式之间比不在同一聚类中的模式之间具有更多的相似性,也就是同一个簇中的对象相似,不同簇中的对象相异。通俗的说就是“物以类聚,人以群分”。

聚类是根据一定的聚类规则将拥有相同特征或相似特征的数据聚在一起,聚类算法用来确定样本标记。

聚类和分类的区别:聚类涉及的数据集合其特征是未知的,在开始聚类前,用户也不知道要把数据划分成几类,不清楚分组的标准,是一种无监督分类;而分类是典型的有监督学习,分类的实例或者数据对象有类别标记,用户刚开始就知道数据对象会被分成几类,将要处理的数据分入不同类别。

2.分析

2.1、原理

k-means全称k-means clustering algorithm,也叫K均值算法,是一种迭代求解的聚类分析算法,所以也叫K-means聚类算法(K均值聚类算法)。先随机选取K个对象作为初始的聚类中心,然后计算每个对象与各个种子聚类中心之间的距离,把每个对象分配给距离它最近的聚类中心。聚类中心以及分配给它们的对象就代表一个聚类,每分配一个样本,聚类的聚类中心会根据聚类中现有的对象被重新计算。这个过程将不断重复直到满足某个终止条件。终止条件可以是没有(或最小数目)对象被重新分配给不同的聚类,没有(或最小数目)聚类中心再发生变化,误差平方和局部最小。

K-means聚类算法是一种动态聚类算法,也被称作逐步聚类算法,主要就是迭代,每次考察每个样本数据的分类是否正确,若不正确就要进行调整,在全部的样本都调整完后,再修改聚类中心,进入下一次迭代。如果再一次迭代算法中,所有的样本被正确分类,则不会有调整,聚类中心也不会有任何变化,则标志着开始收敛,算法结束。

2.2、算法步骤

输入:初始数据集和簇的数目k
输出:k个簇,满足平方误差准则函数收敛
任意选择k个数据对象作为初始聚类中心

for(准则函数E值不再进行变化)

{
           根据簇中对象的平均值,将每个对象赋给最类似的簇
           更新簇的平均值,即计算每个对象族中对象的平均值
           计算聚类准则函数E
}

类似于下图:

计算距离公式(欧式距离公式):d=\sqrt\left ( x1-y1 \right )^{2}+(x2-y2)^{2}+...+(xn-yn)^{2}

误差平方和准则函数公式:    

3、优点

算法简单,易于实现,易于扩展,处理快速,并且能够处理大数据集,是一种应用广泛的基于启发式的划分方法。

4、缺点

K-means聚类算法是一个NP问题(难解的非指数问题),即问题的复杂度随着比特位数的增长而指数上升。

1.需要预先设定k值大小,不同的k值对聚类分析的效率和结果有很大的影响,但是很多时候很难确定一个最为合适的k值;

2.算法对于初始值具有依赖性,不同的聚类初始中心值,往往会有不同的聚类结果,而随机选择的初始中心点可能导致聚类结果有很大的随机性,也一定能够程度上影响了迭代次数;

3.对异常偏离的数据敏感,实际应用中往往会存在很多孤立点和噪声点,它们远离数据密集区具有低参考价值,导致计算出的聚类中心偏离主数据区域;

4.算法需要不断地进行样本分类调整,而大量的迭代运算,不断调整当前的聚类中心,导致算法产生非常大的时间开销;

5.只擅长处理球状分布的数据。

5、解决

K-medoids算法降低了K-means算法对孤立点的敏感度,不再采用簇中对象的均值作为初始聚类中心,而是在每个簇中选取一个实际对象代表该簇,然后计算剩余对象与代表对象的距离,将其分配到距离最近的簇中,以此改进聚类结果。因此K-medoids算法比K-means算法能得到更好的聚类结果。

发布了13 篇原创文章 · 获赞 5 · 访问量 1217

猜你喜欢

转载自blog.csdn.net/qq_43653930/article/details/100583777