应用机器学习(一):聚类分析

聚类分析

聚类分析(Cluster analysis),也称为聚类(Clustering),目的是将一个对象(object) 集分成若干组,使得在相同组(也称为类(Clusters))的象相比于不同组中的对象更相似。聚类分析被广泛地应用于数据挖掘中,特别是初步的探索性数据分析。例如,图1 中的左图是二维散点图,根据相似度聚成三类,右图用红绿蓝三种颜色表示聚类结果。

图1 二维散点聚类图

图 1 二维散点聚类图

聚类技术在图像分析、信息检索、生物信息、数据压缩和计算机图形学等领域被广泛地应用。下面以图形例举聚类的常见应用:

这里写图片描述

图 2 图像分割

这里写图片描述

图 3 人类人口结构

这里写图片描述

图 4 图像压缩

定义

一般地,将一个“类” 定义为一个数据对象集。而对于不同的类型,“类” 的概念有所不同,因此,重要的是对不同类模型的理解。常见的类模型有以下几种:

  • 连接模型 : 例如,基于距离连接的层次聚类法(hierarchical clustering);

  • 中心模型 : 例如,k-means法使用一个类均值代表一个类;

  • 分布模型 : 例如,用概率分布代表一个类,典型的方法有基于EM算法的多元正态分布。
    “聚类”实际上是给出一个类的集合,通常包括数据集的所有对象。同时,它可能也指出了类之间的 关系。例如,层次聚类法给出了类之间的层次结构。按照类结构特点,聚类也可以大致分为两种类型:

    • Hard clustering : 每一个对象确定地属于某一个类

    • Soft clustering : 每一个对象在某种程度上属于某个类,这里的“某种程度”,通常用概率表示。下面介绍三种常见的聚类算法。

    层次聚类

层次聚类法,构建一个类的层次结构,产生一个从根到叶的树形结构,称为系统树图(dendrogram)。层次聚类的策略通常分为两种,即:

  • Agglomerative : 自下而上聚类

每一个对象初始时自成一类,然后递归地合并两个具有最短类间距的类成一个新类,从下往上生成类层次。

  • Divisive : 自上而下聚类

所有对象初始时组成一个类,然后递归地将上层类按最大类间距分解成两个新类,从上往下生成类层次。最后,用户可以根据类层次结构自定义分类结果。图5是依两种策略的聚类过程示意图:

这里写图片描述

图 5 层次聚类示意图

k-means聚类

定义

假设由 n 个观测点组成的集合 (x1,x2,,xn) ,不妨设每个观测点是一个 d 维实向量。k-means聚类的目标是,将这 n 个观测分割进 K 个集 S={S1,S2,,SK} ,使得类内平方和 WCSS 最小。这里,我们定义类内平方和为类中的点与该类中心的距离和,即

WCSS=k=1KxSk||xμk||2

其中, μk,k=1,2,,K 是各类的中心,其值为该类中的观测点的均值。那么, k-means聚类的目标是找到一个分割 S ,使得
argminSk=1KxSk||xμk||2

算法实现

k-means聚类算法由以下三步组成:

  • Initial step : 从数据集随机地选择 K 个观测,分别作为 K 个类的中心,其值记为 μ1,μ2,,μK 。依次将 n 个观测分配到距离它们最近的类中。 K 个类中心自然在它们各自代表的类中。设 γik{ 0,1} 表示观测 xi 分配到类的情况, i=1,2,,n;k=1,2,,K . 显然, k=1Kγik=1

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值