K-means算法

article/2025/9/14 8:02:05

目录

  • 算法概述
  • 算法原理
  • 算法推导
  • 算法流程
  • K值的确定

算法概述

K-means算法也称为K_均值算法,用于聚类算法。聚类是一种无监督学习,他将相似的对象归于一个簇中,簇中心通过簇中所有点的均值来计算。聚类算法与分类算法的主要区别就是分类的目标类别已知,而聚类的目标类别未知。

簇:所有数据点的点集合,簇中的对象是相似的

质心:簇中所有点的中心(由簇中所有点的均值求得)

SSE:Sum of Sqared Error 平方误差和,SSE越小表示越接近质心

算法原理

误差平方和SSE用来衡量K-means算法的好坏 S S E = ∑ i = 1 k ∑ X ∈ C i ( C i − X ) 2 SSE=\begin{matrix} \sum_{i=1}^k \end{matrix}\begin{matrix} \sum_{X \in C_i}(C_i-X)^2\end{matrix} SSE=i=1kXCi(CiX)2C为聚类中心,X为簇中数据点 ∂ S S E ∂ C k = ∂ ∂ C k ∑ i = 1 k ∑ X ∈ C i ( C i − X ) 2 \frac{\partial SSE}{\partial C_k}=\frac{\partial }{\partial C_k}\begin{matrix} \sum_{i=1}^k \end{matrix}\begin{matrix} \sum_{X \in C_i}(C_i-X)^2\end{matrix} CkSSE=Cki=1kXCi(CiX)2 = ∑ i = 1 k ∑ X ∈ C i ∂ ∂ C k ( C i − X ) 2 =\begin{matrix} \sum_{i=1}^k \end{matrix}\begin{matrix} \sum_{X \in C_i}\end{matrix}\frac{\partial }{\partial C_k}(C_i-X)^2 =i=1kXCiCk(CiX)2 = ∑ X ∈ C i 2 ( C i − X ) =\begin{matrix} \sum_{X \in C_i}\end{matrix}2(C_i-X) =XCi2(CiX) ∑ X ∈ C i 2 ( C i − X ) = 0 \begin{matrix} \sum_{X \in C_i}\end{matrix}2(C_i-X)=0 XCi2(CiX)=0,得: m i C i = ∑ X ∈ C i X m_iC_i=\begin{matrix} \sum_{X \in C_i}\end{matrix}X miCi=XCiX C i = 1 m i ∑ X ∈ C i X C_i=\frac{1}{m_i}\begin{matrix} \sum_{X \in C_i}\end{matrix}X Ci=mi1XCiX
由推导可以看出,当质心为簇中数据均值时,SSE最小

算法推导

在这里插入图片描述
在这里插入图片描述

算法流程

1、随机给出k个初始聚类中心
2、repeat:
把每一个数据对象重新分配到k个聚类中心处,形成k个簇 重新计算每一个簇的聚类中心
3、until 聚类中心不在发生变化(簇内样本点不改变)
在这里插入图片描述

K值的确定

1.手肘法
随着聚类数k的增大,样本划分的更加精细,那么平方误差和SSE会逐渐变小 S S E = ∑ i = 1 k ∑ X ∈ C i ( C i − X ) 2 SSE=\begin{matrix} \sum_{i=1}^k \end{matrix}\begin{matrix} \sum_{X \in C_i}(C_i-X)^2\end{matrix} SSE=i=1kXCi(CiX)2
但K值太大聚类的效果不怎好,SSE的下降也逐渐变小特点当K值小于真实聚类数时,K值的增大对聚类效果产生的影响很大,SSE的下降幅度也很大;
当K值大于真实聚类数时,K值的增大对聚类效果产生的影响很小,SSE的下降幅度也很小;
呈现出来的图像是先下降的很快,后平缓,在其邻接的地方图像上呈现为手肘状,因此形象的称其为手肘法。
在这里插入图片描述

初始化质心
随机初始化质心可能导致算法的迭代次数增加,K-means++是对K-means随机选取质心的一个优化具体步骤如下:
1.随机选取一个点作为第一个聚类的中心
2.计算所有样本与第一个聚类中心的距离
3.选择上一步中距离最大的点作为第二个聚类中心
4.迭代:计算所有点到与之最近的聚类中心的距离,选取最大距离的点作为新的聚类中心
5.直到选出来这K个点,结束迭代

k-means算法不会陷入一直改变质心的循环之中,最终的质心一定是确定的

http://chatgpt.dhexx.cn/article/pGIwWyrO.shtml

相关文章

Warshall 算法

Warshall算法 介绍: Warshall在1962年提出了一个求关系的传递闭包的有效算法。其具体过程如下: N—S图 代码实现: import java.util.Scanner;public class Warshall {public static void main(String[] args) {System.out.println("…

基于BINN算法的CCPP全路径覆盖算法

1.CCPP整体算法文档 1.1 ccpp基础介绍 全路径覆盖算法(CCPP: Complete Coverage Path Planning)作为扫地机器人较为关键的组成部分,其问题的本质是:在栅格地图中,全覆盖路径规划问题就演变为寻找机器人的下一个移动位置,只有准确…

差分进化算法

文章目录 前言一、差分进化算法描述二、差分进化算法流程1.初始化2.变异3.交叉4.选择5。终结条件 2.流程图 总结 前言 差分进化算法(Differential Evolution Algorithm,DE)是一种高效的全局优化算法。它也是基于群体的启发式搜索算法,群中的每个个体对应…

进化算法简单介绍

进化算法又称启发式算法,是利用经验法则或者常识来解决问题的方法。 图片来自参考文献(1)。 1. 元启发式算法和启发式算法有什么区别? 启发式策略(heuristic) 启发式算法(Heuristic Algorigthm)是一种基于…

EM算法

一、EM算法介绍 我们经常会从样本观察数据中,找出样本的模型参数。 最常用的方法就是极大化模型分布的对数似然函数。(最大似然估计:利用已知的样本结果,反推最有可能导致这样结果的一组参数)但是在一些情况下&#x…

TDOA算法

1.TDOA: TDOA:全称为Time Difference Of Arrival 到达时间差 距离差时间差*电磁波速度 TA-TBCONSTANT 2:TDOA定位基本原理 通过测量无线电信号到达不用监测地点的天线单元时间差,来对发射无线电信号的发射源进行定位 TDOA定位流程 从监测站将…

SM2算法概述

2021SCSDUSC SM2算法概述 SM2椭圆曲线公钥密码算法是我国自主设计的公钥密码算法,包括SM2-1椭圆曲线数字签名算法,SM2-2椭圆曲线密钥交换协议,SM2-3椭圆曲线公钥加密算法,分别用于实现数字签名密钥协商和数据加密等功能。 SM2标…

银行家算法

一 银行家算法作用&#xff1a; 动态防止进程死锁的算法 二 银行家算法步骤 第一步 判断是否存在一个安全序列&#xff0c;若存在一个安全序列则系统为安全的。 第二步1请求资源 判断 Request < Need Request < Available 第三步 假定可以分配资源 并修改 Availabl…

Newton牛顿法(一)| 基本思想+迭代公式

基本思想与迭代公式 通常对已知方程 f ( x ) 0 f(x)0 f(x)0进行变形而构造的迭代函数 φ ( x ) \varphi(x) φ(x)不是惟一的。在实际作用中&#xff0c;如果希望迭代函数 φ ( x ) \varphi(x) φ(x)有一种固定格式的构造方法&#xff0c;就可以采用Newton迭代法。 Newton迭代…

理解牛顿法

原创声明:本文为 SIGAI 原创文章,仅供个人学习使用,未经允许,不能用于商业目的。 其它机器学习、深度学习算法的全面系统讲解可以阅读《机器学习-原理、算法与应用》,清华大学出版社,雷明著,由SIGAI公众号作者倾力打造。 书的购买链接书的勘误,优化,源代码资源导言 …

机器学习——牛顿法详解

我们现在学习的机器学习算法&#xff0c;大部分算法的本质都是建立优化模型&#xff0c;通过特定的最优化算法对目标函数&#xff08;或损失函数&#xff09;进行优化&#xff0c;通过训练集和测试集选择出最好的模型&#xff0c;所以&#xff0c;选择合适的最优化算法是非常重…

牛顿法的简单介绍及Matlab实现

目录 牛顿法原理简介使用牛顿法求解一元方程使用牛顿法求解平面定位问题参考文献 牛顿法原理简介 牛顿法的原理是利用函数 f ( x ) f(x) f(x) 的泰勒级数的前几项来寻找方程 f ( x ) 0 f(x)0 f(x)0 的根。 f ( x ) f(x) f(x)在 x 0 x_0 x0​处的一阶泰勒展开 f ( x ) f ( x…

牛顿法介绍

目录 牛顿法介绍推导海森矩阵、泰勒公式、梯度下降法牛顿法特点 牛顿法介绍 首先牛顿法是求解函数值为0时的自变量取值的方法。如果你看不懂这句没关系&#xff0c;继续往下看就好。利用牛顿法求解目标函数的最小值其实是转化成求使目标函数的一阶导为0的参数值。这一转换的理…

牛顿法,障碍法,内点法

基于对数障碍函数法的内点法 牛顿法&#xff08;Newton Method&#xff09;对数障碍函数方法一个简单的例子python代码 牛顿法&#xff08;Newton Method&#xff09; 牛顿法与梯度下降法&#xff0c;最速下降法等优化算法类似&#xff0c;是基于梯度的方法。给定一个二次可微的…

牛顿法python 实现

有用请点赞&#xff0c;没用请差评。 欢迎分享本文&#xff0c;转载请保留出处。 牛顿法也是求解无约束最优化问题的常用方法&#xff0c;有收敛速度快的优点。牛顿法是迭代算法&#xff0c;每一步需要求解目标函数的海赛矩阵的逆矩阵。同时还有拟牛顿法、阻尼牛顿法、修正牛顿…

牛顿法及牛顿法求解优化问题

牛顿法及牛顿法求解优化问题 牛顿法 1. 由来和基本思想 牛顿法也叫牛顿迭代法和牛顿-拉夫森法 1. 牛顿迭代法&#xff1a;因为牛顿法的是通过迭代来实现的&#xff0c;每次运算都让结果比之前好一点。哪怕只好一点点&#xff0c;在很多次迭代之后也可以得到一个很好的结果甚…

最优化-牛顿法(Newton)

转&#xff1a;https://blog.csdn.net/qq_36330643/article/details/78003952 平时经常看到牛顿法怎样怎样&#xff0c;一直不得要领&#xff0c;今天下午查了一下维基百科&#xff0c;写写我的认识&#xff0c;很多地方是直观理解&#xff0c;并没有严谨的证明。在我看来&…

高斯牛顿法详解

一、高斯牛顿法发展历程 1、从上倒下为高斯牛顿法的前世今生已经未来的演化&#xff1a; 最速下降法&#xff08;一阶梯度法&#xff09; 牛顿法&#xff08;二阶梯度法&#xff09; 高斯牛顿法 列文伯格法 马夸尔特法 二、问题的引出 1、考虑如下优化目标函数&#xff1a;…

牛顿法,高斯-牛顿法

牛顿法&#xff08;Newton’s method&#xff09; 假如已知函数 f ( x ) f(x) f(x)&#xff0c;想要求 f ( x ) 0 f(x)0 f(x)0 的解&#xff08;或者叫根&#xff09;。 牛顿法&#xff08;Newton’s method&#xff09;大致的思想是&#xff1a; &#xff08;1&#xff0…

优化算法——牛顿法(Newton Method)

一、牛顿法概述 除了前面说的梯度下降法&#xff0c;牛顿法也是机器学习中用的比较多的一种优化算法。牛顿法的基本思想是利用迭代点 处的一阶导数(梯度)和二阶导数(Hessen矩阵)对目标函数进行二次函数近似&#xff0c;然后把二次模型的极小点作为新的迭代点&#xff0c;并不断…