设为首页收藏本站

EPS数据狗论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1494|回复: 0

数据挖掘领域十大经典算法之—K-Means算法(超详细附代码)

[复制链接]

20

主题

162

金钱

264

积分

入门用户

发表于 2019-6-14 15:52:30 | 显示全部楼层 |阅读模式
本帖最后由 那一抹辉煌 于 2019-6-14 15:56 编辑

数据挖掘领域十大经典算法之—K-Means算法(超详细附代码)

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

基本思想
k-means算法比较简单。在k-means算法中,用cluster来表示簇;容易证明k-means算法收敛等同于所有质心不再发生变化。基本的k-means算法流程如下:

选取k个初始质心(作为初始cluster,每个初始cluster只包含一个点);

repeat:
对每个样本点,计算得到距其最近的质心,将其类别标为该质心所对应的cluster;
重新计算k个cluster对应的质心(质心是cluster中样本点的均值);

until 质心不再发生变化 12345

repeat的次数决定了算法的迭代次数。实际上,k-means的本质是最小化目标函数,目标函数为每个点到其簇质心的距离的平方和:
1.jpg
N是元素个数,x表示元素,c(j)表示第j簇的质心0

算法复杂度
时间复杂度是O(nkt) ,其中n代表元素个数,t代表算法迭代的次数,k代表簇的数目

优缺点
优点

简单、快速;

对大数据集有较高的效率并且是可伸缩性的;

时间复杂度近于线性,适合挖掘大规模数据集。

缺点

k-means是局部最优,因而对初始质心的选取敏感;

选择能达到目标函数最优的k值是非常困难的。

代码
代码已在github上实现,这里也贴出来
2.png
测试数据集获取地址为testSet: https://github.com/fuqiuai/datamining_algorithms/blob/master/K-means/testSet
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

客服中心
关闭
在线时间:
周一~周五
8:30-17:30
QQ群:
653541906
联系电话:
010-85786021-8017
在线咨询
客服中心

意见反馈|网站地图|手机版|小黑屋|EPS数据狗论坛 ( 京ICP备09019565号-3 )   

Powered by BFIT! X3.4

© 2008-2028 BFIT Inc.

快速回复 返回顶部 返回列表