K-means和K-中心点算法

K-means和K-中心点算法

k-means算法

在聚类的算法中这个算法比较常用,首先是将数据集中的每一条数据想象称为超空间中的一个点,因为通常数据不只是只有三个特征属性,当超过三个特征属性之后就难以在坐标空间中进行表示,所以这里统一的称为超空间

先确立一些比较重要的思想:

距离的概念,如果每一个点都有坐标,不管是5维还是6维,反正存在j个属性,每个属性的值进行归一化处理之后得到一个比较干净的数据,关于数据的前期处理不是这里的重点,所以这里默认的认为所有数据已经清洗好了

使用欧式距离作为这里判定两个点之间的距离度量,放在超空间中无非就是两个点做差后进行距离化

度量和算法逻辑分离:

算法逻辑是一种执行方式,算法是一种方法,这种方法并不是说必须要用谁谁谁作为损失函数,比如决策树中的CART算法是用Gini系数作为度量,采用的是二叉树的方式,但是这里并不代表只能用Gini系数作为特征提取的度量,我们完全可以使用信息熵,只是使用信息熵如果效果比Gini效果还要好,那为啥一定要用Gini系数呢?

度量只是一种衡量方式,说白了就是我们自己构造的比较方式而已,我们认为这么计算能够区分这两个点是否相近,但是并不代表说这是唯一评判标准

使用不同的度量可能会带来意外的收获,如果使用体重作为度量我们能区分胖瘦,如果使用身高进行度量,我们能区分高矮,聚类中经常采用的是欧式距离进行度量两个对象(数据点)是否相似,那么难道只有欧式距离这种度量么?

不逼逼了,直接说这个算法

1 随机的在数据集中进行选择k个点作为种子点,记作{A,B,C,D,E…}

注意这里k是人为设定的,这里的k代表我要把这个数据集分成k类,聚类本身就是无监督的学习算法,事先我们并不知道这一堆数据到底应该有几个类,因此我们这里随机的给一个k很可能就是一个错误的,比如本来别人有3个类,你给了一个10让别人分,别人怎么分?

因为是无监督学习,所以没有办法,这里只能先给一个k,用测试集看看效果,在给k+i个,用测试集看看效果,再用k+2i个看看效果,统计每次k的变化和测试的准确率之间的关系,画出一个图像,多做几次就看到趋势了,下面就是人为的根据趋势去试,找出最合适的k值,先假设我们运气很好,第一次就给对了k

2 以种子点为均值点,将空间中其他的点分别与这些种子点做距离计算,并归簇

比如一个点p,在与A点作计算后得到距离d1,与B点作距离计算得到距离d2,对所有的点都做完计算得到一组距离值,选出最小的那对,如果d1是最小的,那么就把p这个点归到A簇中,空间中除了种子点之外的所有点都这么来一遍,那么就能够找到每一个种子点所具有的簇.

这里同样会有一些问题,比如最小的距离如果不唯一呢?换句话说如果正好有一个p距离其中的某几个种子点的距离都相同,而且都是最小值,这种可能也是存在的,怎么办?此时其实大可不必担心,无所谓的,随便给一个最近距离的簇就行了,因为这个算法在后面的均值点移动的过程中会打破之中相等的情况

当然也有人认为假如本身已经完全分好了,比如只有两个簇,连个簇的均值点连线的中垂面上的所有点不都是距离这两个均值点距离相等么.对,确实会有这种情况,那么这些点本身就很难分类到任何一个簇,这些点就是临界点,难以区分的点,你无法说它一定属于左边的簇还是右边的簇,这里的做法在于看看哪个簇所具有的点数量多分给谁,这是一种比较贪心的做法,就像一个中等身材的人,你一定要区分是高大还是矮小的话,那为了不得罪人我就说分到高大里面

有人继续较真,如果两边簇的个数相等咋办?好吧,这种都被你遇到也是牛皮,那么就随机分

3 每一个种子点都对应有簇之后,下面进行针对每个簇进行取均值动作

一堆点取均值其实难度不大,这一堆点取了均值之后的均值点并不一定是在给的数据集中的某个点上,这一点要明确,也许这个均值点上就没有对应的数据,但是这并不影响

4 以均值点为新的种子点进行重新划分

因为第一次选的是随机的种子点,那么归簇之后计算的新均值点虽然不能说一定比随机的那个点好,但是这至少是有个均值作为依据,这里进行重新归簇之后会得到一个新的划分,那么关键来了

5 比较均值点与原种子点不同划分造成的数据集中所有的误差平方和

E = ∑ i = 1 k ∑ p ∈ C i d i s t ( p , c i ) 2 E=\sum_{i=1}^k{}\sum_{p\in C_i}dist(

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值