Kmeans算法及简单案例

Kmeans算法流程

  1. 选择聚类的个数k.
  2. 任意产生k个聚类,然后确定聚类中心,或者直接生成k个中心。
  3. 对每个点确定其聚类中心点。
  4. 再计算其聚类新中心。
  5. 重复以上步骤直到满足收敛要求。(通常就是确定的中心点不再改变。)

Kmeans算法流程案例

将下列数据点用K-means方法进行聚类(这里使用欧式距离作为度量,K取值为2)

P1~P15这15个数据点的二维坐标图如下:

  1. 指定P1、P2为初始质心

  2. 通过距离公式将分别计算各点到质心P1,P2数据点距离:

  3. 选取距离较近的点整理进入相应队列:

  4. 计算出新一轮的每一簇队列中心(质心/平均值)

  5. 重复上述步骤2、3,开始新一轮迭代,算距离,取最近:
    算距离

    取最近

    再次选取距离较近的点整理进入相应队列:

  6. 当每次迭代结果不变时,认为算法收敛,聚类完成:K-Means一定会停下,不可能陷入一直选质心的过程。

代码案例1:不同数据集的k-means聚类

随机创建不同二维数据集作为训练集,并结合k-means算法将其聚类,你
可以尝试分别聚类不同数量的簇,并观察聚类效果:

  1. 生成数据
# 导包
import numpy as np
import matplotlib.pyplot as plt
from sklearn import metrics
from sklearn.datasets.samples_generator import make_blobs
# 生成数据展示
# X为样本特征,Y为样本簇类别, 共1000个样本,每个样本4个特征,共4个簇,簇中心在[-1,-1], [0,0],[1,1], [2,2], 簇方差分别为[0.4, 0.2, 0.2]
X, y = make_blobs(n_samples=1000, n_features=2, centers=[[-1,-1], [0,0], [1,1], [2,2]], cluster_std=[0.4, 0.2, 0.2, 0.2], random_state =9)
plt.scatter(X[:, 0], X[:, 1], marker='o')
plt.show()


2. 使用Kmeans聚类查看结果

from sklearn.cluster import KMeansfor k in range(2,6):y_pred = KMeans(n_clusters=k, random_state=9).fit_predict(X)plt.scatter(X[:, 0], X[:, 1], c=y_pred)plt.show()

SKlearn的K-means API参数简介:

KMeans中的默认参数



Kmeans 总结:
事先确定常数K,常数K意味着最终的聚类类别数,首先随机选定初始点为质心,并通过计算每一个样本与质心之间的相似度(这里为欧式距离),将样本点归到最相似的类中,接着,重新计算每个类的质心(即为类中心),重复这样的过程,直到质心不再改变,最终就确定了每个样本所属的类别以及每个类的质心。由于每次都要计算所有的样本与每一个质心之间的相似度,故在大规模的数据集上,K-Means算法的收敛速度比较慢。

Kmeans算法及简单案例相关推荐

  1. 利用k-means算法解决简单的无监督图像识别任务

    k-means Clustering(k平均聚类算法) 简介: 无监督学习对图像进行分类时,可以采用k-means算法.该算法实现简单,运行速度快.该算法要求事先知道数据所具有的类别数.k-means ...

  2. 聚类优化算法——基于Kmeans算法

    聚类优化算法--基于Kmeans算法 Kmeans算法 Kmeans算法的基本原理及计算流程见上文--Kmeans算法及简单案例 Kmeans算法的优缺点 优点 - 原理简单(靠近中心点),实现容易 ...

  3. 简单易学的机器学习算法——K-Means++算法

    一.K-Means算法存在的问题 由于K-Means算法的简单且易于实现,因此K-Means算法得到了很多的应用,但是从K-Means算法的过程中发现,K-Means算法中的聚类中心的个数k需要事先指 ...

  4. 2021-03-15 数据挖掘算法—K-Means算法 Python版本

    数据挖掘算法-K-Means算法 Python版本 简介 又叫K-均值算法,是非监督学习中的聚类算法. 基本思想 k-means算法比较简单.在k-means算法中,用cluster来表示簇:容易证明 ...

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

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

  6. K-means 算法实现二维数据聚类

    所谓聚类分析,就是给定一个元素集合D,其中每个元素具有n个观测属性,对这些属性使用某种算法将D划分成K个子集,要求每个子集内部的元素之间相似度尽可能高,而不同子集的元素相似度尽可能低.聚类分析是一种无 ...

  7. k-means算法与Python实践

    机器学习算法与Python实践这个系列主要是参考<机器学习实战>这本书.因为自己想学习Python,然后也想对一些机器学习算法加深下了解,所以就想通过Python来实现几个比较常用的机器学 ...

  8. 一张图就让你理解K-Means算法!!

    K-Means是无监督学习中最经典的聚类算法 一.什么是无监督学习?什么是聚类? 无监督学习简单来说就是没有标签变量,即没有y值,仅仅依靠特征变量x进行学习.通常以"是否有标签变量y&quo ...

  9. K-means算法研究综述

    欢迎关注"程序杂货铺"公众号,里面有精彩内容,欢迎大家收看^_^ K-means算法研究综述 聚类被认为是机器学习中最常使用的技术之一, 它历史悠久.应用广泛,几乎应用于环境学.医 ...

最新文章

  1. Matplitlib绘图入门1,这一篇就够了
  2. ubuntu12.04+fuerte 下跑通lsd-slam——数据集
  3. WPF技术触屏上的应用系列(二): 嵌入百度地图、API调用及结合本地数据库在地图上进行自定义标点的实现...
  4. 机器学习问题总结(03)
  5. java运行字符串代码
  6. 2020大厂web前端面试都喜欢问这些
  7. echarts grid的样式位置_vue使用Echarts vue使用Echarts滚动条
  8. 转:C++中STL用法总结
  9. UIScreen(屏幕)、UIWindow(画框)、UIView(画布)、didFinishLaunchingWithOptions的概念...
  10. 简单的C语言程序介绍(重点理解),超详细基础代码解析
  11. Web敏感目录快速扫描软件 wwwscan
  12. 驾考——科一,三笔记
  13. 盒子模型塌陷解决办法
  14. VMware安装及配置静态Ip、域名、免密(centos7)
  15. java语言和C语言的区别
  16. IObit Uninstaller软件卸载工具 v10.4.0.11
  17. 哈希函数——SHA1
  18. SEO迅搜文章采集器V1.4
  19. 思科路由器ios系统学习
  20. Shell 脚本小试牛刀(5) -- 超便捷脚本之高速ssh 登录其它主机

热门文章

  1. Excel的数据分析和管理
  2. 惠普服务器-ILO使用
  3. 激光共聚焦显微镜测量技术在汽车工业上的应用
  4. 阿里17实习生编程-数组四等分
  5. 陶瓷天线的选型(一)
  6. 一键删除VBA代码空行 VBA快捷键技巧
  7. linux查看虚拟机ip的方法
  8. 云储存公司Terascala获1400万美元融资
  9. 打开图片链接直接打开QQ对话框
  10. 辛普森求积公式 和 复合辛普森求积公式 Matlab 实现