基础算法----- K-means

本文详细介绍了K-means聚类算法的原理、步骤、参数解析,以及其实现和效果评估。通过K-means算法,可以将无标签数据分组,通过迭代找到最佳的簇划分。文章还提到了K-means的优缺点,并建议在适当场景下考虑使用DBSCAN作为替代方案。
摘要由CSDN通过智能技术生成

K-means算法原理

K-means概述

K-means就是将无标签数据分组
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

质心:簇内x求平均,y求平均,均值就是质心。
优化目标:簇内距离最小,簇间距离最小

K-means算法聚类步骤

在这里插入图片描述
a:选取K:观察有有几堆(也可以按照业务知识或者其他方式选择K)。
b:随机选取初始质心:需要多次计算。
c:计算所有点距离初始质心的欧式距离:如果离红色初始质心距离更近,这个点就属于红色簇;离蓝色初始质心更近则归为蓝色簇。
d:调整质心:计算红色簇所有点x和y方向求均值,得到新的质心,蓝色同理。
e:调整数据点的簇归类:重复c步骤,重新归类
f:再次调整质心:重复d
。。。。。反复多次迭代

K-means聚类流程可视化展示

可视化网站
https://www.naftaliharris.com/blog/visualizing-k-means-clustering/

K-means中API参数详解

【参数】

n_clusters: 类中心的个数,就是要聚成几类。【默认是8个】
init:参初始化的方法,默认为’k-means++’
(1)‘k-means++’: 用一种特殊的方法选定初始质心从而能加速迭代过程的收敛.
(2) ‘random’: 随机从训练数据中选取初始质心。
(3) 如果传递的是一个ndarray,则应该形如 (n_clusters, n_features) 并给出初始质心。
n_init: 整形,缺省值=10
用不同的质心初始化值运行算法的次数,最终解是在inertia意义下选出的最优结果,防止出现偶然的极端错误。
max_iter :
执行一次k-means算法所进行的最大迭代数,迭代次数可以稍微大一些。
Tol: 与inertia结合来确定收敛条件(迭代终止条件)。
precompute_distances:三个可选值,‘auto’,True 或者 False。
预计算距离,计算速度更快但占用更多内存。
(1)‘auto’:如果 样本数乘以聚类数大于 12million 的话则不预计算距离。
(2)True:总是预先计算距离。
(3)False:永远不预先计算距离。
verbos

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值