《机器学习》理论——速读学习2 常用方法(3)

2023-11-16

《机器学习》理论——速读学习2 常用方法(3)

该系列文章系个人读书笔记及总结性内容,任何组织和个人不得转载进行商业活动!

time: 2021-12-24

学习目标:我需要了解神经网络除了工程化部分之外的更多内容,以便于在实际有效数据中可以获得抽象模型的能力;

  • 第9章 聚类
  • 第10章 降维与度量学习

第9章 聚类

9.1 聚类任务

无监督学习中,训练样本的标记信息未知,目标是通过对无标记训练样本的学习来揭示数据内在的性质及规律,为进一步数据分析做基础;此类问题研究最多的就包括“聚类(clustering)”;

除了聚类任务,常见的无监督学习任务还有密度估计(density estimation)、异常检测(anomaly detection)等;

聚类试图将数据集中的样本划分为若干个通常是不相交的子集,每个子集称为一个簇(cluster)(就聚类算法而言,样本簇也称类);

每个簇(类)可能对应一些潜在的概念;

这些概念事先是未知的,聚类过程仅能自动形成簇结构,簇对应的概念需要由使用者自己把握;

聚类任务中可使用标记训练样本,如半监督聚类,但要注意样本的类标记和聚类产生的簇有所不同;即类标记不同于簇标记(cluster label);

聚类既能作为一个单独过程,用于找寻数据内在的分布结构,也可作为分类等其他学习任务的前驱过程;如用户分类,可以先聚类,再更具每个簇定义一个类,基于这些类训练分类模型;

后续:聚类的两个基本问题 —— 性能度量 和 距离计算,以及代表性算法;

9.2 性能度量

我们已经在第二章中了解过 监督学习中的性能度量;

聚类性能度量 亦称 聚类“有效性指标”(validity index);与监督学习中的性能度量作用类似;

即,对聚类结果,我们需要通过某种性能度量来评估其好坏,且一旦明确了最终要用的性能度量,可直接将其作为聚类过程的优化目标;

什么样的聚类比较好:

  • 同簇样本尽可能彼此相似,不同簇样本尽可能不同;
  • 即,聚类结果的簇内相似度(intra-cluster similarity)高,簇间相似度(inter-cluster similarity)低;

聚类性能度量大致分两类:

  • 聚类结果与某个参考模型进行比较,称为外部指标(external index)
    • Jaccard系数(Jaccard Coefficient,简称JC)
    • FM指数(Fowlkes and Mallows Index,FMI)
    • Rand指数(Rand Index,RI)
    • 这三个性能度量结果值 均在[0,1]区间,值越大越好;
  • 聚类结果直接考察,不利用任何参考模型,称为内部指标(internal index)
    • DB指数(Davies-Bouldin Index,DBI),值越小越好
    • Dunn指数(Dunn Index,DI),值越大越好;

9.3 距离计算

对于函数dist(,)表示一个距离度量(distance measure),满足:

  • 非负性:函数值大于等于0
  • 同一性:两个样本相同时,距离为0
  • 对称性:xi到xj的距离,与xj到xi的距离相等
  • 直递性:两个样本距离小于等于 某一中间样本到这两个点各自距离之和(有点像三角形两边之和大于第三边,等于时即为线段)

给定样本xi、xj,它们各自可以表示为一组属性值的向量,距离度量函数最常用的是闵可夫斯基距离(Minkowski distance);

  • 范数p的值=2时,即为欧氏距离
  • 范数p的值=1时,即为曼哈顿距离(Manhattan distance)

连续属性(continuous attribute)亦称 数值属性(numerical attribute);离散属性(categorical attribute)亦称 列名属性(nominal attribute);在讨论距离计算时,属性上是否定义了序关系往往很重要;由此可得到有序属性(ordinal attribute)和无序属性(non-ordinal attribute)的概念;

  • 闵可夫斯基距离 可用于 有序属性;
  • 对于无序属性可采用VDM(Value Difference Metric)距离;
  • 处理混合属性可结合闵可夫斯基距离和VDM,一般令有序属性排列在无序属性之前;
  • 当样本空间中不同属性的重要性不同是,可使用加权距离(weighted distance);(通常权重值累加和为1);

通常我们是基于某种形式的距离来定义相似度度量(similarity measure),即距离越大,相似度越小;

然而用于相似度度量的距离未必一定要满足距离度量的所有基本性质,尤其是直递性;对于不满足直递性的距离称为非度量距离(non-metric distance);

欧氏距离和余弦相似度:

  • 欧氏距离能够体现个体数值特征的绝对差异,所以更多的用于需要从维度的数值大小中体现差异的分析,如使用用户行为指标分析用户价值的相似度或差异;
  • 余弦相似度更多的是从方向上区分差异,而对绝对的数值不敏感,更多的用于使用用户对内容评分来区分用户兴趣的相似度和差异,同时修正了用户间可能存在的度量标准不统一的问题(因为余弦相似度对绝对数值不敏感);
# 欧氏距离关注的是向量值的差异;欧氏距离越小,说明个体差别越小
dist = linalg.norm(A - B) # 欧氏距离
sim = 1.0 / (1.0 + dist) # 归一化

# 余弦相似度关注的是向量的方向的偏差程度;余弦值越大,相似度越高
num = float(A.T * B) # 假定A、B为列向量,若为行向量则 A * B.T  
denom = linalg.norm(A) * linalg.norm(B)  
cos = num / denom # 余弦值  
sim = 0.5 + 0.5 * cos # 归一化 

9.4 原型聚类

原型 指样本空间中具有代表性的点;原型聚类亦称基于原型的聚类(prototype-based clustering);

  • 此类算法假设聚类结构能通过一组原型刻画,在现实聚类任务中极为通用;
  • 算法对原型初始化,然后对原型进行迭代更新求解;
  • 采用不同的原型表示、求解方法,将产生不同的算法;

以下是集中著名的原型聚类算法;

k均值算法

  • k均值(k-means)算法针对聚类所得簇划分 最小化平方误差;
  • E一定程度上刻画了簇内样本围绕簇均值向量的紧密程度,E值也是小,簇内样本相似度越高;
  • 最小化并不容易,最优解需要考虑样本集D的所有可能簇划分,这是一个NP难问题;
  • k均值算法采用贪心策略,通过迭代来近似求解;
    • 对均值向量初始化,假定类簇数k=3,算法开始随机选取三个样本作为初始均值向量;
    • 对当前簇划分及均值向量进行迭代更新,直到聚类结果保持不变(或小于设置的阀值,也可以设置最大迭代次数);
      • 考察样本x1,计算它与当前均值向量的距离,以决定x1被划分的簇,继续对所有样本考察一遍;
      • 这样就得到了新的簇划分;继而可以计算各个划分簇的均值向量;
      • 继续考察所有样本,与新划分簇的均值向量的距离,继续得到新的划分簇,不断重复该过程;
      • 直到触发终止条件;

学习向量量化

  • 学习向量量化(Learning Vector Quantization,LVQ)与k均值算法类似,也是视图找到一组原型向量来刻画聚类结构;
  • 与一般聚类算法不同的是,LVQ假设样本数据带有类别标记,学习过程利用样本的这些监督信息来辅助聚类;
  • 即,原型向量所代表的聚类簇标记,与样本的类标记 有交集(或是其子集);
    • 每个样本类中,随机选择有类标签的样本初始化为原型向量;
    • 每轮迭代中,找出与训练样本最近的原型向量;
      • 若两者类别一致,则更新原型向量(向训练样本靠拢,靠拢后的向量为原型向量 +(样本向量-原型向量)*学习率);
      • 若两者类别不一致,则更新原型向量(远离训练样本)
    • 最终学得的原型向量定义了一个与之相关的区域,该区域中每个样本与相应的原型向量距离不大于它与其他原型向量的距离;

SOM是基于无标记样本的聚类算法,LVQ可看做SOM基于监督信息的扩展;

对于一个样本集,如果全部都用原型向量来表示,即可实现数据的有损压缩(lossy compression),这个过程称为向量量化,LVQ由此得名;

由此形成的对样本空间的簇划分,通常称为Voronoi剖分(Voronoi tessellation);

高斯混合聚类

  • 与前两个不同,高斯混合(Mixture-of-Gaussian)聚类采用概率模型(高斯分布)来表达聚类原型
  • 簇划分则由原型对应后验概率确定,即每个高斯成分的混合系数由样本属于该成分的平均后验概率确定;
  • 基于EM算法对模型参数进行迭代更新;;

9.5 密度聚类

即基于密度的聚类(density-based clustering),此类算法假设聚类结构能通过样本分布的紧密程度确定;通常,是从样本密度的角度来考察样本之间的可连续性,并基于可连接样本不断扩展聚类以获得最终的聚类结果;

密度直达关系通常不满足对称性;密度可达关系满足直递性,但不满足对称性;密度相连关系满足对称性;

DBSCAN是一种著名的密度聚类算法,基于一组邻域(neighborhood)参数刻画样本分布的紧密程度;

  • 邻域:距离某一样本一定距离内的样本;
  • 密度直达(directly density-reachable):xi是核心对象,xj位于其邻域中,则称xj由xi直达;
  • 密度可达(density-reachable):xi、xj经过多个间接的密度直达,即为密度可达;
  • 密度相连(density-connected):xi、xj可用同一个核心对象密度可达,即为密度相连;

对于不属于任何簇的样本 一般被认为是噪声(noise)或异常(anomaly);

基于上述概念,DBSCAN将簇定义为:由密度可达关系导出的最大的密度相连样本集合;

  • DBSCAN算法先任选数据集中的一个核心对象为种子(seed),再由此触发确定相应的聚类簇;
  • 遍历数据集,根据邻域参数找出所有的核心对象,以任一核心对象为出发点,找出其密度可达的样本生成聚类簇(已被划分的核心对象,从所有的核心对象集合中删除即可),直到所有核心对象均被访问过为止(此时所有的核心对象集合为空);

层次聚类

层次聚类(hierarchical clustering)试图在不同层次对数据集进行划分,从而形成树形的聚类结构;

数据集的划分可采用自底向上的聚合策略,也可以采用自顶向下的分拆策略;

AGNES(AGglomerative NESting)是一种采用自底向上策略策略的层次聚类算法:

  • 数据集每个样本作为一个初始聚类簇;
  • 每一步找出距离最近的两个聚类簇进行合并,直到达到预设的聚类簇个数;

集合间距离计算常采用豪斯多夫距离;

聚类簇距离可以使用 最小距离(两个集合最近样本决定)、最大距离(两个集合最远样本决定)、平均距离(两个簇的所有样本共同决定),相应的AGNES算法分别被称为 单链接(single-linkage)全连接(complete-linkage)均链接(average-linkage)

聚类集成(clustering ensemble)通过对多个聚类学习器进行集成,能有效降低聚类假设与真实聚类结构不符、聚类过程中的随机因素等带来的不良影响;

异常检测(anomaly detection)常借助聚类或距离计算进行,如将远离所有簇中心的样本作为异常点,将密度极低处的样本最为异常点;(也有基于隔离性快速检测异常点的方法);

第10章 降维与度量学习

10.1 k近邻学习

k近邻(k-Nearest Neighbor,kNN)学习是一种常用的监督学习方法,工作机制是:给定测试样本,基于某种距离度量找出训练集中与其靠近的k个训练样本,然后基于这k个邻居的信息进行预测;

通常,分类任务使用投票法,即选择k个样本中出现最多的类别标记作为预测结果;回归任务中使用平均法,即将这k个样本的实值输出标记的平均值作为预测结果;还可以基于距离远近进行加权平均或加权投票,距离越近的样本权重越大;

k近邻学习有个明显之处:它似乎没有显式的训练过程;事实上,它是懒惰学习(lazy learning)的著名代表,此类学习技术在训练阶段仅仅把样本保存起来,训练时间开销为零,待收到测试样本后在进行整理;那些在训练阶段就对样本进行学习处理的方法,称为急切学习(eager learning)

显然k的取值 和 距离的计算方式,对结果有很大影响;

k=1时,即1NN,如果是对于分类问题,即最近邻分类器;给定测试样本x,若其最近邻样本为z,则最近邻分类器出错的概率就是x与z类别标记不同的概率,这个概率经推到计算,有结论:最近邻分类器虽简单,但它的泛化错误率不超过贝叶斯最优分类器的错误率的两倍(这里假设选取了合适的距离计算方式,且训练样本的采样密度足够大——即密采样,大到任意一个测试样本都可以在任意小的距离范围内找到一个训练样本);

10.2 低维嵌入

一般的密采样(dense sample)的假设很难满足,因为这需要太大量的样本;此外许多学习方法都涉及距离计算,高维空间的记录计算更不容易;

在高维情形下出现的数据样本稀疏、距离计算困难等问题,被称为“维数灾难(curse ofdimensionality)”;

缓解维数灾难的两种重要途径 分别是 降维(dimension reduction,也称维数约简)特征选择

降维,即通过某种数学变换将原始高维属性空间转变为一个低维子空间,在这个子空间中样本密度大幅提高,距离计算也变得更加容易;

低维嵌入:很多时候,人们观测或收集到的样本数据虽然是高维的,但是与实际学习任务相关的也许只是某个低维分布,这个低维分布就是原高维空间中的一个低维嵌入(embedding)

多维缩放(Multiple Dimensional Scaling,MDS):

  • 一种经典降维方法,可以使原始空间样本之间的距离在低维空间中得以保持;

一般来说,获得低维子空间的最简单方式就是对原始高维空间进行线性变换,即线性降维方法;

对降维效果的评估,通常是比较降维前后学习器的性能,性能有所提高则认为降维起到了作用;

10.3 主成分分析

主成分分析(Principal Component Analysis,PCA),也叫主分量分析,是最常用的降维方法(是一种无监督线性降维方法);

考虑,如何用一个超平面来表达正交属性空间中的样本点:

  • 最近重构性:样本点到这个超平面的距离都足够近;
  • 最大可分性:样本点在这个超平面上的投影能尽可能分散开(在超平面上投影后样本点的方差最大化);
  • 两种性质可以得出主成分分析的两种等价推导;

注:具体推到忽略,理解 最近重构性 和 最大可分性即可;

10.4 归纳偏好

线性降维假设从高维到低维的映射是线性的,但在现实任务中,可能需要非线性映射才能找到恰当的低维嵌入;

如从二维空间中的矩形区域采样后以S形曲面嵌入到三维空间,若直接使用线性降维则将丢失原本的低维结构;

原本样本采样的低维空间 称为本真(intrinsic)低维空间,注意要区别于降维后的低维空间;

非线性降维的一种常用方法,是基于核技巧对线性降维方法进行核化:核主成分分析(Kernelized PCA,KPCA);

10.5 流形学习

流形学习(manifold learning);

10.6 度量学习

度量学习,亦称距离度量学习(distance metric learning);

在机器学习中,对高维数据进行降维的主要目的是希望找到一个合适的低维空间,在此空间中进行学习能比原始空间性能更好;

  • 每个空间对应了在样本属性上定义的一个距离度量;
  • 合适的空间,即找到一个合适的距离度量(尝试学习到一个合适的距离度量即为度量学习);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

《机器学习》理论——速读学习2 常用方法(3) 的相关文章

  • 剑指Offer07:重建二叉树(Java)

    题目描述 解法思路 一开始想了半个小时都没想出来 幸好得到大佬的帮助 终于做出来 嘻嘻 采用递归的思想 不断拆分左右子树即可 首先我们通过前序遍历可以看到这个树的根节点是3 然后通过中序遍历 我们可以知道9是左子树 15 20 7是右子树
  • 如何把IDEA的项目上传到git上面去

    1 找到项目所在的位置 右击打开git bash here 2 初始化本地项目 输入git init 3 在码云 github 中新建 远程的 仓库 4 右击项目 选择git gt add 将项目添加到本地仓库 5 右击项目 选择git g

随机推荐

  • 面试题创作0010,请论述您对MMU的认识。

    1 请问你第一次在项目中接触MMU是什么情形 其实很少 除非是深度设计公司 2 请问简单论述MMU的使用步骤 3 Intel 的MMU和MIPS的MMU 以及ARM和RISC V的MMU有不一样么 4 您对MMU的发展历史有了解么 比如第一
  • idea启动缓慢解决办法

    idea启动缓慢解决办法 文章目录 idea启动缓慢解决办法 前言 一 修改内存大小 二 虚拟机运行大小 三 插件禁用 1 安卓相关 2 构建工具 3 Code Coverage 代码覆盖率 4 数据库 5 部署工具 6 html和xml
  • spring boot 与mybatis 整合配置 日志打印

    application properties mybatis check config location true mybatis mapper locations classpath mapper xml mybatis type ali
  • FCRP-D---帆软官网模拟题,报表模块

    1 要求 外观设计 ds1 ds2 实现根据所选的类别 出现该类别的产品 配置控件 隔行换色 金额大于1000显示红色并加粗 效果 没有选择产品类别 产品名称可以选择全部 2 要求 外观设计 采用决策报表 ds1 ds2 ds3 ds4 1
  • C++11中的std::bind

    文章转载自 http www jellythink com archives 773 看看这段代码 这几天学习Cocos2d x 看到了以下的一段代码 new callbacks based on C 11 define CC CALLBA
  • centos下vim使用

    vi的使用 基本上vi可以分为三种状态 分别是一般模式 编辑模式和命令行模式 各模式的功能区分如下 一般模式 以vi打开一个文件就直接进入一般模式了 这是默认的模式 在这个模式中 你可以使用上下左右按键来移动光标 你可以使用删除字符或删除整
  • 【算法】欧拉函数公式证明

    定义 欧拉函数 n varphi n n 表示小于等于 n n n且与
  • 正在找副业怎么找?空余时间找副业怎么找?

    很多人平时都是在企业上班 一谈到找副业 还真不知道找啥 或者就是利用空余时间去看看附近有什么临时工需求 其实这不是副业 只能算是兼职 还是靠出卖时间的廉价劳动力所得报酬的兼职 寻找合适的副业 方法主要有三个 1 从自己的主业出发 延伸出自己
  • 企业实施MES系统前后的10大效果对比,一文了解mes功能!

    什么是MES系统 MES信息化管理平台 包含了生产计划 采购 物流 销售 核算等模块 能够为我们带来可视化管理 可共性的管理 实施的管理等等 制造执行系统主要是针对车间级的 比如 我们可以对生产线进行实时监控 也就是说整个的生产过程监控 第
  • 概率论入门

    概率论入门 导论 概率论解决随机问题的本质 就是把局部的随机性转变为整体上的确定性 概率论的产生 能让我们对未来随机事件发生做出数学上的确定性判断 这是概率论的思想基石 概率论作为一种数学工具的基本思路 正式基于这种整体的 全局性的思考框架
  • 无理数无理性的证明问题

    问题1 求证 2 sqrt 2 不是有理数 证明 假设 2 sqrt 2 是有理数 可设 2 pq sqrt 2 frac p q p q N p 12289 q in N q gt 1 q gt 1 且 p q p 12289 q互质 则
  • 用AI给图片上色 在线将黑白照片处理成彩色照片工具(干货)

    一个在线的网址 用此工具可以给黑白照片上色 刚刚测试了一下 效果算是可以吧 图片直接进行拖拽 或者是在页面点击添加 处理后点击download即可 AI智能上色 效果看起来还不错吧 下面是测试的 图片转换地址 https imagecolo
  • timesten常见的一些简单问题

    环境为 instance name为eservice安装目录为 home timesten TimesTen 下面这些问题是针对新手而言的 通过这些问题可以帮助刚接触timesten的人可以快速配置timesten more 如何启动 ho
  • 成为优秀程序员的方法就是抛开编程?

    原文 How To Become a Better Programmer by Not Programming 作者 Jeff Atwood 我在2006年写过一篇题为 Programmers as Human Beings 程序员 亦人类
  • Python自动化操作Excel表格

    目录 一 Python打开及读取Excel表格内容 二 Python向Excel表格中写 三 批量调整字体 样式 四 编程生成Excel内图表 一 Python打开及读取Excel表格内容 打开以及读取Excel表格内容 列 column
  • 查看Google Chrome浏览器里的Cookie 文件

    文章目录 环境 步骤 扩展 chrome postman自动带入cookie 参考 平时访问各种网站查阅资料时 总是会弹框询问是否可以保存Cookie信息等 于是就好奇 看下Cookie文件存在哪里的 本文主要是基于这个问题出发 不了解co
  • MAVEN常用命令

    Maven库 http repo2 maven org maven2 Maven依赖查询 http mvnrepository com Maven常用命令 1 创建Maven的普通java项目 mvn archetype create Dg
  • Apache Derby 数据库 - 教程

    阿帕奇德比 本文介绍如何安装 Apache Derby 数据库 如何启动 Derby 服务器 如何通过 Java 连接到 Derby 以及如何使用 Derby 命令行工具发出 SQL 语句 还解释了将 Apache Derby 安装为 Wi
  • BCompare 4 key SN 亲测可用

    支持BCompare 4 2 32位 亲测可用 key w4G in5u3SH75RoB3VZIX8htiZgw4ELilwvPcHAIQWfwfXv5n0IHDp5hv 1BM3 H1XygMtiE0 JBgacjE9tz33sIh542
  • 《机器学习》理论——速读学习2 常用方法(3)

    机器学习 理论 速读学习2 常用方法 3 该系列文章系个人读书笔记及总结性内容 任何组织和个人不得转载进行商业活动 time 2021 12 24 学习目标 我需要了解神经网络除了工程化部分之外的更多内容 以便于在实际有效数据中可以获得抽象