Simplicial principal component analysis for density functions in Bayes spaces

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,其数据是xRn的,事实上,已经有很多关于函数类数据的PCA了.

一般的函数型PCA是定义在L2空间上的. 假设x1,x2,,xNL2(I), 并假设是中心化的. 我们希望找到一个ξ最大化:

1Ni=1Nxi,ξ22,s.t.ξ2=1.

其中x,y=Ixydt.
假设:

ξ=i=1Nvixi.

并记:

MRN×N,Mi,j=xi,yj2

则最初的式子可以表示为:

1NvTMTMv,s.t.Xv2=1.

可以证明,KKT条件为:

M2v=λMv

显然,vM的首特征向量(当然v=1不一定成立).
类似的,其它的载荷向量也是如此求得. 上面有一点存疑的地方是:

ξ=i=1Nvixi.

Rn中是绝对没问题的是,问题是在L2,是否可以分解一个元素呢? 可以的,绝对是可以的.

作者是将一般的函数的PCA,限定在密度函数的PCA,我们知道,密度函数f满足:

f0,Ifdt=1.

显然ξ=i=1Nvixi并不一定能够满足上面的性质,为此,作者引入了一个新的贝叶斯空间B2(I).

B2(I)

假设I=[a,b],我们的工作是构造一个空间,使得上面的元素其线性运算能够保持密度函数的性质.
首先说明,B2(I)里的元素为{f|If(t)dt=1,f0,tI}.

η=ba,后续我们会发现,1/η是这个空间的零元素.

首先定义加法和数乘法,使其称为一个向量空间.

(fg)(t)=f(t)g(t)If(s)g(s)ds,tI,

可以发现是保持密度函数的性质的(只要f,gI上满足).

(αf)(t)=f(t)αIf(s)αds,tI,

显然也是保持的.
并且,容易证明(利用类似核方法的思想):

fg=gf,fgh=f(gh),α(fg)=(αf)(αg),(αβ)f=α(βf),(α+β)f=(αf)(βf).

注意到:
g(t)=1/η,tI

fg=f,0f=1η

所以1/η是零元素,那么可以如此定义差:

fg=f[(1)g],

易得:

ff=1/η.

再定义内积,使其成为一个内积空间:

f,gB=12ηIIlnf(t)f(s)lng(t)g(s)dtds,,f,gB2(I).

则,我们可以定义其上的范数为:

fB=[12ηIIln2f(t)f(s)dtds]1/2.

下证其为一范数:
非负性是显然的, 首先证明其是正定的,即,零元素的大小为0:

1/ηB=[12ηIIln21dtds]1/2=0.

其次,证明其是其次的,即αfB=|α|fB:

αfB=[12ηIIln2fα(t)fα(s)dtds]1/2=|α|[12ηIIln2f(t)f(s)dtds]1/2=|α|fB.

最后证其满足三角不等式:

fgB=[12ηIIln2f(t)g(t)f(s)g(s)dtds]1/2=[12ηIIln2f(t)g(t)f(s)g(s)dtds]1/2=[12ηIIln2f(t)f(s)dtds+12ηIIln2g(t)g(s)dtds]1/2[12ηIIln2f(t)f(s)dtds]1/2+[12ηIIln2g(t)g(s)dtds]1/2=fB+gB.

证毕.

定义一个B2(I)L2(I)上的函数:

clr(f)(t)=fc(t)=lnf(t)1ηIlnf(s)ds.

为什么要定义一个这样的函数等等再讲,先来看看它的性质——不仅仅是等距映射.

clr(fg)(t)=fc(t)+gc(t),clr(αf)(t)=αfc(t),f,gB=fc,gc2=Ifc(t)gc(t)dt.

这些性质的证明是容易的.

还需要注意的一个性质,不应该称之为限制条件才对:

Ifcdt=Ilnf(t)dtIlnf(s)ds=0.

这就意味着,只有L2(I)中满足积分为0的函数才能在B2(I)中有原像.

接下来解释为什么要弄这样一个映射. 因为一般情况下,我们首先面对的都是一些离散的数据,然后利用某些方法进行拟合,比如论文中提到的B样条,但是拟合出来的函数往往并不是密度函数,所以便有了clr变化,这个变化可以帮助我们有效利用已有的函数,利用已有函数的积分等性质来应对B2(I)中的一些计算.
当然这也给函数逼近增加了难度,就是在区间I上积分和需要为1,这个问题在另一篇文章中进行了详细的讨论.

B2(I)上的PCA

假设xi,i=1,2,,NB2(I), 那么令:

ξ=i=1Nvixi=(v1x1)(v2x2)(vNxN).

令矩阵M其元素Mij=xi,xjB=clr(xi),clr(xJ)2. 则有类似的公式:

M2v=λMv,XvB=1.

转化为L2(I)上的PCA是类似的:

clr(ξ)=iNviclr(xi),

M2v=λMv,clr(ξ)2=1.

在实际情况中clr(xi)是通过函数逼近得到的,假设为:

clr(xi)=Φci,Φ=[ϕ1,,ϕK].

clr(X)=ΦC,

假设Mij=ϕi,ϕj2, 则:

M=CTMC

clr(ξ)=ΦCv

b=Cv, 可得:

Mv=CTΦTΦCv=CTΦTΦb=λv,

两边同乘以C可得:

CCTΦTΦb=λb

解得b, 可知:

clr(ξ)=Φbξ=clr1(Φb).

注意: Iclr(xi)dt=0.

posted @   馒头and花卷  阅读(189)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· 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
点击右上角即可分享
微信分享提示