Python 与金融科技8|生成机器学习的预处理数据

接下来几期我们将使用机器学习方法帮助我们预测未来股票交易数据的走势。在此之前我们需要对数据进行预处理以供机器学习方法使用。这一期我们将以复权收盘价数据为例,学习如何生成有效的特征数据。

前言

在这个系列中,我们将共同学习如何借助Python这个强大的工具处理金融数据。在正式开始这个系列的学习之前,需要您具有Python编程的基础知识,至少需要将Python安装好。如果暂时还不满足这一要求的,建议先关注公众号 IT信息教室,学习 Python入门教程。

内容首发于微信公众号IT信息教室,如果您想学习更多AI相关的技能,欢迎搜索关注或微信扫描下方二维码关注~~

在这里插入图片描述

概 述

前面几期的教程中,我们学习了从网上获取交易数据的方法,学习了将数据可视化的方法,学习了简单的数据清洗和数据合并的方法,另外,我们还学习了分析数据之间的相关性以及将相关性关系以可视化的方式展现出来。

接下来,我们将进一步处理这些数据,并基于这些数据,借助机器学习的一些方法帮助我们更深入的分析和预测现有以及未来的数据。

同样以这里的股票数据为例,我们知道,随着时间的推移,数据之间可能存在一些相关性。例如,一个公司的股票走势,可能会受到其他相关公司的股票走势的影响,那么如果能够让计算机找到并且模拟这一相关性的关系,从某种程度上来说,我们就可以预测特定公司未来的交易信息。

这一目标可以通过‘机器学习’来实现。机器学习的过程实际上是去建立数据的特征与标签的映射关系,并把所有的标签分类。有了这样一种关系之后,给定一个特征,‘机器’ 就会将特征映射为一个‘标签’,这个标签所属的类别就可以作为预测的结果。

对于股票数据来说,特征可以是股票的价格。一般的,为了让预测结果更加准确,需要选取一些有代表性的特征。

我们选取未来几天内每一支股票价格的变化率作为特征,将股票的变化趋势作为标签,我们将一部分标签分为继续买入一类,一部分作为卖出类,其余部分作为继续持有类。

例如我们可以规定,对于股票 A,如果在接下来的 x 天内,股票成交价的增幅可能在 y% 以上,我们就在当前时间点继续买入这家股票。如果未来 x 天成交价的降幅在 y% 以上,我们就在当前时间点卖出这家股票。对于其他预测结果,我们选择继续持有这家股票。

所以,我们的目标是使用机器学习方法,预测未来 x 天的交易信息,并给出指导性的交易方案(买入/卖出/继续持有)。

数据特征的生成

我们首先生成交易信息的特征数据,按照前面的分析,在当前时间点,我们选取最多 x 天后股价相对于当前时间点股票变化的百分比作为特征。

例如取 x=7,那么对于股票 A,我们就建立 7 列特征数据,分别表示 1 天后,2 天后,…,7 天后的股价相比于当前股价的变化率。我们使用函数 processDataForLables 来实现这一功能:

def processDataForLables(ticker):

函数的参数是股票代码,我们需要为每一支想要分析的股票建立特征数据。

这一期我们主要还是以每支股票的复权收盘价为例,与往常一样,首先读取交易数据:

dataFrame = pd.read_csv('SS50JoinedClose.csv', index_col=0)

然后对数据进行简单的过滤清洗,将空白数据都用 0 填充:

dataFrame.fillna(0, inplace=True)

另外,为了方便后续的一些操作,先提取所有的股票代码,以列表的格式保存在变量 tickers 中备用:

tickers = dataFrame
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值