机器学习-K均值 KMeans

机器学习是一类算法的总称,这些算法企图从大量历史数据中挖掘出其中隐含的规律,并用于预测或者分类,更具体的说,机器学习可以看作是寻找一个函数,输入是样本数据,输出是期望的结果,只是这个函数过于复杂,以至于不太方便形式化表达。
需要注意的是,机器学习的目标是使学到的函数很好地适用于“新样本”,而不仅仅是在训练样本上表现很好。学到的函数适用于新样本的能力,称为泛化(Generalization)能力。

聚类算法的简介

对于”监督学习”(supervised learning),其训练样本是带有标记信息的,并且监督学习的目的是:对带有标记的数据集进行模型学习,从而便于对新的样本进行分类。而在“无监督学习”(unsupervised learning)中,训练样本的标记信息是未知的,目标是通过对无标记训练样本的学习来揭示数据的内在性质及规律,为进一步的数据分析提供基础。对于无监督学习,应用最广的便是”聚类”(clustering)。
“聚类算法”试图将数据集中的样本划分为若干个通常是不相交的子集,每个子集称为一个“簇”(cluster),通过这样的划分,每个簇可能对应于一些潜在的概念或类别。

K-means聚类算法

kmeans算法又名k均值算法,K-means算法中的k表示的是聚类为k个簇,means代表取每一个聚类中数据值的均值作为该簇的中心,或者称为质心,即用每一个的类的质心对该簇进行描述。
其算法思想大致为:先从样本集中随机选取 k个样本作为簇中心,并计算所有样本与这 k个“簇中心”的距离,对于每一个样本,将其划分到与其距离最近的“簇中心”所在的簇中,对于新的簇计算各个簇的新的“簇中心”。
根据以上描述,我们大致可以猜测到实现kmeans算法的主要四点:
(1)簇个数 k 的选择
(2)各个样本点到“簇中心”的距离
(3)根据新划分的簇,更新“簇中心”
(4)重复上述2、3过程,直至”簇中心”没有移动
优缺点:
优点:容易实现
缺点:可能收敛到局部最小值,在大规模数据上收敛较慢

  • 算法思想:一堆数据–>初始化 k 个质心点– >按质心算距离 聚类 –> 迭代更新质心–> 依次继续更新
    KMeans

K-means算法步骤详解

Step1.K值的选择
k 的选择一般是按照实际需求进行决定,或在实现算法时直接给定 k 值。

说明:
A.质心数量由用户给出,记为k,k-means最终得到的簇数量也是k
B.后来每次更新的质心的个数都和初始k值相等
C.k-means最后聚类的簇个数和用户指定的质心个数相等,一个质心对应一个簇,每个样本只聚类到一个簇里面
D.初始簇为空

Step2.距离度量
将对象点分到距离聚类中心最近的那个簇中需要最近邻的度量策略,在欧式空间中采用的是欧式距离,在处理文档中采用的是余弦相似度函数,有时候也采用曼哈顿距离作为度量,不同的情况实用的度量公式是不同的。

说明:
A.经过step2,得到k个新的簇,每个样本都被分到k个簇中的某一个簇
B.得到k个新的簇后,当前的质心就会失效,需要计算每个新簇的自己的新质心

Step3.新质心的计算
对于分类后的产生的k个簇,分别计算到簇内其他点距离均值最小的点作为质心(对于拥有坐标的簇可以计算每个簇坐标的均值作为质心)

说明:
A.比如一个新簇有3个样本:[[1,4], [2,5], [3,6]],得到此簇的新质心=[(1+2+3)/3, (4+5+6)/3]
B.经过step3,会得到k个新的质心,作为step2中使用的质心

Step4.是否停止K-means
质心不再改变,或给定loop最大次数loopLimit

说明:
A当每个簇的质心,不再改变时就可以停止k-menas
B.当loop次数超过looLimit时,停止k-means
C.只需要满足两者的其中一个条件,就可以停止k-means
C.如果Step4没有结束k-means,就再执行step2-step3-step4
D.如果Step4结束了k-means,则就打印(或绘制)簇以及质心

参考链接:https://blog.csdn.net/qq_43741312/article/details/97128745

Powered by Hexo and Hexo-theme-hiker

Copyright © 2013 - 2024 HELLO WORLD All Rights Reserved.

UV : | PV :