K均值聚类算法

K均值聚类算法一 简介 K 均值聚类算法是先随机选取 K 个对象作为初始的聚类中心 然后计算每个对象与各个种子聚类中心之间的距离 把每个对象分配给距离它最近的聚类中心 聚类中心以及分配给它们的对象就代表一个聚类 每分配一个样本 聚类的聚类中心会根据聚类中现有的对象被重新计算 这个过程将不断重复直到满足某个终止条件 终止条件可以是没有 或最小数目 对象被重新分配给不同的聚类 没有 或最小数目 聚类中心再发生变化 误差平

一、简介
K均值聚类算法是先随机选取K个对象作为初始的聚类中心。然后计算每个对象与各个种子聚类中心之间的距离,把每个对象分配给距离它最近的聚类中心。聚类中心以及分配给它们的对象就代表一个聚类。每分配一个样本,聚类的聚类中心会根据聚类中现有的对象被重新计算。这个过程将不断重复直到满足某个终止条件。终止条件可以是没有(或最小数目)对象被重新分配给不同的聚类,没有(或最小数目)聚类中心再发生变化,误差平方和局部最小。
二、名词解析
聚类:“类”指的是具有相似性的集合。聚类是指将数据集划分为若干类,使得类内之间的数据最为相似,各类之间的数据相似度差别尽可能大。
欧氏距离:欧几里得度量(euclidean metric)(也称欧氏距离)是一个通常采用的距离定义,指在m维空间中两个点之间的真实距离,或者向量的自然长度(即该点到原点的距离)。在二维和三维空间中的欧氏距离就是两点之间的实际距离。



三、具体步骤

  1. 选取数据空间中的K个对象作为初始中心,每个对象代表一个聚类中心;
    2.计算样本中的数据与这些聚类中心的欧氏距离,按最近原则将这些数据分到距离它们最近的聚类中心所对应的类;
    3.将每个类别中所有对象所对应的均值作为该类别的聚类中心,计算目标函数的值;
    4.判断聚类中心和目标函数的值是否发生改变,若不变,则输出结果,若改变,则用得到的新的聚类中心重新执行第二步。


四、优缺点
优点
(1)算法原理简单。需要调节的超参数就是一个k。
(2)由具有出色的速度和良好的可扩展性。
缺点:
(1)K值选取困难
(2)需要根据初始聚类中心来确定一个初始划分,然后对初始划分进行优化。这个初始聚类中心的选择对聚类结果有较大的影响,一旦初始值选择的不好,可能无法得到有效的聚类结果。
(3)该算法需要不断地对数据样本进行聚类,不断地计算调整后的新的聚类中心,所以数据的时间是非常长的,应该对算法的时间复杂度进行分析、改进,提高算法应用范围。






版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/205729.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月19日 下午5:20
下一篇 2026年3月19日 下午5:20


相关推荐

  • tp5 上传视频到七牛云

    tp5 上传视频到七牛云

    2021年10月28日
    60
  • request.getParameterValues与request.getParameter的区别

    request.getParameterValues与request.getParameter的区别一、简单的对比request.getParameter用的比较多,相对熟悉  request.getParameterValues(String  name)是获得如checkbox类(名字相同,但值有多个)的数据。  接收数组变量,如checkobx类型    request.getParameter(String  name)是获得相应名的数据,

    2022年7月22日
    9
  • 中标麒麟配置本地yum源_优麒麟系统安装

    中标麒麟配置本地yum源_优麒麟系统安装在linux系统上,解决软件包之间的依赖关系是很重要的事。很多工作无法实现可能就是因为缺少一个软件包,而当你千方百计找到这个软件包的时候,却发现它跟当前系统不兼容。所以,要做的非常重要的一件事情就是给系统添加软件仓库,以确保能安装使用大部分软件包。(亲测)建议看完文章再动手配置实验环境:[1-06@localhostDesktop]$uname-aLinuxlocalh…

    2022年8月10日
    161
  • css清除浮动的五种方法图片_万能清除浮动法

    css清除浮动的五种方法图片_万能清除浮动法css清除浮动有哪五种方法呢?如何使用他们呢

    2025年6月6日
    6
  • jquery-uploadfile的使用「建议收藏」

    jquery-uploadfile的使用「建议收藏」jQueryFileUpload是一个Jquery文件上传组件,支持多文件上传、取消、删除,上传前缩略图预览、列表显示图片大小,支持上传进度条显示;支持各种动态语言开发的服务器端。官网链接:点击打开链接特点:拖放支持;上传进度条;图像预览;可定制和可扩展的;兼容任何服务器端应用平台(PHP,Python,RubyonRails,Java,Node.js,Goetc.)。使用方…

    2022年6月15日
    72
  • php多线程webservice,PHP有适用于高并发的WebService框架嘛?[通俗易懂]

    php多线程webservice,PHP有适用于高并发的WebService框架嘛?[通俗易懂]现在的nodejs项目很火,ruby语言也出现了像sinatra,Padrino之类的webservice框架,PHP语言有没有类似的框架啊?回复内容:现在的nodejs项目很火,ruby语言也出现了像sinatra,Padrino之类的webservice框架,PHP语言有没有类似的框架啊?swoole_framework可以试试http://www.slimframework.com/与si…

    2026年2月7日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号