K-Means算法

K-Means算法是一种无监督学习方法,用于数据聚类。算法思想包括将样本划分为预设数量的簇,并通过迭代优化簇中心。其优点是简单易实现,当簇接近高斯分布时效果显著;缺点是需要预先设定类别数K,计算量大,且初始簇中心选择对结果影响显著。此外,异常点可能导致精度降低。文章还涉及K-Means的代码实现,使用了鸢尾花数据集并比较了自编和sklearn库的算法结果。
摘要由CSDN通过智能技术生成

1. 算法思想

        K-Means算法,也称为K-均值算法,是一种无监督算法,即数据集无标签。一般做法是,往往先对数据进行聚类,根据聚类结果将每个簇定义为一个类,然后再基于这些类训练分类模型,输入测试样本判断类别。

         聚类就是将数据集中的样本划分到指定数量的互不相干的子集中,每个子集就是一个簇。

2. 算法流程

                                                图片取自《机器学习》周志华

3. 算法的优缺点

优点:

1. 算法简单,易于理解和实现;

2. 当簇接近高斯分布时,聚类效果较好;

缺点:

1. 类别数,即K需要实现指定,有时难以正确估计到此值;

2. 当数据量较大时,由于需计算样本之间的距离,计算量;

3. 初始的均值向量是随机选取的,此选取情况对后续结果影响较大;

4. 当存在异常点时,使得均值向量发生偏移,导致结果精度下降;

4. 代码实现

1. 训练数据使用鸢尾花数据集

2. 计算样本的距离使用的是欧式距离法

3. 对比自编K-Means与sk

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值