热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

《文章翻译》PCA&SVD

目录PrincipleComponentAnalysis&&SingularValueDecomposition一.IntuitionofPCA1.1去掉多余的特征1.2魔幻展示1

目录



  • Principle Component Analysis && Singular Value Decomposition

    • 一. Intuition of PCA

      • 1.1 去掉多余的特征

      • 1.2 魔幻展示

      • 1.3 难例图解


    • 2. 概念介绍

    • 3. PCA操作

    • 4. SVD操作



Principle Component Analysis && Singular Value Decomposition

一. Intuition of PCA


1.1 去掉多余的特征

假设我们有房子的这些信息:价格(千美元)、面积、层数、户型。

图1-1

房子包含了四维的信息,我们无法在一幅图像中直观的显示出来。然而,如果你仔细的观察特征之间的联系,你将会注意到不是所有的特征都是同等重要的。

例如,你可以通过房子的层数去识别房子的价格(或对应哪个房子)吗?房子的层数是否帮助我们区分是哪个房子?房子的层数几乎相同,他们的方差很小,\(\sigma^2=0.2\) 所以房子的层数不是非常有用。那房子的户型呢?他们值变化也不是很大,但是他们的方差却很大,\(\sigma^2=127\),因此房子的户型可以很好的区别是哪个房子。

因此我们可以做一些事尽量的发掘特征,在不损失精度的情况下。目前,我们学习了各自的特征。那特征之间的相互联系是什么?如果你仔细看了上图1-1的特征,你会发现房子的价格粗略的等于房子面积的两倍。这是非常有用的信息,我们可以使用其中一个特征来取代代替另一个特征。这样两个特征之间的联系称为协方差。协方差越大,表明特征之间的相关性越强,也就是数据的冗余性很大。因此可以进行降维处理。

从之前的讨论可以明显的看出:



  • 特征高方差是好事,代表更多的信息

  • 特征之间高协方差是坏事,表明特征之间很多冗余

这就是PCA的目的:使得每个特征的方差都很大,使得特征之间的协方差都很小。当前我们无法用眼睛直观的感受,下文会详细描述。


1.2 魔幻展示

我们对PCA女士进行了一个简单采访-:


记者:请问您认为最完美的数据是什么样的?

PCA:下图所示


图1-2

这意味着-----数据可以降低到一个维度上。观测:\(x_1\)方向的方差比\(x_2\)方向的方差大很多,也就等于去除\(x_2\)方向的数据,不会破坏很多的数据信息。此外,\(x_1\)方向的数据是递增的,完全没有依靠\(x_2\)的数据,也就等于\(x_1/x_2\)的协方差很小。为什么PCA会觉得这样的数据很完美,因为她只需进行这样的操作:

图1-3

图1-4

明白怎么进行的处理很重要,\(x_1\)的数据比\(x_2\)的数据更重要,所以我们去除\(x_2\)的数据。也可以表达为,把数据像\(x_1\)进行投影。二维数据使用一维数据代替。


1.3 难例图解


记者:那您觉得什么的数据不是很完美呢?数据像什么样子?

PCA:每个东西都是完美的,只要你进行一些变换即可。像下面这幅图一样:


图1-4


PCA:上面的图有点困难,你觉得呢?尝试将头转动一下


图1-5

将图转动45°之后,现在的图也是将近完美的。


2. 概念介绍


3. PCA操作


4. SVD操作



推荐阅读
  • 个人博客:打开链接依赖倒置原则定义依赖倒置原则(DependenceInversionPrinciple,DIP)定义如下:Highlevelmo ... [详细]
  • 2023年1月28日网络安全热点
    涵盖最新的网络安全动态,包括OpenSSH和WordPress的安全更新、VirtualBox提权漏洞、以及谷歌推出的新证书验证机制等内容。 ... [详细]
  • UVa 11683: 激光雕刻技术解析
    自1958年发明以来,激光技术已在众多领域得到广泛应用,包括电子设备、医疗手术工具、武器等。本文将探讨如何使用激光技术进行材料雕刻,并通过编程解决一个具体的激光雕刻问题。 ... [详细]
  • 如何使用Maven将依赖插件一并打包进JAR文件
    本文详细介绍了在使用Maven构建项目时,如何将所需的依赖插件一同打包进最终的JAR文件中,以避免手动部署依赖库的麻烦。 ... [详细]
  • Adversarial Personalized Ranking for Recommendation
    目录概主要内容基础对抗扰动对抗训练细节代码HeX.,HeZ.,DuX.andChuaT.Adversarialpersonalizedrankingforrecommendatio ... [详细]
  • 本文详细介绍了如何在PyQt5中创建简易对话框,包括对话框的基本结构、布局管理以及源代码实现。通过实例代码,展示了如何设置窗口部件、布局方式及对话框的基本操作。 ... [详细]
  • 本文探讨了如何使用Scrapy框架构建高效的数据采集系统,以及如何通过异步处理技术提升数据存储的效率。同时,文章还介绍了针对不同网站采用的不同采集策略。 ... [详细]
  • 题目描述:Balala Power! 时间限制:4000/2000 MS (Java/Other) 内存限制:131072/131072 K (Java/Other)。题目背景及问题描述详见正文。 ... [详细]
  • Gradle 是 Android Studio 中默认的构建工具,了解其基本配置对于开发效率的提升至关重要。本文将详细介绍如何在 Gradle 中定义和使用共享变量,以确保项目的一致性和可维护性。 ... [详细]
  • 本文介绍了使用Python和C语言编写程序来计算一个给定数值的平方根的方法。通过迭代算法,我们能够精确地得到所需的结果。 ... [详细]
  • 汇总了2023年7月7日最新的网络安全新闻和技术更新,包括最新的漏洞披露、工具发布及安全事件。 ... [详细]
  • SSE图像算法优化系列三:超高速导向滤波实现过程纪要(欢迎挑战)
    自从何凯明提出导向滤波后,因为其算法的简单性和有效性,该算法得到了广泛的应用,以至于新版的matlab都将其作为标准自带的函数之一了&#x ... [详细]
  • 本文详细介绍了如何在PHP中使用Memcached进行数据缓存,包括服务器连接、数据操作、高级功能等。 ... [详细]
  • 在使用mybatis进行mapper.xml测试的时候发生必须为元素类型“mapper”声明属性“namespace”的错误项目目录结构UserMapper和UserMappe ... [详细]
  • 探讨了在Ionic3项目中,使用`ionic serve`命令可以正常运行,但使用`ionic build --prod`命令进行生产构建时遇到错误的原因及解决方案。 ... [详细]
author-avatar
摇身一变鄙人
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有