肘方法确定聚类数k_机器学习07——聚类算法

  • 算法1 K-means聚类算法
    • 一、简介:
      • K-means算法又称K-均值算法,是一种无监督的机器学习算法。算法简单,聚类效果好,且在巨大数据集上也容易部署实施。常应用于市场划分、机器视觉、地质统计、天文、农业等等。K-means算法优化出几种算法:K-means++ ;K二代 ;Mini Batch K-means
    • 二、算法流程:
      • 1. 选定初始化的K 个质心(K值需要调参确定)
      • 2. 计算所有样本到每个质心的距离
      • 3. 比较样本点距离哪一个质心最近,就归为哪一个簇。
      • 4. 使用当前簇内样本的均值更新质心
      • 5. 终止更新的条件:
        • 到达迭代次数
        • MSE
        • 簇中心变化率
      • 最小化平方误差公式:x 代表样本

c2fa30369c4b39145fe76234c3b9ae34.png
      • 质心μi的公式:由于质心是取得样本加和得均值

15ed7ef6fa1d40b5a221ac6dc9739d3b.png
    • 三、底层代码实现
      • 1. 导入需要用的包
      • 2. 定义样本集合
      • 3. 定义初始化质心
      • 4. 设置迭代次数
      • 5. 统计迭代次数
      • 6. 条件循环:
        • 1)计算每个质心到每个样本点之间的欧式距离并用列表B存储
        • 2)取出距离最小值的索引
        • 3)使用当前簇内样本的均值更换每个质心的位置
        • 4)设定终止条件:变化率为0时就终止
    • 四、K-means衍生算法:
      • K-means算法缺陷:
        • 1. 初始的K值设定不一定合适。K值关系到分成几个类别,选定几个质心,实际操作选定比较困难。
        • 2. K-means算法初始需要随机选定质心,不同的质心可能导致不同的聚类结果,很可能导致收敛过慢甚至聚类错误如图:

b74a3214b1ea054086f0ac8ef5772064.png
      • 由于K-means算法有缺陷,为了解决缺陷,发展出了K-means++算法。
      • (一) K-means++算法:改变了初始化质心的问题
        • 1. 从数据集中任选一个样本点作为聚类中心
        • 2. 对于数据集中的所有样本点x,计算到聚类中心的距离
        • 3. 下一个质心选择相对于它前面的质心距离最远的样本点

c84475b996151af67633563307a4cbfc.png
        • 4. 重复2、3步操作,直到找到K个质心点完成聚类。
        • 缺陷:
          • 每一次质心的设定非常依赖之前的质心设定
          • 计算量大,计算速度非常慢
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值