数据挖掘实战-基于Prophet时间序列模型预测阿里巴巴股票价格趋势(文末送书)

news2024/9/20 5:34:15

🤵‍♂️ 个人主页:@艾派森的个人主页

✍🏻作者简介:Python学习者
🐋 希望大家多多支持,我们一起进步!😄
如果文章对你有帮助的话,
欢迎评论 💬点赞👍🏻 收藏 📂加关注+


目录

一、Prophet介绍

二、实验背景

三、数据集介绍

四、技术工具

五、实验过程

六、总结

源代码

文末推荐与福利


一、Prophet介绍

Prophet 是由 Facebook 开发的一个开源时间序列预测库,设计考虑了业务场景中的时间序列特点,如季节性变化、假日效应和趋势变化。Prophet 特别适合处理日级别(或以上频率)的时间序列数据,并且在处理缺失数据和异常值方面表现出色。

安装

pip install prophet

学习文档

github地址:https://github.com/facebook/prophet

文档地址:http://facebook.github.io/prophet

英文教程文档:https://facebook.github.io/prophet/docs/quick_start.html#python-api

中文翻译:https://www.cnblogs.com/wt11/collections/1524

模型原理

y(t)=g(t)+s(s)+h(t)+ϵt

g(t)表示增长函数,用来拟合非周期性变化的。
s(t)用来表示周期性变化,比如说每周,每年,季节等。
h(t)表示假期,节日等特殊原因等造成的变化。
ϵt为噪声项,用他来表示随机无法预测的波动,我们假设ϵt是高斯的。

Prophet的默认参数

def __init__(
    self,
    growth='linear',
    changepoints=None,
    n_changepoints=25, 
    changepoint_range=0.8,
    yearly_seasonality='auto',
    weekly_seasonality='auto',
    daily_seasonality='auto',
    holidays=None,
    seasonality_mode='additive',
    seasonality_prior_scale=10.0,
    holidays_prior_scale=10.0,
    changepoint_prior_scale=0.05,
    mcmc_samples=0,
    interval_width=0.80,
    uncertainty_samples=1000,
)

1、growth:增长趋势模型,分为“linear”与“logistic”,分别代表线性与非线性的增长,默认值为linear。

2、Capacity:在增量函数是逻辑回归函数的时候,需要设置的容量值,表示非线性增长趋势中限定的最大值,预测值将在该点达到饱和.

3、Change Points:可以通过 n_changepoints 和 changepoint_range 来进行等距的变点设置,也可以通过人工设置的方式来指定时间序列的变点,默认值:“None”.

4、n_changepoints:用户指定潜在的”changepoint”的个数,默认值:25。

5、changepoint_prior_scale:增长趋势模型的灵活度。调节”changepoint”选择的灵活度,值越大,选择的”changepoint”越多,从而使模型对历史数据的拟合程度变强,然而也增加了过拟合的风险。默认值:0.05。

6、seasonality_prior_scale(seasonality模型中的):调节季节性组件的强度。值越大,模型将适应更强的季节性波动,值越小,越抑制季节性波动,默认值:10.0.

7、holidays_prior_scale(holidays模型中的):调节节假日模型组件的强度。值越大,该节假日对模型的影响越大,值越小,节假日的影响越小,默认值:10.0。

8、freq:数据中时间的统计单位(频率),默认为”D”,按天统计.

9、periods:需要预测的未来时间的个数。例如按天统计的数据,想要预测未来一年时间内的情况,则需填写365。

10、mcmc_samples:mcmc采样,用于获得预测未来的不确定性。若大于0,将做mcmc样本的全贝叶斯推理,如果为0,将做最大后验估计,默认值:0。

11、interval_width:衡量未来时间内趋势改变的程度。表示预测未来时使用的趋势间隔出现的频率和幅度与历史数据的相似度,值越大越相似,默认值:0.80。当mcmc_samples = 0时,该参数仅用于增长趋势模型的改变程度,当mcmc_samples > 0时,该参数也包括了季节性趋势改变的程度。

12、uncertainty_samples:用于估计未来时间的增长趋势间隔的仿真绘制数,默认值:1000。

13、yearly_seasonality: 数据是否有年季节性,默认“自动检测”。

14、weekly_seasonality: 数据是否有周季节性,默认“自动检测”。

15、daily_seasonality: 数据是否有天季节性,默认“自动检测”。

16、seasonality_mode: 季节性效应模式,默认加法模式“additive”,可选“multiplicative”乘法模式。

二、实验背景

        在当今复杂多变的金融市场中,股票价格预测一直是投资者和分析师关注的焦点。准确预测股票价格趋势对于投资者制定投资策略、规避风险和实现资本增值具有重要意义。然而,股票价格受到多种因素的影响,包括宏观经济环境、公司财务状况、市场情绪等,这些因素使得股票价格预测变得复杂且充满挑战。

        阿里巴巴(BABA)作为全球知名的电子商务平台,其股票价格一直受到广泛关注。投资者和分析师对阿里巴巴股票价格趋势的预测需求日益增长,希望通过预测结果来指导投资决策。然而,由于股票价格受到多种因素的影响,传统的线性预测模型往往难以准确捕捉股票价格的动态变化。

        因此,本实验旨在利用Prophet时间序列模型对阿里巴巴股票价格趋势进行预测。Prophet模型是一种基于可分解的时间序列模型,由趋势项、季节项和假期因素组成,能够灵活捕捉时间序列数据中的周期性、趋势性和异常值等特点。该模型在处理时间序列数据时具有较高的精度和可解释性,已被广泛应用于各种预测场景。

三、数据集介绍

        本实验数据集来源于Kaggle,数据集包含阿里巴巴集团控股公司(BABA)从[2020年1月1日]到[2024年5月1日]的历史股价数据。数据集包括每日开盘价、最高价、最低价和收盘价,以及调整后的收盘价和成交量。

四、技术工具

Python版本:3.10

代码编辑器:jupyter notebook+VScode

五、实验过程

首先导入第三方库并加载数据集

import numpy as np 
import pandas as pd
from prophet import Prophet
import warnings
warnings.filterwarnings("ignore")

df = pd.read_csv('BABA.csv')
df.head()

筛选出建模需要的特定列并重命名

模型需要两列:1.ds 时间列        2.y 数据列

对于ds的要求:

  • 对于只有日期没有时间的数据,ds列应该是YYYY-MM-DD格式的字符串或者pandas的datetime类型数据。
  • 如果数据包含时间戳,ds列应该是YYYY-MM-DD HH:MM:SS格式的字符串或者pandas的datetime类型数据。
# 筛选特定列
new_df = df[['Date','Close']]
# 为Prophet Model 时间序列:ds, price:y重命名列
new_df.columns = ['ds','y']
new_df

初始化模型并训练,最后使用模型预测未来360天的数据

主要的理解在make_future_dataframe是根据freq以及periods,创建未来日期的数据帧,freq可以为'30s', 'T',默认为'D',分别为30s,每分钟,每天,periods的意思就是多少个freq的时间。

# 初始化模型
model = Prophet()
# 训练模型
model.fit(new_df)
future = model.make_future_dataframe(periods=360,freq='D') # 预测未来360天
# 模型预测
guess = model.predict(future)
guess

最后将模型预测结果可视化

model.plot(guess)

上图中黑色的点表示原始的时间序列离散点;深蓝色的线表示使用时间序列来拟合所得到的取值;
浅蓝色的区域表示时间序列的一个置信区间,也就是所谓的合理的上界和下界。原始数据只到2024-04-30就结束了,后面的都是模型预测的数据趋势。

六、总结

        本实验利用阿里巴巴集团控股公司(BABA)从2020年1月1日至2024年5月1日的历史股价数据,通过Prophet时间序列模型对其未来360天的股票价格趋势进行了预测。实验的目的是评估Prophet模型在股票价格预测方面的应用效果,并为投资者提供参考信息。同时本实验证明了Prophet模型在股票价格预测方面的应用潜力。未来,我们可以进一步优化模型结构、引入更多相关因素,以提高预测准确性和可靠性。同时,我们也将关注其他先进的预测方法和技术,以探索更优秀的股票价格预测方案。

源代码

import numpy as np 
import pandas as pd
from prophet import Prophet
import warnings
warnings.filterwarnings("ignore")

df = pd.read_csv('BABA.csv')
df.head()

# 筛选特定列
new_df = df[['Date','Close']]
# 为Prophet Model 时间序列:ds, price:y重命名列
new_df.columns = ['ds','y']
new_df

# 初始化模型
model = Prophet()
# 训练模型
model.fit(new_df)
future = model.make_future_dataframe(periods=360,freq='D') # 预测未来360天
# 模型预测
guess = model.predict(future)
guess
model.plot(guess)

文末推荐与福利

《码农职场 IT人求职就业手册》免费包邮送出2本!

内容简介:      

        专为广大IT 行业求职者量身定制的指南,提供了从职前准备到成功就业的全方位指导。全书分为“职前调整”和“就业指南”上下两篇,涵盖了职业目标规划、自我技能评估、求职策略、简历准备技巧、薪资福利谈判以及职场心理准备等关键环节。全书通过深入浅出的解析和简明实用的建议,可帮助IT 求职者清晰地定义自己的职业目标,有效地评估和展示自己的技能,以及掌握求职过程中的关键技巧,从而在激烈的职场竞争中脱颖而出,成功收到理想的录取通知。

  • 抽奖方式:评论区随机抽取2位小伙伴免费送出!
  • 参与方式:关注博主、点赞、收藏、评论区评论“人生苦短,拒绝内卷!”(切记要点赞+收藏,否则抽奖无效,每个人最多评论三次!
  • 活动截止时间:2024-8-5 20:00:00

 名单公布时间:2024-8-5 21:00:00 

资料获取,更多粉丝福利,关注下方公众号获取

在这里插入图片描述

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

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

相关文章

【系统架构设计师】二十三、通信系统架构设计理论与实践①

目录 一、通信系统网络架构 1.1 局域网网络架构 1.1.1 单核心架构 1.1.2 双核心架构 1.1.3 环型架构 1.1.4 层次型架构 1.2 广域网网络架构 1.2.1 单核心广域网 1.2.2 双核心广域网 1.2.3 环型广域网 1.2.4 半冗余广域网 1.2.5 对等子域广域网 1.2.6 层次子域架构…

文献阅读:基于拓扑结构模型构建ICI收益诊断模型

介绍 Custom scoring based on ecological topology of gut microbiota associated with cancer immunotherapy outcome是来自法国Gustave Roussy Cancer Campus的Laurence Zitvogel实验室最近发表在cell的关于使用肠道微生物拓扑结构预测免疫治疗疗效的文章。 该研究提供基于…

html+css 实现左平移背景按钮

前言:哈喽,大家好,今天给大家分享htmlcss 绚丽效果!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏关注哦 💕 文…

【Android Studio】gradle文件、配置、版本下载、国内源(gradle版本以及gradle-plugin版本)

文章目录 AS查看gradle-plugin版本及gradle版本(图形)查看gradle-plugin版本及gradle版本(配置文件)配置文件分析解决gradle下载失败、版本错乱等问题。 AS查看gradle-plugin版本及gradle版本(图形) 查看gr…

金航标萨科微总经理宋仕强介绍金航标热售产品

金航标萨科微slkor总经理宋仕强介绍说,金航标kinghelm热售产品型号有,金航标胶壳(线对板/线对线)连接器KH-VH-2P-ZK、KH-VH-5P-ZK、KH-VH-4P-ZK、KH-A2557-2X07Y,金航标kinghelm(www.kinghelm.com.cn)的弹簧片/弹片有K…

“田野八式”与人类学的田野研究方法

作 者:赵旭东 来 源:《民族学刊》 [摘要] 笔者根据自己多年来的田野工作经验,将人类学田野研究方法总结为: 心存异趣、扎实描记、留心古旧、知微知彰、知柔知刚、神游冥想、克己宽容以及文字天下八个方面&#xff0c…

3百题英语四级听力考试练习题ACCESS\EXCEL数据库

其实一直都想搞一搞英语听力题相关的数据,但是一直都没有遇到过或者遇到过但是没办法弄下来,今天有幸遇到一个英语四级听力考试练习题,听力MP3文件包含96个,题目包含300题,具体请查看截图,截图包含了所有字…

笔记小结:《利用Python进行数据分析》之读取数据

目录 读取文本格式的数据 基本操作 指定分隔符 指定标题行 层次化索引 使用正则表达式分隔 跳过某些行 缺失值处理 逐块读取文本文件 设置显示的最大行数 只读取几行 逐块读取文件 将数据写出到文本格式 基本操作 使用其它分隔符 使用其它标记符标记空白字符串 禁…

IoTDB 入门教程 企业篇①——IoTDB企业版(TimechoDB)快速上手

文章目录 一、前文二、试用三、解压四、激活五、启动六、连接七、停止八、IoTDB-Workbench 一、前文 IoTDB入门教程——导读 二、试用 通过天谋科技官网,联系天谋科技的商务。请求免费试用TimechoDB企业版,获得试用软件包 三、解压 iotdb-enterprise…

舞蹈症宝贝的专属锻炼秘籍来啦~✨

嘿宝贝们!👋 是不是有时候觉得身体里的“小舞蹈家”总想出来蹦跶两下,但又怕锻炼不当反而“跳”出问题?别怕,今天就给你种草一套超萌又超有效的舞蹈症患者锻炼大法!🎉 🌟【热身小妖精…

《Milvus Cloud向量数据库指南》——音频数据如何选择合适的 Embedding 模型?

音频数据:PANNs与音频搜索的深度探索 在数字化时代,音频数据作为信息传递的重要载体,其处理与分析技术日益受到关注。与图像搜索领域的“以图搜图”相类似,音频搜索技术也逐步成熟,允许用户基于输入的音频片段快速定位到相似或相关的音频内容。这一技术的实现,离不开强大…

苹果已明确允许 iPhone 和 iPad 上使用 PC 模拟器

苹果公司更新了其应用程序审核指南,允许 PC 模拟器提供 游戏下载,此举可能会改善应用程序商店中模拟器的状况。自苹果公司修订《应用程序审核指南》,允许模拟器进入 App Store 以来已经过去了三个月。虽然已经有很多模拟器被引入商店&#xf…

Python接口自动化测试数据提取分析:Jmespath

1、引言 在处理JSON数据时,我们常常需要提取、筛选或者变换数据。手动编写这些操作的代码不仅繁琐,而且容易出错。Python作为一个功能强大的编程语言,拥有丰富的库和工具来处理这些数据。今天,将介绍一个实用的Python库——JMESP…

SqlLite性能问题

sqlLite性能 最近使用sqlLite做了一些项目工具,对sqlLite的性能大概有了一个比较浅显的了解,在这里分析一下,希望能作为大家做技术选型的参考。 首先是写能力,sqlLite是一个单文件数据库,再加上锁问题,sqlL…

Postman:API开发与测试的强大伴侣

在当今的数字化时代,API(应用程序编程接口)已成为不同软件系统之间通信的桥梁,它们如同数字世界的“翻译官”,使得数据和服务能够在不同的平台和应用程序之间无缝流动。然而,API的开发、测试和维护并非易事…

大数据-62 Kafka 高级特性 主题 kafka-topics相关操作参数 KafkaAdminClient 偏移量管理

点一下关注吧!!!非常感谢!!持续更新!!! 目前已经更新到了: Hadoop(已更完)HDFS(已更完)MapReduce(已更完&am…

内网穿透的应用-Windows系统如何ssh连接群晖nas使用docker安装内网穿透软件

文章目录 前言1. 检查安装Container Manager2. 检查开启群晖SSH连接3. Windows SSH 连接群晖4. 下载Cpolar 镜像5. 群晖Docker安装Cpolar 前言 在某些群晖NAS型号版本,无法使用套件安装的时候,我们可以采用Docker的方式进行安装cpolar内网穿透工具&…

你看不上的“垃圾”——别人的赚钱“利器”

首先说一点,你认为是常识性的东西,也许还有4亿中国人不知道。 其次,你认为是遍地都有的、你看不上的、你瞧不起的这些“破烂玩意”,别人也许正拿来赚钱! 不可思议吧,事实就是如此。 我在老家,…

JAVA实战基于SSM的网上书店管理系统

目录 一、前言 二、技术介绍代码 三、项目实现流程 四、论文流程参考 五、核心代码截图 专注于大学生实战开发、讲解和毕业答疑等辅导,获取源码后台 一、前言 针对当前网络实际需求,我们深入剖析了过往系统的弊端,并依托计算机系统的先…