机器学习之PCA算法

2023-11-10

目录

PCA算法

PCA目标

PCA原理推导

基于最大可分性推导

基于最近重构误差推导

PCA算法流程

PCA优点

PCA缺点

基于PCA的人脸识别 


PCA算法

PCA,即主成分分析(Principal Component Analysis),是一种常用的降维技术,用于从高维数据中提取最重要的特征。

在机器学习中,我们通常面临的问题是,数据集包含大量特征,而这些特征之间可能存在冗余或相关性。这导致了两个问题:一是难以可视化和理解数据,二是可能会影响模型的性能和效率。PCA的目标就是通过线性变换将高维数据映射到低维空间,同时保持数据的主要信息。

PCA的主要应用有:

  • 数据可视化:通过将高维数据投影到二维或三维空间,实现可视化展示。
  • 去除冗余特征:通过降维,减少特征维度,去除冗余信息。
  • 数据压缩:将数据表示为较低维度的形式,节省存储空间并加快计算速度。
  • 噪声滤波:通过PCA分析噪声和信号之间的关系,减少噪声对数据的干扰。

总结一下,PCA是一种常用的降维技术,通过线性变换将高维数据映射到低维空间,保留了主要信息,同时去除了冗余和相关性。这使得数据更易于理解和分析,并可以提高机器学习模型的性能和效率。

PCA目标

最小重构误差:求重构误差最小的投影方向,即让样本点到投影超平面的距离都足够近。

最大可分性:求散度最大的投影方向,即让样本点到投影超平面的投影尽可能的分开。

PCA原理推导

基于最近重构误差和最大可分性有两种等价推导。

基于最大可分性推导

基于最近重构误差推导

即等价于最大化方差:

PCA算法流程

  1. 数据预处理:

    • 标准化:对每个特征进行零均值化,即将每个特征的平均值减去整个特征列的平均值,并除以标准差。
    • 可选:如果数据中存在缺失值,可以使用插补方法进行填充。
  2. 计算协方差矩阵:

    • 协方差描述了两个变量之间的线性关系强度和方向。
    • 对于一个具有n个特征的数据集,协方差矩阵是一个n×n的对称矩阵,其中每个元素表示两个特征之间的协方差。
  3. 特征值分解:

    • 对协方差矩阵进行特征值分解,得到特征值和对应的特征向量。
    • 特征向量代表了数据中的主成分,每个特征向量与一个特征值相对应。
  4. 特征向量选择:

    • 选择最大的k个特征值对应的特征向量作为主成分,从而实现降维。
  5. 数据转换:

    • 使用所选的k个特征向量构造转换矩阵,将原始数据映射到新的低维空间。
    • 矩阵乘法操作将原始数据点映射到主成分上,得到降维后的数据。

PCA优点

PCA的优点包括:

  1. 降低维度:PCA可以将高维数据映射到较低维度的空间,从而减少特征的数量。这有助于去除冗余信息,提高计算效率,并且可以更好地可视化和理解数据。

  2. 去相关性:PCA通过线性变换将原始特征转换为一组无关的主成分。这是通过选择具有最大方差的主成分实现的,从而减少特征之间的相关性。这使得数据更易于处理和分析,提高了模型的性能和可靠性。

  3. 数据解释性:PCA选择的主成分对应于数据中的最大方差,因此它们包含了最重要的信息。这使得我们能够通过分析主成分来理解数据的结构和模式,以及不同特征之间的关系。

  4. 数据压缩:PCA将高维数据映射到较低维度,从而实现了数据的压缩。这可以减少存储空间的需求,并且在处理大规模数据时提高计算效率。

PCA缺点

PCA的缺点包括:

  1. 数据预处理:PCA对数据的预处理要求较高。标准化是必要的,因为PCA是基于特征之间的协方差矩阵进行计算的。如果数据不经过合适的预处理,可能会导致结果不准确或不可靠。

  2. 特征解释性:PCA虽然能够保留最重要的信息,但在降维的过程中也可能丢失一些较低方差的特征。这些特征可能对于特定任务的解释和理解是有意义的,但在降维过程中被忽略了。

  3. 非线性问题:PCA是一种线性降维方法,它假设数据是线性可分的。对于非线性问题,PCA可能无法捕捉到数据的复杂结构。针对非线性问题,可以使用核PCA或其他非线性降维方法。

  4. 主成分选择:确定要保留的主成分数量是一个挑战。选择较少的主成分可以实现较高的压缩率,但可能会丢失一些重要信息。而选择较多的主成分可能会保留过多的冗余信息。因此,在选择主成分的数量时需要权衡。

基于PCA的人脸识别 

机器学习之基于PCA的人脸识别_一片叶子在深大的博客-CSDN博客

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

机器学习之PCA算法 的相关文章

随机推荐

  • Zotero使用指南02:配合Word

    转载Zotero使用指南02 配合Word Zotero是一款广受好评的文献管理软件 其具有四大优点 首先是开源免费 源代码托管在Github平台 其次 其软件界面基于浏览器内核 支持Windows MacOS Linux多种操作系统 此外
  • Threejs基础代码段(二)Tweenjs补间动画

    一 Tweenjs是什么 tween js是一款可生成平滑动画效果的js动画库 只需要告诉tween你想修改什么值 以及动画结束时它的最终值是什么 动画花费多少时间等信息 tween引擎就可以计算从开始动画点到结束动画点之间值 来产生平滑的
  • sqlmap tamper脚本_注入工具 -- sqlmap(注入参数)

    任何关系走到最后 不过相识一场 有心者有所累 无心者无所谓 情出自愿 事过无悔 不负遇见 不谈亏欠 一 指定数据库类型 dbms http 192 168 1 121 sqli Less 1 id 1 name 2 dbms mysql d
  • 前后端部署具体详解(Go+Vue+Nginx)

    与你相识 博主介绍 本人是普通大学生一枚 每天钻研计算机技能 CSDN主要分享一些技术内容 因我常常去寻找资料 不经常能找到合适的 精品的 全面的内容 导致我花费了大量的时间 所以会将摸索的内容全面细致记录下来 另外 我更多关于管理 生活的
  • AcWing 172. 立体推箱子 BFS+状态表示

    题 代码参考了书上的 判断是否合法的函数写的好精简 这题理解了 就能很好的理解BFS 状态表示的理解 lie 0 立着 lie 1 横着躺着 lie 2 竖着躺着 j 0123分别表示左右上下 nextx i j 代表lie i时x往j方向
  • C++进阶:继承

    继承 面向对象的三大特性 封装 继承 多态 继承在实际中用的也不是太多 但必须能熟练使用 1 继承的概念 继承机制是面向对象思想中复用代码的一种手段 它能够在原有类的特性的基础上进行扩展 由此产生新的类 称为派生类 原有类称作基类 继承体现
  • mybatis 中的<![CDATA[ ]]>用法及说明

    作用 在mybatis ibatis等书写SQL的xml中比较常见 是一种XML语法 他的作用是 可以忽略xml的转义 在该标签中的语句和字符原本是什么样的 在拼接成SQL后还是什么样的 使用 select from user where
  • 如何自定义设置虚拟机的的IP地址

    如何自定义设置虚拟机的的IP地址 之前我们装虚拟机的时候是选择使用DHCP服务器帮我们自动分配 现在我们想固定一个IP给虚拟机 方便以后使用 1 首先我们需要知道虚拟机可用的网段是哪一段 在VMware的主页点击编辑 然后点击里面的虚拟网络
  • 【区块链】(四)之常见的加密算法

    我们经常在谍战片里看到 我军传递情报用电报发送 但敌人也可以截取电报 这就需要对电报发送的内容进行加密 当时常用的加密方式是通过一段密文 对情报进行加密 比如说是当天的日报 这种属于对称加密 差不多是DES加密算法 这里简单介绍几种 主要介
  • 对话生成模型中的条件变分自编码器(CVAE)

    废话不多说直接上模型 这是一个非常经典的对话生成模型 叫做HRED Hierarchical RNN Enconder Decoder 思路很简单 就是用一个RNN来建模前 j 1 j 1 j 1句话 再用一个RNN来建模第 j j j句话
  • 实验3:C++多态编程——实验任务五

    实验任务五 人 学生和教师 设计一个类people 有保护数据成员 age 年龄 整型 name 姓名 string 行为成员 两个构造函数 一个默认 另一个有参数 默认析构函数 void setValue int m string str
  • (七)nodejs写http服务

    1 加载http模块 var http require http 2 创建http服务对象 var server http createServer 3 监听request请求事件 server on request function re
  • c语言作业:一帮一

    一帮一学习小组 是中小学中常见的学习组织方式 老师把学习成绩靠前的学生跟学习成绩靠后的学生排在一组 本题就请你编写程序帮助老师自动完成这个分配工作 即在得到全班学生的排名后 在当前尚未分组的学生中 将名次最靠前的学生与名次最靠后的异性学生分
  • Java课题笔记~ SpringMVC的四种跳转方式

    默认的跳转是请求转发 直接跳转到jsp页面展示 还可以使用框架提供的关键字redirect 进行一个重定向操作 包括重定向页面和重定向action 使用框架提供的关键字forward 进行服务器内部转发操作 包括转发页面和转发action
  • opencv(C++) 视频处理,通过三通道像素值平均 将视频分辨率缩小为原来的一半

    项目要求 将一个 1920 1080 的视频压缩为 960 540 的视频 帧率不变 将每个 2 2 相邻像素点的像素值求平均 变成一个新的像素点 即 2 2 的平均池化 程序中很多代码都来源于 OpenCv 4 快速入门 方法一 分别取出
  • vs2019中 当前上下文中不存在名称“ViewBag”和不存在“model”的解决思路

    如果你已经改了Web config的相关配置 还是没有解决这个问题 你可以尝试保存并退出当前的vs 然后重新启动你的项目 本人通过许多途径找解决的办法 结果还是没有解决 最后还是通过重新启动项目解决的
  • 金融和大模型的“两层皮”问题

    几年前 我采访一位产业专家 他提到了一个高科技到产业落地的主要困惑 两层皮 一些特别牛的技术成果在论文上发表了 这是一层皮 企业的技术人员 将这些成果产品化 商品化的时候 可能出于工程化的原因 会做一些简化 这是另一层皮 两层皮之间 是有g
  • mvc html类的作用域,SpringMVC使用session保存数据以及applicationContext作用域

    使用session保存数据 session是一次会话 里面可以有多次请求 1 HttpSession session 1 1 index jsp Hello World 1 2 success jsp Created by IntelliJ
  • 机器人地面站-[QGroundControl源码解析]-[10]-[Comm]

    前言 因为项目进度排期较紧 并且觉得之前在代码中添加注释的方法有些生硬用处不大 所以从本片开始 着重介绍类的内容和功能 只对重要代码进行粘贴 Comm文件夹下有众多的类 一 LinkConfiguration 这个类处理链路的配置 查看属性
  • 机器学习之PCA算法

    目录 PCA算法 PCA目标 PCA原理推导 基于最大可分性推导 基于最近重构误差推导 PCA算法流程 PCA优点 PCA缺点 基于PCA的人脸识别 PCA算法 PCA 即主成分分析 Principal Component Analysis