因为最近接触到基于SVD算法的相关算法,所以这几天就细细看了SVD算法的相关内容,又一连串的引出PCA算法的内容。
今天就好好的把它们俩整理一下。

1.SVD

其实之前做算法相关时,也有了解到SVD算法,但一直都是似懂非懂。这里首先给出SVD算法的定义,

除了定义,我们还可以提前知道SVD常用于降噪、数据分析等需要矩阵分解的应用里。SVD算法对于矩阵的分解提供了一种很好的可行方案。M = UΣVT。 这就表明任意的矩阵 M 是可以分解成三个矩阵。V 表示了原始域的标准正交基,u 表示经过 M 变换后的co-domain的标准正交基,Σ 表示了V 中的向量与u 中相对应向量之间的关系。
  
     但是我们最好是从SVD的几何意义中来理解SVD算法到底具体应用是怎么样的,AMS网站上有一片博客很清晰的讲了什么是  Singular Value Decomposition,有博主也将它翻译出来作为参考学习了。简而言之,它从几何意义上讲了二维的SVD:对于任意的 2 x 2 矩阵,通过SVD可以将一个相互垂直的网格(orthogonal grid)变换到另外一个相互垂直的网格!

在向量的格式上,就是进行一次标准的变换,任意的矩阵可以分解为三个矩阵,三个矩阵分别为原始的标准正交基、变换后的标准正交基以及这个变换之间的关系,这个关系是一个对角矩阵,对角线上的元素表示两组标准正交基的特征关系。

2.PCA

PCA(Principal Component Analysis)是一种数据分析的方法,通常用于降维,提取主要特征量。周志华的机器学习第十章就是专门讲的降维和度量学习,这里我就简单提一嘴什么是降维(dimension reduction),因为我之后肯定会单独整理第十章的内容的。

什么是降维?维度是在我们机器学习中必须遇到见到甚至熟悉的概念。有许多机器学习设计的数据网络都存在高维空间,高维空间会给距离计算带来很大的麻烦,所以在实际应用中我们可以选择降维来缓解维数灾难。所以言归正传,姜维就是通过某种数学变换将原始高维属性空间转变为一个低维“子空间”,当然这会导致子空间中样本密度的提高。

PCA的全名叫做主成分分析,顾名思义就是找出数据里面的主要部分,用数据里面最主要的部分来代替原始数据。使用更低维度的数据来代表高维的原始数据,但是这样不可避免地会导致损失的出现,怎么样让我们总的损失最小,就是需要考虑衡量的一个问题。所以要进行PCA,我们主要需要考虑的两个方面是:(1)“方差”最大(2)“误差”最小。

第一个需要讨论的就是:最大可分性。要想找到最具特征且最能将数据分开的数据。现实的数据集中,会有很对具有一定相关性的数据,我们的任务就是在这里面选出差异最大,区分能力最强的“特性”。

第二个需要讨论的是:最近重构性。怎么说呢,关于最近重构性我是这样理解的。从一堆能“重建”新特性的旧特性中选出距离和我们的“基”坐标最近的数据。下图的图形中有一个十字坐标,这个十字坐标是一个“基”坐标,“方差”就是红点到黑色的中心圆圈的距离平方的平均值,“误差”表示蓝色小点到投影到直线上的红色小点的距离。由此我们很明显的可以得到我们的所需要方向,从这个方向来构建基变换,就能达到我们的目的,实现最大可分性。

而我们的PCA就是这样一种可用于降维的分析方法,下面给出PCA算法步骤:

论SVD和PCA的渊源相关推荐

  1. SVD与PCA的区别

    SVD与PCA区别 矩阵对向量的乘法,对应于该向量得旋转.伸缩.若对某向量只发生了伸缩而无旋转变化,则该向量是该矩阵的特征向量,伸缩比为特征值. PCA用来用来提取一个场的主要信息(即对数据集的列数- ...

  2. SVD奇异值分解(PCA,LSI)

    版权声明: 本文由LeftNotEasy发布于http://leftnoteasy.cnblogs.com, 本文可以被全部的转载或者部分使用,但请注明出处,如果有问题,请联系wheeleast@gm ...

  3. 画出降维后的图片_机器学习实战基础(二十三):sklearn中的降维算法PCA和SVD(四) PCA与SVD 之 PCA中的SVD...

    PCA中的SVD 1 PCA中的SVD哪里来? 细心的小伙伴可能注意到了,svd_solver是奇异值分解器的意思,为什么PCA算法下面会有有关奇异值分解的参数?不是两种算法么?我们之前曾经提到过,P ...

  4. 奇异值分解(SVD)与PCA(主成分分析)

    奇异值分解(Singular Value Decomposition,以下简称SVD)是在机器学习领域广泛应用的算法,它不光可以用于降维算法中的特征分解,还可以用于推荐系统(稍后讲解),以及自然语言处 ...

  5. 串糖葫芦了: 矩阵乘法/线性变换 + 特征分解/奇异值分解(SVD) + PCA(请假设中间串了一根棍儿O(∩_∩)O)

    文章目录 写在前面 可以开始串山楂了 第一个山楂:矩阵变换对应旋转例子 第二个山楂:矩阵变换对应缩放的例子 第三个山楂:只有方阵才有的特征分解 Eigen Decomposition 第四个山楂:从方 ...

  6. Eigendecomposition, SVD and PCA

    特征值分解, SVD 和 PCA 特征值分解 特征值与特征向量 Av=λv Av = \lambda v 注意矩阵 AA是一个线性变换.那么这个公式是说,该线性变换作用在向量vv上,相当于仅仅对向量 ...

  7. 算法杂记-SVD,PCA,KPCA以及PPCA和FA

    算法杂记-SVD,PCA,KPCA以及PPCA和FA SVD 定义 假设\(A\)为\(M\times N\)矩阵,则存在\(M\times M\)维正交矩阵\(U=[u_1,u_2,\cdots,u ...

  8. 奇异值分解SVD与PCA

    首先:奇异值分解是一个有着很明显的物理意义的一种方法,它可以将一个比较复杂的矩阵用更小更简单的几个子矩阵的相乘来表示,这些小矩阵描述的是矩阵的重要的特性. 1. 奇异值与特征值基础知识 特征值分解和奇 ...

  9. SVD 与 PCA 的直观解释(4): PCA 主成分分析

    这部分主要讲解 特征向量空间和SVD分解 在PCA中的应用. reference: A Tutorial on Principal Component Analysis .pdf (通俗易懂) htt ...

最新文章

  1. JAVA垃圾回收机制概要
  2. 聚焦AI发展 | 这可能是今年最干货的线上分享会了
  3. SAP EWM 与 AGV 机器人对接的三种模式
  4. 倒下的RoadStar结局来了:VC清盘止损,三位创业者承担1亿债务,打着官司各投林...
  5. 007_停止动画或效果
  6. zoj 3707 Calculate Prime S
  7. 多路串口服务器的应用及应用范围介绍
  8. Windows平台下的Redis集群搭建(简单有效)
  9. Bokeh 添加注释
  10. unityios开发--Scorll View控件 .
  11. php goeasy,Goeasy数据推送 - 使用goeasy由后端向前端推送数据 – 基于ThinkPHP和Bootstrap的极速后台开发框架...
  12. MySQL 8.0.27 下载、安装与配置 超详细教程(Windows64位)
  13. 前端常见的浏览器兼容性问题及解决方案
  14. Python爬虫学习笔记 (11) [初级] 小练习 爬取Eason所有歌曲歌词 制作词云图
  15. 世界上最小的操作系统MenuetOS,仅有1.4M,安装运行全教程
  16. SHELL的文本处理工具
  17. 【Python进阶】9- Pandas的应用
  18. 实现移动设备远程登录linux服务器
  19. 一些公开免费的后台数据接口
  20. IoT 物联网碎片化是云厂商的桎梏,中小企业的机会

热门文章

  1. 54万奖金+百度地图海量业务数据集,智能交通CV赛题来了
  2. 一文详解支持向量机(SVM)
  3. 追求极致,饮水思源——记旷视与计算机竞赛的故事
  4. 飞桨PaddlePaddle送算力 | 每日登录即送12小时,连续5天还有加送!
  5. AI以假乱真怎么办?TequilaGAN教你轻松辨真伪
  6. 陕西师范大学第七届程序设计竞赛 C题 iko和她的糖
  7. node-sass 下载失败 解决方案
  8. 「数据库系列一」为什么要用数据库?
  9. 《编译原理》实验预习报告——TINY语言的词法分析
  10. Vuex——命名空间导致错误[unknown action type:XXX]解决方案