机器学习-kmeans(k均值聚类算法)

聚类的概念

①聚类输入无监督学习,也就是给定数据没有标签,需要我们人为的对数据进行归类处理。

②聚类:把相似的东西分到一组

kmeans算法基本概念

①kmeans算法中有个超参数k,这个k就是我们要得到的簇的个数,需要指定k的值,也就是如果指定k为2,则代表我们希望把数据分成两类,指定为3,就是代表希望把数据分成三类。

②质心:参考kmeans算法中的means,也就是均值的意思,质心是一类点的中心,它是这一类点向量各个维度的均值构成的一个向量。

质心也和算法有莫大的关系,如果是想分成两个簇,那么我们就在一开始取两个质心,不过在算法开始时,这个质心的选择是随机的。

③距离的度量,样本点与质心点的距离常常用欧几里得距离和余弦相似度来进行度量,不过在度量之前要对数据进行标准化处理。

原因是因为如果有四个样本点,每个样本点有两个维度,一个维度的数据是1,2,3,4,而另一个维度的数据是120,130,140,150,也就是(1,120),(2,130),(3,140),(4,150),这个样子,此时若质心是(5,5),就会发现第二个维度对距离的贡献特别大,使得它们之间不平衡,所以要进行标准化处理,也就是把它们都约束到某个小区间内。这种手段通常来说可以让它们减去它们的均值,再除以方差。

④kmeans优化目标

优化目标也就是上面的公式,公式的含义分别是:dist代表一个求两点距离的函数,x代表质心,Ci是一个簇内所有的点,那么dist(ci,x)^2也就是该簇内所有点和质心的距离,再外面一层的求和也就是求各个簇内所有距离的总和,那么我们最终的目的是让这个距离最小,这也就是我们的优化目标。

kmeans算法工作流程

机器学习-kmeans(k均值聚类算法)_第1张图片

如上图所示,我们先选择两个基本点(质点,随机选择),然后开始计算每个点相对于两个这两个点的距离,距离谁近就属于谁那组,那么一轮计算完成之后,如图c,那么我们在得到的两个簇内,再进行计算一个新的质心,基于此质心进行上次的循环计算,一直到分类结束。

kmeans算法的优势与劣势

优势:简单,快速,适合常规数据集。

劣势:

①包含了超参数k,一般来说,只要有超参数,都很难确定。

②复杂度与样本呈线性关系,样本越大,复杂度越高。

③很难发现任意形状的簇。

④若随机选定的基本点不好,难以正确划分。 

对于以上的劣势3,我们用一个可视化网站来给出例子(Visualizing K-Means Clustering)。

机器学习-kmeans(k均值聚类算法)_第2张图片

对于上述的笑脸划分,我们的想法是将眼睛1,眼睛2,嘴,圆轮廓划分成四类,很明显上述的划分不符合预期。 

对于劣势4,给出例子如下:

机器学习-kmeans(k均值聚类算法)_第3张图片

若一开始点没取好,就会出现如下结果。 无法对三类进行正确划分。

你可能感兴趣的:(机器学习,聚类,算法,机器学习,kmeans)