机器学习技术(2)---K-Means聚类算法
2021/9/13 11:04:54
本文主要是介绍机器学习技术(2)---K-Means聚类算法,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
聚类就是将一系列数据进行归类,属于无监督学习,所谓无监督学习是和有监督学习相对于的,像之前所学习的很多模型是知道自变量X和因变量Y的,着属于有监督学习,而有些时候并不知道因变量Y,这种就属于无监督的学习,那么聚类首先就是由于不知道他们归于哪一个类,而是按照数据之间的相似性进行聚类,使得同一类中的个体差异越小,不同类中的个体相似性最小,那么k-means聚类算法就是这一类算法的典型算法。
在聚类问题中,给我们的训练样本是
,每个
,没有因变量y。
K-means算法是将样本聚类成k个簇(cluster),具体算法描述如下:
其具体流程如下:
1、 随机选取k个聚类质心点(cluster centroids)为
。
2、 重复下面过程直到收敛
{ 对于每一个样例i,计算其应该属于的类
对于每一个类j,重新计算该类的质心
}
K-means面对的第一个问题是如何保证收敛,下面定性的描述一下收敛性,假设我们定义畸变函数(distortion function)如下:
J函数表示每个样本点到其质心的距离平方和。K-means是要将J调整到最小。假设当前J没有达到最小值,那么首先可以固定每个类的质心,调整每个样例的所属的类别来让J函数减少,同样,固定,调整每个类的质心也可以使J减小。这两个过程就是内循环中使J单调递减的过程。当J递减到最小时,和c也同时收敛。(在理论上,可以有多组不同的和c值能够使得J取得最小值,但这种现象实际上很少见)。
由于畸变函数J是非凸函数,意味着我们不能保证取得的最小值是全局最小值,也就是说k-means对质心初始位置的选取比较感冒,但一般情况下k-means达到的局部最优已经满足需求。但如果你怕陷入局部最优,那么可以选取不同的初始值跑多遍k-means,然后取其中最小的J对应的数值输出。
简单点,k-means聚类算法就是反复两个过程:
-
确定中心点
-
把其他的点按照距中心点的远近归到相应的中心点
这篇关于机器学习技术(2)---K-Means聚类算法的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-10-28机器学习资料入门指南
- 2024-10-25机器学习开发的几大威胁及解决之道
- 2024-10-24以下是五个必备的MLOps (机器学习运维)工具,帮助提升你的生产效率 ??
- 2024-10-15如何选择最佳的机器学习部署策略:云 vs. 边缘
- 2024-10-12从软件工程师转行成为机器学习工程师
- 2024-09-262024年机器学习路线图:精通之路步步为营指南
- 2024-09-13机器学习教程:初学者指南
- 2024-08-07从入门到精通:全面解析机器学习基础与实践
- 2024-01-24手把手教你使用MDK仿真调试
- 2024-01-10基于“小数据”的机器学习