机器学习自学笔记——聚类

这篇具有很好参考价值的文章主要介绍了机器学习自学笔记——聚类。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

聚类的基本概念

聚类,顾名思义,就是将一个数据集中各个样本点聚集成不同的“类”。每个类中的样本点都有某些相似的特征。比如图书馆中,会把成百上千的书分成不同的类别:科普书、漫画书、科幻书等等,方便人们查找。每一种类别的书都有相似之处:比如科普书类别中的书基本上都是普及一些科学知识,这就是他们的相似之处。而聚类可以理解为“将一堆图书分为不同的类别的过程”。

这里不得不说明一下“聚类”和“分类”的区别:

  • 聚类是刚创立一个图书馆,通过各种渠道获得了一堆图书,事先我不知道可以分为哪些类,但是随着分类的进行,逐渐被分为不同的类。这是一种无监督学习
  • 分类是现在有一堆图书,要将其按类别放入图书馆的书架上,这些类别都是事先确定的,比如科普类、文学类、历史类等等,按类别放入即可。这是一种监督学习

数据的聚类方法有很多,如下图:

机器学习自学笔记——聚类

本文之后会主要介绍k-means(k均值聚类)和层次聚类算法中的聚合聚类

上面这些聚类算法有一些共同步骤:

  • 数据准备:对数据进行特征标准化和降维处理。就像将事先准备好的一本本图书一本本堆叠规整放好
  • 特征选择/提取:从最初的特征中选择最有效的特征,进行转换形成新的突出特征,并将其存储在向量中。就像将图书中十分破烂或者不良的剔除,并存储在专门存储图书的地方
  • 进行聚类:基于某种距离函数进行相似度度量,并形成聚簇。就像按照某种规律(书名出现相同的字)将图书之间归类(都出现百科归一类、都出现秋天归一类······)
  • 结果评估:对聚类的分类结果进行评估,判断聚类进行的优劣。就像将图书聚类完之后,抽取图书并翻看内容来判断其类别是否正确

相似度度量

在上面的聚类算法的步骤中,“进行聚类”这一步骤中出现了“相似度度量”,这也是聚类算法中最重要的点。比如像我用图书的例子进行类比时,在“进行聚类”这一步说得就十分不清楚,因为我没法找到一个合适的标准去衡量图书之间的相似程度。

在聚类算法中,我们会通过计算“距离”去衡量相似度。当我们将特征数字化之后,特征之间是否相似也就是特征数字之间是否大小接近。需要注意的是,这里的“距离”是广义距离,并不仅仅是我们通常理解的 d 1 − d 2 d_1-d_2 d1d2这种距离。下面我们来看几种比较常见的距离:

1、闵可夫斯基距离

① 欧式距离

欧式距离就是我们最常见的距离度量方法,就是两点之间的最短距离。

假设两个点的坐标分别为 x 1 ( x 11 , x 12 , x 13 , ⋅ ⋅ ⋅ , x 1 n ) x_1(x_{11},x_{12},x_{13},···,x_{1n}) x1(x11x12x13⋅⋅⋅x1n) x 2 ( x 21 , x 22 , x 23 , ⋅ ⋅ ⋅ , x 2 n ) x_2(x_{21},x_{22},x_{23},···,x_{2n}) x2(x21x22x23⋅⋅⋅x2n),(我们也称 x 11 , x 12 , x 13 , ⋅ ⋅ ⋅ , x 1 n x_{11},x_{12},x_{13},···,x_{1n} x11x12x13⋅⋅⋅x1n x 1 x_1 x1的特征)则这两个点的欧式距离为:
L ( x 1 , x 2 ) = ∑ i = 1 n ( x 1 i − x 2 i ) 2 L(x_1,x_2)=\sqrt{\sum_{i=1}^n{(x_{1i}-x_{2i})^2}} L(x1,x2)=i=1n(x1ix2i)2
② 曼哈顿距离

假设两个点的坐标分别为 x 1 ( x 11 , x 12 , x 13 , ⋅ ⋅ ⋅ , x 1 n ) x_1(x_{11},x_{12},x_{13},···,x_{1n}) x1(x11x12x13⋅⋅⋅x1n) x 2 ( x 21 , x 22 , x 23 , ⋅ ⋅ ⋅ , x 2 n ) x_2(x_{21},x_{22},x_{23},···,x_{2n}) x2(x21x22x23⋅⋅⋅x2n),则这两个点的曼哈顿距离为:
L ( x 1 , x 2 ) = ∑ i = 1 n ∣ x 1 i − x 2 i ∣ L(x_1,x_2)=\sum_{i=1}^n|x_{1i}-x_{2i}| L(x1,x2)=i=1nx1ix2i
③ 切比雪夫距离

假设两个点的坐标分别为 x 1 ( x 11 , x 12 , x 13 , ⋅ ⋅ ⋅ , x 1 n ) x_1(x_{11},x_{12},x_{13},···,x_{1n}) x1(x11x12x13⋅⋅⋅x1n) x 2 ( x 21 , x 22 , x 23 , ⋅ ⋅ ⋅ , x 2 n ) x_2(x_{21},x_{22},x_{23},···,x_{2n}) x2(x21x22x23⋅⋅⋅x2n),则这两个点的切比雪夫距离为:
L ( x 1 , x 2 ) = ( ∑ i = 1 n ∣ x 1 i − x 2 i ∣ p ) 1 p L(x_1,x_2)=(\sum_{i=1}^n|x_{1i}-x_{2i}|^p)^{\frac{1}{p}} L(x1,x2)=(i=1nx1ix2ip)p1
其中p趋于正无穷。

其实,上面三种计算方法可以进行一个统一,这就是这一部分的小标题——闵可夫斯基距离。欧氏距离是闵可夫斯基距离 L ( x 1 , x 2 ) = ( ∑ i = 1 n ∣ x 1 i − x 2 i ∣ p ) 1 p L(x_1,x_2)=(\sum_{i=1}^n|x_{1i}-x_{2i}|^p)^{\frac{1}{p}} L(x1,x2)=(i=1nx1ix2ip)p1 p = 2 p=2 p=2的结果,曼哈顿距离是该式 p = 1 p=1 p=1的结果,而切比雪夫距离是 p = + ∞ p=+\infin p=+的结果

2、马氏距离

马氏距离全称马哈拉诺比斯距离。样本不同的特征之间大小尺寸可能会不同,比如特征1两个数据为10000和20000,特征2两个数据为1和2。如果只考虑其距离,那么10000与12000之间相差的数字肯定要比1与2之间相差的数字要大,但这并不意味着前者的相似度一定要比后者更小,因为他们的尺寸不同难以比较,所以使用马氏距离可以避免这种问题:
d i j = [ ( x i − x j ) T S − 1 ( x i − x j ) ] 1 2 d_{ij}=[(x_i-x_j)^TS^{-1}(x_i-x_j)]^\frac{1}{2} dij=[(xixj)TS1(xixj)]21
其中 x i x_i xi是样本 i i i的特征矩阵, x j x_j xj是样本 j j j的特征矩阵, S S S是样本集合 X X X的协方差矩阵。

3、相关系数

相关系数的定义表达式为:
r i j = ∑ k = 1 m ( x k i − x ‾ i ) ( x k j − x ‾ j ) [ ∑ k = 1 m ( x k i − x ‾ i ) 2 ∑ k = 1 m ( x k j − x ‾ j ) 2 ] 1 2 r_{ij}=\frac{\sum_{k=1}^{m}(x_{ki}-\overline x_i)(x_{kj}-\overline x_j)}{[\sum_{k=1}^{m}(x_{ki}-\overline x_i)^2\sum_{k=1}^{m}(x_{kj}-\overline x_j)^2]^\frac12} rij=[k=1m(xkixi)2k=1m(xkjxj)2]21k=1m(xkixi)(xkjxj)
相关系数越接近1,表示样本越相似;相关系数越接近0,表示样本越不相似。

4、夹角余弦

夹角余弦的定义表达式为:
s i j = ∑ k = 1 m x k i x k j [ ∑ k = 1 m x k i 2 ∑ k = 1 m x k j 2 ] 1 2 s_{ij}=\frac{\sum_{k=1}^{m}x_{ki}x_{kj}}{[\sum_{k=1}^{m}x_{ki}^2\sum_{k=1}^{m}x_{kj}^2]^\frac12} sij=[k=1mxki2k=1mxkj2]21k=1mxkixkj
夹角余弦越接近1,表示样本越相似;夹角余弦越接近0,表示样本越不相似。

上面的这些距离是样本点之间的距离,在聚类算法中,我们还需要一种衡量类与类之间的距离方法,常见的有以下四种:

(1)最短距离/单链接(Single-link):

定义两个类的样本之间的最短距离为两类之间的距离。

缺点:容易出现包含范围特别大的类,因为并没有对两个类的最大距离进行限制。

(2)最长距离/完全链接(Complete-link):

定义两个类的样本之间的最长距离为两类之间的距离。

缺点:容易受到异常样本点的影响而造成不合理的聚类,因为异常样本点很容易干扰最长距离。

(3)中心距离(UPGMA):

定义两个类的样本中心之间的距离为两类之间的距离。

(4)平均距离(WPGMA):

定义两个类任意样本之间的距离的平均为两类之间的距离。

聚合聚类

聚合聚类是一种层次聚类算法,主要分为两种:聚合聚类和分类聚类。聚合聚类开始将每个样本各自分到一个类之中,之后再讲相距最近的两个类合并,最终生成一个类;而分裂聚类正好相反,先将所有样本分到一个类之中,再将样本中距离最远的分到两个新的类。这里只介绍聚合聚类。

算法步骤:

  • (1)计算样本两两之间的欧式距离,构造距离矩阵
  • (2)将每个样本都变成一个类: G 1 , G 2 , ⋅ ⋅ ⋅ , G n G_1,G_2,···,G_n G1,G2,⋅⋅⋅,Gn
  • (3)定义**最短距离(Single-link)**为类间距离,找出距离最小的两个类归为一个新的类
  • (4)如果只剩下一个类,那么停止运算,否则继续重复(3)(4)

算法复杂度: O ( n 3 m ) O(n^3m) O(n3m) n n n是样本个数, m m m是样本维数

K均值聚类

K均值聚类是已知要将原数据样本分成k个类,但是并不知道这k个类具体是什么。刚开始要随机选取k个点作为样本的初始中心点,这k个点各自属于一个类别。再通过比较距离大小将剩余的点分到这k个点对应的类别之中。

算法步骤:

  • (1)初始化,随机选取k个点作为初始的聚类中心,这k个点各属于一个类别
  • (2)计算每个样本到聚类中心的距离,并将其归类到与其距离最近的类之中
  • (3)通过对每个样本取均值计算每个类新的聚类中心(因为加入了新的点),重复(2)的操作
  • (4)如果两次操作所得到的分类相同,则停止操作。否则继续重复(2)(3)的操作

算法的复杂度: O ( n m k ) O(nmk) O(nmk) n n n是样本个数, m m m是样本维数, k k k是类别个数文章来源地址https://www.toymoban.com/news/detail-403551.html

到了这里,关于机器学习自学笔记——聚类的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 机器学习基本概念(李宏毅课程)

    机器学习 ≈ 训练生成一个函数f(.) ,这个函数相当复杂。 例如: 机器学习的目的是寻找一个满足需求的函数f(.),但是具体使用什么方式寻找f(.)没有说明。 深度学习为机器学习领域的一个子领域,故深度学习给出了寻找函数的方法,即通过“神经网络”来训练生成一个函数

    2024年02月21日
    浏览(43)
  • 吴恩达机器学习笔记:第 8 周-13 聚类(Clustering)13.1-13.2

    在这个视频中,我将开始介绍聚类算法。这将是一个激动人心的时刻,因为这是我们学习的第一个非监督学习算法。我们将要让计算机学习无标签数据,而不是此前的标签数据。 那么,什么是非监督学习呢?在课程的一开始,我曾简单地介绍过非监督学习,然而,我们还是有

    2024年04月22日
    浏览(49)
  • 机器学习的第一节基本概念的相关学习

    目录 1.1 决策树的概念 1.2 KNN的概念 1.2.1KNN的基本原理 1.2.2 流程: 1.2.3 优缺点 1.3 深度学习 1.4 梯度下降 损失函数 1.5 特征与特征选择 特征选择的目的 1.6 python中dot函数总结 一维数组的点积: 二维数组(矩阵)的乘法: 多维数组的乘法: 1.7  suffler   打乱 1.8 特征和标签 1

    2024年02月10日
    浏览(47)
  • 微服务学习笔记-基本概念

    微服务 是一种经过良好架构设计的 分布式架构方案 。根据业务功能对系统做拆分,每个业务功能模块作为独立项目开发,称为一个服务。 微服务的架构特征: 单一职责:微服务拆分粒度更小,每一个服务都对应唯一的业务能力,做到单一职责 自治:团队独立、技术独立、

    2024年02月13日
    浏览(39)
  • 机器学习中最基本的概念之一:数据集、样本、特征和标签

    数据集、样本、特征和标签是机器学习中的重要概念,这些概念在机器学习算法的设计和实现过程中起着至关重要的作用。在本文中,我们将对这些概念进行详细的讲解,以便更好地理解机器学习算法的基本原理和应用。 数据集是机器学习中最基本的概念之一,它是指一组相

    2024年02月09日
    浏览(35)
  • 王道操作系统学习笔记(1)——操作系统基本概念

    本文介绍了操作系统的基本概念,文章中的内容来自B站王道考研操作系统课程,想要完整学习的可以到B站官方看完整版。 操作系统:系统资源的管理者(处理机管理、存储器管理、文件管理、设备管理) 交互式命令(在终端中输命令)和批处理命令(Shell脚本) 并发: 宏

    2024年02月10日
    浏览(47)
  • YOLO学习笔记1. YOLOV1的基本概念

    YOLO(You Only Look Once)是一种流行的实时目标检测算法,由Joseph Redmon和Ali Farhadi等人开发。 YOLO作为目标检测算法,旨在识别图像中出现的物体以及它们的位置。与其他目标检测算法不同的是,YOLO将整个图像看作一个整体,并使用单个CNN(卷积神经网络)模型直接预测图像中所

    2024年02月16日
    浏览(51)
  • 学习笔记-JAVAJVM-JVM的基本结构及概念

    申明:文章内容是本人学习极客时间课程所写,文字和图片基本来源于课程资料,在某些地方会插入一点自己的理解,未用于商业用途,侵删。 原资料地址:课程资料 什么是JVM 原文连接: 原文连接 JVM是Java Virtual Machine(Java虚拟机)的缩写,是通过在实际的计算机上仿真模

    2024年02月14日
    浏览(78)
  • 人工智能课程笔记(7)强化学习(基本概念 Q学习 深度强化学习 附有大量例题)

    强化学习和深度学习都是机器学习的分支,但是两者在方法和应用场景上有所不同。 强化学习 : 强化学习概述 :强化学习是一种通过智能体与环境进行交互来学习最优行动策略的算法。在强化学习中,智能体与环境不断交互,观察环境的状态并采取不同的行动,从而获得奖

    2024年01月17日
    浏览(50)
  • 软件设计师学习笔记12-数据库的基本概念+数据库的设计过程+概念设计+逻辑设计

    目录 1.数据库的基本概念 1.1数据库的体系结构 1.1.1常见数据库 1.1.2分布式数据库的特点 1.1.3分布式数据库的透明性 1.1.4例题 1.2三级模式结构 1.2.1三级模式概念图 1.2.2例题 1.3数据仓库 1.3.1数据仓库的特点 1.3.2数据仓库的过程 1.3.3例题 2.数据库的设计过程 2.1设计过程概念图 2

    2024年02月07日
    浏览(64)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包