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,对样本集合进行聚类,聚类的结果由K 个聚类中心来表达;
Ø基于给定的聚类目标函数(或者说是聚类效果判别准则),算法采用迭代更新的方法,每一次迭代过程都是向目标函数值减小的方向进行,最终的聚类结果使目标函数值取得极小值,达到较优的聚类效果。
Ø使用平均误差准则函数E作为聚类结果好坏的衡量标准之一,保证了算法运行结果的可靠性和有效性。
0 0
- K-means算法详解
- K-means算法详解
- k-means算法详解
- K-Means聚类算法详解
- K-Means聚类算法详解
- [机器学习]二分k-means算法详解
- K-means聚类算法详解
- K-means算法补充:K-means++
- k-means算法
- K-MEANS算法
- K-MEANS算法
- K-means算法
- k-means算法
- K-Means 算法
- K-Means 算法
- 深入浅出K-Means算法
- 聚类:K-means算法
- K-Means 算法
- 搜索人生之四——12岁的花季
- JS-BOM-定时器
- JavaScript中underscorejs的使用
- struts.xml配置
- JS-BOM总结
- K-means算法详解
- volley用法分析和源码分析之一
- java核心技术卷一学习 2016.11.27/2
- 欢迎使用CSDN-markdown编辑器
- windows10,redhat6.5下python3.5.2使用cx_Oracle链接oracle
- 01-JS特效-三大系列之offset系列
- Codeforces Round #386 (Div. 2) F
- 如何设置tomcat虚拟主机
- 使用pycharm远程调试openstack