一、聚类思想

所谓聚类算法是指将一堆没有标签的数据自动划分成几类的方法,属于无监督学习方法,这个方法要保证同一类的数据有相似的特征,如下图所示:

根据样本之间的距离或者说是相似性(亲疏性),把越相似、差异越小的样本聚成一类(簇),最后形成多个簇,使同一个簇内部的样本相似度高,不同簇之间差异性高。

二、k-means聚类分析算法

相关概念:

K值:要得到的簇的个数

质心:每个簇的均值向量,即向量各维取平均即可

距离量度:常用欧几里得距离和余弦相似度(先标准化)

算法流程:

1、首先确定一个k值,即我们希望将数据集经过聚类得到k个集合。

2、从数据集中随机选择k个数据点作为质心。

3、对数据集中每一个点,计算其与每一个质心的距离(如欧式距离),离哪个质心近,就划分到那个质心所属的集合。

4、把所有数据归好集合后,一共有k个集合。然后重新计算每个集合的质心。

5、如果新计算出来的质心和原来的质心之间的距离小于某一个设置的阈值(表示重新计算的质心的位置变化不大,趋于稳定,或者说收敛),我们可以认为聚类已经达到期望的结果,算法终止。

6、如果新质心和原质心距离变化很大,需要迭代3~5步骤。

三、数学原理

K-Means采用的启发式方式很简单,用下面一组图就可以形象的描述:

上图a表达了初始的数据集,假设k=2。在图b中,我们随机选择了两个k类所对应的类别质心,即图中的红色质心和蓝色质心,然后分别求样本中所有点到这两个质心的距离,并标记每个样本的类别为和该样本距离最小的质心的类别,如图c所示,经过计算样本和红色质心和蓝色质心的距离,我们得到了所有样本点的第一轮迭代后的类别。此时我们对我们当前标记为红色和蓝色的点分别求其新的质心,如图d所示,新的红色质心和蓝色质心的位置已经发生了变动。图e和图f重复了我们在图c和图d的过程,即将所有点的类别标记为距离最近的质心的类别并求新的质心。最终我们得到的两个类别如图f。

四、实例

坐标系中有六个点:

1、我们分两组,令K等于2,我们随机选择两个点:P1和P2

2、通过勾股定理计算剩余点分别到这两个点的距离:

3、第一次分组后结果:

组A:P1

组B:P2、P3、P4、P5、P6

4、分别计算A组和B组的质心:

A组质心还是P1=(0,0)

B组新的质心坐标为:P哥=((1+3+8+9+10)/5,(2+1+8+10+7)/5)=(6.2,5.6)

5、再次计算每个点到质心的距离:

6、第二次分组结果:

组A:P1、P2、P3

组B:P4、P5、P6

7、再次计算质心:

P哥1=(1.33,1)

P哥2=(9,8.33)

8、再次计算每个点到质心的距离:

9、第三次分组结果:

组A:P1、P2、P3

组B:P4、P5、P6

可以发现,第三次分组结果和第二次分组结果一致,说明已经收敛,聚类结束。

五、K-Means的优缺点

优点:

1、原理比较简单,实现也是很容易,收敛速度快。

2、当结果簇是密集的,而簇与簇之间区别明显时, 它的效果较好。

3、主要需要调参的参数仅仅是簇数k。

缺点:

1、K值需要预先给定,很多情况下K值的估计是非常困难的。

2、K-Means算法对初始选取的质心点是敏感的,不同的随机种子点得到的聚类结果完全不同 ,对结果影响很大。

3、对噪音和异常点比较的敏感。用来检测异常值。

4、采用迭代方法,可能只能得到局部的最优解,而无法得到全局的最优解

六、细节问题

1、K值怎么定?

答:分几类主要取决于个人的经验与感觉,通常的做法是多尝试几个K值,看分成几类的结果更好解释,更符合分析目的等。或者可以把各种K值算出的E做比较,取最小的E的K值。

2、初始的K个质心怎么选?

答:最常用的方法是随机选,初始质心的选取对最终聚类结果有影响,因此算法一定要多执行几次,哪个结果更reasonable,就用哪个结果。 当然也有一些优化的方法,第一种是选择彼此距离最远的点,具体来说就是先选第一个点,然后选离第一个点最远的当第二个点,然后选第三个点,第三个点到第一、第二两点的距离之和最小,以此类推。第二种是先根据其他聚类算法(如层次聚类)得到聚类结果,从结果中每个分类选一个点。

3、关于离群值?

答:离群值就是远离整体的,非常异常、非常特殊的数据点,在聚类之前应该将这些“极大”“极小”之类的离群数据都去掉,否则会对于聚类的结果有影响。但是,离群值往往自身就很有分析的价值,可以把离群值单独作为一类来分析。

4、单位要一致!

答:比如X的单位是米,Y也是米,那么距离算出来的单位还是米,是有意义的。但是如果X是米,Y是吨,用距离公式计算就会出现“米的平方”加上“吨的平方”再开平方,最后算出的东西没有数学意义,这就有问题了。

5、标准化

答:如果数据中X整体都比较小,比如都是1到10之间的数,Y很大,比如都是1000以上的数,那么,在计算距离的时候Y起到的作用就比X大很多,X对于距离的影响几乎可以忽略,这也有问题。因此,如果K-Means聚类中选择欧几里德距离计算距离,数据集又出现了上面所述的情况,就一定要进行数据的标准化(normalization),即将数据按比例缩放,使之落入一个小的特定区间。

参考文章:聚类、K-Means、例子、细节


http://www.taodudu.cc/news/show-2304203.html

相关文章:

  • [C++] Kmeans算法实现
  • KMeans算法流程
  • Kmeans算法实现
  • kmeans算法
  • kmeans聚类理论篇
  • K-means算法(知识点梳理)
  • 通俗易懂的 k-means 聚类算法原理及优化(附代码)
  • 机器学习-kmeans(k均值聚类算法)
  • KMeans 算法(一)
  • epson LQ 600KIIH 针式打印机走纸问题
  • k3 Bos开发百问百答
  • 金蝶KIS记账王账务处理常见问题解决方案
  • 金碟打印凭证或多联纸格式时十几张后错位
  • INA266电压电流模块驱动
  • APF有源滤波器仿真,三相三线制 谐波电流检测模块基于p-q方法,ip-iq等方法
  • matlab三电平statcom无功检测双闭环svpwm调制两电平/三电平逆变器拓扑,pq无功电流检测模块
  • 立春----直流电压电流检测模块
  • Arduino 测量交流电流
  • 电压电流测量模块在matlab,MATLAB仿真时用simulink的RMS模块测量电压有效值,总提示如下警告,怎么破,跪求?...
  • NI-9253 C系列电流输入模块-9253
  • matlab电流测量接法,matlab电压电流测量模块的使用
  • 51单片机的交流电流检测系统设计(程序+原理图+PCB)
  • STM32采集电流互感器(电流互感器模块)数据
  • 烟雾检测模块ADPD188BI介绍与应用(一)
  • 霍尔电流传感器ACS758/ACS770/CH704应用于三相四桥臂逆变器的电流检测装置
  • 电气防火限流式保护器及其过电流故障检测方法
  • 基于C51单片机的锂电池容量检测仪电压电流检测 原理图PCB程序设计
  • 基于51单片机220V交流电流检测系统过流阈值报警方案原理图
  • 土壤湿度计检测模块 土壤湿度传感器 机器人智能小车
  • 0-50A集成式霍尔电流传感器应用案例分享

Kmeans算法思想相关推荐

  1. 【机器学习】K-Means算法的原理流程、代码实现及优缺点

    分类是根据样本某些属性或某类特征(可以融合多类特征),把样本类型归为已确定的某一类别中.机器学习中常见的分类算法有:SVM(支持向量机).KNN(最邻近法).Decision Tree(决策树分类法) ...

  2. 机器学习sklearn19.0聚类算法——Kmeans算法

    一.关于聚类及相似度.距离的知识点 二.k-means算法思想与流程 三.sklearn中对于kmeans算法的参数 四.代码示例以及应用的知识点简介 (1)make_blobs:聚类数据生成器 sk ...

  3. scikit-learn学习之K-means聚类算法与 Mini Batch K-Means算法

    ====================================================================== 本系列博客主要参考 Scikit-Learn 官方网站上的 ...

  4. k-means算法及改进

    k-means是最常用的聚类算法 k-means算法流程 1)选择k个类为初始中心 2)在第i次迭代中,对任意样本,计算其到各中心的距离,将样本归到距离最短的中心所在的类 3)利用均值等方法更新类的中 ...

  5. 聚类分析(K-means算法)

    1 聚类分析 1.1 相似度与距离度量 1.2 聚类算法 及 划分方法 2 聚类模型评估(优缺点) 3 K-means 在 sklearn方法 4 确定K值–肘部法则–SSE 5 模型评估指标–轮廓系 ...

  6. 机器学习之k-means算法详解

    文章目录 K-means算法 (无监督算法,聚类算法) 1-1 基本流程 一.概念: 二.主要特点: 三.算法流程: kmeans作用:去除奇异值 小结: 1-2 算法效果衡量标准 一.K值确定: 二 ...

  7. 机器学习十大算法之一:K-means算法

    K-means算法 (无监督算法,聚类算法) 1-1 基本流程 一.概念: 二.主要特点: 三.算法流程: kmeans作用:去除奇异值 小结: 1-2 算法效果衡量标准 一.K值确定: 二.轮廓系数 ...

  8. 【机器学习】K-Means算法优化

    K-Means算法优化 学习目标 1. Canopy算法配合初始聚类 1.1 Canopy算法配合初始聚类实现流程 1.2 Canopy算法的优缺点 2. K-means++ 3. 二分k-means ...

  9. 【数据挖掘】数据挖掘算法 组件化思想 示例分析 ( 组件化思想 | Apriori 算法 | K-means 算法 | ID3 算法 )

    文章目录 一. 数据挖掘算法组件化思想 二. Apriori 算法 ( 关联分析算法 ) 三. K-means 算法 ( 聚类分析算法 ) 四. ID3 算法 ( 决策树算法 ) 一. 数据挖掘算法组 ...

  10. Alink漫谈(一) : 从KMeans算法实现不同看Alink设计思想

    Alink漫谈(一) : 从KMeans算法实现不同看Alink设计思想 0x00 摘要 Alink 是阿里巴巴基于实时计算引擎 Flink 研发的新一代机器学习算法平台,是业界首个同时支持批式算法. ...

最新文章

  1. bootstrap 冻结表格,冻结表头
  2. 【Android 安装包优化】p7zip 源码交叉编译 Android 平台可执行程序 ( 下载 p7zip 源码 | 交叉编译 Android 中使用 7z 可执行程序 )
  3. python的c语言扩展方法简介
  4. OSG官方自带的例子程序简介
  5. python pdb调试多进程_Python使用pdb进行调试
  6. WP Condition:wordpress的性能监测
  7. tensorflow代码中的一个bug
  8. 服务器端动态序列化与Unable to generate a temporary class报错
  9. php mysql占位符_php中的占位符
  10. SketchUp最适用新手的二十多款SU插件
  11. 学校家教服务管理系统mysql_数据库课程设计报告-学校家教服务管理系统.doc
  12. 简单FTP服务器搭建教程
  13. 数学建模参赛技巧 --- 论文撰写
  14. ubuntu 20 无法联网或无法解析域名(2022最新办法,实测有效)
  15. 百度地图查询数据结果
  16. Chrome插件:请开始你的表演,smartUp手势骚操作
  17. BUUCTF WEB Havefun
  18. 数据挖掘实战(4)——聚类(Kmeans、MiniBatchKmeans、DBSCAN、AgglomerativeClustering、MeanShift)
  19. HDU 3333HDU-3874 Necklace 离线树状数组
  20. cache是什么?作用是什么?位置在哪?

热门文章

  1. mysql +cobar_转:阿里开源Mysql分布式中间件:Cobar
  2. 计算机电路图解,几种常见的放大电路原理图解
  3. vue 中基于drag drop拖放实现左菜单和右画布的功能
  4. Hadoop,Hive和Spark大数据框架的联系和区别
  5. 撒花!苹果iOS迅雷手机版终于上架App Store
  6. 考研408-计算机组成原理-存储系统
  7. 计算机考研 外部排序,2021考研408数据结构基础知识点:外部排序
  8. autojs读取文字_Auto.js 获取识别图片文本
  9. 电脑上如何图片文字识别?哪个工具识别的准确?
  10. 2020互联网公司中秋礼盒大比拼!