机器学习(二十)
来源:互联网 发布:淘宝美工如何上新 编辑:程序博客网 时间:2024/05/16 01:51
K-Means Algorithm
K-means是一个非常经典的非监督学习聚类算法,因为数据集不带有标签,我们只去探究数据所表现出的某种结构。
K-means算法非常简单,用下面一张图就可以表示了。
具体步骤:
1. 人为选取K值(即要聚类的个数)。
2. 随机选取K个数据点作为K个初始中心(centroid),并标记为1到K。
3. 对每个数据点(m个)分别计算到K个centroid的距离,然后选取距离最近的centroid作为该点的从属对象,然后标记该点为对应centroid的标记(如点A从属于centroid1,那么该点就标记为1)。步骤3过后,所有的数据点都会从属于某个centroid。
4. 分别对每个centroid的所有下属数据点进行平均值计算,得出新的K个centroid。
5. 反复步骤3和4,直到收敛,centroid不再变化。
Optimization Objective
对于每个问题,我们都要考虑我们在优化的函数(即目标函数)是什么,当然聚类问题也不例外,对于K-means来说,明确目标函数有助于我们debug和之后更好得进行分簇。目标函数具体形式在上图,就不详细阐述了,很简单,分别对所有的数据点计算到其centroid距离的平方的和。
Random Initialization
如下图所示,K-means并不是一个凸优化问题,它可能存在很多局部最优解,这跟我们初始选取的centroid有关。那我们应该如何解决呢?
解决方法就是对于同一个问题,进行多次(50-1000次)K-means计算,由于每次随机初始化的centroid不一样,以至最后的结果都会有所不同,最后我们根据对应目标函数的大小选取结果最小的作为我们的最优解。一般来说,这个结果可能是全局最优,就算不是全局最优也一定非常接近全局最优,所以可以当做我们最后的结果。需要注意的是,如果K值过大,那么一般我们第一次K-means操作就会得到最优解或者接近最优解的解,这样多次K-means就没有太大的意义,如果K值小(2-10),那么多次K-means就会有明显的效果。
Choosing the Number of Clusters
最后我们讲一下如果进行K值选取。
Elbow Method
对于K值,我们做出
最后Mark一下,通过canopy算法可以自动选取较为恰当的簇数,具体不在这里详述。
- 机器学习(二十)
- 白话机器学习算法(二十)梯度下降算法
- 白话机器学习算法(二十)梯度下降算法
- 机器学习(二十)——EMD, LSA, HMM
- Mac版R语言机器学习(二)十大常用机器学习算法
- 机器学习(十):PCA
- 机器学习(二)
- 机器学习(二)
- 机器学习(二)
- 机器学习基础(二十)—— 数学语言与 Python 代码
- 十大机器学习算法之支持向量机(二)
- 机器学习笔记(二十)——求解最大熵模型
- 机器学习笔记二十:拉格朗日函数/对偶
- 机器学习笔记二十 利用SVD简化数据
- 机器学习(十)机器学习模型的评价
- 机器学习笔记(十) 应用机器学习的建议
- 机器学习(十):Apriori算法
- 机器学习课堂笔记(十)
- __attribute__ ((packed)) 的作用
- KMP算法
- 欢迎使用CSDN-markdown编辑器
- Smart210 ping不通tftp服务器
- 萬丈高樓平地
- 机器学习(二十)
- 异 形 卵
- React Native之Flexbox布局
- Go WebServer Example
- angular js 获取事件对象
- 论《如果35岁破产,还有多大可能逆袭?》
- hdu 6058 暴力枚举
- LeetCode -- 213. House Robber II
- lua教程五