编码机

人工智能与量化投资使用机器学习预测

发布时间:2022/11/13 15:26:46   

机器学习和深度学习已经在金融机构中占据了一席之地,因为它们能够非常准确的预测时间序列数据,并且仍在被不断改进中以获得更好的模型。

本文中的项目基于AIAlpha,这是一个栈式神经网络架构,可以预测各个公司的股票价格。该项目也是iNTUtion的入围者之一,iNTUtion是新加坡本科生的黑客马拉松。

工作流程

该项目的工作流程基本上遵循以下步骤:

获取股票价格数据

使用小波变换对数据进行去噪处理

使用栈式自编码器提取特征

使用LSTM训练

测试模型的预测准确率

在这篇文章中,我将详细介绍每个步骤的实现以及一些细节以及为什么这样做。

1.数据采集

借助YahooFinance的pandas_datareaderAPI,很容易获得股票价格数据。因此,只需使用以下命令即可完成。

stock_data=pdr.get_data_yahoo(self.ticker,self.start,self.end)

2.数据去噪

由于股票市场动态的复杂性,股票价格数据通常充满了可能影响机器学习算法分析趋势和结构的噪音。因此,删除一些噪声既符合我们的利益,同时也能保留数据中的趋势和结构。最初,我想使用傅里叶变换,但我认为小波变换可能是保留数据时间因素的更好选择,而不是仅产生基于频率的输出。

小波变换

小波变换与傅立叶变换非常相近,仅仅变换的函数不同,并且变换过程略有不同。

其过程如下:

使用小波变换来变换数据。

消除超过标准差的系数。

逆变换新系数得到去噪后数据。

以下是小波变换对时间序列数据进行去噪的示例:

如您所见,在去噪版本中不存在初始信号中存在的随机噪声。这正是我们要查看的股票价格数据。

以下是对数据进行去噪的代码:

x=np.array(self.stock_data.iloc[i:i+11,j])

(ca,cd)=pywt.dwt(x,haar)

cat=pywt.threshold(ca,np.std(ca),mode=soft)

cdt=pywt.threshold(cd,np.std(cd),mode=soft)

tx=pywt.idwt(cat,cdt,haar)

pywt包非常适合小波变换,你可以完全不用

转载请注明:http://www.aideyishus.com/lkzp/2281.html

------分隔线----------------------------