#前言:
上一篇博客我们简要介绍了一下有关线性回归算法的相关理论知识,了解了一些有关机器学习的基础概念,这篇博客将继续介绍一种机器学习的相关算法--聚类算法。
什么是聚类算法?顾名思义就是将传入的数据依照其相似性的特点从而分成不同的类别,本质上就是一类分类问题。同时聚类算法也是一种典型的无监督学习算法,所谓无监督学习算法就是我们所传入的数据集中并没有标签来对我们训练的结果进行纠正,这类算法普遍存在的一个训练难点就在于我们对于参数的调控。
例如上图所示,就是利用聚类算法算法所实现的一个分类效果。从上图可以看出,聚类算法将处于相近位置的点全部归为一类,从而实现了分类的效果。
#K-MEANS算法综述
K-MEANS算法是一种典型的聚类算法,在讲解其算法理论原理之前,我需要给大家介绍几个基本概念:
·参数k:k是我们人为设置的一个参数,表示我们希望算法帮助我们将数据分为几类,后续的调参工作也是围绕k展开,同时这也是一个难点。
·质心:就是对于某一个分类类别中,所有数据点的坐标均值。
·距离的度量: 通常我们会用到欧几里得距离或者余弦相似度来进行距离的求解。而这里的距离就是指各个数据点与质心之间的距离大小。
·优化目标:我们的优化目标如下
如何解读上面的公式,本质上如何去判断一个分类好不好,对于K-MEANS算法来说就是每一个数据点到其分类类别质心的距离之和最小,而上述的公式表达的正是这个意思。
#K-MEANS工作流程