聚类算法:K-means 算法(k均值算法)
k-means算法:
聚类中心的向量值可任意设定,例如可选开始的$K$个模式样本的向量值作为初始聚类中心。
\[
D_j (k) = \min \{ \left\| {x - z_i (k)} \right\|,i = 1,2, \cdots K\}
\]
则$x\in S_j(k)$,其中$k$为迭代运算的次序号,第一次迭代$k=1$,$S_j$表示第$j$个聚类,其聚类中心为$z_j$。
第三步:计算各个聚类中心的新的向量值,$z_j(k+1),j=1,2,\cdots,K$,求各聚类域中所包含样本的均值向量:
\[
\begin{array}{*{20}c}
{z_j (k + 1) = \frac{1}{{N_j }}\sum\limits_{x \in S_j (k)} x ,} & {j = 1,2, \cdots ,K} \\
\end{array},
\]
其中$N_j$为第$j$个聚类域$S_j$中所包含的样本个数。以均值向量作为新的聚类中心,可使如下聚类准则函数最小:
\[
\begin{array}{*{20}c}
{J_j = \sum\limits_{x \in S_j (k)} {\left\| {x - z_j (k + 1)} \right\|^2 } ,} & {j = 1,2, \cdots ,K} \\
\end{array}
\]
在这一步中要分别计算$K$个聚类中的样本均值向量,所以称之为$K$-均值算法。
第四步:若$z_j(k+1)\neq z_j(k),j=1,2,\cdots,K$,则返回第二步,将模式样本逐个重新分类,重复迭代运算; 若$z_j(k+1)=z_j(k),j=1,2,\cdots,k$,则算法收敛,计算结束。
K-均值分类算法实例

第一步:取$K=2$,并选
$z_1(1)=x_1=(0 0)^T, z_2(1)=x_2=(1 0)^T$
第二步:因$||x_1-z_1(1)||<||x_1-z_2(1)||$,故$x_1\in S_1(1)$
因$||x_2-z_1(1)||>||x_2-z_2(1)||$,故$x_2\in S_2(1)$
因$||x_3-z_1(1)||<||x_3-z_2(1)||$,故$x_3\in S_1(1)$
……
得到:
S1(1)={x1, x3}, S2(1)={x2, x4, x5, …, x20}
第三步:计算新的聚类中心


第四步:因$z_j(2)\neq z_j(1),j=1,2$,返回第二步;
第二步(返回1):由新的聚类中心,得到:


因此
$S_1(2)=\{x_1, x_2,\cdots, x_8\}$
$S_2(2)=\{x_9, x_{10}, \cdots, x_{20}\}$
第三步(返回1):计算聚类中心


第四步(返回1):因$z_j(3)\neq z_j(2),j=1,2$,返回第二步;
第二步(返回2):分类结果与前一次迭代的结果相同,即$S_1(4)=S_1(3),S_2(4)= S_2(3)$;
第三步(返回2):聚类中心与前一次迭代的结果相同;
第四步(返回2):因$z_j(4)=z_j(3),j=1,2$,算法收敛,得到最终的聚类中心。
,
聚类算法:K-means 算法(k均值算法)的更多相关文章
- 聚类--K均值算法:自主实现与sklearn.cluster.KMeans调用
1.用python实现K均值算法 import numpy as np x = np.random.randint(1,100,20)#产生的20个一到一百的随机整数 y = np.zeros(20) ...
- 机器学习之K均值算法(K-means)聚类
K均值算法(K-means)聚类 [关键词]K个种子,均值 一.K-means算法原理 聚类的概念:一种无监督的学习,事先不知道类别,自动将相似的对象归到同一个簇中. K-Means算法是一种聚类分析 ...
- 聚类--K均值算法
import numpy as np from sklearn.datasets import load_iris iris = load_iris() x = iris.data[:,1] y = ...
- 第八次作业:聚类--K均值算法:自主实现与sklearn.cluster.KMeans调用
import numpy as np x = np.random.randint(1,100,[20,1]) y = np.zeros(20) k = 3 def initcenter(x,k): r ...
- 一句话总结K均值算法
一句话总结K均值算法 核心:把样本分配到离它最近的类中心所属的类,类中心由属于这个类的所有样本确定. k均值算法是一种无监督的聚类算法.算法将每个样本分配到离它最近的那个类中心所代表的类,而类中心的确 ...
- 【机器学习】K均值算法(II)
k聚类算法中如何选择初始化聚类中心所在的位置. 在选择聚类中心时候,如果选择初始化位置不合适,可能不能得出我们想要的局部最优解. 而是会出现一下情况: 为了解决这个问题,我们通常的做法是: 我们选取K ...
- 【机器学习】K均值算法(I)
K均值算法是一类非监督学习类,其可以通过观察样本的离散性来对样本进行分类. 例如,在对如下图所示的样本中进行聚类,则执行如下步骤 1:随机选取3个点作为聚类中心. 2:簇分配:遍历所有样本然后依据每个 ...
- Bisecting KMeans (二分K均值)算法讲解及实现
算法原理 由于传统的KMeans算法的聚类结果易受到初始聚类中心点选择的影响,因此在传统的KMeans算法的基础上进行算法改进,对初始中心点选取比较严格,各中心点的距离较远,这就避免了初始聚类中心会选 ...
- KMeans (K均值)算法讲解及实现
算法原理 KMeans算法是典型的基于距离的聚类算法,采用距离作为相似性的评价指标,即认为两个对象的距离越近,其相似度就越大.该算法认为簇是由距离靠近的对象组成的,因此把得到紧凑且独立的簇作为最终目标 ...
随机推荐
- weblogic解密工具
import org.bouncycastle.jce.provider.BouncyCastleProvider; import sun.misc.BASE64Decoder; import jav ...
- ARM家族大检阅
首先列举下几个名称: 6410 2440 210 A8 ARM9 ARM11 ARMv7 ARMv6 进行分类: 1.芯片名称: 2440 6410 210 2.ARM核: A8 ARM9 ARM11 ...
- source命令
source命令用法: source 文件名作用:在当前bash环境下读取并执行文件中的命令.注:该命令通常用命令“.”来替代.如:source .bash_rc 与 . .bash_rc 是等效的 ...
- HTML笔记(二) 在HTML中使用CSS
外部CSS: <head> <link rel="stylesheet" type="text/css" href="mystyle ...
- 2013 Multi-University Training Contest 1
HDU-4605 Magic Ball Game 题意:给定一颗以1为根的数,每个节点要么有两个孩子节点,要么没有孩子,每个节点有一个重量,现在从节点1往下放置一个小球,根据小球和节点的重量的不同球落 ...
- 2013/7/16 HNU_训练赛4
CF328B Sheldon and Ice Pieces 题意:给定一个数字序列,问后面的数字元素能够组成最多的组数. 分析:把2和5,6和9看作是一个元素,然后求出一个最小的组数就可以了. #in ...
- 适应各浏览器图片裁剪无刷新上传jQuery插件(转)
看到一篇兼容性很强的图片无刷新裁剪上传的帖子,感觉很棒.分享下!~ 废话不多说,上效果图. 一.首先建立如下的一个page <!DOCTYPE html> <html xmlns=& ...
- uva 11800 Determine the Shape
vjudge上题目链接:Determine the Shape 第二道独自 A 出的计算几何水题,题意就是给你四个点,让你判断它是哪种四边形:正方形.矩形.菱形.平行四边形.梯形 or 普通四边形. ...
- ajax跨域jsonp
<!DOCTYPE html><html lang="zh-CN"><head> <meta charset="UTF-8&qu ...
- struts2 详解
Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互.struts使 ...