聚类方法_7种常用的聚类方法

聚类方法_7种常用的聚类方法github代码及笔记:clickhere聚类是什么针对给定的样本,依据它们特征的相似度或距离,将其归并到若干个类或簇的数据分析问题聚类的目的通过得到的类或簇来发现数据的特点或对数据进行处理,在数据挖掘、模式识别等领域有着广泛的作用聚类属于无监督学习根据相似度或距离划分,初始时多少类

大家好,欢迎来到IT知识分享网。

github 代码及笔记:click here

  • 聚类是什么
    • 针对给定的样本,依据它们特征的相似度距离,将其归并到若干个类或簇的数据分析问题
  • 聚类的目的
    • 通过得到的类或簇来发现数据的特点或对数据进行处理,在数据挖掘、模式识别等领域有着广泛的作用
  • 聚类属于无监督学习
    • 根据相似度或距离划分,初始时多少类并不知道
  • 聚类算法:
    • 层次聚类(hierarchical clustering)
      • 聚合法自下而上,即开始时将每个样本各自分为一个类,之后将相距最近的两类合并,建立一个新的类重复此操作直至满足条件,得到层次化的类别
      • 分裂法自上而下,即开始时将所有样本归为一类,之后将已有的类中距离相距最远的样本到两个新的类,重复此操作直至满足条件,得到层次化的类别
    • k均值聚类(k-means clustering):基于中心的聚类,通过迭代,将样本分到 $ k $ 个类中,使得每个样本与其所属类的中心或均值最近,得到 $ k $ 个平坦的、非层次化的类别,构成对空间的划分

14.1 聚类的基本概念

14.1.1 相似度或距离

  • 聚类的对象是观测数据或样本集合。假设有 $ n $ 个样本,每个样本有 $ m $ 个属性的特征向量组成。样本集合表示为:

    img_1_样本集合.png

    • 元素 $ x_{ij} $ 表示第 $ i $ 个样本第 $ j $ 个属性,\(i = 1 , 2 , …, n, j = 1, 2, …, m\)
  • 聚类的核心概念是相似度或距离,有多种相似度或距离的定义。因为相似度直接影响聚类的结果,所以其选择是聚类的根本问题

闵可夫斯基距离

  • 在聚类中,可以将样本集合想象成向量空间中的点,以该空间的距离表示样本之间的相似度

    img_2_闵可夫斯基.png

马哈拉诺比斯距离(马氏距离)

  • 考虑各个分量(特征)之间的相关性并与各个分量的尺度无关

  • 马氏距离越大相似度越小,距离越小相似度越大

    img_3_马氏距离.png

相关系数

  • 相关系数的绝对值越接近于1,表示样本越相似

  • 相关系数的绝对值越接近于0,表示样本越不相似

    img_4_相关系数.png

夹角余弦

  • 夹角余弦越接近于1,表示样本越相似

  • 夹角余弦越接近于0,表示样本越不相似

    img_5_cosine.png

14.1.2 类或簇

  • 通过聚类得到的类或簇,本质是样本的子集

    • 硬聚类方法:一个聚类方法假定一个样本只能属于一个类,或类的交集为空集
    • 软聚类方法:一个聚类方法假定一个样本可以属于多个类,或类的交集不为空集

    img_6_类定义.png

  • 类的特征可以通过不同角度来刻画,常用的特征有下面三种

    img_7_类的特征.png

14.1.3 类与类之间的距离

img_8_类与类之间的距离.png

14.2 层次聚类

聚合聚类算法
  • 聚合聚类开始将每个样本各自分为一个类,之后将距离最近的两个类合并,建立一个新类,重复此操作直至满足停止条件,得到层次化的类别

  • 具体步骤:

    • 输入:$ n $ 个样本组成的样本集合及样本之间的距离

    • 输出:对样本集合的一个层次化聚类

      1. 计算 $ n $ 个样本两两之间的欧氏距离 $ d_{ij} $ ,记作矩阵 $ D= [d_{ij}]_{n×n} $

      2. 构造 $ n $ 个类,每个类只包含一个样本

      3. 合并类间距离最小的两个类,其中最短距离为类间距离,构建一个新的类

      4. 计算新类与当前各类的距离,若类的个数为1,终止计算,否则回到(3)

    • 聚合层次聚类算法的复杂度为 $ O(n^3m) $ ,其中 $ m $ 是样本的维数,\(n\) 是样本个数

分裂聚类算法

  • 分裂聚类算法开始将所有样本分为一个类,之后将已有类中距离最远的样本到两个新类,重复此操作直至满足停止条件,得到层次化的类别
  • 具体步骤:
    • 输入:$ n $ 个样本组成的样本集合及样本之间的距离
    • 输出:对样本集合的一个层次化聚类
      1. 计算 $ n $ 个样本两两之间的欧氏距离 $ d_{ij} $ ,记作矩阵 $ D= [d_{ij}]_{n×n} $
      2. 将样本集中的所有的样本归为一个类
      3. 在同一个类 $ c $ 中计算两两样本之间的距离,找出距离最远的两个样本 $ a $ 和 $ b $ ,之后将样本 $ a $ 和 $ b $ 分配到不同的类 $ c1 $ 和 $ c2 $ 中
      4. 计算原类 \(c\) 中剩余的其他样本点和 $ a $ 和 $ b $ 的距离,若是 $ distance(a)<distance(b) $ ,则将样本点归到 $ c1 $ 中,否则归到 $ c2 $ 中
      5. 重复步骤4直至达到聚类的数目或者达到设定的条件

14.3 $ k $ 均值聚类

  • $ k $ 均值聚类将样本集合划分为 $ k $ 个子集,构成 $ k $ 个类,将 $ n $ 个样本分到 $ k $ 个类中,每个样本到其所属类的中心的距离最小
  • k均值聚类属于硬聚类,每个样本属于一个类

14.3.1 模型

img_14_1431部分.png

14.3.2 策略

  • $ k $ 均值聚类的策略是通过损失函数最小化选取最优的划分或函数 $C^* $

  • 采用欧氏距离平方作为样本之间的距离

    img_9_欧氏距离平方.png

  • 定义样本与其所属类中心之间的距离的总和为损失函数

    img_10_总和损失函数.png

  • $k $ 均值聚类就是求解最优化问题

    img_11_最优化问题.png

    • 相似的样本被聚到同类时,损失函数值最小,这个目标函数的最优化能达到聚类的目的
  • 该优化问题是 $ n $ 个样本分到 \(k\) 个类,所有可能分法数量

    img_12_最优化问题数量级.png

    • 该数量是指数级的,采用迭代求解

14.3.3 算法

img_13_kmeans算法.png

14.3.4 算法特性

  • 总体特点
    • 基于划分的聚类算法
    • 类别数 \(k\) 事先指定
    • 欧氏距离平方表示样本之间的距离,以中心或样本的均值表示类别
    • 以样本和其所属类的中心之间的距离的总和为最优化的目标函数
    • 得到的类别是平坦的、非层次化
    • 算法是迭代算法,能保证全局最优
  • 收敛性
    • 启发式算法,无法保证全局最优
    • 初始中心点的选择会影响聚类结果
    • 类中心随着训练移动,但是移动不会太大,因为在每一步中,样本分到与其最近的中心的类中
  • 初始类的选择
    • 选择不同的初始中心,会得到不同的聚类结果
    • 初始中心的先用层次聚类对样本进行聚类,得到 $ k $ 个类是停止
  • **类别数 \(k\) 的选择 **
    • 尝试用不同\(k\) 值聚类
    • 一般而言,类别数变小时,平均直径会增加,类别数变大超过某一个值时,平均直径不变,即得到最优的 \(k\)

Write by zhgqcn

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/28239.html

(0)

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信