数据降维的几种常见方法(PCA;FA;LDA;ICA等)

article/2025/9/14 4:44:53

文章目录

  • 数据降维方式简述
  • PCA与ICA、FA、LDA的区别与联系
    • 1.PCA与ICA的联系与区别
    • 2.PCA与LDA的联系与区别
    • 3.PCA与FA的联系与区别
  • 总结


数据降维方式简述

        在学习ICA算法的过程中,了解到常常需要对数据进行降维,如PCA,FA等,以达到数据预处理的效果,因此查阅相关资料,在这里对数据降维的几种常见方法进行归纳、梳理。
        数据降维就是降低数据的维度,达到增加样本密度以及去噪的目的。降维方式主要有两种方式:

1、一种是特征选择:直接选取原有维度的一部分参与后续的计算和建模过程,用选择的维度替代所有维度,整个过程不产生新的维度(即从现有的特征里选择较小的一些来达到降维的目的)。

方法:

(1)经验法:根据业务经验选择

(2)测算法:通过不断测试多种维度选择参与计算,通过结果来反复验证和调整并最终找到最佳特征方案

(3)统计分析方法:通过相关性分析不同维度间的线性相关性,在相关性高的维度中进行人工去除或筛选;通过计算不同维度间的互信息,找到具有较高互信息的特征集,然后把其中的一个特征去除或留下

(4)机器学习:通过机器学习算法得到不同特征的特征值或权重,然后再根据权重来选择较大的特征,例用决策树得出不同变量的重要程度。

2、另一种是特征提取:按照一定的数学变换方法,将高维空间的数据点映射到低维空间中,然后利用映射后的变量特征来表示原有的总体特征(即通过组合现有特征来达到降维的目的)。

方法:常用算法有独立成分分析(ICA)、主成分分析PCA、因子分析FA、线性判别分析LDA、局部线性嵌入(LLE)、核主成分分析(Kernel PCA)等

PCA与ICA、FA、LDA的区别与联系

        PCA也叫主元分析,是一种常用的线性降维方式,比如在人脸识别中的“特征脸”(Eigenfaces)。降维之后的每个“新”特征都被称为主成分。这是一种无监督的降维方法,没有用到样本的标记信息。

  • 1.PCA与ICA的联系与区别

相同点:

  1. 都不需要你对源信号的分布做具体的假设; 如果观察到的信号为高斯,那么源信号也为高斯,此时PCA和ICA等价。
  2. 都可以实现数据得降维; PCA是寻找特征值矩阵,ICA是寻找解混矩阵;从线性代数的角度去理解,PCA和ICA都是要找到一组基,这组基张成一个特征空间,数据的处理就都需要映射到新空间中去。

不同点:

  1. 处理数据的类型不同; ICA处理非高斯数据,PCA、FA都是处理高斯数据。
  2. 处理目的不同: ICA提取相互独立的属性,而且降维;PCA只做数据的降维。ICA的数据预处理中会用到PCA
  3. 求解过程不同; ICA 认为观测信号是若干个统计独立的分量的线性组合,ICA要做的是一个解混过程;而PCA是一个信息提取的过程,将原始数据降维,现已成为ICA将数据标准化的预处理步骤;
  4. PCA和ICA的用途完全不同。 如果只在意数据的能量或方差、假设噪声或不感兴趣的信号都比较微弱,那么用PCA就能把主要信号留下来。在某种意义上,ICA更智能——它不在意信号的能量或方差,只看独立性。所以给定的待分析的混合信号经任意的线性变换都不会影响ICA的输出结果,但会严重影响PCA的结果。简而言之:PCA有助于压缩数据,而ICA有助于分离数据

        详见:主成分分析与独立成分分析的区别

  • 2.PCA与LDA的联系与区别

在这里插入图片描述
        详见:PCA与LDA的联系与区别

  • 3.PCA与FA的联系与区别

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

总结

在这里插入图片描述
        

本文参考来源:
https://blog.csdn.net/yingwei13mei/article/details/82690357      机器学习中的降维算法汇总归纳
https://blog.csdn.net/qq_34919792/article/details/104042365      特征转换方法比较(PCA、ICA、LDA)
https://www.cnblogs.com/Determined22/p/6357291.html      特征提取之线性方法(PCA、ICA、LDA)


http://chatgpt.dhexx.cn/article/kIsviYuZ.shtml

相关文章

大整数的乘法

大整数的乘法 (这里主要讨论的是两个较大的数相乘的效率问题,实际上并不是真正意义上的大数相乘。在java中有个BigInteger类已经可以储存大数,并提供了大数相乘的方法了。) 【分析】 首先,当两个整数X、Y&#xff0…

实验一:大整数乘法

1.实验目的 掌握分治算法的基本思想、技巧和效率分析方法。熟练掌握用递归设计分治算法的基本步骤。学会利用分治算法解决实际问题。 2.实验内容 大整数乘法 采用分治算法实现两个n位二进制(或者十进制)大整数的乘法。 3.实验要求 根据实验内容构思…

分治法的经典问题——大整数相乘

分治法的原理 讨论问题时,先来了解一下什么是分治法。 分治法的意思就是,分而治之,也就是把一个问题,拆分成几个小问题,最后再汇总解决的方法 通过大整数相乘问题来了解分治法 假如现在我们要求两个大整数相乘的乘积…

大整数乘法(分治法)

大整数乘法(分治法) 题目描述:设X和Y都是n位的十进制整数,计算它们的乘积X*Y。 如果按照我们日常的计算方法,应该就是将两个数逐位相乘,最后加起来得到最终的结果,时间复杂度为O(n2&…

大整数相乘算法

一 转换为二进制求,推导出的公式适合十进制计算 设X和Y都是n位的二进制整数,现在要计算它们的乘积XY。我们可以用小学所学的方法来设计一个计算乘积XY的算法,但是这样做计算步骤太多,显得效率较低。如果将每2个1位数的乘法或加法看…

【大整数乘法】

问题 2.伪代码 理想情况下&#xff0c;XY位数相同 Mul(long long x,long long y,int num){Fh<--(x*y>0)?1:-1;x<--|x|; y<--|y|;if(num 0)then return 0;else if(num1) then return fh*x*y;else{x_high<--x/10^(num/2);x_low<--x mod 10^(num/2);y_high…

大整数乘法(大整数乘int型)

算法思想&#xff1a; 1.将大整数倒序储存到数组中&#xff08;方便进位&#xff09; 2.对同位相乘后的数取模10&#xff0c;推入结果数组中 3.对同位相乘后的数除以10&#xff0c;作为进位 5.去除可能出现的前导零 4.完成乘法后倒序输出 补充知识&#xff1a; 1、vector相关用…

C语言实现大整数乘法

转载自&#xff1a;点击打开链接 乘法规律&#xff0c;一个数的第i位和另一个数的第j位相乘&#xff0c;一定会累加到结果的第ij位&#xff0c;结果的数组一个数组元素存2位数&#xff0c;最后对结果处理进位&#xff0c;最后打印出来 方法一见上面链接https://www.cnblogs.c…

大整数乘法(简单模拟乘法过程)

一、分析 整数的数值超过计算机硬件所能表示的最大值时&#xff0c;那么我们只能借助软件的方法来实现大整数的乘法了。 我们可以使用字符串来模拟大整数的乘法&#xff0c;算法的思想就是使用我们在小学时学过的乘法&#xff0c;一位位相乘&#xff0c;最后计算出结果。如下&…

算法总结——大整数乘法

问题描述 求两个不超过200位的非负整数的积。 输入数据 有两行&#xff0c;每行是一个不超过200位的非负整数&#xff0c;没有多余的前导0。 输出要求 一行&#xff0c;即相乘后的结果。结果里不能有多余的前导0&#xff0c;即如果结果是342&#xff0c;那么就不能输出为0342。…

大整数的乘法(分治法)

通常执行一次加法或乘法运算所需的计算时间看作一个仅取决于计算机硬件处理速度的常数。这个仅在参加运算的整数能在计算机硬件对整数的表示范围内直接处理才是合理的。若要精确地表示大整数并在计算结果中要求精确得到所有位数上的数字&#xff0c;就必须用软件的方法来实现大…

分治法-大整数乘法

问题分析&#xff1a; 在计算机上处理一些大数据相乘时&#xff0c;由于计算机硬件的限制&#xff0c;不能直接进行相乘得到想要的结果。可以将一个大的整数乘法分而治之&#xff0c;将大问题变成小问题&#xff0c;变成简单的小数乘法再进行合并&#xff0c;从而解决上述问题…

大整数乘法

设计一个有效的算法&#xff0c;可以计算两个n位大整数的乘法运算。 如果按照我们日常的计算方法&#xff0c;应该就是将两个数逐位相乘&#xff0c;最后加起来得到最终的结果。由于是大整数乘法&#xff0c;那么我们用string来存储这两个数&#xff0c;因为是要做乘法&#x…

大整数乘法算法

一 转换为二进制求&#xff0c;推导出的公式适合十进制计算 设X和Y都是n位的二进制整数&#xff0c;现在要计算它们的乘积XY。我们可以用小学所学的方法来设计一个计算乘积XY的算法&#xff0c;但是这样做计算步骤太多&#xff0c;显得效率较低。如果将每2个1位数的乘法或加法看…

大整数乘法的详解

一.问题 由于编程语言提供的基本数值数据类型表示的数值范围有限&#xff0c;不能满足较大规模的高精度数值计算&#xff0c;因此需要利用其他方法实现高精度数值的计算&#xff0c;于是产生了大数运算。尤其是乘法运算&#xff0c;下面就是大整数的乘法的过程&#xff08;加 …

Ubuntu server树莓派版本默认用户名密码及密码修改

树莓派安装的Ubuntu server镜像&#xff0c; 默认的初始用户及密码&#xff1a; ubuntu # user ubuntu # passwd默认信息查看 在烧入镜像的内存卡中&#xff0c; 可以查看到默认的用户信息 默认密码修改 在登录界面 输入初始化的用户名和密码后&#xff0c; 会提示是第一…

2022.04.04树莓派最新镜像问题,树莓派如何设置初始化的账户和密码

树莓派最新的arm64位系统&#xff0c;更新时间是2022年4月4日&#xff0c;这个版本的树莓派取消了默认的账户密码&#xff0c;也就是原来一直使用的pi和对应的默认密码raspberry被取消了&#xff0c;现在如果想要使用的话必须自己设置&#xff0c;下面有两种方法可以设置自己的…

树莓派启用无密码 sudo

启用无密码 sudo&#xff0c;可以在不提供密码的情况下在树莓派上运行程序。 登录 Raspberry Pi 命令行界面。假设 Raspberry Pi 的默认用户名和密码分别为 pi 和 raspberry。在命令行界面中&#xff0c;键入以下命令&#xff1a; sudo nano /etc/sudoers 3. 通过添加以下行启…

最新树莓派系统PUTTY用默认用户名和密码登录不上的解决方法

最近我在树莓派配置深度学习环境&#xff0c;然后直接载了别的博主的树莓派镜像&#xff0c;发现博主给的用户名&#xff0c;密码登不上&#xff0c;于是乎&#xff0c;就打算自己配置深度学习环境&#xff0c;结果我下在了最新版本的树莓派镜像系统&#xff08;2022-04-04-ras…

树莓派默认账号密码串口登录不了的Bug解决

一、问题总结 我用的树莓派型号是树莓派Pi3,刷机用的镜像是2023版的&#xff0c;23版的镜像文件较大8G的SD卡不够用 问题描述&#xff1a;刷完机在用串口登录树莓派的时候登录不了 &#xff01;&#xff01;&#xff01; 默认账号&#xff1a;pi 默认密码&#xff1a;raspb…