降维与度量

样本的特征称为维数,当维数非常大时,也就是现在所说的维度灾难,具体表现在:在高维数据下,数据样本将变得十分稀疏,因为此时要满足训练样本为密采样的总体样本数目是一个触不可及的天文数字,谓可远观而不屑焉知,训练样本的稀疏使得其代表总体样本的分布能力大大减弱,从而消减了学习器的泛化能力。同时,当维数很高时,计算的距离也变得十分复杂,甚至连计算内积都不算容易,这也是为什么支持向量机使用核函数低维计算,高维表现的原因

缓解维度灾难的一个重要途径就是降维,即通过某种数学变换将原始高维空间转换到一个低维子空间,在这个子空间中,样本的密度将大幅度提高,同时距离计算也变得很容易。这时也许会很有疑问?这样降维会不会丢失原始数据得一部分信息呢?这是因为在很多实际问题中,虽然训练数据是高维的,但是与学习任务相关也仅仅是其中的一个低维子空间,也称为一个低维嵌入。例如:数据属性中存在噪声属性,相似属性或冗余属性等。对高维数据进行降维都在一定程度上达到提炼优质属性和降噪效果

K近邻学习

k近邻算法简称kNN(k-Nearest Neighbor),是一种经典的监督学习方法,同时也实力担当入选数据挖掘十大算法。其工作机制十分简单粗暴:给定某个测试样本,kNN基于某种距离度量在训练集中找出与其距离最近的 k k k个带有真实标记的训练样本,然后给基于这 k k k个邻居的真实标记来进行预测,类似于前面集成学习中所讲到的基学习器结合策略:分类任务采用投票法,回归任务则采用平均法。接下来本篇主要就kNN分类进行讨论。

从上图中,我们可以看到,图中有两种类型的样本,一类是蓝色正方形,一类是红色三角形,而那个绿色原型是我们待分类样本,基于KNN算法思路,我们很容易得出以下结论:

如果K=3,那么离绿色点最近的有2个红色三角形和1个蓝色的正方形,这3个点投票,于是绿色的这个待分类点属于红色的三角形。
如果K=5,那么离绿色点最近的有2个红色三角形和3个蓝色的正方形,这5个点投票,于是绿色的这个待分类点属于蓝色的正方形

可以发现,KNN是一种监督学习方法,但是其却没有显式的训练过程。而是当有新样本需要预测的时候,才来计算出最近 k k k个邻居,
因此KNN是一种典型的懒惰学习方法,再来回想以下朴素贝叶斯流程,训练过程就是参数估计,因此,朴素呗耶斯也可以是懒惰式学习,此类技术在训练阶段开销为零,待收到测试样本后再进行计算。相应地我们称那些一有训练数据立马开工的算法为“急切学习”,可见前面我们学习的大部分算法都归属于急切学习

很容易,看出KNN算法的核心在于K值的选择以及距离的度量, k k k值选取大小,模型很容易受到噪声数据的干扰,例如:极端的取 k = 1 k = 1 k=1,若待分类样本正好与一个噪声数据距离相近,就导致了分类错误,若 k k k值太大,则在更大的领域内进行投票,此时模型的预测能力大大减弱,例如:极端取k = 训练样本数目,就相当于模型根本没有学习,所有测试样本的预测结果都是一样的,一般地我们通过交叉验证法来选取一个适当的 k k k值。

对于距离度量,不同的度量方法得到k个近邻不尽相同,从而对最终的投票结果产生了影响,因此,选择一个合适的距离度量方法也十分重要,在上一篇聚类算法中,在度量样本相似性时介绍了常用的几种距离计算方法,包括闵可夫斯基距离,曼哈顿距离,VDM等。在实际应用中,kNN的距离度量函数一般根据样本的特性来选择合适的距离度量,同时应对数据进行去量纲/归一化处理来消除大量纲属性的强权政治影响

MDS算法

不管是使用核函数升维还是对数据降维,我们都希望原始空间样本点之间的距离在新空间中基本保持不变,这样才不会使得原始空间样本之间的关系及总体分布发生较大的改变。“多维缩放”(MDS)正是基于这样的思想,MDS要求原始空间样本之间的距离在降维后的低维空间中得以保持。(样本之间的距离得以保持)
假定 m m m个样本在原始空间中任意两两样本之间的距离矩阵为 D ∈ R ( m , m ) D \in R(m,m) D∈R(m,m)
我们的目标是使得获得样本在低纬空间中表示 Z ∈ R ( d ′ m , d ′ < d ) Z∈R(d'm , d'< d) Z∈R(d′m,d′<d),
且任意两个样本在低维空间中的欧式距离等于原始空间中的距离,即 ∣ ∣ Z i − Z j ∣ ∣ = D i s t ( i j ) ||Z_i - Z_j|| = Dist(ij) ∣∣Zi​−Zj​∣∣=Dist(ij)
且接下来,偶们要做的都是根据已经有的距离矩阵 D D D来度量降维后的坐标矩阵Z:

令降维后的做标空间 Z Z Z被中心化,中心化是指将每个样本的向量减去整个样本集的均值向量,故所有样本求和得到一个零向量,这样容易知道:矩阵 B B B的每一列以及每一列求和均为0,因为提取公因子后都有一项为所有样本的向量和向量。

根据上面矩阵 B B B的特征,我们很容易得到以下等式:

MDS算法流程如下图所示:

主成分分析(PCA)

不同于MDS采用距离保持的方法,主成分分析(PCA)直接通过一个线性变换,将原始空间中的样本投影到新的低维空间中。简单来理解这一过程便是:PCA采用一组新的基来表示样本点,其中每一个基向量都是原来基向量的线性组合,通过使用尽可能少的新基向量来表出样本,从而达到降维的目的
(采用一组新的基来表示样本点)
假设使用 d ‘ d` d‘个新基向量来表示源来样本,实际上将样本投影到一个由 d ‘ d^` d‘ 个基向量确定的超平面上,(即舍弃了一些维度),而要用一个超平面对空间中的所有高维样本进行恰当表达,最理想的情形是:
这些样本点都能在超平面上表出且这些表出在超平面上都能够很好地分散开来。但是一般使用较原空间低一些维度的超平面来做到这两点十分不容易,因此我们退一步海阔天空,要求这个超平面应具有如下两个性质:

  • 最近重构性:样本点到朝平面的距离足够近,即尽可能的在超平面附近。
  • 最大可分性:样本点在超平面的投影即可能的分散开来,即投影后的坐标具有区分性。
    这里十分神奇的是:最近重构性与最大可分性虽然从不同的出发点来定义优化问题中的目标函数,但最终这两种特性得到了完全相同的优化问题
    (从不同出发点来定义优化问题的目标函数)

接着使用拉格朗日乘子来求解上面优化问题:

因此只需对协方差矩阵进行特征值分解即可求解出 W W W,PCA算法的整个流程如下图所示:

核化线性降维

说起机器学习你中有我/我中有你/水乳相融…在这里能够得到很好的体现。正如SVM在处理非线性可分时,通过引入核函数将样本投影到高维特征空间,接着在高维空间再对样本点使用超平面划分。这里也是相同的问题:若我们的样本数据点本身就不是线性分布,那还如何使用一个超平面去近似表出呢?因此也就引入了核函数,即先将样本映射到高维空间,再在高维空间中使用线性降维的方法。下面主要介绍核化主成分分析(KPCA)的思想。

若核函数的形式已知,即我们知道如何将低维的坐标变换为高维坐标,这时我们只需先将数据映射到高维特征空间,再在高维空间中运用PCA即可。但是一般情况下,我们并不知道核函数具体的映射规则,例如:Sigmoid、高斯核等,我们只知道如何计算高维空间中的样本内积,这时就引出了KPCA的一个重要创新之处:即空间中的任一向量,都可以由该空间中的所有样本线性表示。证明过程也十分简单:


这样我们便可以将高维特征空间中的投影向量 w i wi wi使用所有高维样本点线性表出,接着代入PCA的求解问题,得到:


化简到最后一步,发现结果十分的美妙,只需对核矩阵 K K K进行特征分解,便可以得出投影向量 w i wi wi对应的系数向量α,因此选取特征值前d’大对应的特征向量便是d’个系数向量。这时对于需要降维的样本点,只需按照以下步骤便可以求出其降维后的坐标。可以看出:KPCA在计算降维后的坐标表示时,需要与所有样本点计算核函数值并求和,因此该算法的计算开销十分大


会自己将各种公式,各种定理推导以下。

流形 学习

流行学习是一种借助拓扑流行概念的降维方法,流形是指在局部与欧式空间同胚的空间,即在局部与欧式空间具有相同的性质,能用欧氏距离计算样本之间的距离。这样即使高维空间的分布十分复杂,但是在局部上依然满足欧式空间的性质,基于流形学习的降维正是这种**“邻域保持”的思想**。其中等度量映射(Isomap)试图在降维前后保持邻域内样本之间的距离,而局部线性嵌入(LLE)则是保持邻域内样本之间的线性关系,下面将分别对这两种著名的流行学习方法进行介绍。

等度量映射

等度量映射的基本出发点是:高维空间中的直线距离具有误导性,因为有时高维空间中的直线距离在低维空间中是不可达的。因此利用流形在局部上与欧式空间同胚的性质,可以使用近邻距离来逼近测地线距离,即对于一个样本点,它与近邻内的样本点之间是可达的,且距离使用欧式距离计算,这样整个样本空间就形成了一张近邻图,高维空间中两个样本之间的距离就转为最短路径问题。可采用著名的Dijkstra算法或Floyd算法计算最短距离,得到高维空间中任意两点之间的距离后便可以使用MDS算法来其计算低维空间中的坐标


从MDS算法的描述中我们可以知道:MDS先求出了低维空间的内积矩阵B,接着使用特征值分解计算出了样本在低维空间中的坐标,但是并没有给出通用的投影向量w,因此对于需要降维的新样本无从下手,书中给出的权宜之计是利用已知高/低维坐标的样本作为训练集学习出一个“投影器”,便可以用高维坐标预测出低维坐标。Isomap算法流程如下图:
(使用高维坐标预测出低维坐标)

对于近邻图的构建,常用的有两种方法:一种是指定近邻点个数,像kNN一样选取k个最近的邻居;另一种是指定邻域半径,距离小于该阈值的被认为是它的近邻点。但两种方法均会出现下面的问题:

若邻域范围指定过大,则会造成短路问题,即本身距离很远却成了近邻,将距离近的那些样本扼杀在摇篮中。
若领域范围指定过小,则会造成断路问题,即有点样本点无法可达了,整个世界村被划分为互不可达的小部落。

局部线性嵌入

不同于Isomap算法去保持邻域距离,LLE算法试图去保持邻域内的线性关系,假定样本xi的坐标可以通过它的邻域样本线性表出
x i = w i j x j + w i k x k + w i l x l x_i = w_{ij}x_j + w_{ik}x_k + w_{il}x_l xi​=wij​xj​+wik​xk​+wil​xl​

LLE算法分为两步走:首先第一步根据近邻关系计算出所有样本的领域重构系数w:

接着根据领域重构系数不变,去求解低维度坐标:

这样利用矩阵M,优化问题可以重写为:

LLE算法具体流程如下图所示:

学习心得

一定的数学概念,以及一定的线性代数知识需要搞定,全部将其搞定都行啦的理由与打算。
各种模型啥的以及数学公式需要自己推导,全部将其推导完成都行啦的理由与打算,全部将其推导完成,以及各种各样的数学公式都行啦的理由!

降维与度量——周志华《机器学习》相关推荐

  1. 周志华机器学习(西瓜书)学习笔记(持续更新)

    <周志华机器学习>笔记 第1章 绪论 1.1 引言 1.2 基本术语 1.3 假设空间 1.4 归纳偏好 1.5 发展历程 1.6 应用现状 第2章 模型评估与选择 2.1 经验误差与过拟 ...

  2. 【读书笔记】周志华 机器学习 第二章 模型评估和选择

    第二章 模型评估和选择 1 欠拟合和过拟合 偏差和方差 1.1 欠拟合和过拟合 1.2 偏差和方差 2 评估方法 性能度量 2.1 评估方法 2.1.1 留出法 2.2.2 交叉验证法 2.2.3 自 ...

  3. 周志华机器学习--模型评估与选择

    周志华机器学习–模型评估与选择 第一章 绪论 第二章 模型评估与选择 第三章 线性模型 第四章 决策树 第五章 支持向量机 第六章 神经网络 第七章 贝叶斯分类器 第八章 集成学习和聚类 文章目录 周 ...

  4. 周志华机器学习-决策树

    周志华机器学习-决策树 第一章 绪论 第二章 模型评估与选择 第三章 线性模型 第四章 决策树 第五章 支持向量机 第六章 神经网络 第七章 贝叶斯分类器 第八章 集成学习和聚类 文章目录 周志华机器 ...

  5. 周志华-机器学习西瓜书-第三章习题3.3 编程实现对率回归

    本文为周志华机器学习西瓜书第三章课后习题3.3答案,编程实现对率回归,数据集为书本第89页的数据 使用tensorflow实现过程 # coding=utf-8 import tensorflow a ...

  6. 周志华机器学习(6):支持向量机

    周志华机器学习(6):支持向量机 6 支持向量机 6.1 间隔与支持向量 6.2 对偶问题(dual problem) 6.3 核函数 6.4 软间隔与正则化 基本是大段摘录西瓜书加上一些自己的解释补 ...

  7. 周志华机器学习--绪论

    周志华机器学习–绪论 第一章 绪论 第二章 模型评估与选择 第三章 线性模型 第四章 决策树 第五章 支持向量机 第六章 神经网络 第七章 贝叶斯分类器 第八章 集成学习和聚类 文章目录 周志华机器学 ...

  8. 周志华机器学习-支持向量机

    周志华机器学习-支持向量机 第一章 绪论 第二章 模型评估与选择 第三章 线性模型 第四章 决策树 第五章 支持向量机 第六章 神经网络 第七章 贝叶斯分类器 第八章 集成学习和聚类 – 文章目录 周 ...

  9. 周志华 机器学习初步 线性模型

    周志华 <机器学习初步> 线性模型 还未更新完,会持续更新 文章目录 周志华 <机器学习初步> 线性模型 一.线性回归 1.线性模型 线性模型的特点和重要性 线性模型的基本形式 ...

最新文章

  1. JAVA的异常(四):finally关键字
  2. 服务器宽带性能如何?----internet性能测试站点汇集
  3. 没有调查就没有发言权
  4. Pyppeteer 使用笔记
  5. 【Hihocoder - 1723】子树统计(线性基合并)
  6. mysql column legnth too big for_Column length too big for column 'Flist' (max = 21845);
  7. html博客源码_5分钟搭建私人Java博客系统——Tale
  8. fstream与 C 风格(例如fread 和 fwrite )两种读写文件方法的效率比较
  9. CEO 职位也不保,盘点 2017 年 IT 界残酷的裁员事件
  10. 实时的含时密度泛函理论(rt-TDDFT)的算法进展及在超快动力学中的应用
  11. MT 3DGIS 试用版本开发包及教程下载地址
  12. S-LIME阅读笔记(有实验代码)
  13. 绘制一张透明背景的单色位图
  14. 计算机组成原理学习 笔记三
  15. 无人机实时流怎么开_直播解决方案,如何利用无人机进行直播
  16. kali19.4安装中文输入法
  17. 2021年度深圳市企业技术中心认定条件申请指南
  18. hdu1425 sort
  19. JS中typeof() !== 'undefined'的解释
  20. Office多版本共存,设置打开的版本

热门文章

  1. AI职场汇报智能办公文案写作效率提升视频教程
  2. 2013 北京 QCon热点分享
  3. arguments的用法
  4. 如何解决云服务器很卡的问题
  5. C# - 解决TreeView控件复选框联动时鼠标点击过快导致的显示不正确的问题
  6. win10文件后缀名怎么显示_怎么把win7文件名都显示出来
  7. java httpclient 模拟登录
  8. error Irregular whitespace not allowed no-irregular-whitespace原因及解决办法
  9. 《海外社交媒体营销》一一2.1 社交媒体与其他媒体的关系
  10. 51 jQuery-使用slideDown()与slideUp()方法实现滑动效果