理解非对称最小二乘基线校正法

主要是解读这篇文章:Paul H. C. Eilers Hans F.M. Buelens, Baseline Correction with Asymmetric Least Squares Smoothing

看到很多地方基线校正都用的是这个方法,这里对他的原理做个解读

1、首先需要介绍一下一种平滑算法:Whittaker 平滑法( Whittaker smoother)

介绍可以看这篇:https://eigenvector.com/wp-content/uploads/2020/01/WhittakerSmoother.pdf

这不是这个平滑算法的原文,只是介绍,我没有找到免费的原文,所以只能放这篇

这个平滑算法的优化目标函数是minimize下面这个式子:

这里,y是指信号值,z是我们要求解的值,w和λ是我们手动指定的系数,Δ²是二阶差分的意思,也就是:

 

 那个目标函数的式子的含义,前面y-z的那部分表示y和z的差要尽量的小,后面那个z的二阶差分的含义,就是要让z是一个平滑序列

要找到z使得S最小,我们就对z求导,也就得到下面这个式子:

其中W是一个对角矩阵,D表示二阶差分的意思:

D' 表示D的转置矩阵

要求解z,我们就计算下面这个式子就可以了:

z = (W+\lambda D'D)^{-1}Wy

以上就是Whittaker平滑算法

2、现在开始介绍非对称最小二乘法(Asymmetric Least Square)

所谓非对称,就是修改权重w,让y-z<0的项的权重大于y-z>0的项的权重

之所以这么处理,是因为作者注意到,有效的信号往往是大于基线很多的峰值,因此便让y-z>0的部分的影响降低

文章用了迭代的方式实现这个计算,github上也有python版和c++版的实现,具体实现方式我就没再细看了

 github上c++的实现:https://github.com/kellman/ALS-Baseline-Subtraction

python的实现:https://github.com/wangyendt/BaselineRemoval

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值