[机器学习][k-means]无监督学习之k均值聚类

virter virter     2022-12-27     177

关键词:

有监督学习虽然高效、应用范围广,但最大的问题就是需要大量的有标签的数据集,但现实生活中我们遇到的大量数据都是没有明确标签的,而且对于庞大的数据集进行标注工作本身也是一项费时费力的工作模式,所以我们希望找到一种方法能自动的挖掘数据集中各变量的关系,然后"总结"出一些规律和特征进行分类,这样的方法我们成为无监督学习(Unsupervised learning)。

在无标签的数据集中进行分类的方法成为聚类。顾名思义,聚类就是依照某种算法将相似的样本聚在一起形成一类,而不管它的标签是什么。在聚类中我们把物体所聚到的集合成为"簇"(cluster)。目前常用的无监督学习方法有K均值聚类、基于密度聚类、主成分分析法、等等,其中K均值聚类是常用的经典方法,而主成分分析法是经典的数据降维方法,我们本节着重介绍一下K均值聚类和主成分分析法。

 

K均值聚类

    在K均值(K-means)聚类中,K代表了簇的数量,也就是分类个数。均值是该算法聚类的核心思想。K均值算法是以簇内最小均方误差来作为损失函数,假设我们将样本集分为K个簇,第i个簇记为技术分享图片,则损失函数可被写为:

技术分享图片

其中技术分享图片为簇技术分享图片内的平均值,这也是K均值算法中均值所代表的的意义。这个损失函数刻画了簇内样本围绕均值技术分享图片的紧密程度,也就是簇内样本的相似程度。K均值算法聚类流程如下:

  1. 在样本集中随机选取K个样本点作为均值的初始值
  2. 计算每个样本和每个均值点之间的距离
  3. 将样本划入距离最近的均值点所在的簇
  4. 根据簇内样本更新每个均值点。
  5. 重复步骤2-4
  6. 得到K个簇。

    下面我们依然用一个例子对K均值算法的聚类过程进行说明。我们分别围绕坐标平面内的技术分享图片点和技术分享图片点各生成100个具有标准差为1的高斯白噪声的样本,如图12左上角的图所示。我们用K均值算法对这个样本集进行聚类,理想情况下K均值算法能仅通过这些样本找到我们的初始样本中心点技术分享图片技术分享图片。对样本集进行四轮迭代,每次迭代的聚类情况如图12所示。

技术分享图片

图12 K均值算法迭代更新过程

    图12中每个簇的均值点用灰色方块表示,可以看到,尽管一开始初始状态时两个均值点是随机选取的,但随着迭代的进行,最终这两个均值点会移动到一个最佳位置使这两个簇尽量远,这个例子中当进行了4次迭代后两个簇的均值点的坐标分别是技术分享图片技术分享图片,可以看出已经非常接近我们生成样本时所用的中心点技术分享图片技术分享图片,说明聚类效果非常好。

    当然,上面例子我们用的是K=2的情况,也就是将数据集分为了两类,但现实中有很多问题我们事先并不知道有几类,那么我们可以尝试不同K值,得到一个满意的效果。图13展示了对上面提到的样本集进行K=2,K=3,K=4的K均值聚类。

技术分享图片

图13 不同K的取值下K均值聚类效果

无监督学习之聚类2——dbscan

根据学生月上网时间数据运用DBSCAN算法计算:#coding=utf-8importnumpyasnpimportsklearn.clusterasskcfromsklearnimportmetricsimportmatplotlib.pyplotaspltmac2id=dict()onlinetimes=[]f=open(‘F:dataTestData.txt‘,encoding=‘utf 查看详情

无监督学习之聚类1——kmeans

Kmeans算法分析31省市消费水平#coding=utf-8importnumpyasnpfromsklearn.clusterimportKMeansdefloadData(filepath):fr=open(filepath,‘r+‘)lines=fr.readlines()retData=[]retCityName=[]forlineinlines:items=line.strip().s 查看详情

《python机器学习及实践》----无监督学习之特征降维

本片博客是根据《Python机器学习及实践》一书中的实例,所有代码均在本地编译通过。数据为从该书指定的百度网盘上下载的,或者是sklearn自带数据下载到本地使用的。代码片段:#coding:utf-8importnumpyasnpM=np.array([[1,... 查看详情

机器学习实战5:k-means聚类:二分k均值聚类+地理位置聚簇实例

  k-均值聚类是非监督学习的一种,输入必须指定聚簇中心个数k。k均值是基于相似度的聚类,为没有标签的一簇实例分为一类。  一经典的k-均值聚类    思路:    1随机创建k个质心(k必须指定,二维的很容易确... 查看详情

无监督学习之rbm和autoencoder

几种学习方式半监督学习TransferLearningSelf-talkLearningRBMRBM的类别BoltzmannMachineRestrictedBoltzmannMachineEvaluationInferenceTraining网络结构训练过程概率分布计算与GibbsSampling对比散度ContrastiveDivergence泛化实例AutoEncoder特点实例有标签的数据 查看详情

《python机器学习及实践》----无监督学习之特征降维

本片博客是根据《Python机器学习及实践》一书中的实例,所有代码均在本地编译通过。数据为从该书指定的百度网盘上下载的,或者是sklearn自带数据下载到本地使用的。代码片段:#coding:utf-8importnumpyasnpM=np.array([[1,... 查看详情

无监督学习之rbm和autoencoder(代码片段)

几种学习方式半监督学习TransferLearningSelf-talkLearningRBMRBM的类别BoltzmannMachineRestrictedBoltzmannMachineEvaluationInferenceTraining网络结构训练过程概率分布计算与GibbsSampling对比散度ContrastiveDivergence泛化实例AutoEncoder特点实例有标签的数据 查看详情

5.1_非监督学习之sckit-learn(代码片段)

 非监督学习之k-meansK-means通常被称为劳埃德算法,这在数据聚类中是最经典的,也是相对容易理解的模型。算法执行的过程分为4个阶段。1.首先,随机设K个特征空间内的点作为初始的聚类中心。2.然后,对于根据每个数据的... 查看详情

机器学习之k-means算法

前言      以下内容是个人学习之后的感悟,转载请注明出处~  简介  在之前发表的线性回归、逻辑回归、神经网络、SVM支持向量机等算法都是监督学习算法,需要样本进行训练,且样本的类别是... 查看详情

机器学习实战精读--------k-均值聚类算法

      一个聚类算法只需要知道如何计算相似度就可以了K-均值(k-means)聚类算法:该算法可以发现K个不同的簇,每个簇的中心采用簇中所安置的均值计算而成。分层聚类算法①BIRCH算法:结合了层次聚类算... 查看详情

机器学习之无监督学习-k均值聚类算法(代码片段)

机器学习之无监督学习-K均值聚类算法对于无监督学习,有两类重要的应用,一个是聚类,一个是降维。我们今天主要学习聚类中的K均值聚类。我们先看看下图,图a为原始的数据点,我们想要对图a的数据点进... 查看详情

机器学习强基计划7-2:图文详解k-均值聚类(k-means)算法(附python实现)(代码片段)

...2.2K-means算法流程3Python实现3.1算法复现3.2可视化0写在前面机器学习强基计划聚焦深度和广度,加深对机器学习模型的理解与应用。“深”在详细推导算法模型背后的数学原理;“广”在分析多个机器学习模型:决策树... 查看详情

机器学习——利用k-均值聚类算法对未标注数据分组

聚类是一种无监督的学习,它将相似的对象归到同一簇中。它有点像全自动分类。聚类方法几乎可以应用到所有对象,簇内的对象越相似,聚类的效果越好。K-均值(K-means)聚类算法,之所以称之为K-均值是因为它可以发现k个不... 查看详情

机器学习之k-means聚类(python手写实现+使用silhouettecoefficient来选取最优k值)(代码片段)

文章目录K-MeansSilhouetteCoefficient(轮廓系数)代码实现参考K-MeansK-Means聚类又叫K均值聚类,是一种线性时间复杂度的聚类方法,也是比较成熟的一种聚类算法。具体计算步骤如上。SilhouetteCoefficient(轮廓系数... 查看详情

机器学习--k均值聚类算法原理方法及代码实现(代码片段)

一、K-means算法原理  k-means算法是一种简单的迭代型聚类算法,采用距离作为相似性指标,从而发现给定数据集中的K个类,且每个类的中心是根据类中所有值的均值得到,每个类用聚类中心来描述。对于给定的一个包含n个d维... 查看详情

机器学习k-means算法优化

K-Means算法优化学习目标1.Canopy算法配合初始聚类1.1Canopy算法配合初始聚类实现流程1.2Canopy算法的优缺点2.K-means++3.二分k-means4.k-medoids(k-中心聚类算法)5.Kernelk-means6.ISODATA7.MiniBatchK-Means8.小结学习目标知道K-means算法的... 查看详情

机器学习之聚类算法(k-meanscanopy层次聚类谱聚类)

目录1聚类的定义1.1距离公式(相似度)1.2聚类的思想2K-means算法2.1K-means算法的思考2.2总结3二分K-Means算法4K-Means++算法4.1K-Means||算法5Canopy算法5.1应用场景6MiniBatchK-Means算法7层次聚类方法7.1AGNES算法中簇间距离7.2层次聚类优化算法8... 查看详情

视觉机器学习------k-means算法

K-means(K均值)是基于数据划分的无监督聚类算法。一、基本原理   聚类算法可以理解为无监督的分类方法,即样本集预先不知所属类别或标签,需要根据样本之间的距离或相似程度自动进行分类。聚类算法可以分为基... 查看详情