用于非线性时间序列预测的稀疏局部线性和邻域嵌入(Matlab代码实现)

news2024/10/1 12:21:45

💥💥💞💞欢迎来到本博客❤️❤️💥💥

🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️座右铭:行百里者,半于九十。

📋📋📋本文目录如下:🎁🎁🎁

目录

💥1 概述

📚2 运行结果

🎉3 参考文献

🌈4 Matlab代码实现


💥1 概述

“本文提出了一种基于字典的L1范数稀疏编码,用于时间序列预测,不需要训练阶段,参数调整最少,适用于非平稳和在线预测应用。预测过程被表述为基础追求 L1 范数问题,其中为每个测试向量估计一组稀疏权重。尝试了约束稀疏编码公式,包括稀疏局部线性嵌入和稀疏最近邻嵌入。16个时间序列数据集用于测试离线时间序列预测方法,其中训练数据是固定的。所提出的方法还与Bagging树(BT),最小二乘支持向量回归(LSSVM)和正则化自回归模型进行了比较。所提出的稀疏编码预测显示出比使用10倍交叉验证的LSSVM更好的性能,并且比正则化AR和Bagging树的性能明显更好。平均而言,在LSSVM训练时可以完成几千个稀疏编码预测。

📚2 运行结果

 

 

 

部分代码:

clear all;
%Time series Prediction using Sparse coding with overcomplete dictionaries
%In each case, the test data prediction is plotted versus the real data
%and the sparsity of the solution is recorded.
%both L1-magic (if LASSO=0) and CVX libraries (if LASSO=1) must be included 
% in the Matlab path

%if normalize=1 use sqrt(x*x'), normalize=2 use st.dev., normalize=3 use 
%the L1 norm, or zero then no normalization.
normalize1=2;
normalize2=2;
eps=0.001;  %the error constraint 
thr=0.001;   %the pruning threshold
NN=20000;   %these are the max number of neighbors allowed
dthr=0.0;    %the distance threshold used to filter the dictionary. If it 
%is zero then no dictionary filtering is done
LASSO=1;   %0 for BP   and 1 for BPDN or LASSO using CVX

for kkk=1:16  %The 16 data sets used for evaluation
    nnnn=kkk;
     
if(nnnn==1)    %Mackey-Glass data
load MGData;
a = MGData;
time = a(:, 1);
x_t = a(:, 2);
trn_data = zeros(500, 5);
chk_data = zeros(500, 5);

time = 1:sz;
Train = x_t(1:100);   
Test  = x_t(101:190);     
K=6;
eps=0.001;
C = 'USD-EURO Data'
elseif(nnnn==15)
load IkedaData1;   %Z-normalized   


if(nonorm==1)
    for i=1:L1-K
        dzz(i)=1;
    end
end

end

%Now we normalize the targets of the training data
for i=1:L1-K
if(normalize1==5)
    T(i) = (trg1(i)-dmm(i))/dvv(i);
else
T(i) = trg1(i)/dzz(i);
end
end
TR = T;


%%%%%%%%This is the dictionary filtering process (if we want to reduce the
%%%%%%%%number of similar atoms. It is controlled by the dthr value
%%%%%%%%specified by the user. I have not investigated this a lot
dictsize=size(DD);

    nn=dictsize(1);   %the large dimension
    mm=dictsize(2);   %the small dimension

    RR=randn(nn,mm);
    RR=orth(RR);

    tooclose=0;
    for io=1:nn  %over all the atoms
        xio = DD(io,1:mm);
        
        cnt=0;
        for jo= io+1 : nn
            dddd(jo) = dist(xio,DD(jo,1:mm)');
            if(dddd(jo) <= dthr) cnt=cnt+1;  %one or more atoms are too close
            end
            
        end
        
        if(io<nn)
        mindist(io) = min(dist(xio,DD(io+1:nn,1:mm)'));  %the min distance for each atom with the next ones
        else
            mindist(io)=0;
        end
        
        if(cnt==0)   %no atoms are too close
            FF(io,1:mm) = DD(io,1:mm);
            FT(io) = TR(io);
        else   %some atoms are too close, so we remove this one and put a random atom
        FF(io,1:mm) = RR(io, 1:mm);
        FT(io) = 0;   %the target for the random atoms is zero
        
        tooclose=tooclose+1;
        end
        
    end
    
    %So, now the new dictionary is FF and the new targets is FT
    %(if no filtering happened then FF is the same as DD)

    TooClose(kkk) = tooclose;  %this will tell us how many atoms were replaced (removed)
    MinDist(kkk,1:nn)=mindist(1:nn);
    
%here we construct the test data
Test(1:(L2-K),1:K) = tst(1:(L2-K),1:K);
TT = trg2(1:(L2-K));

M=L2-K;

tic  %to get the test time
sprs=0;   %to accumulate the sparsity over test vectors

for i=1:M    %loop over M vectors from the test data

    disp('**************');
    disp(i);
    
    test(1:K) = Test(i,1:K);
    
    %here we normalize the test vector by its own dot product
    if(normalize2==1) normtest = sqrt(test*test');
    elseif(normalize2==2) normtest = sqrt(var(test));
    elseif(normalize2==3) normtest = norm(test,1);
    elseif(normalize2==0) normtest=1;
    end
    

🎉3 参考文献

部分理论来源于网络,如有侵权请联系删除。

[1]Waleed Fakhr, "Sparse Locally Linear and Neighbor Embedding for Nonlinear Time Series Prediction", ICCES 2015, December 2015.

🌈4 Matlab代码实现

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/348354.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringBoot 文件上传后查看404的问题和解决404后需要访问两次才能查看的问题

文件上传、图片上传的实现见这个&#xff1a; SpringBootVue 实现头像上传功能_Teln_小凯的博客-CSDN博客 在实现上面的功能后&#xff0c;发现查看图片的时候提示404&#xff0c;解决这个方法如下&#xff1a; 1、配置资源静态文件映射 第一个参数是页面请求的地址&#x…

ChatGPT 整合到Laravel项目中使用

之前写的《ChatApI 本地如何调用》是直接下载ChatGPT SDK当做单独项目开发使用的&#xff0c;这次写的是整合到当前项目中使用ChatGPT 合并为一个项目去使用&#xff1b;具体操作方法也有一定区别。 目录 1.安装ChatGPT SDK 2.加载ChatGPT类库 3.安装guzzlehttp 4.代码实操…

【近似算法】—0-1背包问题的近似算法

【近似算法】—0-1背包问题的近似算法Approximation Schemes(近似方案)PTAS&#xff08;Polynomial time approximation scheme&#xff09;定义&#xff1a;FPTAS&#xff08;Fully polynomial time approximation scheme&#xff09;定义&#xff1a;PPTAS&#xff08;Pseudo…

浏览器F12功能详细介绍

哈喽&#xff0c;大家好&#xff0c;我是有勇气的牛排&#xff08;全网同名&#xff09;&#x1f42e; 有问题的小伙伴欢迎在文末评论&#xff0c;点赞、收藏是对我最大的支持&#xff01;&#xff01;&#xff01;。 掌握浏览器调试基本属于开发者必备的技能&#xff0c;熟悉…

Unity 2021 LTS中着色器构建时间和内存使用的改进

随着Unity的可脚本渲染管道(SRP)的可用特性集的不断增长&#xff0c;在构建时处理和编译的着色器变量的数量也在不断增加。除了对更多图形api的持续支持和不断增长的目标平台选择外&#xff0c;SRP的改进还在继续扩展。着色器在初始(“干净”)构建后被编译和缓存&#xff0c;从…

自动曝光在移动平台上的实现方案——以《使命召唤手游》为例

一. Intro在PBR渲染中&#xff0c;除了已被大家深入分析了很多遍的PBR材质属性&#xff08;Surface Appearance&#xff09;外&#xff0c;合理的光源强度和后处理也是不可或缺的部分。这里结合工作中的一些实践经验&#xff0c;讨论一下后处理中另一个关键环节——自动曝光在移…

Consul SpringCloudK8S

背景说起微服务&#xff0c;就需要用到SpringCloud&#xff0c;目前市面上主流的SpringCloud产品有这些&#xff1a;SpringCloudNeflix、Spring Cloud Alibaba、Spring Cloud for AWS、Spring Cloud Azure 和 Spring Cloud Kubernetes。其中SpringCloudNeflix已经不在更新&…

C#开发记录——C#开发的OPC客户端无法连接杰控软件的OPC服务器处理办法

1、某些OPC 客户端连接本地服务器失败 某些OPCDa 客户端,例如ABBDCS,.WinCC 等,本地连接服务器失败,需特殊设置; C#开发的就遇到此情况&#xff0c;排查原因&#xff0c;停滞了好几天&#xff0c;终于解决 1.1、打开DCOM 配置,64 位系统需执行: 1.2、从组件服务->计算机-&…

iOS UI自动化测试详解

前言&#xff1a; 小目标 关于UI自动化的定义&#xff0c;我想要的是自动地按照流程去点击页面、输入数据&#xff0c;不需要人去参与&#xff0c;节省人工时间。比如登录&#xff0c;能够自己去填写用户名&密码&#xff0c;然后点击按钮跳转到下一个页面等。在能够保证业…

pandas表格并表(累加合并)

今天需求是用pandas的两张表格合并起来&#xff0c;其中重复的部分将数据进行相加。 用到的是combine&#xff08;&#xff09;这个函数。 函数详细的使用可以看这个大佬的文章&#xff1a; https://www.cnblogs.com/traditional/p/12727997.html &#xff08;这个文章使用的测…

vue之为什么data属性是一个函数而不是一个对象?

为什么data属性是一个函数而不是一个对象为什么data属性是一个函数而不是一个对象&#xff1f;一、实例和组件定义data的区别二、组件data定义函数与对象的区别三、原理分析四、结论为什么data属性是一个函数而不是一个对象&#xff1f; 一、实例和组件定义data的区别 vue实例…

嵌入式物联网【数据处理篇】特殊字符处理(Postman 400 Bad Request)

目录 一、Postman 400 Bad Request 二、C语言特殊字符处理 三、QUrl toPercentEncoding 处理url中含有特殊字符转码 16进制ASCII码对照表 一、Postman 400 Bad Request http请求链接中的特殊字符处理 解决包括Postman 中的post、get等链接请求中的特殊字符&#xff08;如…

谷歌关键词优化多少钱【2023年调研】

本文主要分享Google关键词排名优化的一些成本调研&#xff0c;方便大家参考。 本文由光算创作&#xff0c;有可能会被剽窃和修改&#xff0c;我们佛系对待这种行为吧。 今年2023年了&#xff0c;谷歌关键词优化到底要多少钱&#xff1f; 答案是&#xff1a;价格在2w~25w左右…

c++终极螺旋丸:₍˄·͈༝·͈˄*₎◞ ̑̑“类与对象的结束“是结束也是开始

文章目录 前言一.构造函数中的初始化列表 拷贝对象时的一些编译器优化二.static成员三.友元四.内部类总结前言 前两期我们将类和对象的重点讲的差不多了&#xff0c;这一篇文章主要进行收尾工作将类和对象其他的知识点拉出来梳理一遍&#xff0c;并且补充前两篇没有讲过的…

第3集丨Java中的异常、处理方式及自定义异常汇总

目录一、异常的分类1.1 常见的运行时异常1.2 常见的检查异常1.3 继承关系二、异常处理机制三、try…catch…finally四、声明抛出异常五、人工抛出异常六、自定义异常任何一种程序设计语言设计的程序在运行时都有可能出现错误&#xff0c;例如除数为0&#xff0c;数组下标越界&a…

别学英语了,真的

文 / 王不留&#xff08;微信公众号&#xff1a;王不留&#xff09; 这两年&#xff0c;很多朋友加我微信后&#xff0c;第一句常是&#xff0c;学英语有什么用啊&#xff1f; 我会统一给出真诚答复&#xff1a;没用&#xff0c;真的。 看新闻&#xff0c;中文海量信息已经严重…

建筑行业固定资产管理解决方案

建筑行业的固定资产种类和数量都较多&#xff0c;常用的固定资产有&#xff1a;办公设备、机械、设备、工具等。设备的调拨、购置、测试、验收、建帐立卡、分类编号、技术档案、供应分配、清查盘点、提取折旧、报废、设备维修、设备保养、备件管理、设备巡检和点检等工作&#…

S7-1200对于不同项目下的PLC之间进行开放式以太网通信的具体方法示例

S7-1200对于不同项目下的PLC之间进行开放式以太网通信的具体方法示例 如下图所示,打开TIA博途创建一个新项目,并通过“添加新设备”组态 S7-1200 客户端 ,选择 CPU1214C DC/DC/DC (client IP:192.168.0.102),建立新子网; 首先编写客户端程序:打开OB1编程界面,选择指令…

图片如何提取文字?

在当今信息爆炸的时代&#xff0c;图文并茂已经成为了一个广告宣传的常用方式。然而&#xff0c;图片中的文字信息往往难以获取&#xff0c;尤其对于那些需要快速获取信息的人们来说&#xff0c;阅读图片中的文字会是一项繁琐且费时的任务。现在&#xff0c;我们有一个好消息要…

如何熟练掌握Python在气象水文中的数据处理及绘图【免费教程】

pythonPython由荷兰数学和计算机科学研究学会的吉多范罗苏姆于1990年代初设计&#xff0c;作为一门叫做ABC语言的替代品。Python提供了高效的高级数据结构&#xff0c;还能简单有效地面向对象编程。Python语法和动态类型&#xff0c;以及解释型语言的本质&#xff0c;使它成为多…