k-means算法详解及python代码

K-means算法原理

    K-means聚类属于原型聚类(基于原型的聚类,prototype-based clustering)。原型聚类算法假设聚类结构能够通过一组原型进行刻画,在现实聚类任务中极为常用。通常情况下,原型聚类算法对原型进行初始化,然后对原型进行迭代更新求解。

    针对给定样本集D = \left \{ x_{1},x_{2},...,x_{n} \right \},K-means算法针对聚类得到的簇划分C = \left \{ C_{1}, C_{2},..., C_{n} \right \}最小化平方误差(error function):

                                                                            E = \sum_{i}^{k}\sum_{x\in C_{i}}^{ }\left \| x - \mu _{i} \right \|_{2}^{2}

 其中\mu _{i} =\frac{1}{\left | C_{i} \right |} \sum _{x\in C_{i}}x 是簇C_{i}的均值向量。要最小化K-means的误差函数并不容易,找到它的最优解需要考察样本集D中所有的簇划分,这是一个NP难问题。K-means算法采用的是贪心策略,通过迭代近似求解误

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值