kmeans的作用计算机视觉,计算机视觉面试考点(14)K均值聚类算法(K-Means)

计算机视觉工程师在面试过程当中主要考察三个内容:图像处理、机器学习、深度学习。然而,各种资料纷繁复杂,或是简单的知识点罗列,或是有着详细数学推导使人望而生畏的大部头。为了督促本身学习,也为了方便后人,决心将常考必会的知识点以通俗易懂的方式设立专栏进行讲解,努力作到长期更新。此专栏不求甚解,只追求应付通常面试。但愿该专栏羽翼渐丰之日,能够为你们免去寻找资料的劳累。每篇介绍一个知识点,没有前后顺序。想了解什么知识点能够私信或者评论,若是重要并且恰巧我也能学会,会尽快更新。最后,每个知识点我会参考不少资料。考虑到简洁性,就不引用了。若有冒犯之处,联系我进行删除或者补加引用。在此先提早致歉了!web

K均值聚类算法

k-means clustering algorithm

K-Means面试

原理

聚类问题:

样本标签未知,总类别数未知

使用聚类算法,发现样本在特征空间中的分布规律

从而把样本们分为不一样的类别算法

过程:

在样本的特征空间中,机器学习

随机选取k个样本,做为聚类质心(中心)

每个样本跟随一个离本身最近的质心,分为k个类

每个类从新计算质心((1,2),(2,1),(3,3)的质心就是(2,2)),获得k个质心。注意:与第一步中真实的样本做为质心不一样,这个时候通过计算获得的质心未必存在。好比上述的例子中并不存在(2,2)。因此此时的质心是虚拟的。

重复进行二、3直至模型拟合。svg

拟合判断标准

2472a29b65619cb04eb6e31ea5db2960.png

u是质心,总共k个

C是一类样本的集合

上述公式的意义就是:

全部样本点与本身的质心的欧氏距离平方的和

显然,该数值越小模型性能越好

便可以做为损失函数

当该损失函数稳定时,判断模型拟合函数

优缺点分析

高斯分布性能好,非凸分布性能很差性能

本身画了个图,方便解释:

能够看出,高斯分布的质心在数据内部

非凸分布的质心甚至和数据没什么重叠

因此分布决定质心存在的位置

质心位置的好坏影响了K-Means的性能学习

d28c89368d1a31436f4d0937c71b7ad5.png

超参数K

K做为该算法惟一的超参数,是一把双刃剑

优势:选定K,模型的训练就不须要干预了,很简单

缺点:K的影响很大,K选很差,模型就不好,致使性能不稳定

选取方法:

1.经验。。。

2.手肘法

选若干个k,好比2,3,4,5,6

分别跑一遍K-Means,稳定后,获得5个损失(上面的那个公式)

通常损失先降低快,后降低慢,存在一个拐点,以下图

K=4多是一个不错的选择

由于曲线像手肘,因此叫手肘法。。。

06f7ba0594a1fbda292ac8a83512b321.png

3.ISODATA

该方法的K是动态变化的

如何变化?

该算法有分裂和合并操做

分裂:一类变两类

合并:两类变一类优化

选定初始K0,通常最后的K的范围大概是0.5*K0~2*K0。因此,即便K能够动态变化,K0的选择也得多少靠点谱

设定每类最少的样本数,若是少于最少样本数,这个类不能分裂

计算方差评定一个类中全部样本的分散程度,分散程度大于阈值,而且知足2中的条件,进行分裂

计算两个质心的距离,小于阈值,两个类合并

其他步骤和普通K-Means同样,只是每次聚类结束,要进行分裂和合并操做xml

随机的质心很差对性能影响很大

如图,随机的质心致使了不良的性能

cb981c717582f2a5046ca92cd15f80b5.png

解决方法:K-Means++

该方法和K-Means仅在初始选择质心的时候不一样:

随机选取第1个质心

选第n+1个质心时,计算剩余样本点与前n个质心的距离

离前n个质心距离越远,该样本点被选为第n+1个质心的几率越大

计算量

若是有N个样本,分为K类,迭代T轮

那么计算复杂度是O(NKT)

优势:复杂度是线性的

缺点:即便是线性的,当数据量太大时,计算量依然可观

解决方法:

1.利用三角形原理(elkan K-Means)

AB+BC>AC

若是样本点是X,有两个质心I,J

那么XI+XJ>IJ

换个角度来看

若是XI+XI

联立两个式子

XI

也就是说咱们不须要计算出每个样本点和全部质心的距离

咱们只须要计算样本点和一个质心的距离以及K个质心之间的距离

这样就能够判断样本点属于哪个质心

固然,若是XI+XI

不过,已经减小了不少计算量了

尤为是当模型快要拟合时,上式几乎都是成立的

2.Mini Batch K-Means

通常两种作法:

无放回采样进行K-Means,拟合后继续采样增长数据,再进行K-Means

对n个小样本集进行K-Means,而后取均值做为质心

其他缺点

对噪声、离群点敏感(能够将求平均改成求中位数)

每一个样本只能被归为一类

其他优化

核函数高维映射

特征归一化,好比(1000,1)和(5,2)的距离主要取决了第一个维度,这就很差了,须要归一化

数据预处理,去除一些噪声和离群点

聚类知识庞大,还有不少高级的优秀方法

若是不是专门研究这个方向

了解这些足以

欢迎讨论 欢迎吐槽

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值