Kmeans算法及简单案例
Kmeans算法及简单案例
Kmeans算法流程
- 选择聚类的个数k.
- 任意产生k个聚类,然后确定聚类中心,或者直接生成k个中心。
- 对每个点确定其聚类中心点。
- 再计算其聚类新中心。
- 重复以上步骤直到满足收敛要求。(通常就是确定的中心点不再改变。)
Kmeans算法流程案例
将下列数据点用K-means方法进行聚类(这里使用欧式距离作为度量,K取值为2)
P1~P15这15个数据点的二维坐标图如下:
指定P1、P2为初始质心
通过距离公式将分别计算各点到质心P1,P2数据点距离:
选取距离较近的点整理进入相应队列:
计算出新一轮的每一簇队列中心(质心/平均值)
重复上述步骤2、3,开始新一轮迭代,算距离,取最近:
算距离
取最近
再次选取距离较近的点整理进入相应队列:
当每次迭代结果不变时,认为算法收敛,聚类完成:K-Means一定会停下,不可能陷入一直选质心的过程。
代码案例1:不同数据集的k-means聚类
随机创建不同二维数据集作为训练集,并结合k-means算法将其聚类,你
可以尝试分别聚类不同数量的簇,并观察聚类效果:
- 生成数据
# 导包
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算法及简单案例相关推荐
- 利用k-means算法解决简单的无监督图像识别任务
k-means Clustering(k平均聚类算法) 简介: 无监督学习对图像进行分类时,可以采用k-means算法.该算法实现简单,运行速度快.该算法要求事先知道数据所具有的类别数.k-means ...
- 聚类优化算法——基于Kmeans算法
聚类优化算法--基于Kmeans算法 Kmeans算法 Kmeans算法的基本原理及计算流程见上文--Kmeans算法及简单案例 Kmeans算法的优缺点 优点 - 原理简单(靠近中心点),实现容易 ...
- 简单易学的机器学习算法——K-Means++算法
一.K-Means算法存在的问题 由于K-Means算法的简单且易于实现,因此K-Means算法得到了很多的应用,但是从K-Means算法的过程中发现,K-Means算法中的聚类中心的个数k需要事先指 ...
- 2021-03-15 数据挖掘算法—K-Means算法 Python版本
数据挖掘算法-K-Means算法 Python版本 简介 又叫K-均值算法,是非监督学习中的聚类算法. 基本思想 k-means算法比较简单.在k-means算法中,用cluster来表示簇:容易证明 ...
- 机器学习-聚类之K均值(K-means)算法原理及实战
K-means算法 前言 机器学习方法主要分为监督学习和非监督学习两种.监督学习方法是在样本标签类别已知的情况下进行的,可以统计出各类样本的概率分布.特征空间分布区域等描述量,然后利用这些参数进行分类 ...
- K-means 算法实现二维数据聚类
所谓聚类分析,就是给定一个元素集合D,其中每个元素具有n个观测属性,对这些属性使用某种算法将D划分成K个子集,要求每个子集内部的元素之间相似度尽可能高,而不同子集的元素相似度尽可能低.聚类分析是一种无 ...
- k-means算法与Python实践
机器学习算法与Python实践这个系列主要是参考<机器学习实战>这本书.因为自己想学习Python,然后也想对一些机器学习算法加深下了解,所以就想通过Python来实现几个比较常用的机器学 ...
- 一张图就让你理解K-Means算法!!
K-Means是无监督学习中最经典的聚类算法 一.什么是无监督学习?什么是聚类? 无监督学习简单来说就是没有标签变量,即没有y值,仅仅依靠特征变量x进行学习.通常以"是否有标签变量y&quo ...
- K-means算法研究综述
欢迎关注"程序杂货铺"公众号,里面有精彩内容,欢迎大家收看^_^ K-means算法研究综述 聚类被认为是机器学习中最常使用的技术之一, 它历史悠久.应用广泛,几乎应用于环境学.医 ...
最新文章
- Matplitlib绘图入门1,这一篇就够了
- ubuntu12.04+fuerte 下跑通lsd-slam——数据集
- WPF技术触屏上的应用系列(二): 嵌入百度地图、API调用及结合本地数据库在地图上进行自定义标点的实现...
- 机器学习问题总结(03)
- java运行字符串代码
- 2020大厂web前端面试都喜欢问这些
- echarts grid的样式位置_vue使用Echarts vue使用Echarts滚动条
- 转:C++中STL用法总结
- UIScreen(屏幕)、UIWindow(画框)、UIView(画布)、didFinishLaunchingWithOptions的概念...
- 简单的C语言程序介绍(重点理解),超详细基础代码解析
- Web敏感目录快速扫描软件 wwwscan
- 驾考——科一,三笔记
- 盒子模型塌陷解决办法
- VMware安装及配置静态Ip、域名、免密(centos7)
- java语言和C语言的区别
- IObit Uninstaller软件卸载工具 v10.4.0.11
- 哈希函数——SHA1
- SEO迅搜文章采集器V1.4
- 思科路由器ios系统学习
- Shell 脚本小试牛刀(5) -- 超便捷脚本之高速ssh 登录其它主机