fastica和pca区别_ICA与PCA的区别

2023-12-19 03:40
文章标签 区别 pca ica fastica

本文主要是介绍fastica和pca区别_ICA与PCA的区别,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

昨天晚上,海总讲了ICA,导师问了大家这么一个问题:

ICA和PCA的区别是什么?

后来我们思来想去,七嘴八舌地讨论了一下,师妹提到PCA是以贡献度的不同进行区分的,鑫总提到ICA和PCA的目标是不一致的。

这的确是一个值得讨论的问题:一开头,海冬提到ICA处理的数据都不是高斯的。这是有道理的,因为如果的高斯的,那么它的效果的确不好。

我也答不上什么,对于PCA的概念我又忘记了。

看了许多网上的回答和教程,我发现PCA实际上是最小化数据之间的方差,ICA最小化高阶统计比如四阶统计量(或者峰度),因此能最小化输出量的互信息。

PCA能提取出互相正交的高能量的信号,然而ICA确定非高斯信号的独立成分。

ICA模型等式是欠确定的系统,一个人不能够确定独立成分的方差。

一个人不能确定主导成分的排序。

今天在知乎里看到一个答案,觉得回答的非常完整:

不管是PCA还是ICA,都不需要你对源信号的分布做具体的假设;如果观察到的信号为高斯,那么源信号也为高斯,此时PCA和ICA(盲源分离)等价。

ICA认为一个信号可以被分解成若干个统计独立的分量的线性组合,而后者携带更多的信息。我们可以证明,只要源信号非高斯,那么这种分解是唯一的。若源信号为高斯的话,那么显然可能有无穷多这样的分解。

pca为最大化方差,使得残余方差最小,或信息损失最小(方差即信息)。

ica为最大化独立性,使联合概率与各分量概率乘积最接近。

不管是PCA还是ICA,都不需要你对源信号的分布做具体的假设

---------不对吧,PCA对分布没有假设,ICA则要求分布独立(同时不为高斯分布),两个根本不是一回事。

如果观察到的信号为高斯,那么源信号也为高斯,此时PCA和ICA等价

------ 不对吧。如果源信号有大于一个是高斯分布,ICA没有解。PCA则和分布无关。

还有一种说法:

ICA认为观测信号是若干个统计独立的分量的线性组合,ICA要做的是一个解混过程。

而PCA是一个信息提取的过程,将原始数据降维,现已成为ICA将数据标准化的预处理步骤。

书上的说法是:

主成分分析假设源信号间彼此非相关,独立成分分析假设源信号间彼此独立。

主成分分析认为主元之间彼此正交,样本呈高斯分布;独立成分分析则不要求样本呈高斯分布。

暂时只能这么死记硬背乐。

144ffdb4b241

非高斯情况下,pca的主元不是最优主元.png

Note: PCA and the SVD are the same thing and it's usually better to just use the SVD of the centered data matrix because SVD algorithms are faster and numerically more stable than PCA.

Note2: In some cases NMF (non negative matrix factorization) can work as ICA. In NMF the basis you want to find is the one that helps you reconstruct the data as a positive summation over the basis vectors. This means the basis will have vectors that represents parts of your original data, if your data contains images then the NMF basis contains parts of images that will help you reconstruct any of your images in the dataset.

这篇关于fastica和pca区别_ICA与PCA的区别的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/510786

相关文章

2.1/5.1和7.1声道系统有什么区别? 音频声道的专业知识科普

《2.1/5.1和7.1声道系统有什么区别?音频声道的专业知识科普》当设置环绕声系统时,会遇到2.1、5.1、7.1、7.1.2、9.1等数字,当一遍又一遍地看到它们时,可能想知道它们是什... 想要把智能电视自带的音响升级成专业级的家庭影院系统吗?那么你将面临一个重要的选择——使用 2.1、5.1 还是

Python中@classmethod和@staticmethod的区别

《Python中@classmethod和@staticmethod的区别》本文主要介绍了Python中@classmethod和@staticmethod的区别,文中通过示例代码介绍的非常详细,对大... 目录1.@classmethod2.@staticmethod3.例子1.@classmethod

Golan中 new() 、 make() 和简短声明符的区别和使用

《Golan中new()、make()和简短声明符的区别和使用》Go语言中的new()、make()和简短声明符的区别和使用,new()用于分配内存并返回指针,make()用于初始化切片、映射... 详细介绍golang的new() 、 make() 和简短声明符的区别和使用。文章目录 `new()`

Python中json文件和jsonl文件的区别小结

《Python中json文件和jsonl文件的区别小结》本文主要介绍了JSON和JSONL两种文件格式的区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下... 众所周知,jsON 文件是使用php JSON(JavaScripythonpt Object No

结构体和联合体的区别及说明

《结构体和联合体的区别及说明》文章主要介绍了C语言中的结构体和联合体,结构体是一种自定义的复合数据类型,可以包含多个成员,每个成员可以是不同的数据类型,联合体是一种特殊的数据结构,可以在内存中共享同一... 目录结构体和联合体的区别1. 结构体(Struct)2. 联合体(Union)3. 联合体与结构体的

什么是 Ubuntu LTS?Ubuntu LTS和普通版本区别对比

《什么是UbuntuLTS?UbuntuLTS和普通版本区别对比》UbuntuLTS是Ubuntu操作系统的一个特殊版本,旨在提供更长时间的支持和稳定性,与常规的Ubuntu版本相比,LTS版... 如果你正打算安装 Ubuntu 系统,可能会被「LTS 版本」和「普通版本」给搞得一头雾水吧?尤其是对于刚入

python中json.dumps和json.dump区别

《python中json.dumps和json.dump区别》json.dumps将Python对象序列化为JSON字符串,json.dump直接将Python对象序列化写入文件,本文就来介绍一下两个... 目录1、json.dumps和json.dump的区别2、使用 json.dumps() 然后写入文

native和static native区别

本文基于Hello JNI  如有疑惑,请看之前几篇文章。 native 与 static native java中 public native String helloJni();public native static String helloJniStatic();1212 JNI中 JNIEXPORT jstring JNICALL Java_com_test_g

线性因子模型 - 独立分量分析(ICA)篇

序言 线性因子模型是数据分析与机器学习中的一类重要模型,它们通过引入潜变量( latent variables \text{latent variables} latent variables)来更好地表征数据。其中,独立分量分析( ICA \text{ICA} ICA)作为线性因子模型的一种,以其独特的视角和广泛的应用领域而备受关注。 ICA \text{ICA} ICA旨在将观察到的复杂信号

Android fill_parent、match_parent、wrap_content三者的作用及区别

这三个属性都是用来适应视图的水平或者垂直大小,以视图的内容或尺寸为基础的布局,比精确的指定视图的范围更加方便。 1、fill_parent 设置一个视图的布局为fill_parent将强制性的使视图扩展至它父元素的大小 2、match_parent 和fill_parent一样,从字面上的意思match_parent更贴切一些,于是从2.2开始,两个属性都可以使用,但2.3版本以后的建议使