[开源]基于SVM的时间序列预测python代码

整理了SVM的时间序列预测python代码分享给大家。记得点赞哦

#!/usr/bin/env python
# coding: utf-8



import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
from sklearn import preprocessing
from sklearn.metrics import mean_squared_error
from math import sqrt
from sklearn import preprocessing
from sklearn.svm import SVR
from sklearn.metrics import mean_squared_error,mean_absolute_error,r2_score
import math
from numpy import concatenate




feanum=1
window=5
Ra = 0.8
df1=pd.read_csv('shao - 单.csv', usecols=[1]) #读取数据
train_d, test_d = df1[0:int(len(df1)*Ra)], df1[int(len(df1)*Ra):]



min_max_scaler = preprocessing.MinMaxScaler()
df0=min_max_scaler.fit_transform(df1)
df = pd.DataFrame(df0, columns=df1.columns)




#这一部分在处理数据 将原始数据改造为模型需要的输入
stock=df
seq_len=window
amount_of_features = len(stock.columns)#有几列
data = stock.values #pd.DataFrame(stock) 表格转化为矩阵
sequence_length = seq_len + 1#序列长度+1
result = []
for index in range(len(data) - sequence_length):#循环 数据长度-时间窗长度 次
    result.append(data[index: index + sequence_length])#第i行到i+5
result = np.array(result)#得到样本,样本形式为 window*feanum

cut=len(test_d)
train = result[:-cut, :]
x_train = train[:, :-1]
y_train = train[:, -1][:,-1]
x_test = result[-cut:, :-1]
y_test = result[-cut:, -1][:,-1]
X_train = np.reshape(x_train, (x_train.shape[0], x_train.shape[1], amount_of_features))
X_test = np.reshape(x_test, (x_test.shape[0], x_test.shape[1], amount_of_features))  


print("X_train", X_train.shape)
print("y_train", y_train.shape)
print("X_test", X_test.shape)
print("y_test", y_test.shape)



X_train=X_train.reshape(len(X_train),window)
y_train=y_train.reshape(len(X_train))
X_test=X_test.reshape(cut,window)
y_test=y_test.reshape(cut)
print("X_train", X_train.shape)
print("y_train", y_train.shape)
print("X_test", X_test.shape)
print("y_test", y_test.shape)


svr = SVR(C=1.0, cache_size=200,degree=3, gamma=0.01,kernel='linear', max_iter=-1) 
model = svr.fit(X_train, y_train)


#在训练集上的拟合结果
y_train_predict=model.predict(X_train)




draw=pd.concat([pd.DataFrame(y_train),pd.DataFrame(y_train_predict)],axis=1)
draw.iloc[0:len(train_d),0].plot(figsize=(12,6))
draw.iloc[0:len(train_d),1].plot(figsize=(12,6))
plt.legend(('real', 'predict'),loc='upper right',fontsize='15')
plt.title("Train Data",fontsize='30') 




#在测试集上的预测
y_test_predict=model.predict(X_test)


X = pd.DataFrame(y_test)
Y = pd.DataFrame(y_test_predict)
X = min_max_scaler.inverse_transform(X)
Y = min_max_scaler.inverse_transform(Y)




testScore = math.sqrt(mean_squared_error(X, Y))
print('RMSE为:%.3f ' %(testScore))
testScore = mean_absolute_error(X, Y)
print('MAE为:%.3f ' %(testScore))
testScore = r2_score(X, Y)
print('R2为:%.3f ' %(testScore))



plt.figure(figsize=(10, 4),dpi=150)
plt.plot(X, label="Actual", color='red',linewidth=4)
plt.plot(Y, color='blue',label='Prediction',linewidth=2.5,linestyle="--")
plt.title('Prediction', size=15)
plt.ylabel('DO',size=15)
plt.xlabel('time',size=15)
plt.legend()
plt.show()




更多时间序列预测代码获取:时间序列预测算法全集合--深度学习

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

嵌入式Linux驱动开发——汇编点灯

嵌入式Linux驱动开发——汇编点灯 本文章开始记录学习嵌入式Linux的过程,使用的开发板是正点原子的阿尔法,以及左老师的书籍和视频。然后这个系列不会介绍基础知识(书上都有),主要是记录思考过程以及需要注意的点。 代…

docker使用arthas基本教程

供参考也是自己的笔记 docker容器下使用遇到的问题:大致是连接不上1号进程 我这边主要的问题是用户权限问题,docker容器使用aaa用户启动,那个在docker容器内,需要使用aaa用于启动 docker 容器如何使用arthas #实现下载好arthas …

启动Unity发布的exe并且添加启动参数

启动Unity发布的exe并且添加启动参数 在启动Unity的时候添加一些启动的参数。 代码解释 在启动的时候获取的启动参数如果没有获取到正确的启动参数那么就退出程序,这个代码仅仅在发布到windows之后才会生效,在编辑器下这个代码虽然会获取到参数但是不能…

CVE-2024-3148 DedeCms makehtml_archives_action sql注入漏洞分析

DedeCMS(也称为织梦CMS)是一款基于PHPMySQL的开源内容管理系统。 在 DedeCMS 5.7.112 中发现一个被归类为严重的漏洞。此漏洞会影响某些未知文件dede/makehtml_archives_action.php的处理。操作导致 sql 注入。攻击可能是远程发起的。该漏洞已向公众披露…

【C++入门】缺省参数、函数重载与引用

💞💞 前言 hello hello~ ,这里是大耳朵土土垚~💖💖 ,欢迎大家点赞🥳🥳关注💥💥收藏🌹🌹🌹 💥个人主页&#x…

软件无线电系列——CIC滤波器

本节目录 一、CIC滤波器 1、积分器 2、梳状滤波器 3、CIC滤波器的特性 二、单级CIC和多级CIC滤波器本节内容 一、CIC滤波器 CIC滤波器,英文名称为Cascade Integrator Comb,中文全称为级联积分梳状滤波器,从字面来看就是将积分器与梳状滤波器…

Azure runbook 使用用户托管标识查看资源状态

Azure runbook 使用用户托管标识查看资源状态 在托管标识里创建用户托管标识在被查看或变更资源进行授权创建自动化账号和runbook发布脚本添加计划 在托管标识里创建用户托管标识 在被查看或变更资源进行授权 这里是选取的Analysis Services 资源 创建自动化账号和runbook 发布…

JQuery(二)---【使用JQuery对HTML、CSS进行操作】

零.前言 JQuery(一)---【JQuery简介、安装、初步使用、各种事件】-CSDN博客 一.使用JQuery对HTML操作 1.1获取元素内容、属性 使用JQ可以操作元素的“内容” text():设置或返回元素的文本内容html():设置或返回元素的内容(包括HTML标记)val()&#…

Python零基础从小白打怪升级中~~~~~~~入门

第一节:Python入门(一) 1、Python介绍 编程语言就是人和计算机进行交流的一种语言 Pythonc / CJavaPHPC#gobasicqbasicVBVCPython 是一个高层次的结合了解释性、编译性、互动性和面向对象,同时也面向函数的脚本语言。 Python 是…

C语言--条件编译(常见的编译指令)

#if(开始(判断条件))#endif(结束) 条件满足就参与编译,这里是一个判断的语句,当M大于0的时候,打印hehe不然就不打印 或者注释代码也好用 当#if 0的时候 ,也…

解决IDEA 控制台中文乱码

运行某个项目时IntelliJ IDEA 控制台中文乱码,但其他的项目是正常的。接口文档也显示乱码: 一、修改 IntelliJ IDEA 全局编码、项目编码、属性文件编码 上方导航栏“File→Settings…”进入配置页面,在“Editor”中下滑找到“File Encodings…

Django检测到会话cookie中缺少HttpOnly属性手工复现

一、漏洞复现 会话cookie中缺少HttpOnly属性会导致攻击者可以通过程序(JS脚本等)获取到用户的cookie信息,造成用户cookie信息泄露,增加攻击者的跨站脚本攻击威胁。 第一步:复制URL:http://192.168.43.219在浏览器打开,…

备战蓝桥杯Day37 - 真题 - 特殊日期

一、题目描述 思路: 1、统计2000年到2000000年的日期,肯定是需要遍历 2、闰年的2月是29天,非闰年的2月是28天。我们需要判断这一年是否是闰年。 1、3、5、7、8、10、12月是31天,4、6、9、11月是30天。 3、年份yy是月份mm的倍数…

【大数据】常见问题解决1

目录 一、解决虚拟机ping www.baidu.com 不通问题 二、解决HBase集群中的Hmaster节点刚启动就消息 三、 Hadoop3.x和Hadoop2.x的区别 一、解决虚拟机ping www.baidu.com 不通问题 1)首先保证主机连上网络 2)sudo vim /etc/resolv.conf 3)…

SpringBoot3整合RabbitMQ之三_工作队列模型案例

SpringBoot3整合RabbitMQ之三_工作队列模型案例 文章目录 SpringBoot3整合RabbitMQ之三_工作队列模型案例2. 工作队列模型1. 消息发布者1. 创建工作队列的配置类2. 发布消费Controller 2. 消息消费者One3. 消息消费者Two4. 消息消费者Three5. 输出结果 2. 工作队列模型 1. 消息…

【学习笔记】3、逻辑门电路

3.1 MOS逻辑门电路 按照器件结构的不同形式,分为NMOS、PMOS、CMOS三种逻辑门电路。 3.1.1 CMOS CMOS电路成为主导地位的逻辑器件。工作速度:赶上甚至超过TTL电路。(早期CMOS速度慢,后来工艺提升速度变快)功耗和抗干…

【MacBook系统homebrew镜像记录】

安装 使用Homebrew 国内源安装脚本,贼方便: /bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"切换至清华大学镜像源: 命令合并: 分别切换了 brew.git、 homebrew-core.git、 homebrew-…

系统架构评估_2.SAAM方法

SAAM(Scenarios-based Architecture Analysis Method)是卡耐基梅隆大学软件工程研究所(SEI at CMU)的Kazman等人于1983年提出的一种非功能质量属性的架构分析方法,是最早形成文档并得到广泛使用的软件架构分析方法。最…

SiteSpace 使用方法笔记

目录 介绍下载及安装准备工作知网 CNKI 文献分析数据准备数据转换新建项目图形处理 介绍 CiteSpace 是一个用于可视化和分析科学文献的工具。它可以从科学文献库中提取关键词、作者、机构和引用关系等信息,并将其可视化为图形网络。 一些使用案例 下载及安装 下载…

牛客论坛项目中使用到Redis的地方总结

实体分为很多类,实体的确定要通过实体类型和实体id两个属性同时确定。牛客论坛中使用到了3类实体: 1 登录 使用到的Redis命令: set key value // 设置指定key的值为value get key // 获取指定key的值1.1 存储/获取验证码 验证码文本&…