K-Means

1 概述

K-Means相对比较简单,是一个无监督的聚类算法。

给定一堆无标签的数据,将他们聚为K类,K事先是不知道的,需要自己确定。

例如,你是一个互联网公司负责用户体验的产品经理,需要根据用户年龄、兴趣等,将用户划分为不同群体,对不同群体单独分析他们的需求。

假设这里是二维数据,即只根据用户年龄、兴趣聚类,将各个用户特征转化为一个二维空间上的点。首先指定一个K,即类别数量,然后进行以下操作:

1. 初始化中心点。在二维空间初始化K个中心点。

2. 更新中心点。衡量各个非中心点距离最近的中心点,将非中心点划到这个中心点所在的簇(中心点对非中心点说,你以后就是我的手下了,跟我干吧)。全部划分以后,每个簇的中心重新选择一个中心点(新中心点对旧中心点说,在我们这个簇里,我才是领导),完成中心点更新

3. 重复上述过程,直到没有更新。

这里的损失函数是所有点到簇中心的距离(由于无监督学习没有标签数据,所以不怎么强调损失函数,这里的损失函数有些特别,因为这里的“损失”计算不像监督学习那样确定性那么强)

2 距离的衡量

有各种各样的距离,例如欧式距离、马氏距离、余弦距离等

3 K值

K的确定有很多种方法,在吴恩达的Coursera里讲了一个肘部(elbow)规则,即不同的K对应不同的损失函数,K越大损失函数越小(可以想象如果K等于样本数,那么每个样本都是簇中心,损失函数为0),在这个递减的过程中,损失函数突然变缓的位置对应的K就是要选择的K。还有很多种确定K的算法。

4 初始化中心

初始化是随机的,会影响到最终的结果。可以使用GA等算法找到最佳参数。

参考资料

1. 吴恩达Coursera中机器学习课程

2. 百度百科

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值