首页 最新 热门 推荐

  • 首页
  • 最新
  • 热门
  • 推荐

因子分析、主成分分析(PCA)、独立成分分析(ICA)——斯坦福CS229机器学习个人总结(六)

  • 25-03-06 05:08
  • 3098
  • 11238
blog.csdn.net

因子分析是一种数据简化技术,是一种数据的降维方法。
因子分子可以从原始高维数据中,挖掘出仍然能表现众多原始变量主要信息的低维数据。此低维数据可以通过高斯分布、线性变换、误差扰动生成原始数据。
因子分析基于一种概率模型,使用EM算法来估计参数。

主成分分析(PCA)也是一种特征降维的方法。
学习理论中,特征选择是要剔除与标签无关的特征,比如“汽车的颜色”与“汽车的速度”无关;
PCA中要处理与标签有关、但是存在噪声或者冗余的特征,比如在一个汽车样本中,“千米/小时”与“英里/小时”中有一个冗余了。
PCA的方法比较直接,只要计算特征向量就可以降维了。

独立成分分析(ICA)是一种主元分解的方法。
其基本思想是从一组混合的观测信号中分离出独立信号。比如在一个大房间里,很多人同时在说话,样本是这个房间里各个位置的一段录音,ICA可以从这些混合的录音中分离出每个人独立的说话的声音。
ICA认为观测信号是若干个统计独立的分量的线性组合,ICA要做的是一个解混过程。

因为因子分析、PCA、ICA都是对数据的处理方法,就放在这同一份总结里了。

1、因子分析(Factor analysis)

1.1、因子分析的直观理解

因子分析认为高维样本点实际上是由低维样本点经过高斯分布、线性变换、误差扰动生成的。让我们来看一个简单例子,对低维数据如何生成高维数据有一个直观理解。

假设我们有m=5个2维原始样本点如下:

这里写图片描述
图一

那么按照因子分析的做法,原始数据可以由以下过程生成:
①在一个低维空间(此处是1维)中,存在着由高斯分布生成的mm个点z(i)z(i),z(i)z(i)~N(0,I)N(0,I):

这里写图片描述
图二

②使用某个 Λ=(a,bT)Λ=(a,bT)将1维的 z映射到2维的空间中:
这里写图片描述
图三

③加上 μ(μ1,μ2)T,让直线过 μ——实际上是将样本点横坐标加 μ1,纵坐标加 μ2:
这里写图片描述
图四

④对直线上的点做一定的扰动,其扰动为 ε~ N(0,ψ):
这里写图片描述
图五

黑点就是图一中的原始数据。

1.2、因子分析的一般过程

因子分析认为m个n维特征的训练样例(x(1),x(2),⋯,x(m))的产生过程如下:
①在一个k维空间中,按照多元高斯分布生成m个z(i)(k维向量,k<n),即
z(i)~N(0,I)
②存在一个变换矩阵Λ∈Rn∗k,将z(i)映射到n维空间中,即
Λz(i)
③将Λz(i)(n维)加上一个均值μ(n维),即
μ+Λz(i)
④对每个点加上符合多元高斯分布的扰动ε~N(0,ψ)(n维向量),即
x(i)=μ+Λz(i)+ε

1.3、因子分析模型

模型与参数概述

由上面的分析,我们定义因子分析的模型为:

z~ N(0,I)
ε~ N(0,ψ)
x=μ+Λz+ε

其中 z和 ε是相互独立的。并且由上面的分析过程,我们可以直观地感受到我们的 参数是μ∈Rn、Λ∈Rn∗k、ψ∈Rn∗n。

另一个等价的假设是,(x,z)联合分布如下,其中z∈Rk是一个隐藏随机变量:

x∣z~ N(μ+Λz,ψ)

这个假设会在使用EM算法求解因子分析参数,E步中迭代 Q分布的时候用到。

接下来的课程,是使用高斯模型的矩阵表示法来对模型进行分析。矩阵表示法认为z与 x 联合符合多元高斯分布,即:

[zx]~ N(μzx,Σ)
多元高斯分布的原始模型是:
f(x)=1√2πk|Σ|exp(−12(x−μ)TΣ−1(x−μ))

其中 x是 k维向量, μ是 k维向量, Σ是 k∗k协方差矩阵。
很明显在多元高斯分布模型下,参数是 μzx,Σ——它们是由 x,z的联合分布生成的,所以我们可以用我们的原始参数 μ,Λ,ψ来表示 μzx,Σ,求得 x的边缘分布,再把相关参数带入式(3),这就得到了关于我们参数的概率分布,然后就可以通过最大似然估计来求取我们的参数。

求取μzx

μzx是x,z联合分布的期望值(期望的定义:所有结果*相应概率的总和):

μzx=E[zx]=[E(z)E(x)]

由z~N(0,I)我们可以简单获得E(z)=0。
类似地由ε~N(0,ψ),x=μ+Λz+ε,μ是一个常数,我们有:

E[x]=E[μ+Λz+ε]=E[μ]+ΛE[z]+E[ε]=μ+0+0=μ

所以:
μzx=[→0μ]

求取Σ

Σ是x,z联合分布的协方差矩阵。
方差,度量随机变量与期望之间的偏离程度,定义如下:

Var(X)=E((X−E(X))2)=E(X2)−(E(X)2)

协方差,两个变量总体误差的期望,定义如下:
Cov(X,Y)=E((X−E(X))(Y−E(Y)))

协方差、方差、期望之间的一些相互关系如下:
Cov(X,X)=Cov(X)=Var(X)=E(XXT)=σ2

下面开始求取Σ。

Σ=Cov[zx]=[ΣzzΣzxΣxzΣxx]=E[(z−E(z))(z−E(z))T(z−E(z))(x−E(x))T(x−E(x))(z−E(z))T(x−E(x))(x−E(x))T]

由z~N(0,I),可以简单得到:

Σzz=Cov(z)=σ2=I

由 ε ~ N(0,ψ) , x=μ+Λz+ε , E(x)=μ ,并且 z 和ε是相互独立,有:
Σzx=E[(z−E(z))(x−E(x))T]=E[(z−0)(μ+Λz+ε−μ)T]=E[zzT]ΛT+E[zεT]=IΛT+0=ΛT

类似地,我们可以得到:
Σxx=E[(x−E(x))(x−E(x))T]=E[(μ+Λz+ε−μ)(μ+Λz+ε−μ)T]=ΛE[zzT]ΛT+E[εεT]=ΛIΛT+ψ=ΛΛT+ψ

用最大似然估计法求解参数

经过上面的步骤,我们就把μzx,Σ用我们的参数μ,Λ,ψ表示出来了:

[zx] ~ N(μzx,Σ) ~ N([→0μ],[IΛTΛΛΛT+ψ])

然后我们可以求得 x 的边缘分布:
x ~ N(μ,ΛΛT+ψ)
因此,给定一个训练集 {x(i);i=1,2,⋯,m} ,把参数带入式(3),我们可以写出下面的似然函数:

注:本文转载自blog.csdn.net的的文章"https://blog.csdn.net/sinat_37965706/article/details/71330979"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
复制链接
复制链接
相关推荐
发表评论
登录后才能发表评论和回复 注册

/ 登录

评论记录:

未查询到任何数据!
回复评论:

分类栏目

后端 (14832) 前端 (14280) 移动开发 (3760) 编程语言 (3851) Java (3904) Python (3298) 人工智能 (10119) AIGC (2810) 大数据 (3499) 数据库 (3945) 数据结构与算法 (3757) 音视频 (2669) 云原生 (3145) 云平台 (2965) 前沿技术 (2993) 开源 (2160) 小程序 (2860) 运维 (2533) 服务器 (2698) 操作系统 (2325) 硬件开发 (2492) 嵌入式 (2955) 微软技术 (2769) 软件工程 (2056) 测试 (2865) 网络空间安全 (2948) 网络与通信 (2797) 用户体验设计 (2592) 学习和成长 (2593) 搜索 (2744) 开发工具 (7108) 游戏 (2829) HarmonyOS (2935) 区块链 (2782) 数学 (3112) 3C硬件 (2759) 资讯 (2909) Android (4709) iOS (1850) 代码人生 (3043) 阅读 (2841)

热门文章

101
推荐
关于我们 隐私政策 免责声明 联系我们
Copyright © 2020-2025 蚁人论坛 (iYenn.com) All Rights Reserved.
Scroll to Top