K-means聚类算法原理及python实现

一、实验要求(10%)

1. 熟练使用Python中数据处理分析的基本操作

2. 理解并掌握常用的聚类算法,能使用Python实现聚类算法——Kmeans

(1)将数据准备成需要的格式

(2)编写聚类算法

(3)完成聚类算法的训练和测试

二、实验内容及步骤(80%)

  1. 计算欧拉距离并计算质心位置

  1. 使用K-means分类,随机取质心,更新质心,知道变化量都为0,并根据质心计算每个集群

  1. 分别运行三个数据集,运用聚类算法得出图形结果

实验最终运行结果如下:

第一个数据集:

第二个数据集:

第三个数据集:

三、心得总结(写出自己在完成实验过程中遇到的问题、解决方法,以及体会、收获等)(10%)

K-mean算法的特点是不能保证该算法收敛域全局最优解,并且它常常终止于一个局部最优解。结果可能依赖于初始簇中心的随机选择,所以为了尽可能的得到好的结果,我们通常会选择不同的初始簇中心,来多疑运行K-均值算法。算法优点:

(1)原理比较简单,实现也是很容易,收敛速度快。

(2)聚类效果较优。

(3)算法的可解释度比较强。

(4)主要需要调参的参数仅仅是簇数k。

算法缺点:

(1)K值的选取不好把握

(2)对于不是凸的数据集比较难收敛

(3)如果各隐含类别的数据不平衡,比如各隐含类别的数据量严重失衡,或者各隐含类别的方差不同,则聚类效果不佳。

(4) 采用迭代方法,得到的结果只是局部最优。

遇到的问题:

在运行聚类算法的过程中,遇到了不能同时处理多个数据集的情况

解决方法:

分别编写三个命令分别对应执行不同的数据集,在运行一个命令时将其他两个命令注释掉,这样可以保证程序运行时只对一个数据集进行处理,不会发生多个数据集同时进行聚类算法的情况。

收获:通过这次实验更加明白了聚类算法在处理数据集方面的便利性,同时也了解到了聚类算法容易受到初始簇质心的情况影响,使结果产生误差,也了解到了二分K-means聚类算法可以进一步的优化,使得运行结果更加精确。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值