CVX示例库之l_1趋势滤波(Trend Filtering)
参考 S.-J. Kim, K. Koh, S. Boyd, and D. Gorinevsky “l_1 Trend Filtering” SIAM Review, problems and techniques section, 51(2):339–360, May 2009
CVX示例库
- 趋势滤波(Trend Filtering)
- l 1 l_1 l1趋势滤波
趋势滤波(Trend Filtering)
假设时间序列 y t , t = 1 , … , n y_t,t=1,\dots,n yt,t=1,…,n由缓慢变化的趋势(Trend) x t x_t xt和快速变化的噪声 v t v_t vt组成。趋势滤波的目的是从时间序列 y t y_t yt中估计趋势 x t x_t xt。趋势滤波(Trend Filtering)可以看作一个具有两个目标的优化问题:我们希望 x t x_t xt平滑,同时希望 v t v_t vt尽可能地小。
l 1 l_1 l1趋势滤波
l 1 l_1 l1趋势估计问题:
minimize 1 2 ∥ y − x ∥ 2 2 + λ ∥ D x ∥ 1 \text{minimize}~\frac{1}{2}\|y-x\|_2^2+\lambda \|Dx\|_1 minimize 21∥y−x∥22+λ∥Dx∥1
其中 λ > 0 \lambda >0 λ>0是正则参数,控制 x t x_t xt的平滑度和 v t v_t vt的大小之间的折中, D D D是二阶差分矩阵,是一个托普利兹矩阵,第一行是 [ 1 − 2 1 0 ⋯ 0 ] [1 ~-2 ~1~0~\cdots~0] [1 −2 1 0 ⋯ 0]。
代码如下:
% 加载时间序列数据
y = csvread('snp500.txt'); % 需要在CVX示例库处下载
n = length(y);% 构造二阶差分矩阵
e = ones(n,1);
D = spdiags([e -2*e e], 0:2, n-2, n);% 设置正则参数
lambda = 50;% 求解l1趋势滤波问题、
cvx_beginvariable x(n)minimize( 0.5*sum_square(y-x)+lambda*norm(D*x,1) )
cvx_end% 画出估计的趋势和原始信号
figure(1);
plot(1:n,y,'k:','LineWidth',1.0); hold on;
plot(1:n,x,'b-','LineWidth',2.0); hold off;
xlabel('date'); ylabel('log price');
CVX示例库之l_1趋势滤波(Trend Filtering)相关推荐
- CVX示例库之比较随机(stochastic)和最坏情况(worst-case)鲁棒逼近
参考 6.4.2 节 Boyd 和 Vandenberghe <凸优化> CVX示例库 鲁棒逼近 随机鲁棒逼近 最坏情况鲁棒逼近 示例(比较随机和最坏情况鲁棒逼近) 鲁棒逼近 鲁棒逼近 ...
- CVX示例库之惩罚函数逼近
参考 6.1.2节 Boyd 和 Vandenberghe <凸优化> CVX示例库 逼近问题 惩罚函数逼近 逼近问题 逼近问题可以写成: minimize ϕ(r1)+⋯+ϕ(rm)su ...
- 【时序列】时序列数据如何一步步分解成趋势(trend)季节性(seasonality)和误差(residual)- 详细理解python sm.tsa.seasonal_decompose
[时序列]时序列数据如何一步步分解成趋势(trend)季节性(seasonality)和误差(residual)- 理解python sm.tsa.seasonal_decompose 在做时序列分析 ...
- mysql中示例库安装_MySQL 官方示例数据库安装
虽然MySQL安装包中不像SQL Server和Oracle那样提供示例数据库,但官方也提供示例数据库以供学习使用. 官方示例数据库 下载地址 http://dev.mysql.com/doc/ind ...
- Manim文档及源码笔记-CE文档-示例库3使用Manim绘图
Manim文档及源码笔记-CE文档-示例库3使用Manim绘图 参考原文: Manim Community Edition Example Gallery 前言 笔记随想: 暂未发现官方中文版,自己实 ...
- 中值滤波Median filtering
背景简述 在概率论中,中值将概率分布的高半部分与低半部分分开,对一个随机变量x 而言,x < M 的概率为0.5.对于有限实数集,其排序后中间的数值即为它的中值.集合的大小通常取奇数,以保证中值 ...
- 图像滤波(Image Filtering)
在具体写图像滤波方法之前,先给出图像滤波的一般性目标阐述和经典应用.图像通常有一个直观(intuition)特征: 图像往往由多块组成,各块内像素相似且过渡缓慢,块与块相邻部分称作边缘(Edge). ...
- Python扩展库scipy中值滤波算法的应用
中值滤波是数字信号处理.数字图像处理中常用的预处理技术,特点是将信号中每个值都替换为其邻域内的中值,即邻域内所有值排序后中间位置上的值.下面的代码演示了scipy库中signal模块的中值滤波算法的用 ...
- Google开源机器学习示例库:浏览器上可运行,免费GPU后端支持
安妮 编译整理 量子位 出品 | 公众号 QbitAI 青铜段位的机器学习研习者可能有着同样的困境:脑海中有个模糊的项目想法,但不知从何处动手,也不清楚用怎样的方法去实现. 从今天起,有个贴身小 ...
最新文章
- jQuery 操作 DOM
- MongoDB Sharding分片配置
- 千万千万不要运行的 Linux 命令
- C++与Java多态的区别
- [Luogu1890]gcd区间
- Python | 7招教你识别一个网站是否是Django后台
- 2021-07-05-日历
- leetcode - 1223. 掷骰子模拟
- 没有样式重置_我不能没有的5个Vue.js库
- keil4如何将c语言转换成汇编语言_Keil 中关于C语言编译生成汇编代码函数名规则...
- VS2012下载和安装
- Python 音频调整音量(附代码) | Python工具
- LM4890功放电路的分析
- MCTS (Monte Carlo Tree Search)
- 3D次时代来临 如何玩转红蓝立体游戏
- 浅谈ERP项目团队管理的四个方面
- AES加密解密SHA1、SHA加密MD5加密
- 14家国内外医药行业协会于国际医药创新大会联合签署《医药创新宣言》
- 计算机专业考研复试(前沿知识篇)
- 汽车行业部件IPX9K高温高压喷水试验测试
热门文章
- 【伟大报告】新消费大航海时代,新品牌如何变革发展
- Unity 3D : 解富士 RAF 檔案
- Precise Detection in Densely Packed Scenes论文详解
- php格式图片怎么打开方式,php格式文件打开的四种方法
- java swing GUI 模拟写字板项目源码,适合初级小白
- ASP .NET之动态WebApi实践
- TTA 测试时数据增强(multi-scale testing)(TEST.AUG)
- 前端搭建名言生成器(内附源码)
- windows系统,计算机cmd管理员,命令行中普通用户获取管理员权限的命令
- 几百万的资金在股市会被主力盯上吗?