KMeans算法流程

article/2025/11/7 14:33:57

一、什么是簇?

我们知道聚类就是让机器把数据集中的样本按照特征的性质分组,直观上来看,簇是一组一组聚集在一起的数据,在 一个簇 中的数据就认为是 同一类 ,簇就是聚类的结果表现。实际上簇并没有明确的定义,并且簇的划分没有客观标准,我们可以利用下图来理解什么是簇。该图显示了20个点和将它们划分成簇的3种不同方法,标记的形状(口、△、☆等)表示簇的隶属关系。

图中分别将数据划分成两个簇、四个簇和六个簇。直观地看,将图b的2个较大的簇再划分成4个簇好像也不无道理,这可能是人的视觉系统造成的假象。

该图表明簇的定义是不精确的,而最好的定义依赖于数据的特性和期望的结果。

二、什么是质心?

簇中所有 数据的均值 通常被称为这个 簇的“质心”( centroids) 。在一个二维平面中,一簇数据点的质心的横坐标就是这一簇数据点的横坐标的均值,质心的纵坐标就是这一簇数据点的纵坐标的均值。同理可推广至高维空间。
一、KMeans算法原理

KMeans算法作为聚类算法的典型代表,那它是怎么完成聚类的呢?
在 KMeans 算法中, 簇的个数用k表示,k是一个超参数,需要我们人为输入来确定。 Kmeans 的核心任务就是根据我们设定好的 k ,找出 k个最优的质心,并将离这些质心最近的数据分别分配到这些质心代表的簇中去。

二、KMeans算法流程

(1)首先设置参数k, k的含义为将数据聚合成几类(这里取k=3);
(2)从数据当中,随机的选择三(k)个点,成为聚类初始中心点;(图中初始三个中心点用蓝色、红色和黄色标记)

在这里插入图片描述
(3)计算所有其他点到这三(k)个点的距离, 然后找出离每个数据点最近的中心点, 将该点划分到这个中心点所代表的的簇当中去。那么所有点都会被划分到三(k)个簇当中去。

在这里插入图片描述
(4)重新计算三个簇的质心,作为下一次聚类的中心点;
在这里插入图片描述
(5)重复上面的3-4步的过程,重新进行聚类,不断迭代重复这个过程。
(6)停止条件:
第一种:当重新聚类后,所有样本点归属类别都没有发生变化的时候。
第二种:当迭代次数达到规定的最大次数时,也会停止。

在什么情况下,质心的位置会不再变化呢?

引言: 在上节介绍KMeans算法流程中,我们简单介绍了聚类停止的条件,其中簇不再发生变化的条件,本质上是指簇的质心位置不再发生改变。为什么呢?

因为:在我们找质心的过程中,当每次迭代中被分配到这个质心上的样本都是一致时,也就是说:每次新生成的簇都是一致的,所有的样本点都不会再从一个簇转移到另一个簇,质心就不会变化了。
接下来,我们以可视化的形式详细讨论质心的位置的变化情况。
质心位置变化的可视化展示过程

上面论述的过程,我们可以由下图来显示:我们规定,将数据分为 4 簇(k=4),其中白色 X 代表质心的位置,每个颜色块代表着围绕着质心所形成的簇。在这里插入图片描述
在这里插入图片描述
注:灰色箭头表示质心的变化情况
在数据集下多次迭代(iteration),就会有:
在这里插入图片描述
第六次迭代之后,基本上质心的位置就不再改变了,生成的簇也变得稳定。此时我们的聚类就完成了。


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

相关文章

HZNUCTF MISC Snake题解——python程序逆向,hashcat爆破sha256

目录 一.Dump得到pyc文件 二.pyc反编译得到py源码 三.分析程序逻辑 四.hashcat爆破 题目附件链接:https://pan.baidu.com/s/1CcS8BPGx8fKnsJgRvEi0bA?pwdt2yj 提取码:t2yj 一.Dump得到pyc文件 使用命令:python pyinstxtractor.py snake.exe 二.p…

DeepSnake实现实例分割

文章目录 简介:环境配置Demo实现全文总结参考文献 简介: DeepSnake(Deep Snake for Real-Time Instance Segmentation)作为CVPR 2020 oral论文,在实例分割任务上取得了实时分割效果的同时,还保持着非常不错的性能,该论…

【主动轮廓模型(二)】《GVF Snake》算法原理与OpenCV实现

文章目录 1 问题引入1.1 传统Snake模型的缺陷1.2 亥姆霍兹定理(Helmholtz theorem) 2 GVF Snake2.1 边缘图(Edge Map)2.2 梯度矢量流(Gradient Vector Flow,GVF)2.3 数值求解方法 3 OpenCV实现 …

用于实时实例分割的Deep Snake算法

第一部分:创新及其优点 第二部分:算法原理 第三部分:实验过程 第四部分:程序逻辑 1 创新及其优点 Deep Snake算法建立在传统Snake算法的基础上,将snake算法做成了轮廓结构化特征学习的方法,使用了循环卷积…

KMeans 算法(一)

K-means算法简述 K-means算法,也称为K-平均或者K-均值,一般作为掌握聚类算法的第一个算法。这里的K为常数,需事先设定,通俗地说该算法是将没有标注的 M 个样本通过迭代的方式聚集成K个簇。在对样本进行聚集的过程往往是以样本之间…

选择性搜索算法(Selective Search )——SS算法

文章目录 一、前言二、object Detection VS object Recognition(Selective Search的提出)2.1object recognition与object detection的关系2.2滑动窗口方法的局限性2.3Selective search算法的提出 三、Selective Search算法3.1什么是Selective Search&…

主动轮廓模型——Snake分割算法(MATLAB)

学习图像分割算法,在网上找到的关于主动轮廓模型的实现代码,自己简化总结了一下,在这里和大家分享,欢迎提问 snake是一种能量最小的曲线,表示为v(s) (x(s), y(s)), s为归一化的曲线长度,s∈[0, 1]。 能量…

麻雀搜索算法(Sparrow Search Algorithm,SSA)

文章目录 1 算法思想2 算法步骤3 求解函数最值(Python实现)4 算法进阶直接改进SSA融合别的智能优化算法来改进SSASMA及其改进的应用 原论文: [1]薛建凯. 一种新型的群智能优化技术的研究与应用[D].东华大学,2020. 1 算法思想 借鉴生物行为&a…

CVPR2020分割算法Deep Snake的配置(Deep Snake for Real-Time Instance Segmentation)

这篇文章为分割提供了新思路,很有参考意义。 注:原代码的运行环境为Ubuntu,本文在Windows10系统下完成配置。 1、论文下载: Deep Snake for Real-Time Instance Segmentation [paper][code] 2、代码下载: https:/…

图像分割之(五)活动轮廓模型之Snake模型简介

图像分割之(五)活动轮廓模型之Snake模型简介 zouxy09qq.com http://blog.csdn.net/zouxy09 在“图像分割之(一)概述”中咱们简单了解了目前主流的图像分割方法。下面咱们主要学习下基于能量泛函的分割方法。这里学习下Snake模型…

麻雀搜索算法SSA(Sparrow Search algorithm)

文章目录 前言数学模型 前言 麻雀搜索算法是2020提出的一种新的优化算法,出自东华大学xue和shen的论文:A novel swarm intelligence optimization approach: sparrow search algorithm,本文的内容是基于该论文来写的。 数学模型 麻雀搜索算…

snake 模型

转自:https://blog.csdn.net/caoniyadeniniang/article/details/77803002 一、曲线演化理论 假设CC(p)是一条光滑封闭的曲线,P是任意的参数化变量,设K表示曲 率,T表示切线,N表示法线,则有如下关系存在&…

蛇优化算法(Snake Optimization,SO)(附Matlab代码,完整,免费)

蛇优化算法(Snake Optimization,SO)(附Matlab代码,完整,免费) 一、算法灵感二、算法介绍2.1 初始化2.2 划分种群2.3 定义温度和食物2.4 食物不足时(探索阶段)2.5 食物充足时(开发阶段)2.5.1 斗争…

snake模型求解

 snake 模型 一、曲线演化理论 假设CC(p)是一条光滑封闭的曲线,P是任意的参数化变量,设K表示曲 率,T表示切线,N表示法线,则有如下关系存在: 因为T和N是互相垂直的(如图所示)&am…

snake模型

1 能量泛函 在介绍snake模型的参考资料[1]中,提到能量泛函的概念,这里对此概念做一个总结。 参考资料[6]给出了泛函的定义: 简单的说, 泛函就是定义域是一个函数集,而值域是实数集或者实数集的一个子集。推广开来&…

Snake算法知识点记录

Snake算法 snake是一种主动轮廓模型,主动轮廓模型目前用到了2种:CV和snake。snake在逐步迭代优化过程的目标是能量函数最小化,snake的目标不像sobel、canny等找到整张图的轮廓。它只搜索你给出的初始轮廓附近,达到轮廓更精确的目…

snake模型简介

图像分割之(五)活动轮廓模型之Snake模型简介 zouxy09qq.com http://blog.csdn.net/zouxy09 在“图像分割之(一)概述”中咱们简单了解了目前主流的图像分割方法。下面咱们主要学习下基于能量泛函的分割方法。这里学习下Snake模型简…

蛇优化算法(Snake Optimizer)

生物学机理&#xff1a;来源于蛇的交配行为。如果温度较低&#xff0c;且食物可用&#xff0c;蛇的交配行为发生&#xff1b;否则蛇只会寻找食物&#xff08;食物量<0.25&#xff09;或吃现有的食物(T>0.6)。基于此&#xff0c;将考虑蛇优化算法的搜索过程分为两个阶段&a…

图像处理之图像分割(一)之活动轮廓模型:Snake算法简单梳理

图像处理之图像分割&#xff08;一&#xff09;之活动轮廓模型&#xff1a;Snake算法简单梳理 Snake算法&#xff0c;应该也可以翻译成蛇形算法&#xff0c;或者是包含曲折前进的意思。具体函数背景原理介绍参考&#xff1a;zouxy09&#xff0c;http://blog.csdn.net/zouxy09/a…

snake算法总结

snake是一种主动轮廓模型&#xff0c;笨妞对主动轮廓模型的理解&#xff1a;你先给它一个初始轮廓&#xff0c;模型以初始轮廓为基准逐步迭代&#xff0c;来改进图像的轮廓&#xff0c;使其更加精确。主动轮廓模型目前用到了2种&#xff1a;CV和snake。前者没有看算法内部的原理…