=======================================================================
              Machine Learning notebook
Python机器学习基础教程(introduction to Machine Learning with Python)
https://scikit-learn.org/stable/modules/generated/sklearn.cluster.KMeans.html#sklearn.cluster.KMeans

=======================================================================

K均值聚类是最简单也是最常用的聚类算法之一。它试图找到代表数据特定区域的簇中心(cluster center)。算法交替执行以下两个步骤:将每个数据点分配给最近的簇中心,然后将每个簇中心设置为所分配的所有数据点的平均值,如果簇的分配不再发生变化那么算法结束。

class sklearn.cluster.KMeans(n_clusters=8,   #簇中心的个数,默认为8,可指定。init=’k-means++’,n_init=10,max_iter=300, tol=0.0001, precompute_distances=’auto’, verbose=0, random_state=None, copy_x=True, n_jobs=None, algorithm=’auto’)

聚类算法与分类算法有些相似,每个元素都有一个标签,但并不存在真实的标签,因此标签本身并没有先验意义,再次运行算法可能会得到不同的标签,原因在于初始化的随机性质。

1.K均值的失败案例
即使你知道给定数据集中簇的正确个数,k均值可能也不是总能找到它们。每个簇仅尤其中心定义,这意味着每个簇都是凸形(convex)。因此,K均值只能找到相对简单的形状。K均值还假设所有簇在某种程度上具有相同的直径,它总是将簇之间的边界刚好画在簇中心的中间位置。
K甚至还假设所有方向对每个簇都同等重要。

K均值无法识别非球形簇。
K均值无法识别具有复杂形状的簇

2.矢量量化,或者将K均值看做分解
PCA试图找到数据中方差最大的方向,而NMF试图找到累加的分量,这通常对应与数据的“极值”或“部分”。两种方法都试图将数据点表示为一些分量之和。与之相反,K均值则尝试利用簇中心来表示每个数据点。你可以将其看作仅用一个分量来表示每个数据点,该分量有簇中心给出。这种观点将K均值看作是一种分解方法,其中每个点用单一分量表示,这种观点被称为矢量化(vector quantization)

利用K均值做矢量量化的一个有趣之处在于,可以用比输入维度更多的簇来对数据进行编码。

K均值是非常流行的聚类算法,因为它不仅相对容易理解和实现,而且运行速度也相对较快。K均值可以轻松扩展到大型数据集,scikit-learn甚至在MinBatchKMeans类中包含了一种更具扩展性的变体,可以处理非常大的数据集。

K均值的缺点之一在于,它依赖于随机初始化,也就是说,算法的输出依赖于随机种子。默认情况下,scikit-learn用10中不同的随机初始化将算法运行10次,并返回最佳(簇的方差之和最小)结果。
K均值还有一个缺点,就是对簇形状的假设的约束性较强,而且还要求指定所要寻找的簇的个数。

聚类算法中的K均值聚类算法(K-Means clustering)相关推荐

  1. 聚类算法中 K均值聚类(KMeans)的python实现

    ** 聚类算法中 K均值聚类(KMeans)的python实现 ** import numpy as np import matplotlib.pyplot as plt from sklearn.d ...

  2. Udacity机器人软件工程师课程笔记(二十一) - 对点云进行集群可视化 - 聚类的分割 - K-means|K均值聚类, DBSCAN算法

    聚类的分割 1.K-均值聚类 (1)K-均值聚类介绍 k均值聚类算法(k-means clustering algorithm)是一种迭代求解的聚类分析算法,其步骤是随机选取K个对象作为初始的聚类中心 ...

  3. 算法杂货铺——k均值聚类(K-means)

    算法杂货铺--k均值聚类(K-means) 2010-09-20 20:05 by T2噬菌体, 57998 阅读, 48 评论, 收藏, 编辑 4.1.摘要 在前面的文章中,介绍了三种常见的分类算法 ...

  4. 机器学习-聚类之K均值(K-means)算法原理及实战

    K-means算法 前言 机器学习方法主要分为监督学习和非监督学习两种.监督学习方法是在样本标签类别已知的情况下进行的,可以统计出各类样本的概率分布.特征空间分布区域等描述量,然后利用这些参数进行分类 ...

  5. EM算法应用:k均值聚类(k-means)和高斯混合模型(GMM)

    文章目录 k-means聚类 EM角度的理解 算法流程 特点 k值选择 局限性 高斯混合模型 GMM的问题描述 1,明确隐变量 2.EM算法的E步:确定Q函数 3. EM算法的E步 4. 停止条件 上 ...

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

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

  7. 机器学习之聚类算法:K均值聚类(一、算法原理)

    目录 一.Kmeans 二.Kmeans的流程 三.距离度量方式 3.1.闵可夫斯基距离 3.2.马哈拉诺比斯距离 3.3.其他 四.Kmeans聚类实例 五.Kmeans存在的问题 5.1.初始点的 ...

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

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

  9. K均值聚类算法(HCM,K-Means)

    K均值聚类核心思想如下: 算法把n个向量分为个组,并求每组的聚类中心,使得非相似性(或距离)指标的价值函数(或目标函数)达到最小.当选择欧几里德距离为组j中向量与相应聚类中心间的非相似性指标时,价值函 ...

最新文章

  1. 关于学习Python的一点学习总结(25->pass占位符)
  2. 无惧灵魂拷问!淘宝扫一扫助你不再扔错垃圾!
  3. 七、Python简单爬取学堂在线合作院校页面内容
  4. 退休当月要干到月底吗_在一线城市交社保那么多年,退休后到底在哪领养老金,要回老家吗?...
  5. 小球弹起次数及高度(python)
  6. SAP OData的CSRF token在ABAP Netweaver服务器上是怎么生成的
  7. Java 8 Friday:使用Streams API时的10个细微错误
  8. javascript for in,for each,for循环遍历区别
  9. 桥本有菜java,深入浅出Extjs4.1.1(ExtJS组件、ExtJS对Ajax支持、ExtJS布局)配在线选课系统实战...
  10. weblogic部署linux静默安装,Linux环境下Weblogic11g中间件-静默安装详解
  11. Shell脚本实现模拟并发及并发数控制
  12. (二十二)访问者模式详解(伪动态双分派)
  13. stream从list实体类筛选出符合条件的单个实体类
  14. 计算机检索策略制定过程,计算机文献检索的基本方法与策略
  15. 【MATLAB】GA优化算法整定PID控制器参数(三)—— 一阶带时延的被控对象
  16. 网络安全——WEP实现无线局域网安全
  17. java查询数据导出excel并返回给浏览器下载
  18. 住房月租金预测大数据赛
  19. 淘宝 美团 评论标签效果
  20. Jquery实现电影院购票订座功能

热门文章

  1. Android彻底退出,解决应用程序退出不完全
  2. 分布式数据库理论知识之CAP理论、ACID原则及分布式事务一致性算法
  3. 传统的点云分割方法及PCL中的分割模块
  4. java switch 表达式_switch case语句错误:case表达式必须是常量表达式
  5. Python中的判断语句
  6. 海量数据同步首选 SeaTunnel Zeta 引擎正式发布!
  7. Python获取当前时间的时间戳
  8. chasing实习总结
  9. pytorch中(函数名有下划线和没有下划线)clamp和clamp_的区别
  10. android进度条的图标,Android进度条相关应用技巧解析