kmeans 聚类算法

本文介绍了数据挖掘中的kmeans聚类算法,通过实例详细解释了算法的步骤:设定聚类数量,初始化类中心,迭代调整直到收敛。并展示了在6个文本数据上的应用,最终将文本分为两组,验证了算法的有效性。
摘要由CSDN通过智能技术生成

            今天给大家介绍一个数据挖掘中的简单的聚类(Clustering)算法kmeans,什么是“聚类”?举个简单例子,比如说有一堆电商企业的用户数据,记录着用户的各种身份信息和交易信息,如姓名、性别、买东什么东西,用户标签等等。那么在这么多用户中,事实上存在一批相似的用户的,什么叫“相似”呢?其实这里的相似是自己定义的,比如我可以定义如果用户购买的东西相似,那么用户就相似。于是我们想把相似的用户都找出来,聚成若干个类(cluster),使得每个类中的用户尽量相似,每个类之间的用户尽量不相似。找出这些类有什么用呢?用处大了,比如我可以知道这群人的购物习惯比较相似,那么推荐系统推荐商品的时候就可以参考。再比如有些搜索引擎有“查看相似网页”的功能,这个就可以用聚类来做,把网页就行聚类,在聚类的结果中,每一个类中的网页看成是相似的。

       下面来说说kmeans是怎么做Clustering的,kmeans有以下几个步骤:

(1) 设定聚类个数,选定类初始中心点。

        (2) 把每个点归类到离它最近的类中心点所属的类。

        (3) 重新计算新的类中心点。

        (4) 重复(2)直到收敛。

        是不是听着很抽象?我们来看一个简单例子。假设我们现在有6个数据点,每个数据点5维:

Pt1=(1,2,0,0,2)

Pt2=(2,1,3,4,2)

Pt3=(3,2,1,0,3)

Pt4=(1,3,0,0,3)

Pt5=(3,0,3,4,0)

Pt6=(1,2,2,4,0)

        kmeans算法要求指定聚类的个数及每个类的初始中心点,也就是说,你必须告诉它,你要把这堆数据聚成几类,kmeans这个名字中的k就是指类个数,并且在刚开始的时候,你要为每个类指定一个中心点来代表这个类。可能有人会问,我怎么能事先知道数据中大概有几类?以及初始中心点怎么选?这个问题问得很好,关于聚类个数的自动确定,以及初始中心点的自动选取,有专门的研究,这里不讨论这个问题,这里说的是最原始的kmeans~

        聚类个数的k:这个例子中,我们把k设为2。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值