聚类分析 - K-means - Python代码实现

本文介绍了K-means算法的基本原理和过程,包括随机选择初始质心、计算对象与质心的距离、更新质心等步骤。同时,讨论了算法的优缺点,如对大数据集的处理效率高但K值选择困难,以及对噪声和孤立点敏感。通过Python代码实现了数据读取、聚类和可视化,以帮助理解聚类效果。
摘要由CSDN通过智能技术生成

算法简介

K-means算法是很典型的基于距离的聚类算法,采用距离作为相似性的评价指标,即认为两个对象的距离越近,其相似度就越大。该算法认为簇是由距离靠近的对象组成的,因此把得到紧凑且独立的簇作为最终目标。

算法过程如下:

1)从N个文档随机选取K个文档作为中心点;

2)对剩余的每个文档测量其到每个中心点的距离,并把它归到最近的质心的类;

3)重新计算已经得到的各个类的中心点;

4)迭代2~3步直至新的质心与原质心相等或小于指定阈值,算法结束。

 

算法优缺点:

优点:

  1. 对处理大数据集,该算法保持可伸缩性和高效性
  2. 算法快速、简单,易于理解;

缺点:

  1. 在 K-means 算法中 K 是事先给定的,这个 K 值的选定是非常难以估计的,具体应用中只能靠经验选取;
  2. 对噪声和孤立点数据敏感,导致均值偏离严重;
  3. 当数据量非常大时,算法的时间开销是非常大的;
  4. 初始聚类中心的选择对聚类结果有较大的影响,一旦初始值选择的不好,可能无法得到有效的聚类结果。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值