聚类算法: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算法是典型的基于距离的聚类算法,采用距离作为相似性的评价指标,即认为两个对象的距离越近,其相似度就越大.该算法认为簇是由距离靠近的对象组成的,因此把得到紧凑且独立的簇作为最终目标 ...
随机推荐
- Beaglebone Black 和树莓派
我不是创客.我买了个 Beaglebone Black 来玩,主要是拿来学习. 入手前,看过好几个树莓派 (Raspi - 2 Model B)和 Beaglebone Black (BBB) 比较, ...
- Maven 3.3.9在Windows上的安装
开始学Maven了,可是我一个项目都木有做过.听过Maven 的大名,用来构建项目的. 下面记录下我安装Maven的过程 1.确认电脑上安装了JDK 在cmd下执行下列命令: java –versio ...
- android上让我放弃使用wstring来操作中英文字符串 转
android上让我放弃使用wstring来操作中英文字符串 2013-08-07 16:37:24| 分类: cocos2d|举报|字号 订阅 项目需要,需要对中英文字符串进行遍历修改等, ...
- MVC3远程验证
public class StudentModel { [Display(Name="学生编号")] public int StuId { set; get; } [Require ...
- Nginx RTMP 专题
说明: 记录器 - 记录器名称 path - 记录文件路径(recorded file path) (/tmp/rec/mystream-1389499351.flv)filename - 省略目录的 ...
- Redis核心知识之—— 时延问题分析及应对、性能问题和解决方法【★★★★★】
参考网址: Redis时延问题分析及应对:http://www.cnblogs.com/me115/p/5032177.html Redis常见的性能问题和解决方法:http://www.search ...
- RTMP命令亲自测试记录
手动和自动录像模块: recorder rec1 { record all manual; record_unique on; record_notify on; record_max_size 51 ...
- NEU校园网登录器
http://www.cnblogs.com/weidiao/p/5124106.html 改自学长的博客. 我们的目标是写一个程序实现自动登录校园网.而这基于的是表单的post机制. 输入校园网网址 ...
- Object Pascal 语言基础
Delphi 是以Object Pascal 语言为基础的可视化开发工具,所以要学好Delphi,首先要掌握的就是Object Pascal 语言.Object Pascal语言是Pascal之父在1 ...
- RTC框架
RPC是系统间的一种通信方式,系统间常用的通信方式还有http,webservice,rpc等,一般来讲rpc比http和webservice性能高一些,常见的RPC框架有:thrift,Finagl ...