聚类算法中的K均值聚类算法(K-Means clustering)
=======================================================================
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)相关推荐
- 聚类算法中 K均值聚类(KMeans)的python实现
** 聚类算法中 K均值聚类(KMeans)的python实现 ** import numpy as np import matplotlib.pyplot as plt from sklearn.d ...
- Udacity机器人软件工程师课程笔记(二十一) - 对点云进行集群可视化 - 聚类的分割 - K-means|K均值聚类, DBSCAN算法
聚类的分割 1.K-均值聚类 (1)K-均值聚类介绍 k均值聚类算法(k-means clustering algorithm)是一种迭代求解的聚类分析算法,其步骤是随机选取K个对象作为初始的聚类中心 ...
- 算法杂货铺——k均值聚类(K-means)
算法杂货铺--k均值聚类(K-means) 2010-09-20 20:05 by T2噬菌体, 57998 阅读, 48 评论, 收藏, 编辑 4.1.摘要 在前面的文章中,介绍了三种常见的分类算法 ...
- 机器学习-聚类之K均值(K-means)算法原理及实战
K-means算法 前言 机器学习方法主要分为监督学习和非监督学习两种.监督学习方法是在样本标签类别已知的情况下进行的,可以统计出各类样本的概率分布.特征空间分布区域等描述量,然后利用这些参数进行分类 ...
- EM算法应用:k均值聚类(k-means)和高斯混合模型(GMM)
文章目录 k-means聚类 EM角度的理解 算法流程 特点 k值选择 局限性 高斯混合模型 GMM的问题描述 1,明确隐变量 2.EM算法的E步:确定Q函数 3. EM算法的E步 4. 停止条件 上 ...
- k均值聚类算法优缺点_Grasshopper实现K均值聚类算法
本文很长很长,有很多很多图,包含以下部分: 1.算法简介 2.如何分类平面点 3.如何分类空间点 4.如何分类多维数据 5.后记 提醒:以下内容包括:智障操作,无中生友,重复造轮子 等 1.算法简介 ...
- 机器学习之聚类算法:K均值聚类(一、算法原理)
目录 一.Kmeans 二.Kmeans的流程 三.距离度量方式 3.1.闵可夫斯基距离 3.2.马哈拉诺比斯距离 3.3.其他 四.Kmeans聚类实例 五.Kmeans存在的问题 5.1.初始点的 ...
- K-Means(K均值聚类算法)
K-Means(K均值聚类算法) 1.前言 要学习聚类算法就要知道聚类学习算法是什么,为什么要学习聚类学习聚类学习算法,有什么用途,下面就简单的做一下介绍,并且详细的说明k-means均值聚类学习算法 ...
- K均值聚类算法(HCM,K-Means)
K均值聚类核心思想如下: 算法把n个向量分为个组,并求每组的聚类中心,使得非相似性(或距离)指标的价值函数(或目标函数)达到最小.当选择欧几里德距离为组j中向量与相应聚类中心间的非相似性指标时,价值函 ...
最新文章
- 关于学习Python的一点学习总结(25->pass占位符)
- 无惧灵魂拷问!淘宝扫一扫助你不再扔错垃圾!
- 七、Python简单爬取学堂在线合作院校页面内容
- 退休当月要干到月底吗_在一线城市交社保那么多年,退休后到底在哪领养老金,要回老家吗?...
- 小球弹起次数及高度(python)
- SAP OData的CSRF token在ABAP Netweaver服务器上是怎么生成的
- Java 8 Friday:使用Streams API时的10个细微错误
- javascript for in,for each,for循环遍历区别
- 桥本有菜java,深入浅出Extjs4.1.1(ExtJS组件、ExtJS对Ajax支持、ExtJS布局)配在线选课系统实战...
- weblogic部署linux静默安装,Linux环境下Weblogic11g中间件-静默安装详解
- Shell脚本实现模拟并发及并发数控制
- (二十二)访问者模式详解(伪动态双分派)
- stream从list实体类筛选出符合条件的单个实体类
- 计算机检索策略制定过程,计算机文献检索的基本方法与策略
- 【MATLAB】GA优化算法整定PID控制器参数(三)—— 一阶带时延的被控对象
- 网络安全——WEP实现无线局域网安全
- java查询数据导出excel并返回给浏览器下载
- 住房月租金预测大数据赛
- 淘宝 美团 评论标签效果
- Jquery实现电影院购票订座功能