机器学习 k-means算法

1.原理

        k-means是一种无监督的基于距离的聚类算法。在无监督的算法中,训练集的标签信息是不知道的,任务是通过对训练样本的学习来揭示数据的内在性质和规律。聚类是将训练集中的样本划分为若干个不想交的子集,每一个子集称为一个簇,这些簇都是不知道标签信息的数据样本,每一个样本都包含着一个n维的特征向量x=(x_{1},x_{2},...,x_{n})
         k-means聚类算法是将n个样本的数据集x划分为k个簇,\mu _{i}表示第i个簇的中心,k-means算法的目标就是,选择k个中心,使得类里面各个样本点到其中心的距离平方和最小。聚类完成后,通常计算最小化内类分散度来评价聚类效果,这个值在一定程度上刻画了簇内样本的紧密程度,值越小表示簇内样本相似度越高。
         最小化类内分散度公式:E=\sum_{i=1}^{k}\sum_{x\epsilon c_{i}}||x-\mu _{i}||_{2}^{2}
         其中,k表示有k个类簇,c_{i}表示第i个簇,x表示c_{i}这个簇内的一个样本,\mu _{i}表示第i个簇的中心。
         k-means聚类算法是使用最广泛的算法之一,但是它也有一些缺点,比如选择不同的初始聚类中心,最终聚类的结果可能不一样,并且k-means算法容易受到异常点的影响,因为它更新中心点的时候用的均值。

2.算法思路

(1)从输入的样本中随机选择一个样本作为第一个聚类中心(初始的聚类中心之间的相互距离应该尽可能大)
(2)计算每一个样本到各个中心点的距离,选择距离最小的中心点,把该样本归到该类别。
(3)当所有样本都划归完了后,计算每一个簇的新中心点,也就是每个簇的均值,然后更新中心点。
(4)重复(2)(3)步,直到聚类中心不再变化位置。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值