作为一种无监督数据分析技术,聚类算法不需要提供导师信息,通过数据间的统计相关特性,采用迭代等方法实现相比不同cluster内部数据点间的相似程度,相同cluster数据点之间的相似性更高。

作为最传统的聚类算法,k-means试图迭代计算一组聚类中心,使得在欧氏距离下,所有数据点到各自所在cluster的聚类中心的距离和最小,也就是使得within-cluster scatter matrix的trace最小,详细说明如下(由于不能使用公式编辑器,下文中公式看起来比较费劲,还请谅解哦)。

其中within-cluster scatter matrix如下定义:

Sw = sum(Si),i = 1,2,K,其中K为cluster的个数,Si是每个cluster的scatter matrix,如下:

Si = sum((x-mi)(x-mi)')(对所有x求和), x是第i个cluster中的数据点,(x-mi)'表示(x-mi)的转置,mi为第i个cluster的均值。

又有:total scatter matix St = sum((x-m)(x-m)')(对所有x求和),x是数据集中X的数据点,m是所有数据点均值,即 m = sum(x)/n (对所有x求和)= sum(ni*mi)/n(对所有cluster求和),其中ni表示第i个cluster中数据点个数。

between-cluster matrix Sb = sum(ni*(mi-m)(mi-m)')(对所有cluster求和)。

且有 St = Sw + Sb,由于St与数据的partition无关,即无论最终cluster如何划分,只要给定数据集,则St是常数,从而,最小化within-cluster scatter 和 最大化 between-cluster scatter是一致的。

Sw是向量的外积,即是一个矩阵,对于n个m维向量的数据集,其Sw大小应为m*m,即是一个方阵。对于矩阵无法比较大小,所以需引入一种标量测度,用于描述散度矩阵的“尺度”。主要有2种测度,即矩阵的迹或者行列式。其中散度矩阵的迹用于描述散度矩阵的散射半径的平方,散度矩阵的行列式用于描述散度矩阵的散射体积(可见其实两者是非常近似的,为了使得同一个cluster数据点越紧凑,则要求上述迹或者行列式要越小)

定义Sw的迹:tr[Sw] = sum(tr[Si]) = sum(sum(x-mi)^2)(2层sum分别对应对应对所有cluster求和,和对每个cluster中的数据与当前cluster的均值之间的欧氏距离求和)。

使得上述tr[Sw]最小,即要求 Je = sum(sum(x-mi)^2)最小,最小化Je即最小化均方误差和,可见min(tr[Sw])和min(Je)从原理上将其实是一样的。

对于非奇异的Sw,定义Jd = |Sw| = |sum(Si)|,最小化Jd的partition与最小化Je的partition其实是类似的,但是不需要完全相同。

至此说明了k-means的目标函数与最小化within-cluster scatter 是一致的。最终k-means迭代计算的cluster center即每个cluter各自的均值。

聚类(1)-- k-means clustering相关推荐

  1. k均值聚类算法(K Means)及其实战案例

    算法说明 K均值聚类算法其实就是根据距离来看属性,近朱者赤近墨者黑.其中K表示要聚类的数量,就是说样本要被划分成几个类别.而均值则是因为需要求得每个类别的中心点,比如一维样本的中心点一般就是求这些样本 ...

  2. 文献记录(part89)--I-k-means-+:An iterative clustering algorithm based on an enhanced k -means

    学习笔记,仅供参考,有错必究 关键词:k均值:解决方案改进:准确的k均值:迭代改进 I-k-means-+:An iterative clustering algorithm based on an ...

  3. OpenCV的k - means聚类 -对图片进行颜色量化

    OpenCV的k - means聚类 目标 学习使用cv2.kmeans()数据聚类函数OpenCV 理解参数 输入参数 样品:它应该的np.float32数据类型,每个特性应该被放在一个单独的列. ...

  4. OpenCV官方文档 理解k - means聚类

    理解k - means聚类 目标 在这一章中,我们将了解k - means聚类的概念,它是如何工作等. 理论 我们将这个处理是常用的一个例子. t恤尺寸问题 考虑一个公司要发布一个新模型的t恤. 显然 ...

  5. kmeans改进 matlab,基于距离函数的改进k―means 算法

    摘要:聚类算法在自然科学和和社会科学中都有很普遍的应用,而K-means算法是聚类算法中经典的划分方法之一.但如果数据集内相邻的簇之间离散度相差较大,或者是属性分布区间相差较大,则算法的聚类效果十分有 ...

  6. 为了联盟还是为了部落 | K means

    1. 问题 人类有个很有趣的现象,一群人在一起,过一段时间就会自发的形成一个个的小团体.好像我们很擅长寻找和自己气质接近的同类.其实不只是人类,数据也有类似情况,这就是聚类(Clustering)的意 ...

  7. K means 图片压缩

    k-means的基本原理较为清晰,这里不多赘述,本次博客主要通过基础的k means算法进行图像的压缩处理. 原理分析 在彩色图像中,每个像素的大小为3字节(RGB),可以表示的颜色总数为256 * ...

  8. 模糊C聚类(Fuzzy C-means Clustering, FCM)

    文章目录 模糊C聚类(Fuzzy C-means Clustering, FCM) 1. 思想 2. 说明 3. 推导 3.1 初始条件 3.2 目标函数 3.3 最优化求解 3.4 问题解决 4. ...

  9. 浅谈模糊C均值聚类(Fuzzy C-means Clustering)

    浅谈模糊C均值聚类(Fuzzy C-means Clustering) 定义:模糊c-均值聚类算法 fuzzy c-means algorithm (FCMA)或称( FCM).在众多模糊聚类算法中, ...

  10. R构建层次聚类模型(Hierarchical Clustering)

    R构建层次聚类模型(Hierarchical Clustering) 目录 R构建层次聚类模型(Hierarchical Clustering) 聚类 什么是层次聚类?

最新文章

  1. python爬虫模块_python实现爬虫的模块总结
  2. 自定义EventSource(三)IncrementingEventCounter
  3. linux网络编程之用socket实现简单客户端和服务端的通信(基于UDP)
  4. 160 - 7 aLoNg3x.2
  5. php中ajax方法的理解,基本的PHP和AJAX
  6. Python:int,float,str之间的转换
  7. C# Winform DataGridview 实现行号倒序
  8. 《Effective C++》:条款46-条款47
  9. WTL学习笔记(5)系统皮肤管理
  10. 汇编语言程序设计(一)
  11. Linux centos7系统下JBoss7.1的部署安装
  12. 基于JAVA的教务排课系统毕业设计
  13. linux+ipv6免流量下载,如何限定apt-get使用IPv4或IPv6协议下载
  14. 数据结构算法——1097. Hub Connection plan
  15. Mongodb: Sort operation used more than the maximum 33554432 bytes of RAM
  16. spark.yarn.archive spark.yarn.jars
  17. vivo在CES上展示的屏下指纹识别,能打败苹果的Face ID吗?
  18. 《老鹰抓小鸡》将代表中国动画电影走出国门,走向世界,yyds❤
  19. Spring-Redis实现分布式环境下主子域名Session共享
  20. 微信公众平台昵称乱码emoji表情

热门文章

  1. Web1.0、Web2.0、Web3.0的主要区别
  2. Apache Camel系列(3)----Redis组件
  3. BackBone及其实例探究
  4. GestureDetector类的用法
  5. 鼠标经过背景图片变换
  6. 《剑指offer》第五十六题(数组中唯一只出现一次的数字)
  7. python selenium 元素定位总结(转载)
  8. centos 7 yum命令安装 Nginx、PHP 7、MySQL 57 、redis
  9. 利用python自动发邮件
  10. 由于Web服务器上的“ISAPI 和 CGI 限制”列表设置,无法提供您请求的页面(http error 404.2、iis、0x800704ec)...