【人工智能】— 维度灾难、降维、主成分分析PCA、获取旧数据、非线性主成分分析

news2025/1/18 9:44:28

【人工智能】— 维度灾难、降维、主成分分析PCA、获取旧数据、非线性主成分分析

  • 高维数据与维度灾难
  • 维度灾难
  • 降维
  • 为什么需要降维?
  • PRINCIPLE COMPONENT ANALYSIS
  • 主成分的几何图像
  • 最小化到直线距离的平方和
  • 举例
  • 主成分的代数推导
  • 优化问题
  • 计算主成分(Principal Components, PCs)的主要步骤
  • 获取旧数据的方法?
  • 主成分分析的最优性性质
  • 主要的理论结果
  • PCA图像压缩
  • 使用核的非线性主成分分析
  • 评价

高维数据与维度灾难

大多数机器学习和数据挖掘技术对于高维数据可能不太有效。这是由于维度灾难(Curse of Dimensionality)导致的。

随着维度的增加,查询的准确性和效率会迅速下降。因此,在高维数据中,许多机器学习和数据挖掘技术可能无法处理。

然而,高维数据的内在维度可能很小。例如,在某种类型的疾病中负责的基因数量可能很少。因此,对于高维数据,需要使用专门针对高维数据的技术,如降维和特征选择,以提高机器学习和数据挖掘的效率和准确性。

维度灾难

在高维数据中,维度灾难(Curse of Dimensionality)会导致以下问题:

  • 随着维度的增加,数据在所占用的空间中变得越来越稀疏。
  • 密度和点之间的距离的定义对于聚类和异常检测变得越来越无意义。
  • 如果 N 1 = 100 N_1=100 N1=100 表示单个输入问题的密集样本,则在维度为 10 10 10 的情况下,需要样本量为 N 10 = 10 0 10 N_{10}=100^{10} N10=10010 才能获得相同的采样密度。
  • 半径为 r r r、维度为 d d d 的超球体与边长为 2 r 2r 2r、维度为 d d d 的超立方体之间的比例在 d d d 趋近于无穷时收敛于 0 0 0,即几乎所有的高维空间都“远离”中心。
    在这里插入图片描述

因此,对于高维数据,需要特别注意选择适当的特征和降维技术,以便提高数据的密度和距离的意义,同时减少维度灾难的影响。

降维

降维(Dimensionality Reduction)是指将原始高维数据映射到低维空间的过程。

在不同的问题设置下,降维的标准可能会有所不同:

  • 无监督学习:最小化信息损失;
  • 监督学习:最大化类别差异。

给定由 d d d 个变量组成的数据点集合,可以计算将数据映射到低维空间的线性变换(投影)。设 f ( x 1 , x 2 , … , x n ) f(x_1, x_2, \ldots, x_n) f(x1,x2,,xn) 是在 R d R^d Rd 上的原始数据点, P P P 是一个 R d × m R^{d \times m} Rd×m 的矩阵,表示投影。则,变换后的数据点 y y y y = P T f ( x 1 , x 2 , … , x n ) y = P^T f(x_1, x_2, \ldots, x_n) y=PTf(x1,x2,,xn) 得到,其中 m ≪ d m \ll d md

因此,可以通过找到最优投影矩阵 P P P,在保留重要特征和最小化信息损失的同时降低数据维度,从而实现降维的目的。常用的降维技术包括主成分分析(PCA)和线性判别分析(LDA)等。
在这里插入图片描述

为什么需要降维?

降维(Dimensionality Reduction)有以下应用:

  • 可视化:将高维数据投影到二维或三维平面上,以便可视化和理解数据的结构和特征。
  • 数据压缩:降维可以减少数据的维度,从而提高数据的存储和检索效率。
  • 噪声去除:降维可以去除冗余和不相关的特征,从而对查询准确性产生积极影响。

因此,降维是在处理高维数据时非常重要的技术,可以帮助我们更好地理解和利用数据。

PRINCIPLE COMPONENT ANALYSIS

主成分分析(Principal Component Analysis,PCA)是一种常用的无监督学习算法,用于降低数据的维度并发现数据中的主要成分。

维度降低(Dimensionality reduction)是指通过减少数据的特征维度,将高维数据映射到低维空间中。维度降低的目的有以下几个方面:

  1. 数据压缩:高维数据可能包含冗余信息,通过降维可以减少存储空间和计算开销。
  2. 特征选择:降维可以帮助选择最相关的特征,去除噪音或不重要的特征,提高模型的效果和泛化能力。
  3. 可视化:降维可以将高维数据可视化在二维或三维空间中,更直观地理解数据之间的关系。

主成分分析(PCA)是一种经典的降维技术。它通过线性变换将原始数据映射到一组新的正交特征上,这些特征被称为主成分。PCA的目标是找到能够最大化数据方差的投影方向,从而保留尽可能多的数据信息。通过PCA,可以对数据进行降维,将其表示为较少数量的主成分,其中每个主成分都是原始特征的线性组合。

非线性PCA使用核函数(Kernels)扩展了传统的PCA方法,使其能够处理非线性数据。通过应用核函数,可以将原始数据映射到高维特征空间,然后在该空间中进行线性PCA。这样可以处理非线性关系,发现更复杂的数据结构和模式。

主成分的几何图像

在主成分分析中,主成分可以通过几何图像来理解。对于在 d d d 维空间中的 n n n 个数据点,主成分分析可以将数据投影到一维空间中。

具体地,可以选择一条直线,使得数据点在该直线上分布得很好。这条直线被称为主成分。主成分是在保留数据大部分信息的前提 下,将数据投影到一维空间中的最佳方式。

在这里插入图片描述

主成分的选择可以通过计算数据的协方差矩阵和对该矩阵进行特征值分解来实现。每个特征向量都代表了在数据中的一个主要方向,并且与该方向上的方差成比例。因此,可以选择特征值最大的几个特征向量来作为主成分,并将数据投影到这些方向上。

最小化到直线距离的平方和

在主成分分析中,为了找到最佳的主成分,需要最小化数据点到该主成分投影的距离的平方和。这是因为,最小化这个距离的平方和可以最大化数据点在主成分上的投影的平方和。

具体地,可以将每个数据点表示为向量 x \mathbf{x} x,然后将其投影到主成分上得到向量 p \mathbf{p} p。这个投影可以通过将向量 x \mathbf{x} x 投影到主成分的单位向量 u \mathbf{u} u 上来实现,即 p = x ⋅ u u \mathbf{p} = \mathbf{x} \cdot \mathbf{u} \mathbf{u} p=xuu

然后,最小化每个数据点到主成分的距离的平方和,可以表示为以下式子:

∑ i = 1 n ∥ x i − p i ∥ 2 \sum_{i=1}^n \|\mathbf{x}_i - \mathbf{p}_i\|^2 i=1nxipi2

其中, ∥ ⋅ ∥ \|\cdot\| 表示向量的范数。将向量 p i \mathbf{p}_i pi 替换为 x i ⋅ u u \mathbf{x}_i \cdot \mathbf{u} \mathbf{u} xiuu,可以得到以下式子:

∑ i = 1 n ∥ x i − ( x i ⋅ u ) u ∥ 2 \sum_{i=1}^n \|\mathbf{x}_i - (\mathbf{x}_i \cdot \mathbf{u}) \mathbf{u}\|^2 i=1nxi(xiu)u2

为了最小化这个式子,需要最大化每个数据点在主成分上的投影的平方和。这是由于,根据勾股定理,数据点到主成分的距离的平方和等于每个数据点在主成分上的投影与该数据点之间的距离的平方和。因此,最小化数据点到主成分的距离的平方和等价于最大化每个数据点在主成分上的投影的平方和。
在这里插入图片描述

综上所述,为了找到最佳的主成分,需要最大化每个数据点在主成分上的投影的平方和,即最小化数据点到主成分的距离的平方和。

举例

在这里插入图片描述

具体来说,第一个主成分是对原始数据的最小距离拟合,以得到一条直线,使得数据点在该直线上分布得很好。该直线是在保留了数据大部分信息的情况下,将数据投影到一维空间中的最佳方式。

第二个主成分是在与第一个主成分正交的平面上进行的最小距离拟合。该平面是由第一个主成分所定义的直线所张成的平面的垂直平面。通过这个过程,可以找到另一条直线,使得数据点在该直线上分布得很好,并且与第一个主成分正交。

主成分的代数推导

在主成分分析中,主成分可以通过代数推导来获得。设有一个 d d d 维的数据集,其中包含 n n n 个数据点,可以将其表示为一个 d × n d \times n d×n 的矩阵 X X X。我们的目标是找到一个 d d d 维的向量 u \mathbf{u} u,使得将数据投影到该向量上时,投影数据的方差最大。在这里插入图片描述

具体来说,我们首先将数据投影到一个 d d d 维的向量 u \mathbf{u} u 上,得到一个一维的数据集 Y = u ⊤ X Y=\mathbf{u}^\top X Y=uX
在这里插入图片描述

然后,我们要找到一个 u 1 u_1 u1最大化这个数据集的方差,即:

在这里插入图片描述
在这里插入图片描述

优化问题

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

我们可以使用拉格朗日乘数法来求解主成分。具体来说,我们要求解以下问题:

max ⁡ u u ⊤ S u  subject to u ⊤ u = 1 \max_{\mathbf{u}} \mathbf{u}^\top S \mathbf{u } \text{ subject to} \quad \mathbf{u}^\top \mathbf{u} = 1 umaxuSu subject touu=1

其中, S S S 是数据的协方差矩阵。我们可以使用拉格朗日乘数法将约束条件加入目标函数中,得到:

L ( u , λ ) = u ⊤ S u − λ ( u ⊤ u − 1 ) L(\mathbf{u}, \lambda) = \mathbf{u}^\top S \mathbf{u} - \lambda(\mathbf{u}^\top \mathbf{u} - 1) L(u,λ)=uSuλ(uu1)

其中, λ \lambda λ 是拉格朗日乘数。对 u \mathbf{u} u λ \lambda λ 分别求导并令其等于零,可以得到:

∂ L ∂ u = 2 S u − 2 λ u = 0 ∂ L ∂ λ = u ⊤ u − 1 = 0 \begin{aligned} \frac{\partial L}{\partial \mathbf{u}} &= 2S\mathbf{u} - 2\lambda \mathbf{u} = 0 \\ \\ \frac{\partial L}{\partial \lambda} &= \mathbf{u}^\top \mathbf{u} - 1 = 0 \end{aligned} uLλL=2Su2λu=0=uu1=0

将第一个式子中的 u \mathbf{u} u 提出来,可以得到:

S u = λ u S\mathbf{u} = \lambda \mathbf{u} Su=λu

这个式子说明,投影向量 u \mathbf{u} u 是数据集的协方差矩阵 S S S 的特征向量,对应的特征值为 λ \lambda λ。因此,可以通过计算协方差矩阵 S S S 的特征向量和特征值,来确定投影向量 u \mathbf{u} u,以及数据在该投影向量上的投影。通过类似的方式,可以确定更多的主成分。每个主成分都是在前面主成分所定义的子空间上进行的最小距离拟合,并且与前面的主成分正交。

计算主成分(Principal Components, PCs)的主要步骤

计算数据的协方差矩阵 S S S
在这里插入图片描述
如果数据没有被中心化,则需要先将每个变量的均值减去每个观测值:在这里插入图片描述,然后再计算 S S S

在这里插入图片描述

找到前 m m m 个特征向量在这里插入图片描述

通过解特征向量问题得到 S u = λ u S\mathbf{u}=\lambda\mathbf{u} Su=λu 的特征向量 u \mathbf{u} u,并按照对应的特征值 λ \lambda λ 从大到小排序,选取前 m m m 个特征向量。
形成投影矩阵 P P P在这里插入图片描述

将前 m m m 个特征向量按列组成矩阵 P P P,这个矩阵可以将数据投影到前 m m m 个主成分所张成的子空间中。
对一个新的测试点进行投影在这里插入图片描述在这里插入图片描述

获取旧数据的方法?

如果P是一个方阵,我们可以通过下式来恢复x。
在这里插入图片描述

在这种情况下,P并不是满秩的,但我们仍然可以通过在这里插入图片描述来恢复x,并且会丢失一些信息。

  • 目标:损失最少的信息

主成分分析的最优性性质

在这里插入图片描述

主要的理论结果

由协方差矩阵S的前m个特征向量组成的矩阵P解决了以下最小问题:
在这里插入图片描述

其中,P 是由协方差矩阵 S 的前 m 个特征向量组成的矩阵。

PCA投影使大小为m的所有线性投影中的重建误差最小化。

PCA图像压缩

在这里插入图片描述

使用核的非线性主成分分析

根据点积重写PCA

  • 假设数据已经中心化在这里插入图片描述

  • 协方差矩阵S可以写成在这里插入图片描述

  • 如果 u u u是对应于非零特征值的S的特征向量在这里插入图片描述

  • S的特征向量位于由所有数据点跨越的空间中在这里插入图片描述

  • 协方差矩阵可以写成矩阵形式:
    在这里插入图片描述

评价

PCA(主成分分析)的评论:

• PCA是一种线性降维方法。

• PCA可以进行核化处理,从而可以处理非线性问题。

• 许多非线性降维方法(如Isomap、图拉普拉斯特征映射和局部线性嵌入/LLE)可以看作是使用特殊核的核PCA。

• PCA是一个非凸优化问题,但是相对容易求解。

• PCA是一种在统计学和机器学习中广泛应用的方法,它可以用于数据降维、特征提取、数据可视化等领域。PCA能够提取数据中最重要的特征,并将数据投影到低维空间中,以便更好地理解数据。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/678096.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Pandas】pandas用法解析(上)

目录 一、生成数据表 1.导入pandas库 2.导入CSV或者xlsx文件 3.用pandas创建数据表 二、数据表信息查看 1.维度查看 2.数据表基本信息(维度、列名称、数据格式、所占空间等) 3.每一列数据的格式 4.某一列格式 5.空值判断 6.查看某一列空值 7…

黑马程序员前端 Vue3 小兔鲜电商项目——(七)详情页

文章目录 路由配置模板代码配置路由链接跳转 渲染基础数据封装接口渲染数据 热榜区域模板代码封装接口渲染数据 图片预览组件封装小图切换大图显示模版代码绑定事件 放大镜效果图片优化 SKU组件熟悉全局组件统一插件化插件化开发插件注册 路由配置 模板代码 创建 src\views\D…

快速排序-详解附Python代码

排序思路 取一个元素P(第一个元素),目标是使得元素P归位;列表被元素P分成了两个部分,左边的比P小,右边的比P大;分别再对左右两个部分的列表重复1,2步骤,递归完成排序 评…

7Z010 引脚功能详解

本文针对7Z010芯片,详细讲解硬件设计需要注意的技术点,可以作为设计和检查时候的参考文件。问了方便实用,按照Bank顺序排列,包含配置Bank、HR Bank、HP Bank、GTX Bank、供电引脚等。 参考文档包括: ds187-XC7Z010-X…

前端编写贪吃蛇游戏-附详细代码

当我们在前端编写贪吃蛇游戏时&#xff0c;可以按照以下步骤进行&#xff1a; 先看截图&#xff1a; 设置游戏板&#xff1a;创建一个HTML元素作为游戏板&#xff0c;可以使用<div>元素&#xff0c;并为其设置合适的样式。 绘制蛇和食物&#xff1a;使用JavaScript代码…

【Linux 基础入门 + Java项目部署】

文章目录 Linux 基础入门1 Linux 简介1.1不同应用领域的主流操作系统1.2 Linux发展历史与 Linux系统版本 2 Linux 安装2.1 安装方式介绍2.2 安装Linux2.3 网卡设置2.4 安装SSH连接工具 Linux和Windows目录结构对比3 Linux 常用命令3.1 Linux命令初体验3.2 文件目录操作命令lscd…

7A50T 引脚功能详解

本文针对7A50T芯片&#xff0c;详细讲解硬件设计需要注意的技术点&#xff0c;可以作为设计和检查时候的参考文件。问了方便实用&#xff0c;按照Bank顺序排列&#xff0c;包含配置Bank、HR Bank、HP Bank、GTP Bank、供电引脚等。 参考文档包括&#xff1a; ds181_Artix_7_D…

day59_layuimini_crud

今日内容 一、Layui Mini 零、 复习昨日 写在前面的前面 项目开发模式 前端后端数据怎么传输?前端发数据到后台 from,a,ajax, 后端发数据到前端 以前是使用servlet技术,将数据存入请求域/会话域,后台跳转页面到前端,前端jsp页面展现数据现在使用前后分离技术,后端将数据封装成…

【消费战略】解读100个食品品牌丨红海缝隙杀出的乳品独角兽 “认养一头牛”!

认养一头牛品牌历程 2014 年 在河北故城建立第一座大型现代化牧场&#xff0c;从澳洲引进6000头荷斯坦奶牛。 2016 年 11月&#xff0c;在杭州正式创立认养一头牛品牌。 2018年 与天猫达成战略合作&#xff0c;开启会员运营时代。 2020年 跻身天猫“双十一”亿元俱乐部…

Python学习笔记(2)--字面量,注释,变量,数据类型,数据类型转换,标识符,运算符

传送门>B站黑马python入门教程 目录 1.字面量2.注释3.变量4.数据类型5.数据类型转换6.标识符7.运算符算术运算符赋值运算符 1.字面量 字面量: 代码中被固定写的值 python常用的6种数据类型为 数字,字符串,列表,元组,集合,字典 目前基础部分学习字符串,整数,浮点数即可 字符…

UE5 蓝图节点常用大全(持续更新)

文章目录 前言蓝图节点前言 本文采用虚幻5.2.1版本,以图文的方式对蓝图节点进行介绍,并有中英文节点名称可参考。 蓝图节点 英文中文节点说明Set Visibility设置可视性New Visibility:勾选时可视场景组件Propagate to Children:勾选时子项受影响Destroy Actor销毁Actor销毁…

day60_echarts

Echarts ECharts是一款基于JavaScript的数据可视化图表库&#xff0c;提供直观&#xff0c;生动&#xff0c;可交互&#xff0c;可个性化定制的数据可视化图表。ECharts最初由百度团队开源&#xff0c;并于2018年初捐赠给Apache基金会&#xff0c;成为ASF孵化级项目。 2021年1月…

【Python】异常处理 ② ( 异常类型简介 | 捕获并处理指定异常 | 捕获多个类型异常 )

文章目录 一、Python 捕获指定类型异常1、异常类型简介2、捕获并处理指定异常3、代码实例 - 捕获并处理指定异常4、代码实例 - 异常捕获失败案例 二、Python 捕获多个类型异常1、捕获多个异常语法2、代码实例 - 捕获多个异常 一、Python 捕获指定类型异常 1、异常类型简介 Pyth…

原生HTML+CSS+JS制作自己的导航主页

如果你想使用原生HTML、CSS和JS制作自己的导航主页&#xff0c;你可以按照以下步骤进行操作&#xff1a; 先看效果图&#xff1a; 创建HTML文件&#xff1a;首先&#xff0c;创建一个新的HTML文件&#xff0c;并在文件中添加基本的HTML结构。你可以使用<!DOCTYPE html>…

【软件设计师暴击考点】计算机组成原理与体系结构高频考点暴击系列【一】

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;元宇宙-秩沅 &#x1f468;‍&#x1f4bb; hallo 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍&#x1f4bb; 本文由 秩沅 原创 &#x1f468;‍&#x1f4bb; 收录于专栏&#xff1a;软件…

【Python】怎样能够除去三维图中超出坐标轴范围内的图形(绘制一个三维地形图,需要求大于某一个水平高度的区域)

要除去三维图中超出坐标轴范围内的图形&#xff0c;可以通过设置绘图参数和使用条件筛选来实现。下面是一种常用的方法&#xff1a; 绘制三维地形图&#xff0c;确保数据和坐标轴设置正确。选择图形对象&#xff08;例如&#xff0c;地形曲面&#xff09;并进入编辑模式。找到…

【博弈论笔记】第六章 不完全信息静态表示

文章目录 第六章 不完全信息静态表示6.1 不完全信息静态博弈和贝叶斯纳什均衡6.1.1 不完全信息静态博弈的例子6.1.2 不完全信息静态博弈的一般表示6.1.3 海萨尼均衡6.1.4 贝叶斯纳什均衡 6.2 暗标拍卖Summary 此部分博弈论笔记参考自经济博弈论&#xff08;第四版&#xff09;/…

YOLOV1论文解读及代码讲解

YoloV1论文解读 摘要 我们提出了一种新的物体检测方法&#xff1a;YOLO。之前的物体检测工作都是重新利用分类器来执行检测。相反&#xff0c;我们将物体检测视为一个回归问题&#xff0c;针对空间分离的边界框和相关类别概率。一个单一的神经网络可以在一次评估中直接从完整…

第3章 运输层

1​、在 ISO/OSI 参考模型中&#xff0c;对于运输层描述正确的有&#xff08; &#xff09; A. 为传输数据选择数据链路层所提供的最合适的服务B. 为系统之间提供面向连接的数据传输服务C. 可以提供端到端的差错恢复和流量控制&#xff0c;实现可靠的数据传输D. 提供路由选择…

Python基础篇(十):迭代器与生成器

前言 迭代器和生成器是Python中用于处理可迭代对象的重要概念。它们提供了一种有效的方式来遍历和访问集合中的元素&#xff0c;同时具有节省内存和惰性计算的特点。下面是关于迭代器和生成器的详细介绍和示例&#xff1a; 1. 迭代器&#xff08;Iterator&#xff09; 迭代器…