Hron K, Menafoglio A, Templ M, et al. Simplicial principal component analysis for density functions in Bayes spaces[J]. Computational Statistics & Data Analysis, 2016: 330-350.
问题
我们知道一般的PCA,其数据是x∈Rn的,事实上,已经有很多关于函数类数据的PCA了.
一般的函数型PCA是定义在L2空间上的. 假设x1,x2,…,xN∈L2(I), 并假设是中心化的. 我们希望找到一个ξ最大化:
1NN∑i=1⟨xi,ξ⟩22,s.t.∥ξ∥2=1.
其中⟨x,y⟩=∫Ixydt.
假设:
ξ=N∑i=1vixi.
并记:
M∈RN×N,Mi,j=⟨xi,yj⟩2
则最初的式子可以表示为:
1NvTMTMv,s.t.∥Xv∥2=1.
可以证明,KKT条件为:
M2v=λMv
显然,v是M的首特征向量(当然∥v∥=1不一定成立).
类似的,其它的载荷向量也是如此求得. 上面有一点存疑的地方是:
ξ=N∑i=1vixi.
在Rn中是绝对没问题的是,问题是在L2,是否可以分解一个元素呢? 可以的,绝对是可以的.
作者是将一般的函数的PCA,限定在密度函数的PCA,我们知道,密度函数f满足:
f≥0,∫Ifdt=1.
显然ξ=∑Ni=1vixi并不一定能够满足上面的性质,为此,作者引入了一个新的贝叶斯空间B2(I).
B2(I)
假设I=[a,b],我们的工作是构造一个空间,使得上面的元素其线性运算能够保持密度函数的性质.
首先说明,B2(I)里的元素为{f|∫If(t)dt=1,f≥0,t∈I}.
记η=b−a,后续我们会发现,1/η是这个空间的零元素.
首先定义加法和数乘法,使其称为一个向量空间.
(f⊕g)(t)=f(t)g(t)∫If(s)g(s)ds,t∈I,
可以发现⊕是保持密度函数的性质的(只要f,g在I上满足).
(α⊙f)(t)=f(t)α∫If(s)αds,t∈I,
显然也是保持的.
并且,容易证明(利用类似核方法的思想):
f⊕g=g⊕f,f⊕g⊕h=f⊕(g⊕h),α⊙(f⊕g)=(α⊙f)⊕(α⊙g),(α⋅β)⊙f=α⊙(β⊙f),(α+β)⊙f=(α⊙f)⊕(β⊙f).
注意到:
令g(t)=1/η,t∈I
f⊕g=f,0⊙f=1η
所以1/η是零元素,那么可以如此定义差:
f⊖g=f⊕[(−1)⊙g],
易得:
f⊖f=1/η.
再定义内积,使其成为一个内积空间:
⟨f,g⟩B=12η∫I∫Ilnf(t)f(s)lng(t)g(s)dtds,,f,g∈B2(I).
则,我们可以定义其上的范数为:
∥f∥B=[12η∫I∫Iln2f(t)f(s)dtds]1/2.
下证其为一范数:
非负性是显然的, 首先证明其是正定的,即,零元素的大小为0:
∥1/η∥B=[12η∫I∫Iln21dtds]1/2=0.
其次,证明其是其次的,即∥α⊙f∥B=|α|∥f∥B:
∥α⊙f∥B=[12η∫I∫Iln2fα(t)fα(s)dtds]1/2=|α|[12η∫I∫Iln2f(t)f(s)dtds]1/2=|α|∥f∥B.
最后证其满足三角不等式:
∥f⊕g∥B=[12η∫I∫Iln2f(t)g(t)f(s)g(s)dtds]1/2=[12η∫I∫Iln2f(t)g(t)f(s)g(s)dtds]1/2=[12η∫I∫Iln2f(t)f(s)dtds+12η∫I∫Iln2g(t)g(s)dtds]1/2≤[12η∫I∫Iln2f(t)f(s)dtds]1/2+[12η∫I∫Iln2g(t)g(s)dtds]1/2=∥f∥B+∥g∥B.
证毕.
定义一个B2(I)→L2(I)上的函数:
clr(f)(t)=fc(t)=lnf(t)−1η∫Ilnf(s)ds.
为什么要定义一个这样的函数等等再讲,先来看看它的性质——不仅仅是等距映射.
clr(f⊕g)(t)=fc(t)+gc(t),clr(α⊙f)(t)=α⋅fc(t),⟨f,g⟩B=⟨fc,gc⟩2=∫Ifc(t)gc(t)dt.
这些性质的证明是容易的.
还需要注意的一个性质,不应该称之为限制条件才对:
∫Ifcdt=∫Ilnf(t)dt−∫Ilnf(s)ds=0.
这就意味着,只有L2(I)中满足积分为0的函数才能在B2(I)中有原像.
接下来解释为什么要弄这样一个映射. 因为一般情况下,我们首先面对的都是一些离散的数据,然后利用某些方法进行拟合,比如论文中提到的B−样条,但是拟合出来的函数往往并不是密度函数,所以便有了clr变化,这个变化可以帮助我们有效利用已有的函数,利用已有函数的积分等性质来应对B2(I)中的一些计算.
当然这也给函数逼近增加了难度,就是在区间I上积分和需要为1,这个问题在另一篇文章中进行了详细的讨论.
B2(I)上的PCA
假设xi,i=1,2,…,N∈B2(I), 那么令:
ξ=N∑i=1vi⊙xi=(v1⊙x1)⊕(v2⊙x2)⊕⋯⊕(vN⊙xN).
令矩阵M其元素Mij=⟨xi,xj⟩B=⟨clr(xi),clr(xJ)⟩2. 则有类似的公式:
M2v=λMv,∥Xv∥B=1.
转化为L2(I)上的PCA是类似的:
clr(ξ)=N∑iviclr(xi),
M2v=λMv,∥clr(ξ)∥2=1.
在实际情况中clr(xi)是通过函数逼近得到的,假设为:
clr(xi)=Φci,Φ=[ϕ1,…,ϕK].
则
clr(X)=ΦC,
假设M′ij=⟨ϕi,ϕj⟩2, 则:
M=CTM′C
又
clr(ξ)=ΦCv
令b=Cv, 可得:
Mv=CTΦTΦCv=CTΦTΦb=λv,
两边同乘以C可得:
CCTΦTΦb=λb
解得b, 可知:
clr(ξ)=Φb⇒ξ=clr−1(Φb).
注意: ∫Iclr(xi)dt=0.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix