PCA与ICA的介绍

article/2025/11/3 15:13:24

Background

做一个数据分析业务之前,往往需要对反映事物的多个特征变量进行大量的观测,收集大量数据以便进行分析寻找规律。多个特征变量确实会提供丰富的信息,但是很多情况下变量之间可能会存在相关性,如果用全部特征变量去拟合模型,可能在训练集的效果上会表现的很好,但是在测试集的效果上可能很差。这就存在模型(过度自信)的问题。因此需要找到一种合理的方法,在减少需要分析的特征变量同时,尽量减少特征变量包含信息的损失,以达到对所收集数据进行全面分析的目的。

数据降维

降维字面意思就是降低维度,简单解释就是将重复的特征变量(重复值这两个变量之间关系紧密)删去多余,也就是要建立更少的新特征变量,使得这些新的特征变量互不相关,并且这些新变量还能够保持反映业务问题的主要信息。

降维主要优点

  • 去除噪声
  • 降低计算复杂度
  • 使得数据集更易使用
  • 使得结果更易理解
    降维常见方法
  • 主成分分析(PCA)
  • 奇异值分解(SVD)
  • 线性判决分析(LDA)
  • 独立成分分析(ICA)
  • 因子分析(FA)
  • t-分布领域嵌入算法(T-SNE)
  • Others I don’t know

PCA与ICA

PCA:主成分分析是一种常用的降维算法,可通过线性组合的方法将多个特征综合为少数特征,且综合后的特征相互独立,有可以表示原始特征的大部分信息。
PCA理解:某数据含有1000样本,其中每组数据有100个特征变量,现在想把特征变量变为10个,即可通过主成分分析将shape为(1000,100)的数据变成shape为(1000,10)的数据。
在这里插入图片描述
这里原数据的100个特征变量变成后面的10个新变量,而这10个新变量又分别是由这100个旧变量组成。详细解释如下图:
在这里插入图片描述
注意:由主成分分析得到的新的10个变量,也就是得到新模型a1b1+a2b2+…a10b10后,可将特征值b1~b10按照从大到小排列,并作贡献度分析,求出进一步的对问题占主要帮助的特征,一般选取贡献度为85%-95%的特征做进一步的主成分。
举例说明:比如筛选后b1,b2,b3的累计贡献率超过85%,则最终将a1,a2,a3作为该样本的主成分,从而实现降维。
PCA求解步骤

  • 求数据协方差矩阵(为了判断两个数据的特征关系)
  • 计算协方差矩阵的特征值和特征变量
  • 特征值从大到小排序做贡献度分析
  • 选出最终主成分,并将数据转换到有新的特征向量构建的新数据空间中
    主成分的真正意义
  • 新的变量由旧的变量组成但不一定以旧的变量来描述新的变量
  • 降维一般是为了更好地回归或者分类,所以PCA只是一个过程结果,用来辅助构建模型

ICA:独立成分分析最早应用于盲源信号分离。起源于“鸡尾酒会问题”,描述如下:在嘈杂的鸡尾酒会上,许多人在同时交谈,可能还有背景音乐,但人耳却能准确而清晰的听到对方的话语。这种可以从混合声音中选择自己感兴趣的声音而忽略其他声音的现象称为“鸡尾酒会效应”。对于盲源分离问题,ICA是指在只知道混合信号,而不知道源信号、噪声以及混合机制的情况下,分离或近似的分离出源信号的一种分析过程。ICA是一种用来从多变量(多维)统计数据里找到隐含的因素或成分的方法,被认为是PCA和FA的一种扩展。

ICA模型
在这里插入图片描述
ICA理论的目标是在只有观察数据的情况下,求得一个分离矩阵W(又称解混矩阵),随后利用分离矩阵W来分离观察数据X,使得获得成分Y是独立源成分S的最优逼近。
常用ICA算法

  • Informax ICA
  • Extend ICA
  • Fast ICA
    其中,FastICA是对搜索算法的改进!改进之处在于:改善了传统梯度的收敛速度。

ICA与PCA主要区别:

  • PCA是将数据降维并提取出不相关的属性,而ICA是将数据降维并提取出相互独立的属性(不相关就是两者没有线性关系,但是不排除其他关系的存在,独立就是互不相关没有关联)
  • ICA认为观测信号是若干个统计独立的成分的线性组合,ICA要做的是一个解混过程来找到这些独立源成分。而PCA是一个信息提取过程,将原数据降维,现已成为ICA将数据标准化的预处理步骤。

python解析

  1. 借助sklearn模块里面的PCA模块实现
    在这里插入图片描述
    数据结果:
    在这里插入图片描述
    在这里插入图片描述
  2. 不借助工具包sklearn实现
    主要步骤:
    1. 原始数据组成N*M维度矩阵
    2. 将原始数据每一行进行零均值化
    3. 求出原始数据的协方差矩阵
    4. 求出协方差矩阵对应的特征值以及对应的特征向量
    5. 特征向量按对应特征值大小从上到下按行列排成矩阵,根据实际业务场景,取贡献度操作一定范围的前N行构成矩阵W
    6. Y=WX就是降到N维后的目标矩阵数据(X为原始数据)
      在这里插入图片描述
      在这里插入图片描述
      最后说明:在实际使用PCA的过程中,正确估计用于描述数据的成分的数量是非常重要的环节,可以将累积方差贡献率看做关于成分数量的函数,从而确定所需要的成分的数量,上图结果曲线量化了前N个成分中包含了多少总的64维度的方差,可以看到30维度可以保持97的方差。

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

相关文章

ICA算法处理后,ICA成分识别

今天Rose分享一篇关于脑电成分、眼电成分等判断。 当Run ICA结束后,我们一般会判断ICA成分对应的是什么成分,是眨眼成分还是水平眼动成分或是线路噪声成分。 眼电判断的时候,可以结合头皮地形图、ERP图、每个成分功率谱图,以及矫正…

ICA算法简介

ICA算法的研究可分为基于信息论准则的迭代估计方法和基于统计学的代数方法两大类,从原理上来说,它们都是利用了源信号的独立性和非高斯性。基于信息论的方法研究中,各国学者从最大熵、最小互信息、最大似然和负熵最大化等角度提出了一系列估计算法。如FastICA算法, Infomax算…

ICA: 1 靶场详细教学

目录 简介 信息收集 0x01 主机发现 0x02 端口扫描 0x03 目录爆破 漏洞利用 0x04 查找poc 0x05 进入数据库 提权 0x06 内网信息收集 0x07 提权 总结 简介 该靶场前期考验的是我们的信息收集能力,通过信息收集找到一个框架的漏洞,再通过该漏…

如何识别ICA成分

目录 查看ICA成分识别ICA成分 本分享为脑机学习者Rose整理发表于公众号:脑机接口社区 .QQ交流群:941473018 感谢简书ID:亚内士多德授权分享 查看ICA成分 在计算完ICA之后,有几种方法可以查看ICA成分。 1.Tools >> reject data usi…

【机器学习】ICA算法简介

ICA算法的研究可分为基于信息论准则的迭代估计方法和基于统计学的代数方法两大类,从原理上来说,它们都是利用了源信号的独立性和非高斯性。基于信息论的方法研究中,各国学者从最大熵、最小互信息、最大似然和负熵最大化等角度提出了一系列估计…

机器学习入门之PCA与ICA

文章目录 主成分分析 PCA什么是降维PCA (Principal Component Analysis)算法流程 独立成分分析 ICA问题引入算法基于最大似然估计 ICA的经典假设与不确定性经典假设不确定性ICA无法确定的因素 小结 本文为吴恩达机器学习课程的笔记系列第六篇,主要关于数据降维时常用…

ICA文件打开方式

ICA文件打开方式 1、点击连接桌面 如图1,载ICA文件会自动调用本地receiver客户端打开 2、手动打开ICA文件 如图2,可单击ICA文件-右键-打开方式选择-wfcrun32.exe程序打开(wfcrun32.exe程序路径 C:\Program Files\Citrix\ICA Client或C:\Prog…

ICA与PCA的区别

关注“心仪脑”查看更多脑科学知识的分享。 独立成分分析(ICA,Independent Component Analysis) ICA又称盲源分离(Blind source separation, BSS)。用 “鸡尾酒会模型”来做比喻,假设我们在一个音乐厅或者是一个舞会&#xff0c…

EEGLAB系列教程5:数据预处理2(ICA去伪迹)

EEGLAB系列教程5:数据预处理2(ICA去伪迹) 今天介绍EEG数据处理系列教程5,在前面的几期中,已经介绍了数据基本处理过程,可以参见以下链接: EEGLAB系列教程1:安装和启动 EEGLAB EEGLAB系列教程…

无法识别ICA文件

问题:无法识别ICA文件怎么办? 场景:该问题常发生在Windows系统,由于软件关联异常,无法打开云桌面的ICA文件,导致无法调用云桌面客户端。 【方案1】导入注册表项 步骤一、点击下载 ICA文件打开方式修复 …

ICA算法

一、盲信号处理(blind signal processing) 在系统的传输特性未知条件下,从系统的输出信号估计系统的输入信号和系统的传输特性 基本问题表述:已知多输入多输出的非线性动态系统的输出信号x(t),要找到一个稳定的逆系统(重构系统)&…

史上最直白的ICA教程之一

前言 独立成分分析ICA是一个在多领域被应用的基础算法。ICA是一个不定问题,没有确定解,所以存在各种不同先验假定下的求解算法。相比其他技术,ICA的开源代码不是很多,且存在黑魔法–有些步骤并没有在论文里提到,但没有…

ICA简介:独立成分分析

1. 简介 您是否曾经遇到过这样一种情况:您试图分析一个复杂且高度相关的数据集,却对信息量感到不知所措?这就是独立成分分析 (ICA) 的用武之地。ICA 是数据分析领域的一项强大技术,可让您分离和识别多元数据集中的底层独立来源。 …

尝试理解ICA(Independent Component Analysis)独立成分分析

1.从鸡尾酒会问题(cocktail party problem)说起 ICA最早是从神经网络领域开始研究的,应用于信号分离、特征提取。为了简单,我们这里从一个经典的例子开始——盲源信号分离(blind signal separation)。 假…

Linux reboot全过程

原文:https://blog.csdn.net/davion_zhang/article/details/52233043 一、版本说明 嵌入式Linux 下面的reboot命令看似简单,但出问题时定位起来发现别有洞天。 下面就按在shell下执行reboot命令之后程序的执行过程进行解析。 Busybox:1.23…

linux嵌入式reboot不生效,Embeded linux之reboot

reboot命令 //kernel\sys.c magic1、magic2,两个int类型的“魔力数”,用于防止误操作。具体在“include/uapi/linux/reboot.h”中定义。 cmd,reboot方式。 //include\linux\reboot.h #define LINUX_REBOOT_CMD_RESTART 0x01234567 #define LI…

reboot 流程

前言 对于生在智能时代的我们,对关机和重启这两个概念肯定不会陌生,尤其经历早期Android智能机的人们,印象最深恐怕就是重启,当然现在不会了,还没有改过来的都被淘汰了。在Linux系统中我们使用reboot完成这个动作,下面…

Vue路由和路由器简介

前言 路由(route)是vue中非常重要的技术,几乎每一个用vue所写的项目都会用到路由,它是一个vue的插件库,专门实现SPA应用 路由(route)的简介 说到路由,大多数人会想到路由器(router),可以这么说,路由器上的每一个口都…

路由传递数据

1.路由可以传递query和params参数。路由组件可以通过$route获取query和params参数。 2.路由传递params参数 (1)当to为字符串形式时。直接在路径后边添加数据 但是在路由中,path属性必须给数据占位。 (2)当to为对象形…

vue-router 路由传参方式/缓存路由/路由跳转

基础 前端路由 用来开发 SPA(单页面应用) 单页面应用 整个应用只有一个完整页面,页面变化都是在这一个页面更新的点击链接不会刷新整个页面,会局部更新,也会更新浏览历史(地址)点击链接也不…