python实现cma—se算法_K-means算法原理与Python实现

本文详细介绍了K-means算法的原理,包括其基本思想、优缺点以及Python实现。K-means通过迭代更新质心找到数据的最佳聚类,但易受初始值影响。此外,还探讨了二分K-means和K值选择的Elbow方法,帮助理解如何优化算法并确定合适的簇数量。
摘要由CSDN通过智能技术生成

简介

K-means算法又叫K-均值算法,是非监督学习中的聚类算法。

基本思想

在K-means算法中,用cluster来表示簇,K-means算法收敛等同于所有质心不再发生变化。基本的k-means算法流程如下:

选取k个初始质心(作为初始cluster,每个初始cluster只包含一个点);repeat: 对每个样本点,计算得到距离其最近的质心,将其类别标为该质心所对应的cluster; 重新计算k个cluster对应的质心(质心是cluster中样本点的均值);util 质心不再发生变化 或 到达最大迭代次数

K-means的本质是移动中心点,使其逐渐靠近数据“中心”,即最小化目标函数,目标函数为每个点到其簇质心的距离平方和:

34e22befe0643d9fdf0934fc9a5425d9.png

目标函数

其中,N是元素个数,x表示元素,c(j)表示第j簇的质心。

优缺点

优点

  • 简单、快速;
  • 对大数据集有较高的效率并且是可伸缩性的;
  • 时间复杂度接近于线性,适合挖掘大规模数据集。

缺点

  • 只是局部最优,因而
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值