机器学习技术(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-12-17机器学习资料入门指南
- 2024-12-06如何用OpenShift流水线打造高效的机器学习运营体系(MLOps)
- 2024-12-06基于无监督机器学习算法的预测性维护讲解
- 2024-12-03【机器学习(六)】分类和回归任务-LightGBM算法-Sentosa_DSML社区版
- 2024-12-0210个必须使用的机器学习API,为高级分析助力
- 2024-12-01【机器学习(五)】分类和回归任务-AdaBoost算法-Sentosa_DSML社区版
- 2024-11-28【机器学习(四)】分类和回归任务-梯度提升决策树(GBDT)算法-Sentosa_DSML社区版
- 2024-11-26【机器学习(三)】分类和回归任务-随机森林(Random Forest,RF)算法-Sentosa_DSML社区版
- 2024-11-18机器学习与数据分析的区别
- 2024-10-28机器学习资料入门指南