【机器学习(十三)】零代码开发案例之股票价格预测分析—Sentosa_DSML社区版

文章目录

  • 一、背景描述
  • 二、Sentosa_DSML社区版算法实现
    • (一) 数据读入
    • (二) 特征工程
    • (三) 样本分区
    • (四) 模型训练和评估
    • (五) 模型可视化
  • 三、总结

一、背景描述

  股票价格是一种不稳定的时间序列,受多种因素的影响。影响股市的外部因素很多,主要有经济因素、政治因素和公司自身因素三个方面的情况。自股票市场出现以来,研究人员采用各种方法研究股票价格的波动。随着数理统计方法和机器学习的广泛应用,越来越多的人将机器学习等预测方法应用于股票预测中,如神经网络预测、决策树预测、支持向量机预测、逻辑回归预测等。
  XGBoost是由TianqiChen在2016年提出来,并证明了其模型的计算复杂度低、运行速度快、准确度高等特点。XGBoost是GBDT的高效实现。在分析时间序列数据时,GBDT虽然能有效提高股票预测结果,但由于检测速率相对较慢,为寻求快速且精确度较高的预测方法,采用XGBoost模型进行股票预测,在提高预测精度同时也提高预测速率。可以利用XGBoost网络模型对股票历史数据的收盘价进行分析预测,将真实值和预测值进行对比,最后通过评估算子来评判XGBoost模型对股价预测的效果。
  数据集通过爬虫获取从2005年开始到2020年的股票(代码为 510050.SH)历史数据,下表展示了股票在多个交易日内的市场表现,主要字段包括:

字段含义
ts_code股票代码
trade_date交易日期
pre_close前一个交易日的收盘价
open开盘价
high当日最高价
low当日最低价
close当日收盘价
change收盘价变化值(与前一日相比的差值)
pct_chg收盘价变化百分比
vol成交量
amount成交金额
label标记某日涨跌情况

  这些字段全面记录了股票每天的价格波动和交易情况,用于后续分析和预测股票趋势。

二、Sentosa_DSML社区版算法实现

(一) 数据读入

  首先,利用文本算子从本地文件读入股票数据集。
在这里插入图片描述

(二) 特征工程

  移动平均线是一种常用的技术指标,通过计算移动平均来分析股票的价格走势,帮助识别市场趋势,并为交易决策提供参考。根据不同的窗口大小(5天、7天、30天)来计算股票的收盘价的移动平均线,移动平均线可以平滑股价的短期波动,从而更好地识别股票的长期趋势。短期的 5 日、7 日移动平均线通常用来捕捉股票的短期趋势,帮助交易者快速做出买入或卖出的决策。30 日移动平均线则代表中长期趋势,帮助识别更广泛的市场方向。通过绘制图表,可以直观地看到收盘价格及其对应的移动平均线,方便观察价格变化和趋势。
  利用生成列算子,通过设定的生成列表达式计算的新列的值,并设置列名,这里生成列分别为 moving_avg_5d、 moving_avg_7d、 moving_avg_30d,分别表示不同周期(5天、7天、30天)的移动平均线。
在这里插入图片描述
  表达式为SQL窗口函数,

AVG(`close`) OVER ( ROWS BETWEEN 4 PRECEDING AND CURRENT ROW)
AVG(`close`) OVER ( ROWS BETWEEN 4 PRECEDING AND CURRENT ROW)
AVG(`close`) OVER ( ROWS BETWEEN 4 PRECEDING AND CURRENT ROW)

在这里插入图片描述
  连接折线图算子,选择收盘价实际值和移动平均线,进行图表展示。
在这里插入图片描述
  得到结果如下,可以直观地看到收盘价格及其对应的移动平均线,方便观察价格变化和趋势。
在这里插入图片描述
  再利用生成列算子,计算股票价格与不同周期的移动平均线的偏差的绝对值,得出当前价格偏离移动平均线的程度,观察偏离水平。偏差值越大,意味着价格波动越剧烈,可能处于较强的上涨或下跌趋势中。偏差值越小,意味着价格与均值靠近,波动较小,市场可能处于震荡或横盘阶段。
  如果偏差持续扩大,说明价格远离均值,可能面临较大的回调风险或即将突破某个方向。
  如果偏差开始收窄,说明价格回归均值,可能表明市场趋势趋于稳定或发生反转。
  这里设置生成列列名分别为deviation_MA5、 deviation_MA7、deviation_MA30,分别表示不同周期得偏差。
  生成列值得表达式如下:

abs(`close`-` moving_avg_5d`)
abs(`close`-` moving_avg_7d`)
abs(`close`-` moving_avg_29d`)

在这里插入图片描述
  右键生成列算子预览可以得到数据展示。
在这里插入图片描述
  或者利用图表算子对偏差值进行可视化图表展示,通过对偏差值进行可视化展示,绘制偏差曲线,可以直观呈现实际收盘价格与移动平均线之间的偏离趋势,不仅有助于揭示市场波动的幅度,还能为识别潜在的价格反转或趋势变化提供重要依据,能够更精准地判断市场的动向,从而优化决策流程并降低交易风险。
在这里插入图片描述
  然后,基于交易量计算加权平均价格,反映特定时间段内股票的平均成交价格,考虑成交量的影响。计算公式是用股票的收盘价(close)乘以交易量(vol),然后计算加权收盘价的累积和,除以交易量的累积和。
  利用生成列算子设置列名,并构造生成列表达式计算成交量加权平均值。
在这里插入图片描述
  当股票的收盘价(close)大于成交量加权平均值时,signal 设置为 1,表示一个买入信号,股票价格处于强势。
  当股票的收盘价小于等于成交量加权平均值时,signal 为 0,表示弱势,可以用于做空或保持观望。这个信号可以作为简单的策略来指导交易决策。
  利用选择算子,对数据按照表达式trade_date;close>成交量加权平均对数据进行选择。
在这里插入图片描述
  并连接删除和重命名算子将进行条件判断后得列修改列名为signal,表示交易决策的指导信号。
在这里插入图片描述
  再连接合并算子,将数据利用关键字trade_date将特征列进行合并。
在这里插入图片描述
  右键预览,可观察合并后的数据情况,也可以连接表格算子对数据进行表格输出。
在这里插入图片描述

(三) 样本分区

  在处理数据时,将trade_date列从int类型转换为datetime 类型,可以连接两个格式算子完成,首先将int类型的日期转换为字符串,然后再将字符串转换为datetime类型。
在这里插入图片描述在这里插入图片描述
  对数据输出类型进行格式化后,连接类型算子,设置数据的测量类型和模型类型。这里修改模型类型,设置建模算子输入数据需要的标签列和特征列等属性。
在这里插入图片描述
  然后,连接样本分区算子,利用时间序列对数据进行分区,训练集和测试集比例为8:2。在这里插入图片描述

(四) 模型训练和评估

  首先,选择XGBoost回归算子,并设置了相关参数用于模型训练,使用均方根误差(RMSE)作为评估模型表现的指标。构建了一个XGBoost预测模型,并将其应用于股票收盘价预测。也可以连接其他回归模型进行训练,将XGBoost模型的预测结果与其他模型的预测结果进行比较,并通过模型评价指标(如R²、MAE、RMSE等)对各个模型的表现进行验证和评估。
在这里插入图片描述
  执行后可以得到训练完成的XGBoost回归模型,右键可进行查看模型信息和预览结果等操作。
在这里插入图片描述
  连接评估算子对XGBoost模型进行评估。股票预测模型的预测性能评价指标采用R²、MAE、RMSE、MAPE、SMAPE和MSE,分别用于评估模型的拟合优度、预测误差的平均绝对值、均方根误差、绝对百分比误差、对称百分比误差和均方误差,用于衡量预测的准确性和稳定性。
在这里插入图片描述
  得到训练集和测试集的评估结果如下所示:
在这里插入图片描述在这里插入图片描述
  该XGBoost股票预测模型在训练集上表现优异,误差较小,表明模型能够很好地拟合训练数据。在测试集上的评估结果也较为理想,MAE为0.054,RMSE为0.093,MAPE和SMAPE分别为1.8%和1.7%,说明模型在测试集上的预测误差较小,具有良好的泛化能力,能够较为准确地预测股票收盘价,该模型在平衡训练集拟合和测试集泛化上表现稳定。

(五) 模型可视化

  右键模型信息可以查看特征重要性图、残差直方图等信息。
在这里插入图片描述
在这里插入图片描述
  连接时序图算子,用于将XGBoost模型预测的股票收盘价与实际收盘价进行可视化对比,将每个序列单独显示,生成时序对比曲线图,通过这种方式可以直观地看到模型预测与实际数据的差异,从而评估模型的性能和可靠性。这在数据预测中非常重要,因为它有助于识别模型是否能够准确捕捉市场趋势。
在这里插入图片描述
  得到时序图算子的执行结果如下所示:
在这里插入图片描述
  这张图包含两条时间序列曲线,分别展示了模型预测值(Predicted_close)和实际值(close)在一段时间内的走势对比,显示的是模型预测的股票收盘价随时间变化的趋势。两条曲线的整体趋势相似,尤其是在大的波动区域(如2008年左右的高峰期和之后的下降期),表明模型的预测效果与实际值接近。这张图直观地展示了模型预测值与实际值的时间序列对比,帮助评估模型的表现是否符合实际市场走势。

三、总结

  相比传统代码方式,利用Sentosa_DSML社区版完成机器学习算法的流程更加高效和自动化,传统方式需要手动编写大量代码来处理数据清洗、特征工程、模型训练与评估,而在Sentosa_DSML社区版中,这些步骤可以通过可视化界面、预构建模块和自动化流程来简化,有效的降低了技术门槛,非专业开发者也能通过拖拽和配置的方式开发应用,减少了对专业开发人员的依赖。
  Sentosa_DSML社区版提供了易于配置的算子流,减少了编写和调试代码的时间,并提升了模型开发和部署的效率,由于应用的结构更清晰,维护和更新变得更加容易,且平台通常会提供版本控制和更新功能,使得应用的持续改进更为便捷。

  Sentosa数据科学与机器学习平台(Sentosa_DSML)是力维智联完全自主知识产权的一站式人工智能开发部署应用平台,可同时支持零代码“拖拉拽”与notebook交互式开发,旨在通过低代码方式帮助客户实现AI算法模型的开发、评估与部署,结合完善的数据资产化管理模式与开箱即用的简捷部署支持,可赋能企业、城市、高校、科研院所等不同客户群体,实现AI普惠、化繁为简。
  Sentosa_DSML产品由1+3个平台组成,以数据魔方平台(Sentosa_DC)为主管理平台,三大功能平台包括机器学习平台(Sentosa_ML)、深度学习平台(Sentosa_DL)和知识图谱平台(Sentosa_KG)。力维智联凭借本产品入选“全国首批人工智能5A等级企业”,并牵头科技部2030AI项目的重要课题,同时服务于国内多家“双一流”高校及研究院所。
  为了回馈社会,矢志推动全民AI普惠的实现,不遗余力地降低AI实践的门槛,让AI的福祉惠及每一个人,共创智慧未来。为广大师生学者、科研工作者及开发者提供学习、交流及实践机器学习技术,我们推出了一款轻量化安装且完全免费的Sentosa_DSML社区版软件,该软件包含了Sentosa数据科学与机器学习平台(Sentosa_DSML)中机器学习平台(Sentosa_ML)的大部分功能,以轻量化一键安装、永久免费使用、视频教学服务和社区论坛交流为主要特点,同样支持“拖拉拽”开发,旨在通过零代码方式帮助客户解决学习、生产和生活中的实际痛点问题。
  该软件为基于人工智能的数据分析工具,该工具可以进行数理统计与分析、数据处理与清洗、机器学习建模与预测、可视化图表绘制等功能。为各行各业赋能和数字化转型,应用范围非常广泛,例如以下应用领域:
  金融风控:用于信用评分、欺诈检测、风险预警等,降低投资风险;
  股票分析:预测股票价格走势,提供投资决策支持;
  医疗诊断:辅助医生进行疾病诊断,如癌症检测、疾病预测等;
  药物研发:进行分子结构的分析和药物效果预测,帮助加速药物研发过程;
  质量控制:检测产品缺陷,提高产品质量;
  故障预测:预测设备故障,减少停机时间;
  设备维护:通过分析机器的传感器数据,检测设备的异常行为;
  环境保护:用于气象预测、大气污染监测、农作物病虫害防止等;
  客户服务:通过智能分析用户行为数据,实现个性化客户服务,提升用户体验;
  销售分析:基于历史数据分析销量和价格,提供辅助决策;
  能源预测:预测电力、天然气等能源的消耗情况,帮助优化能源分配和使用;
  智能制造:优化生产流程、预测性维护、智能质量控制等手段,提高生产效率。

  欢迎访问Sentosa_DSML社区版的官网https://sentosa.znv.com/免费下载使用。同时,我们在B站、CSDN、知乎等平台有技术讨论博客和应用案例分享,欢迎广大数据分析爱好者前往交流讨论。

  Sentosa_DSML社区版,重塑数据分析新纪元,以可视化拖拽方式指尖轻触解锁数据深层价值,让数据挖掘与分析跃升至艺术境界,释放思维潜能,专注洞察未来。

社区版官网下载地址:https://sentosa.znv.com/
B站地址:https://space.bilibili.com/3546633820179281
CSDN地址:https://blog.csdn.net/qq_45586013?spm=1000.2115.3001.5343
知乎地址:https://www.zhihu.com/people/kennethfeng-che/posts

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

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

相关文章

ASP.NET Core8.0学习笔记(二十)——EFCore导航属性与外键

一、什么是实体间关系 数据库表(实体)之间的关系:一对一(学生-成绩)、一对多(学生-科目)、多对多(教师-班级)。数据库中,每一个实体可以由主键唯一标识&…

MySQL表的基本查询下/分组聚合统计

1,update 对查询到的结果进行列值更新,可以和older by,where,limit合并使用,为了方便讲解,将会以题目练习的方式进行说明: 1,将孙悟空同学的数学成绩变更为 80 分 本道题和where联…

动态规划(1)斐波那契数列模型

动态规划算法流程: 1、状态表示: 指的是dp(dynamic programming)表里面的值所表示的含义 如何得出:1、题目要求 2、经验题目要求 3、分析问题的过程中发现重复子问题 2、状态转移方程 dp[i]等于什么 3、初始化 保证…

dbt doc 生成文档命令示例应用

DBT提供了强大的命令行工具,它使数据分析师和工程师能够更有效地转换仓库中的数据。dbt的一个关键特性是能够为数据模型生成文档,这就是dbt docs命令发挥作用的地方。本教程将指导您完成使用dbt生成和提供项目文档的过程。 dbt doc 命令 dbt docs命令有…

案例实践 | 以长安链为坚实底层,江海链助力南通民政打造慈善应用标杆

案例名称-江海链 ■ 实施单位 中国移动通信集团江苏有限公司南通分公司、中国移动通信集团江苏有限公司 ■ 业主单位 江苏省南通市民政局 ■ 上线时间 2023年12月 ■ 用户群体 南通市民政局、南通慈善总会等慈善组织及全市民众 ■ 用户规模 全市近30家慈善组织&#…

leetcode二叉树(八)-二叉树的最大深度

题目 104.二叉树的最大深度 给定一个二叉树 root ,返回其最大深度。 二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。 示例 1: 输入:root [3,9,20,null,null,15,7] 输出:3示例 2: 输入&…

【STM32 HAL库】MPU6050姿态解算 卡尔曼滤波

【STM32 HAL库】MPU6050姿态解算 卡尔曼滤波 前言MPU6050寄存器代码详解mpu6050.cmpu6050.h 使用说明 前言 本篇文章基于卡尔曼滤波的原理详解与公式推导,来详细的解释下如何使用卡尔曼滤波来解算MPU6050的姿态 参考资料:Github_mpu6050 MPU6050寄存器…

项目管理软件真的能让敏捷开发变得更简单吗?

敏捷开发是一种以快速交付和适应变化为核心特点的软件开发方法。其特点包括尽早并持续交付、能够驾驭需求变化、版本周期内尽量不加任务、业务与开发协同工作、以人为核心、团队配置敏捷等。 例如,尽早并持续交付可使用的软件,使客户能够更早地体验产品…

【算法篇】动态规划类(4)——子序列(笔记)

目录 一、Leetcode 题目 1. 最长递增子序列 2. 最长连续递增序列 3. 最长重复子数组 4. 最长公共子序列 5. 不相交的线 6. 最大子序和 7. 判断子序列 8. 不同的子序列 9. 两个字符串的删除操作 10. 编辑距离 11. 回文子串 12. 最长回文子序列 二、动态规划总结 …

[Linux#67][IP] 报头详解 | 网络划分 | CIDR无类别 | DHCP动态分配 | NAT转发 | 路由器

目录 一. IP协议头格式 学习任何协议前的两个关键问题 IP 报头与有效载荷分离 分离方法 为什么需要16位总长度 如何交付 二. 网络通信 1.IP地址的划分理念 2. 子网管理 3.网络划分 CIDR(无类别域间路由) 目的IP & 当前路由器的子网掩码 …

外包干了3周,技术退步太明显了。。。。。

先说一下自己的情况,大专生,21年通过校招进入武汉某软件公司,干了差不多3个星期的功能测试,那年国庆,感觉自己不能够在这样下去了,长时间呆在一个舒适的环境会让一个人堕落!而我才在一个外包企业干了3周的功…

神经网络构建与训练深度学习模型全过程(PyTorch TensorFlow)

神经网络构建与训练深度学习模型全过程(PyTorch & TensorFlow) 目录 🔗 什么是神经网络:基础架构与工作原理🧩 构建简单的神经网络:层次结构与激活函数🚀 前向传播:神经网络的…

基于Handsontable.js + Excel.js实现表格预览和导出功能(公式渲染)

本文记录在html中基于Handsontable.js Excel.js实现表格预览、导出、带公式单元格渲染功能&#xff0c;在这里我们在html中实现&#xff0c;当然也可以在vue、react等框架中使用npm下载导入依赖文件。 Handsontable官方文档 一、开发前的准备引入相关依赖库 <!DOCTYPE ht…

微服务经典应用架构图

从网上找了一个经典的微服务架构图&#xff0c;资料来源于若依开源系统的ruoyi-cloud&#xff0c;仅供参考&#xff01;

面向城市运行“一网统管”的实景三维示范应用

在新型智慧城市建设的浪潮中&#xff0c;实景三维技术正成为推动城市治理现代化的重要力量。“一网统管”作为城市运行管理的新理念&#xff0c;强调了跨部门协作和数据共享&#xff0c;而实景三维技术为此提供了强有力的支撑。本文将探讨实景三维技术如何赋能“一网统管”&…

Linux笔记---vim的使用

1. vim的基本概念 Vim是一款功能强大的文本编辑器&#xff0c;它起源于Unix系统的vi编辑器&#xff0c;并在其基础上进行了许多改进和增强。 Vim以其高效的键盘操作、高度的可定制性和强大的文本处理能力而闻名&#xff0c;尤其受程序员和系统管理员的欢迎。 Vim支持多种模式…

cmake 编译 01

CMakeLists.txt cmake_minimum_required(VERSION 3.10)project(MyProject)set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED True)# 如果顶层 CMakeLists.txt 文件中使用了 add_subdirectory() 命令&#xff0c;CMake 会进入指定的子目录&#xff0c;并处理该目录…

2024年超好用的防泄密软件分享|10款加密防泄密软件推荐

在当今数字化时代&#xff0c;企业数据安全已成为不可忽视的重要议题。随着数据泄露事件频发&#xff0c;选择一款高效可靠的防泄密软件变得尤为重要。本文将为您推荐10款在2024年备受推崇的防泄密软件&#xff0c;并重点介绍Ping32防泄密软件的功能与优势。 1. Ping32防泄密软…

Zico 2 靶机 - 详细流程

✨ 准备工作 靶机 && kali 环境要求 机器名网络配置靶机Zico 2NAT 模式攻击机kaliNAT 模式 靶机下载链接&#xff1a;zico2: 1 ~ VulnHub 打开 VMware&#xff0c;将 zico2.ova 拖拽到 VMware 中 设置 虚拟机名称(A) - 存储路径(P)- 导入 若是&#xff0c;…