首页 > 编程语言 >【视频】Python遗传算法GA优化SVR、ANFIS预测证券指数ISE数据-CSDN博客

【视频】Python遗传算法GA优化SVR、ANFIS预测证券指数ISE数据-CSDN博客

时间:2024-07-22 23:55:21浏览次数:13  
标签:plt 预测 Python 模型 ANFIS CSDN df ISE

全文链接:https://tecdat.cn/?p=37060

本文旨在通过应用多种机器学习技术,对交易所的历史数据进行深入分析和预测。我们帮助客户使用了遗传算法GA优化的支持向量回归(SVR)、自适应神经模糊推理系统(ANFIS)等方法,对数据进行了特征选择、数据预处理、模型训练与评估。实验结果表明,这些方法在预测证券交易所指数(ISE)方面具有显著效果,为投资者和市场分析师提供了有价值的参考。

引言

股票指数(ISE)的波动直接影响投资者的决策。因此,准确预测ISE的走势对于市场参与者至关重要。本文利用机器学习技术,通过构建多种预测模型,对ISE的历史数据进行了详细分析,以期提高预测的准确性和实用性。

数据准备与预处理

数据集描述

本文使用的数据集来源于证券交易所,包含了一系列可能影响ISE指数波动的经济指标。数据集以CSV格式存储,通过Pandas库进行读取和处理。

 
  1.   pd.read_csv('Is.csv', delimiter=';')
  2.   #print(df.head())
  3.   return DataPrepare(df)
  4.    
  5.   #data, target = ReadData()
 

 

 
  1.   # 重新加载数据,跳过可能包含重复列标题的行
  2.   df = pd.read_csv(file_path, delimiter=';', skiprows=[0, 1])
  3.    
  4.   # 显示数据的前几行以确认结构
  5.   df.head()
  6.   # 重命名列名以反映数据的实际含义
  7.   df.columns = ['Date', 'ISE', 'ISE_USD', 'SP', 'DAX', 'FTSE', 'NIKKEI', 'BOVESPA', 'EU', 'EM']
  8.    
  9.   # 将日期列转换为日期类型
  10.   df['Date'] = pd.to_datetime(df['Date'], format='%d-%b-%y')
  11.    
  12.   # 绘制时间序列图
  13.   plt.figure(figsize=(15, 8))
  14.   for col in df.columns[1:]:
  15.   plt.plot(df['Date'], df[col], label=col)
  16.    
  17.   plt.title('时间序列数据可视化 - 证券交易所')
  18.   plt.xlabel('日期')
  19.   plt.ylabel('数值')
  20.   plt.legend()
  21.   plt.grid(True)
  22.   plt.show()
  23.   # 重命名列名以反映数据的实际含义
  24.   df.columns = ['Date', 'ISE', 'ISE_USD', 'SP', 'DAX', 'FTSE', 'NIKKEI', 'BOVESPA', 'EU', 'EM']
  25.    
  26.   # 将日期列转换为日期类型
  27.   df['Date'] = pd.to_datetime(df['Date'], format='%d-%b-%y')
  28.    
  29.   # 绘制时间序列图
  30.   plt.figure(figsize=(15, 8))
  31.   for col in df.columns[1:]:
  32.   plt.plot(df['Date'], df[col], label=col)
  33.    
  34.   plt.title('时间序列数据可视化 - 证券交易所')
  35.   plt.xlabel('日期')
  36.   plt.ylabel('数值')
  37.   plt.legend()
  38.   plt.grid(True)
  39.   plt.show()
 

 

 

数据预处理步骤

  1. 列名与索引处理:将第一行数据作为列名,并删除该行。同时,调整列名以匹配数据含义,如将“ISE”列重命名为“ISE.TL”和“ISE.USD”。
  2. 日期处理:将日期列转换为时间戳格式,以便进行时间序列分析。
  3. 特征与目标分离:将ISE指数作为目标变量,其余经济指标作为特征变量。

特征选择与降维

特征选择

通过随机森林回归模型进行特征选择,设定阈值为0.25,筛选出对目标变量影响较大的特征。该方法有效减少了模型的复杂度,提高了预测效率。

数据标准化

使用MinMaxScaler对数据进行标准化处理,确保所有特征在同一量纲下,避免因量纲差异导致的预测偏差。

模型构建与训练

支持向量回归(SVR)

采用RBF核函数的SVR模型对数据进行训练,通过调整C和epsilon参数优化模型性能。此外,还尝试使用遗传算法(GA)对SVR的参数进行全局优化,进一步提升预测精度。

自适应神经模糊推理系统(ANFIS)

构建ANFIS模型,通过构造高斯型隶属函数并训练模型,实现对ISE指数的模糊推理预测。同样,使用遗传算法对隶属函数的sigma参数进行优化,提高模型的适应性和准确性。

 

模型评估

评估指标

采用解释方差得分(explained variance score)、R²得分(r2_score)和均方根误差(RMSE)作为模型评估指标,全面衡量模型的预测性能。

实验结果

  • SVR模型:在遗传算法优化参数后,SVR模型的预测性能显著提升,尤其是在解释方差得分和R²得分方面表现优异。
SVMEvaluate(svr_model, x_test, y_test)
  • 遗传算法优化

     
    1.   SVMGA()
    2.   print(datetime.now()-start)
    3.   SVM_ACO_Points
     

SVMEvaluate(svr_model, x_test, y_test)

  • ANFIS模型:通过遗传算法优化隶属函数参数,ANFIS模型在模糊推理预测中展现了良好的适应性和准确性,特别是在处理非线性关系时表现突出。
ANFISEvaluate(anf, x_test, y_test)

ANFIS模型:遗传算法优化后的ANFIS

 
  1.   ANFISGA()
  2.   print(datetime.now()-start)
 

 

 

 

 

结论与展望

本文通过应用多种机器学习技术,对证券交易所的历史数据进行了深入分析和预测。实验结果表明,SVR和ANFIS模型在预测ISE指数方面具有显著效果。未来工作可以进一步探索更多先进的机器学习算法,如深度学习模型,以及结合更丰富的数据源,以进一步提高预测的准确性和实用性。同时,也可以考虑将预测结果应用于实际的投资决策中,为投资者提供更为精准的市场分析服务。

参考文献

[1]阚子良,蔡志丹.基于优化参数的LS-SVM模型的股票价格时间序列预测[J].长春理工大学学报(自然科学版).2018,(1).
[2]郝知远.基于改进的支持向量机的股票预测方法[J].江苏科技大学学报(自然科学版).2017,(3).DOI:10.3969/j.issn.1673-4807.2017.03.015 .
[3]傅航聪,张伟.机器学习算法在股票走势预测中的应用[J].软件导刊.2017,(10).DOI:10.11907/rjdk.171549 .
[4]郝知远.基于数据挖掘方法的股票预测系统[D].2017.
[5]张建宽,盛炎平.支持向量机对股票价格涨跌的预测[J].北京信息科技大学学报(自然科学版).2017,(3).DOI:10.16508/j.cnki.11-5866/n.2017.03.008 .
[6]毕军龙.基于股指涨跌预测的投资策略[D].2016.
[7]Kumar, Deepak,Meghwani, Suraj S.,Thakur, Manoj.Proximal support vector machine based hybrid prediction models for trend forecasting in financial markets[J].Journal of computational science.2016,17(Nov. Pt.1).1-13.DOI:10.1016/j.jocs.2016.07.006 .
[8]尹小琴.基于支持向量机的混合时间序列模型的研究与应用[D].2016.
[9]朱磊.基于支持向量机的股价预测研究--以上证50成分股为例[D].2016.
[10]冯华萍.基于支持向量机的股票价格预测算法研究及应用[D].2016.

标签:plt,预测,Python,模型,ANFIS,CSDN,df,ISE
From: https://www.cnblogs.com/tecdat/p/18317277

相关文章

  • Python学习笔记42:游戏篇之外星人入侵(三)
    前言在之前我们已经创建好了目录,并且编写好了游戏入口的模块。今天的内容主要是讲讲需求的分析以及项目各模块的代码初步编写。在正式编写代码前,碎碎念几句。在正式编写一个项目代码之前,实际是有很多工作要做的。就项目而言,简单的定项,需求对齐,项目架构设计,实际的代码编写,......
  • Python入门知识点 5--流程控制语句
    先来分享一个pycharm使用小技巧   红色波浪线:提醒可能报错   黄色波浪线:提醒书写不规范,ctrl+alt+l去掉黄线   code--Reformatcode,就可以去掉黄线,调整代码格式1、程序三大执行流程(1)顺序执行        程序执行时,代码从上往下,从左往右执行,中间......
  • python里读写excel等数据文件的几种常用方式
    python处理数据文件第一步是要读取数据,文件类型主要包括文本文件(csv、txt等)、excel文件、数据库文件、api等。下面整理下python有哪些方式可以读取数据文件。1.python内置方法(read、readline、readlines)read():一次性读取整个文件内容。推荐使用read(size)方法,size越大......
  • python+flask计算机毕业设计鲜花坊销售平台(程序+开题+论文)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着电子商务的迅猛发展,线上购物已成为人们日常生活的重要组成部分,尤其在追求生活品质与个性化的今天,传统鲜花销售行业正经历着深刻的变革......
  • python+flask计算机毕业设计快递驿站管理系统(程序+开题+论文)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着电子商务的迅猛发展,快递行业迎来了前所未有的繁荣期,快递包裹量急剧增长,对快递末端配送服务提出了更高的要求。传统的快递配送模式面临......
  • python-爬虫实例(4):获取b站的章若楠的视频
    目录前言        道路千万条,安全第一条        爬虫不谨慎,亲人两行泪获取b站的章若楠的视频一、话不多说,先上代码二、爬虫四步走1.UA伪装2.获取url3.发送请求 4.获取响应数据进行解析并保存 总结前言        道路千万条,安全第一条......
  • 使用Python和Pygame创建简单的音乐播放器
    在本篇博客中,我们将探讨如何使用Python编写一个简单的音乐播放器,并通过Pygame库实现音乐的播放和控制。我们将逐步介绍代码的功能和实现原理,以便读者能够了解每个部分的作用和如何在自己的项目中应用类似的技术。介绍音乐播放器是日常生活中常见的应用程序之一,它允许我们播放......
  • python中datetime模块
    importdatetime#fromdatetimeimportdate#1.获取当前时间2024-06-0617:30:20.733408print(datetime.datetime.now())#2.获取当前日期2024-06-06today=datetime.date.today()#获取年月日print(today.year)print(today.month)print(today.day)#......
  • python——闭包与装饰器
    闭包与装饰器1.闭包 定义闭包的三要素:外部函数嵌套内部函数外部函数将内部函数返回内部函数可以访问外部函数的局部变量了解三要素之后就可以定义一个闭包了deffun1(x):#外部函数嵌套fun2deffun2():print(x)#内部函数访问外部函数的局部变量ret......
  • python函数基础详解
    1.函数的目的在python中使用函数可以减少重复代码,提复用率,目的为了封装一定的功能,比如print封装了打印输出的功能。2.函数的定义是我们在编写程序的时候,临时创建一个新的函数,一个可以重复使用函数的过程,一个简单的函数定义包括,函数名,形参和实参,返回以及调用。3.函数的声明......