K均值(kmeans)分类

最近读到了吴军老师的数学之美,现对其中的期望最大化算法进行了整理;

一、算法描述:

K均值的算法其实很简单,简单来说如下:

1、首先假设要分的类型种类为N,则算法开始的时候随机选择N个聚类中心;

2、进行迭代;对于训练数据中的每一个样本分别计算其到N个聚类中心的距离,该样本的分类结果就是距离其最近的聚类中心所属的分类;

注意:计算样本到聚类中心的距离时可以使用逻辑回归函数,把每一个训练数据的各个属性值映射到[0,1]之间,然后再计算属性值之间的距离,这样可以提高聚类的效果;

3、更新聚类中心;可以使用求平均值的方法来计算每次迭代后的新的聚类中心;

4、每次迭代后判断新的聚类中心是否发生变化(中心是否收敛),如果没有变化则停止迭代,已经达到了聚类效果;否则以上述步骤3产生的新的聚类中心作为中心继续进行步骤2和3;

二、聚类效果图


三、核心代码分析

1、K均值算法


2、判断每一个样本所属的分类

四、测试结果

使用了上述方法之后在IRIS数据集上进行测试,聚类的效果达到96%,当然结果还与初始的聚类中心的选择有关;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值