K-Means聚类

前面的文章都是关于监督式机器学习,本文开始介绍一种“无监督学习”的聚类算法。在“无监督学习”模型中,训练样本的标记信息是未知的,目标是通过对无标记训练样本的学习来揭示数据的内在性质及规律,为进一步的数据分析提供基础。此类学习任务中研究最多、应用最广的是“聚类”(clustering)。

聚类

聚类试图将数据集中的样本划分为若干个通常是不相交的子集,每个子集称为一个“簇”(cluster)。通过这样的划分,每个簇可能对应一些潜在的概念(或类别)。需要说明的是,这些概念对聚类算法而言事先是未知的,聚类过程仅能自动形成簇结构,簇所对应的概念(类别)语义需由使用者来把握和命名。

聚类与分类的最大不同在于,分类的目标事先已知,而聚类则不一样。因为聚类产生的结果与分类相同,不同的是类别没有预先定义,这也是无监督分类的特点。

聚类既能作为一个单独过程,用于寻找数据内在的分布结构,也可作为分类等其他学习任务的前驱过程。

聚类分析试图将相似对象归入同一簇,将不相似对象归到不同簇。怎么判断对象是否相似呢?最简单的就是基于距离的算法。基于不同的相似计算方法,对应有多种类型的聚类算法。本文主要介绍K-Means聚类算法。

K-Means算法

K-Means算法的含义是它可以返现k个不同的簇,且每个簇的中心采用簇中所含值得均值计算而成。其中k是输入参数,每个簇通过其质心(centroid),即簇中所有点的中心来描述。

K-Means的流程,首先,随机确定k个初始点作为质心。然后将数据集中的每个点分配到一个簇中,具体来讲,为每个点找距离其最近的质心,并将其分配给改质心所对应的簇,这一完成后,每个簇的质心更新为该簇所有点的平均值。

聚类算法涉及的两个基本问题是:性能度量和距离计算。

性能度量

与监督学习中的性能度量作用相似,对聚类结果,我们需要通过某种性能度量来评估其好坏;另一方面,若明确了最终将要使用的性能度量,则可直接将其作为聚类过程的优化目标,从而更好地得到符合要求得聚类结果。

聚类是将样本集划分为若干个互不相交的子集。那么,什么样的聚类结果比较好呢?俗话说“物以类聚,人以群分”,也就是同一类样本都比较相似,而不同类的样本之间差异比较大。聚类性能度量大致有两类,一类是将聚类结果与某个“参考模型”进行比较,称为外部指标;另一类是直接考察聚类结果而不利用任何参考模型,称为内部指标。

距离计算

不同的距离度量会对结果产生很大的影响,常见的距离计算方法有:

  • 欧式距离(即欧拉公式):
    d = ( x 1 − x 2 ) 2 + ( y 1 − y 2 ) 2 d = \sqrt{(x_1-x_2)^2 + (y_1-y_2)^2} d=(x1x2)2+(y1y2)2

  • 曼哈顿距离:
    d = ∣ x 1 − x 2 ∣ + ∣ y 1 − y 2 ∣

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值