K-means算法

K-means算法

Lloyd k-means Algorithm

样本矩阵: X = [ x 1 , x 2 , . . . , x n ] ∈ R d × n X=[x_1,x_2,...,x_n] ∈R^{d×n} X=[x1,x2,...,xn]Rd×n,有n个 x i x_i xi每个 x i x_i xi是d维

簇集合: C = [ C 1 , C 2 , . . . , C c ] C=[C_1,C_2,...,C_c] C=[C1,C2,...,Cc],有c个簇集合

SSE:误差平方和,sum of the squared errors,要计算每个样本点和相应簇均值的误差平方和,即:

m i n M S S E = m i n C ∑ j = 1 c ∑ x i ∈ C j ∣ ∣ x i − m j ∣ ∣ 2 2 ( 1 ) C j 是 C 的第 j 个集合 ; m j 是矩阵 M ∈ R d × c 的第 j 列 , 表示第 c 个集合的均值 ; min_MSSE=min_C\sum_{j=1}^c\sum_{x_i∈C_j}||x_i-m_j||_2^2\ \ \ \ \ \ \ \ \ \ \ \ \ (1)\\ \\ C_j是C的第j个集合;\\ \\m_j是矩阵M∈R^{d×c}的第j列,表示第c个集合的均值;\\ minMSSE=minCj=1cxiCj∣∣ximj22             (1)CjC的第j个集合;mj是矩阵MRd×c的第j,表示第c个集合的均值;

将问题(1)重写:

m i n F ∈ I n d , M ∑ j = 1 c ∑ i = 1 n f i j ∣ ∣ x i − m j ∣ ∣ 2 2 ( 2 ) F ∈ R n × c 是指示矩阵, f i j ∈ { 0 , 1 } 是 F 的第 i 行 j 列的元素。 { f i j = 0 , 表示第 i 个样本不属于第 j 个簇 f i j = 1 , 表示第 i 个样本属于第 j 个簇 M 是簇中心矩阵 min_{F∈Ind,M}\sum_{j=1}^c\sum_{i=1}^n f_{ij}||x_i-m_j||_2^2\ \ \ \ \ \ \ \ \ \ \ \ \ (2)\\ \\ F∈R^{n×c}是指示矩阵,f_{ij}∈\{0,1\}是F的第i行j列的元素。\\ \\ \begin{cases} f_{ij}=0,表示第i个样本不属于第j个簇\\ f_{ij}=1,表示第i个样本属于第j个簇 \end{cases}\\ \\ M是簇中心矩阵 minFInd,Mj=1ci=1nfij∣∣ximj22             (2)FRn×c是指示矩阵,fij{0,1}F的第ij列的元素。{fij=0,表示第i个样本不属于第j个簇fij=1,表示第i个样本属于第j个簇M是簇中心矩阵

将问题(2)写成矩阵形式:
m i n F ∈ I n d , M ∣ ∣ X − M F ⊤ ∣ ∣ F 2 ( 3 ) 这里 : ∣ ∣ A ∣ ∣ F = ∑ i = 1 d ∑ j = 1 n a i j 2 = T r ( A ⊤ A ) min_{F∈Ind,M}||X-MF^\top||_F^2\ \ \ \ \ \ \ \ \ \ \ \ \ (3)\\ \\ 这里:\\ \\ ||A||_F=\sqrt{\sum_{i=1}^d \sum_{j=1}^n a_{ij}^2}=\sqrt{Tr(A^\top A)} minFInd,M∣∣XMFF2             (3)这里:∣∣AF=i=1dj=1naij2 =Tr(AA)
迭代更新M和F:

  • 当M固定,F的解为:

    • f i j = { 1 j = a r g m i n l ∣ ∣ x i − m l ∣ ∣ 2 2 ; 0 o t h e r w i s e f_{ij}=\begin{cases} 1\ \ j=arg\ min_l||x_i-m_l||_2^2;\\ \\ 0\ \ otherwise \end{cases} fij= 1  j=arg minl∣∣ximl22;0  otherwise
  • 当F固定,求解M可将问题(3)重写:

    • m i n F ∈ I n d , M = T r ( ( X − M F ⊤ ) ( X − M F ⊤ ) ⊤ ) ( 4 ) 对 M 求导 : d [ T r ( ( ( X − M F ⊤ ) ( X − M F ⊤ ) ⊤ ) ) ] = T r ( d [ ( X − M F ⊤ ) ( X − M F ⊤ ) ⊤ ] ) = T r ( d [ ( X − M F ⊤ ) ( X ⊤ − F M ⊤ ) ] ) = T r ( d ( X X ⊤ − X F M ⊤ − M F ⊤ X ⊤ + M F ⊤ F M ⊤ ) ) = T r ( − X F d M ⊤ − d M F ⊤ X ⊤ + d M F ⊤ F M ⊤ + M F ⊤ F d M ⊤ ) = T r ( − 2 F ⊤ X ⊤ d M ) + T r ( 2 F ⊤ F M ⊤ d M ) = T r ( ( 2 F ⊤ F M ⊤ − 2 F ⊤ X ⊤ ) d M ) = T r ( ( 2 M F ⊤ F − 2 X F ) ⊤ d M ) 故 ∂ T r ( ( X − M F ⊤ ) ( X − M F ⊤ ) ⊤ ) ∂ M = 2 M F ⊤ F − 2 X F 令 2 M F ⊤ F − 2 X F = 0 得 : M = X F ( F ⊤ F ) − 1 min_{F∈Ind,M}=Tr((X-MF^\top)(X-MF^\top)^\top)\ \ \ \ \ \ \ \ \ \ \ \ \ (4)\\ \\ 对M求导:\\ \\ d[Tr(((X-MF^\top)(X-MF^\top)^\top))]=Tr(d[(X-MF^\top)(X-MF^\top)^\top])\\ =Tr(d[(X-MF^\top)(X^\top -FM^\top)])\\ =Tr(d(XX^\top -XFM^\top - MF^\top X^\top +MF^\top FM^\top))\\ =Tr(-XFdM^\top -dMF^\top X^\top+dMF^\top FM^\top +MF^\top FdM^\top)\\ =Tr(-2F^\top X^\top dM)+Tr(2F^\top FM^\top dM)\\ =Tr((2F^\top FM^\top-2F^\top X^\top)dM)=Tr((2MF^\top F-2XF)^\top dM)\\ 故\frac{\partial Tr((X-MF^\top)(X-MF^\top)^\top)}{\partial M}=2MF^\top F-2XF\\ 令2MF^\top F-2XF=0得:\\ M=XF(F^\top F)^{-1} minFInd,M=Tr((XMF)(XMF))             (4)M求导:d[Tr(((XMF)(XMF)))]=Tr(d[(XMF)(XMF)])=Tr(d[(XMF)(XFM)])=Tr(d(XXXFMMFX+MFFM))=Tr(XFdMdMFX+dMFFM+MFFdM)=Tr(2FXdM)+Tr(2FFMdM)=Tr((2FFM2FX)dM)=Tr((2MFF2XF)dM)MTr((XMF)(XMF))=2MFF2XF2MFF2XF=0:M=XF(FF)1
 Lloyd k-means algorithm, the standard algorithm for minimizing problem (1) 1: Input data matrix X, cluster number c. 2: Initialize cluster centers mj(j = 1, 2, · · · , c) randomly. 3: repeat 4: Calculate indicator matrix F by Eq. (3); 5: Calculate center matrix M by Eq. (5). 6: until convergence 7: Output updated label matrix F.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/163935.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

自由飞翔之小鸟

一、创建文件、包、类、插入图片文件 二、app包 1、Gameapp类(运行游戏) package app;import main.GameFrame;public class Gameapp {public static void main(String[] args) {//游戏的入口new GameFrame();} } 三、main包 1、Barrier(障…

【实验】配置用户自动获取IPv6地址的案例

【赠送】IT技术视频教程,白拿不谢!思科、华为、红帽、数据库、云计算等等​编辑https://xmws-it.blog.csdn.net/article/details/117297837?spm1001.2014.3001.5502https://xmws-it.blog.csdn.net/article/details/117297837?spm1001.2014.3001.5502【…

Pyqt5 设置保存上一次结果(配置文件)

效果 每次打开Pyqt5打包后的程序,默认显示的是上一次的结果 例如下图的 文件路径、表名、类型等 大致的思路 Pyqt5自带的方法QSettings实现保存上一次的设置,其思路是读取ini文件,如果不存在就是程序的初始状态,如果存在则可以读取…

C++程序中dump文件生成方法详解

最近项目中新作成了一个动态链接库,长时间运行后,偶尔会崩溃。根据log分析,被调用的动态库函数最外层catch到了这个异常,但是不能定位哪里出了问题。另外虽然上层exe是有dump文件输出处理的,但是在C中,如果…

如何利用Python进行数据归一化?

1. 知识简介 数据归一化是数据预处理的一项重要步骤,它对于提高模型性能、加速模型训练、避免数值计算问题以及提高模型的泛化能力都具有重要作用。进行数据归一化可以起到以下作用:消除量纲影响,加速模型收敛,提高模型性能&…

硅谷大宽服务器:引领互联网新时代的核心技术

在当今这个信息爆炸的时代,数据已经成为了企业和个人的重要资产。服务器作为数据的存储和处理中心,其重要性不言而喻。硅谷大宽服务器以其卓越的性能、稳定的运行和优质的服务,赢得了全球众多企业和个人的信赖和选择。 硅谷大宽服务器的特点…

图解分库分表

中大型项目中,一旦遇到数据量比较大,小伙伴应该都知道就应该对数据进行拆分了。有垂直和水平两种。 垂直拆分比较简单,也就是本来一个数据库,数据量大之后,从业务角度进行拆分多个库。如下图,独立的拆分出…

Redisson分布式锁实现原理

Redisson主要解决一下问题 重入问题:重入问题是指 获得锁的线程可以再次进入到相同的锁的代码块中,可重入锁的意义在于防止死锁,比如HashTable这样的代码中,他的方法都是使用synchronized修饰的,假如他在一个方法内&a…

解决Spring Boot应用在Kubernetes上健康检查接口返回OUT_OF_SERVICE的问题

现象 在将Spring Boot应用部署到Kubernetes上时,健康检查接口/healthcheck返回的状态为{"status":"OUT_OF_SERVICE","groups":["liveness","readiness"]},而期望的是返回正常的健康状态。值得注意的…

VTK物体表面画贴合线条

1、自由画线 2、曲线拟合画线 3、三点闭合曲线

Docker Compose部署微服务项目实战讲解

一、Docker Compose简介 当需要在多个容器之间协调和管理应用程序时,Docker Compose是一个非常有用的工具。它允许通过一个配置文件来定义、配置和启动多个 Docker 容器,使得整个应用程序的部署变得更加简单和一致。以下是 Docker Compose 的一些重要概…

Linux使用宝塔面板+Discuz+cpolar内网穿透工具搭建可公网访问论坛

Linux宝塔面板搭建Discuz论坛, 并内网穿透实现公网访问 文章目录 Linux宝塔面板搭建Discuz论坛, 并内网穿透实现公网访问前言1.安装基础环境2.一键部署Discuz3.安装cpolar工具4.配置域名访问Discuz5.固定域名公网地址6.配置Discuz论坛 前言 Crossday Di…

【 图片加载】Vue前端各种图片引用

文章目录 一、图片作为js常量(常作为配置项的值 )1、在线链接2、本地图片 二、图片img标签1、一般的src2、动态的src用require3、src可以接收二进制文件blob(如后端返回的、a-upload传的图片) 三、背景图片 一、图片作为js常量(常…

8款那些年救过我的数据文件恢复软件 - 误删除重要文件的“后悔药”

无论您在保存备份方面多么小心,灾难有时还是会发生。有时您的备份软件无法按预期运行。 如果您的外部驱动器靠近您的设备,发生火灾/洪水/故障时,有时备份会与原始文件一起丢失。即使是云存储也不能避免故障。 还有一个事实是,我…

C++设计模式之工厂模式(上)——简单工厂模式

工厂模式 概述简单工厂模式介绍示例示例使用运行结果缺点 概述 工厂模式属于一种创建型设计模式。其可以分为简单工厂模式,工厂模式和抽象工厂模式。工厂模式分为上、中、下三篇,本篇主要介绍简单工厂模式。 简单工厂模式 介绍 简单工厂模式可以理解…

二叉树题目:具有所有最深结点的最小子树

文章目录 题目标题和出处难度题目描述要求示例数据范围 解法一思路和算法代码复杂度分析 解法二思路和算法代码复杂度分析 题目 标题和出处 标题:具有所有最深结点的最小子树 出处:865. 具有所有最深结点的最小子树 难度 5 级 题目描述 要求 给定…

HCIP-六、OSPF-2 综合实验

六、OSPF-2 综合实验 实验拓扑实验需求及解法1.设备名称和部分IP地址已配置2.所有设备运行OSPF,进程号为13.区域间路由汇总4.外部路由汇总5.下发默认路由6. 虚链路 实验拓扑 实验需求及解法 本实验模拟OSPF综合型网络,按照以下需求完成实验。 1.设备名…

EventLog Analyzer:强大的日志管理与分析工具

随着企业网络规模的扩大和信息系统的复杂化,安全日志管理和分析成为了至关重要的一环。在这个背景下,EventLog Analyzer崭露头角,成为一款备受推崇的日志管理与分析工具。本文将介绍EventLog Analyzer的主要特点、功能以及为企业带来的实际价…

IDEA安装教程

文章目录 1 下载IntelliJ IDEA2 安装3 IDEA配置4 创建项目 1 下载IntelliJ IDEA ​ 官方网站上下载最新版本的IntelliJ IDEA。官方网站提供了两个版本:Community版和Ultimate版。 Community版是免费的,适用于个人和非商业用途。Ultimate版则需要付费购…