1.聚类算法和分类算法的区别

a)分类

分类(Categorization or Classification)就是按照某种标准给对象贴标签(label),再根据标签来区分归类。

举例:

假如你有一堆动物的头像图片样本,想把它们进行分类,分成:猫,狗,鱼等。当在有新的动物图片进来之后,能够自动的识别出属于哪一类,这就是分类,而猫,狗,鱼等就是标签

b)聚类

聚类是指事先没有“标签”而通过某种成团分析找出事物之间存在聚集性原因的过程。聚类是在没有划分类别的情况下,根据数据相似度进行样本分组的一种方法。

与分类模型需要使用有类标记样本构成的训练数据不同,聚类模型可以建立在无类标记的数据上,是一种非监督的学习算法。

举例:

假如你有一堆数据样本,想把这些数据分类,但是你也不知道怎么分,你只知道要分3类,4类或者其他更多。这时候就等于是把一堆零散的样本聚成几类。

c)总结:分类和聚类最大的区别就是有无标签。

2.K-means属于聚类算法

假设你有X1——Xi个样本,想把它们分成Uk个中心

算法的步骤:

a).随机的选择U1---Uk个中心,用样本Xi去减分别减这个中心值,得到距离类别中心最近的类别,归为同一个簇。
b).将这个簇的中心值归为这个簇的所有样本的平均值,重新执行第一步。
c).不断进行迭代,也就是不断的执行a)和b)两步,直到类别中心小于某个阈值也就是终止条件。

这些终止条件可以是:1)迭代次数; 2)簇中心变化率 ;3)最小平方误差

3.注意事项:

a).K-means算法是初始敏感的

如下图:在初始选择簇类点时,对后面的聚类影响很大,下面初始选择4个红点作为簇类中心,结果就变成了右边这种情况了。并不是我们想要分成的四类

解决办法:聚类完之后计算一下簇的均方误差,如果某一个簇的均方误差特别大,就可以判断这个簇聚的不对,初值选的不行,把簇中心比较近的合成一类,重新再聚一遍

这种叫做二分K-Means聚类

b)异常点处理

K—Means算法是将簇中所有的均值作为质心,若簇中含有异常点,将导致均值偏离严重。

例如:当有一个数组:1,2,3,4,100的均值是22,显然距离大多数数据比较远

解决办法:该取中位数3为比较稳妥。这种取中位数的为簇中心的算法叫K-Mediods聚类

4.总结:

虽然有以下缺点:

a)不适合于发现非凸形状的簇或者大小差别很大的簇

b)对噪声和孤立点数据敏感

但是,K-Means聚类算法可以作为其他聚类算法的基础

转载于:https://www.cnblogs.com/liangxuehui/p/5804894.html

【算法】K-Means聚类算法(k-平均或k-均值)相关推荐

  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、Canopy、Mini Batch K-Means

    K-Means||算法 K-Means||算法是为了解决K-Means++算法缺点而产生的一种算法: 主要思路是改变每次遍历时候的取样规则,并非按照K-Means++算法每次遍历只获取一个样本,而是每 ...

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

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

  6. ML之Clustering之普聚类算法:普聚类算法的相关论文、主要思路、关键步骤、代码实现等相关配图之详细攻略

    ML之Clustering之普聚类算法:普聚类算法的相关论文.主要思路.关键步骤.代码实现等相关配图之详细攻略 目录 普聚类算法的相关论文 普聚类算法的主要思路 普聚类算法的关键步骤 普聚类算法的代码 ...

  7. 基于KMeans聚类的协同过滤推荐算法推荐原理、过程、代码实现 Canopy聚类算法 KMeans+Canopy聚类算法 聚类算法程序实现 KMEans聚类算法代码java

    基于KMeans聚类的协同过滤推荐算法可运用于基于用户和基于项目的协同过滤推荐算法中,作为降低数据稀疏度和提高推荐准确率的方法之一,一个协同过滤推荐过程可实现多次KMeans聚类. 一.基于KMean ...

  8. 化学分子 降维算法umap、聚类算法hdbscan和kmeans

    参考: https://github.com/iwatobipen/chemo_info/blob/master/chemicalspace2/HDBSCAN_Chemoinfo.ipynb http ...

  9. 聚类算法之层次聚类算法和应用举例

    聚类算法之层次聚类算法和应用举例 1.假设有N个待聚类的样本,对于层次聚类来说,步骤: 1.(初始化)把每个样本归为一类,计算每两个类之间的距离,也就是样本与样本之间的相似度: 2.寻找各个类之间最近 ...

  10. k均值聚类算法考试例题_k means聚类算法实例

    所谓聚类问题,就是给定一个元素集合D,其中每个元素具有n个可观察属性,使用某种算法将D划分成k个子集,要求每个子集内部的元素之间相异度尽可能低,而不同子集的元素相异度尽可能高.其中每个子集叫做一个簇. ...

最新文章

  1. 吴裕雄 10-MySQL插入数据
  2. ef mysql 插件_EF Core 插件 —— ToSql
  3. 【原创+整理】简述何为调用约定,函数导出名以及extern C
  4. fastjson总结
  5. go run/ go install/ go build / go get的区别
  6. docker安装mysql并配置,Docker安装MySql-挂载外部数据和配置
  7. 小菜的 VUE 使用技巧 持续更新
  8. LeetCode之Merge Two Sorted Lists
  9. python中自定义类中的self_Python类和构造方法
  10. 缓存与数据库一致性保证
  11. 单片机c语言讲解,单片机C语言基础知识讲解.ppt
  12. 淘宝用户行为分析(四):行为聚类
  13. GB2312编码规则与代码实现
  14. 苹果html 闪退,iPhone6 App闪退的解决办法 掌握这4点苹果App不再闪退
  15. 【BZOJ2563】阿狸和桃子的游戏 贪心
  16. 微信内如何通过链接一键关注微信公众号
  17. 解决:U盘无法安装到这个磁盘选中的磁盘具有MBR分区表
  18. C++ 语法 const限定符
  19. 数据库导入表时出错:Importing tables....errors detected(see log page)
  20. iOS6和iOS7代码的适配(2)——status bar

热门文章

  1. android的消息处理机制(图文+源码分析)—Looper/Handler/Message[转]
  2. 使用Roboguice依赖注入规划Android项目
  3. LINK : fatal error LNK1104: cannot open file mfc42d.lib
  4. Interleaving String
  5. 将Mac OS X从Snow Leopard升级到Mountain Lion
  6. 开源爬虫larbin分析
  7. 分享Silverlight/WPF/Windows Phone一周学习导读(4月4日-4月9日)
  8. 十招搞定SQL2K安全
  9. 「干货」编程语言十大经典算法,你知道几个?
  10. php集合与数组的区别,java集合与数组的区别