K-means聚类算法

目录

K-means聚类算法

1.聚类算法

2.分析

2.1、原理

2.2、算法步骤

3、优点

4、缺点

5、解决


1.聚类算法

聚类分析又称群分析,它是研究(样品或指标)分类问题的一种统计分析方法,同时也是数据挖掘的一个重要算法。聚类分析以相似性为基础,它是将抽象的集合划分出成为类似对象组成的的对象类(即簇)的一个过程,在一个聚类中的模式之间比不在同一聚类中的模式之间具有更多的相似性,也就是同一个簇中的对象相似,不同簇中的对象相异。通俗的说就是“物以类聚,人以群分”。

聚类是根据一定的聚类规则将拥有相同特征或相似特征的数据聚在一起,聚类算法用来确定样本标记。

聚类和分类的区别:聚类涉及的数据集合其特征是未知的,在开始聚类前,用户也不知道要把数据划分成几类,不清楚分组的标准,是一种无监督分类;而分类是典型的有监督学习,分类的实例或者数据对象有类别标记,用户刚开始就知道数据对象会被分成几类,将要处理的数据分入不同类别。

2.分析

2.1、原理

k-means全称k-means clustering algorithm,也叫K均值算法,是一种迭代求解的聚类分析算法,所以也叫K-means聚类算法(K均值聚类算法)。先随机选取K个对象作为初始的聚类中心,然后计算每个对象与各个种子聚类中心之间的距离,把每个对象分配给距离它最近的聚类中心。聚类中心以及分配给它们的对象就代表一个聚类,每分配一个样本,聚类的聚类中心会根据聚类中现有的对象被重新计算。这个过程将不断重复直到满足某个终止条件。终止条件可以是没有(或最小数目)对象被重新分配给不同的聚类,没有(或最小数目)聚类中心再发生变化,误差平方和局部最小。

K-means聚类算法是一种动态聚类算法,也被称作逐步聚类算法,主要就是迭代,每次考察每个样本数据的分类是否正确,若不正确就要进行调整,在全部的样本都调整完后,再修改聚类中心,进入下一次迭代。如果再一次迭代算法中,所有的样本被正确分类,则不会有调整,聚类中心也不会有任何变化,则标志着开始收敛,算法结束。

2.2、算法步骤

输入:初始数据集和簇的数目k
输出:k个簇,满足平方误差准则函数收敛
任意选择k个数据对象作为初始聚类中心

for(准则函数E值不再进行变化)

{
           根据簇中对象的平均值,将每个对象赋给最类似的簇
           更新簇的平均值,即计算每个对象族中对象的平均值
           计算聚类准则函数E
}

类似于下图:

计算距离公式(欧式距离公式):

误差平方和准则函数公式:    

3、优点

算法简单,易于实现,易于扩展,处理快速,并且能够处理大数据集,是一种应用广泛的基于启发式的划分方法。

4、缺点

K-means聚类算法是一个NP问题(难解的非指数问题),即问题的复杂度随着比特位数的增长而指数上升。

1.需要预先设定k值大小,不同的k值对聚类分析的效率和结果有很大的影响,但是很多时候很难确定一个最为合适的k值;

2.算法对于初始值具有依赖性,不同的聚类初始中心值,往往会有不同的聚类结果,而随机选择的初始中心点可能导致聚类结果有很大的随机性,也一定能够程度上影响了迭代次数;

3.对异常偏离的数据敏感,实际应用中往往会存在很多孤立点和噪声点,它们远离数据密集区具有低参考价值,导致计算出的聚类中心偏离主数据区域;

4.算法需要不断地进行样本分类调整,而大量的迭代运算,不断调整当前的聚类中心,导致算法产生非常大的时间开销;

5.只擅长处理球状分布的数据。

5、解决

K-medoids算法降低了K-means算法对孤立点的敏感度,不再采用簇中对象的均值作为初始聚类中心,而是在每个簇中选取一个实际对象代表该簇,然后计算剩余对象与代表对象的距离,将其分配到距离最近的簇中,以此改进聚类结果。因此K-medoids算法比K-means算法能得到更好的聚类结果。

人工智能1—K-means聚类算法相关推荐

  1. k means聚类算法_一文读懂K-means聚类算法

    1.引言 什么是聚类?我们通常说,机器学习任务可以分为两类,一类是监督学习,一类是无监督学习.监督学习:训练集有明确标签,监督学习就是寻找问题(又称输入.特征.自变量)与标签(又称输出.目标.因变量) ...

  2. k means聚类算法_K-Means 聚类算法 20210108

    说到聚类,应先理解聚类和分类的区别 聚类和分类最大的不同在于:分类的目标是事先已知的,而聚类则不一样,聚类事先不知道目标变量是什么,类别没有像分类那样被预先定义出来. K-Means 聚类算法有很多种 ...

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

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

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

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

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

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

  6. K-Means(K均值聚类算法)

    K-Means(K均值聚类算法) 1.前言 要学习聚类算法就要知道聚类学习算法是什么,为什么要学习聚类学习聚类学习算法,有什么用途,下面就简单的做一下介绍,并且详细的说明k-means均值聚类学习算法 ...

  7. k均值聚类算法python_K均值和其他聚类算法:Python快速入门

    k均值聚类算法python This post was originally published here 这篇文章最初发表在这里 Clustering is the grouping of obje ...

  8. 机器学习实战-61:K均值聚类算法(K-Means)

    K均值聚类算法(K-Means) 深度学习原理与实践(开源图书)-总目录,建议收藏,告别碎片阅读! 机器学习分为监督学习.无监督学习和半监督学习(强化学习).无监督学习最常应用的场景是聚类(clust ...

  9. 【模式识别】K均值聚类算法应用实验报告及MATLAB仿真

    一. 实验目的 1.掌握K均值聚类算法的原理和实现过程: 2.掌握K均值聚类算法的应用方法. 二. 实验内容 1.彩色图像分割 选择一幅图像,分别按三种颜色数进行彩色图像分割的结果(原图和分割图).步 ...

  10. k均值聚类算法优缺点_Grasshopper实现K均值聚类算法

    本文很长很长,有很多很多图,包含以下部分: 1.算法简介 2.如何分类平面点 3.如何分类空间点 4.如何分类多维数据 5.后记 提醒:以下内容包括:智障操作,无中生友,重复造轮子 等 1.算法简介 ...

最新文章

  1. java urlstreamhandler_获取对Java的默认http(s)URLStreamHandler的引用
  2. 验证手机号码归属地_最新确认:手机号码归属地不能取消
  3. git远程分支修改名字
  4. 力扣题目——143. 重排链表
  5. c 语言是一种以解释方式实现的高级语言,高级语言按照计算机执行方式不同可以分为哪两类?它们的执行方式有什么不同,请进行概要说明。...
  6. 书单|互联网企业面试案头书之架构师篇
  7. 66. 查询分页数据
  8. 【算法与数据结构】—— 大数运算
  9. 计算机组成四位并行乘法器设计,四位并行加法器设计
  10. 移动机顶盒migu-jt-u1 unt400c刷机 hi3798 root
  11. 贝叶斯分析好坏_贝叶斯分析基础——可信度、模型和参数
  12. 计算机主机硬件部分组成,台式电脑主机的硬件组成部分
  13. 自建RssHub本地服务
  14. 利用漏洞溢出掉360安全卫士逆向分析
  15. Export file created by EXPORT:V10.01.00 via conventional path
  16. 01_k8s入门----部署一个应用程序
  17. 京沪高铁全程提供WiFi无线网络技术揭密
  18. Hexo+GithubPage搭建Fan主题的博客(2)本地初始化Hexo博客项目
  19. 魔兽世界服务器维护后 猎人宝宝,9.0猎人全宠物刷新地点 猎人宝宝刷新点大全...
  20. 谈谈对python中的日期、时间、时区的理解(1)

热门文章

  1. js数据结构- 双向链表
  2. QML_组合框ComboBox
  3. 自定义自动统计字数EditText控件
  4. 清华机试oj——手机按键
  5. DB2配置ODBC数据源
  6. 关于查询二级分类的简单方法
  7. 论文笔记之SAC提升算法
  8. 平面设计培训需要学习多久
  9. 【Java 基础】JDK API Documentation 教程使用详解
  10. python基于百度智能云实现批量身份证信息识别(附完整代码,可直接使用)