一种基于人工智能和区块链的金融预测***
技术领域
本发明创造涉及金融领域,具体涉及一种基于人工智能和区块链的金融预测***。
背景技术
时间序列是各行各业的数据按照不同的时间间隔依次、连续产生的,它们通常包含着丰富且复杂的信息。由于人们需要从时间序列中获取有价值的信息,因此时间序列分析技术应运而生。时间序列分析领域的关键一环是预测,时间序列预测是根据数据的历史规律以及变化趋势,对未来数据的发展状况做出合理的推测。金融时间序列是金融领域中最重要的数据,对这类数据进行分析、预测在金融投资决策与风险管理中具有重要的意义。
发明内容
针对上述问题,本发明旨在提供一种基于人工智能和区块链的金融预测***。
本发明创造的目的通过以下技术方案实现:
一种基于人工智能和区块链的金融预测***,包括数据获取模块、数据预处理模块、区块链存储模块和金融预测模块,所述数据获取模块用于获取金融时间序列,并将获取的金融时间序列输入至数据预处理模块进行处理,所述数据预处理模块用于去除所述金融时间序列中的噪声数据,并将预处理后的金融时间序列传输至区块链存储模块进行存储,所述金融预测模块用于从区块链存储模块中调取所述金融时间序列,并根据所述金融时间序列对金融数据的走势进行预测。
优选地,所述金融预测模块采用BP神经网络对金融时间序列的走势进行预测,采用粒子群算法对金融预测模块采用的BP神经网络的初始权值和阈值进行优化。
优选地,所述数据预处理模块用于去除金融时间序列中的噪声数据,设待处理的金融时间序列为F,对金融时间序列F中的金融数据进行依次处理,设f(k)表示金融时间序列F中当前待处理的金融数据,且f(k)表示金融时间序列F中的第k个金融数据,给定数据阈值ΔF(k),根据给定的数据阈值ΔF(k)确定金融数据f(k)对应的参考数据序列F(k),设根据给定的数据阈值ΔF(k)确定的参考数据序列F(k)={f(k-l+1),f(k-l+2),…,f(k-1)},其中,f(k-l+1)、f(k-l+2)和f(k-1)分别表示金融时间序列F中的第(k-l+1)、(k-l+2)和第(k-1)个金融数据,(l-1)表示参数数据序列F(k)中的金融数据量;
设f(a)表示参考数据序列F(k)中的金融数据,且f(a)为金融时间序列F中的第a个金融数据,f(b)表示参考数据序列F(k)中的金融数据,且f(b)表示金融时间序列F中的第b个金融数据,其中,a≠b,则参考数据序列F(k)中的金融数据f(a)和金融数据f(b)满足:|f(a)-f(b)|≤ΔF(k);
设
表示参考数据序列F(k)中金融数据的均值,F′(k)表示金融数据f(k)的第一参考数据子序列,且F′(k)={f(k-m′),f(k-m′+1),…,f(k)},其中,f(k-m′)表示金融时间序列F中的第(k-m′)个金融数据,f(k-m′+1)表示金融时间序列F中的第(k-m′+1)个金融数据,m′的值采用下列方式确定;
(1)当金融数据f(k)满足
时,采用下列方式确定m′的值:
其中,θ(k)表示当金融数据f(k)大于等于
时对应的序列检测函数,f(k-s)表示金融时间序列F中的第(k-s)个金融数据,
表示金融数据f(k-s)对应的第一比较函数,当
时,则
当
时,则
选取使得序列检测函数θ(k)=1的最大m的值记为m′;
(2)当金融数据f(k)满足
时,采用下列方式确定m′的值:
其中,
表示当金融数据f(k)小于
时对应的序列检测函数,
表示金融数据f(k-s)对应的第二比较函数,当
时,则
当
时,则
设F″(k)表示金融数据f(k)的第二参考数据子序列,且
其中,
表示金融时间序列F中的第
个金融数据,
表示金融时间序列F中的第
个金融数据,
表示金融时间序列F中的第
个金融数据;定义金融数据f(k)在第一参考数据子序列F′(k)和第二参考数据子序列F″(k)中的第一检测系数为Y
1(k),且Y
1(k)的表达式为:
式中,Δf(k-m′)表示金融数据f(k-m′)在第一参考数据子序列F′(k)中的标准差,Δf(k)表示金融数据f(k)在第一参考数据子序列F′(k)中的标准差,
表示金融数据
在第二参考数据子序列F″(k)中的标准差,
表示金融数据
在第二参考数据子序列F″(k)中的标准差,
表示向上取整;
定义金融数据f(k)在第一参考数据子序列F′(k)和第二参考数据子序列F″(k)中的第二检测系数为Y2(k),且Y2(k)的表达式为:
式中,
表示第一参考数据子序列F′(k)中金融数据的均值,
表示第二参考数据子序列F″(k)中金融数据的均值;
定义金融数据f(k)在第一参考数据子序列F′(k)和第二参考数据子序列F″(k)中的异常检测函数为Y(k),且Y(k)的表达式为:
当异常检测函数Y(k)的值满足:Y(k)≤0时,判定金融数据f(k)为正常金融数据,且金融数据f(k)的值保持不变;当异常检测函数Y(k)的值满足:Y(k)>0时,判定金融数据f(k)为异常数据,且令
其中,f(k-c)表示金融时间序列F中的第(k-c)个金融数据。
本发明创造的有益效果:
本发明对获取的金融时间序列中的金融数据进行去噪处理,避免了噪声数据对金融预测的精度产生影响,在对金融时间序列中的金融数据进行去噪处理时,对金融时间序列中的金融数据依次进行检测,判断所述金融数据是否为噪声数据,在对所述金融数据进行检测时,给定数据阈值用于确定待检测金融数据的参考数据序列,所述参考数据序列中的任两个金融数据之间的欧式距离都小于等于所述数据阈值,从而保证了参数数据序列中的金融数据的相似性,根据待检测金融数据和参考数据序列中金融数据均值的关系在所述参考数据序列中选取部分金融数据和待检测金融数据组成待检测金融数据的第一参考数据子序列,从而保证了所述第一参考数据子序列走势的统一性,选取第一参考数据子序列中间的部分金融数据组成待检测金融数据的第二参考子序列,当待检测金融数据为正常数据时,确定的第一参考数据子序列和第二参考数据子序列将有着相似的走势,定义所述金融数据在第一参考数据子序列和第二参考数据子序列中的第一检测系数和第二检测系数,所述第一检测系数通过将所述第一参考数据子序列的初始金融数据的标准差和第二参考数据子序列的初始金融数据的标准差、第一参考数据子序列的结尾金融数据的标准差(即待检测金融数据的标准差)和第二参考数据子序列的结尾金融数据的标准差进行比较,判断待检测金融数据的第一参考数据子序列和第二参考数据子序列走势的相似性,所述第二检测系数通过将第一参考数据子序列中金融数据的均值和第二参考数据子序列中金融数据的均值进行比较,从而判断第一参考数据子序列和第二参考数据子序列走势的相似性,定义待检测金融数据对应的异常检测函数,所述异常检测函数通过将第一检测系数和第二检测系数进行比较,从而判断待检测金融数据是否为噪声数据,考虑到当第二参考数据子序列的首尾数据距离第一参考数据子序列的首尾金融数据距离越远,第一参考数据子序列和第二参考数据子序列之间的相似性减小的情况,本优选实施例在待检测金融数据的异常检测函数中引入了正弦形式的修正系数对第一检测系数进行修正,使得待检测金融数据的异常检测函数能够更加的灵活,从而有效的提高了噪声数据的检测精度。
附图说明
利用附图对发明创造作进一步说明,但附图中的实施例不构成对本发明创造的任何限制,对于本领域的普通技术人员,在不付出创造性劳动的前提下,还可以根据以下附图获得其它的附图。
图1是本发明结构示意图。
具体实施方式
结合以下实施例对本发明作进一步描述。
参见图1,本实施例的一种基于人工智能和区块链的金融预测***,包括数据获取模块、数据预处理模块、区块链存储模块和金融预测模块,所述数据获取模块用于获取金融时间序列,并将获取的金融时间序列输入至数据预处理模块进行处理,所述数据预处理模块用于去除所述金融时间序列中的噪声数据,并将预处理后的金融时间序列传输至区块链存储模块进行存储,所述金融预测模块用于从区块链存储模块中调取所述金融时间序列,并根据所述金融时间序列对金融数据的走势进行预测。
优先地,所述金融预测模块采用BP神经网络对金融时间序列的走势进行预测,采用粒子群算法对金融预测模块采用的BP神经网络的初始权值和阈值进行优化。
优选地,所述数据预处理模块用于去除金融时间序列中的噪声数据,设待处理的金融时间序列为F,对金融时间序列F中的金融数据进行依次处理,设f(k)表示金融时间序列F中当前待处理的金融数据,且f(k)表示金融时间序列F中的第k个金融数据,给定数据阈值ΔF(k),其中,ΔF(k)可以设置为
根据给定的数据阈值ΔF(k)确定金融数据f(k)对应的参考数据序列F(k),设根据给定的数据阈值ΔF(k)确定的参考数据序列F(k)={f(k-l+1),f(k-l+2),…,f(k-1)},其中,f(k-l+1)、f(k-l+2)和f(k-1)分别表示金融时间序列F中的第(k-l+1)、(k-l+2)和第(k-1)个金融数据,(l-1)表示参数数据序列F(k)中的金融数据量;
设f(a)表示参考数据序列F(k)中的金融数据,且f(a)为金融时间序列F中的第a个金融数据,f(b)表示参考数据序列F(k)中的金融数据,且f(b)表示金融时间序列F中的第b个金融数据,其中,a≠b,则参考数据序列F(k)中的金融数据f(a)和金融数据f(b)满足:|f(a)-f(b)|≤ΔF(k);
设
表示参考数据序列F(k)中金融数据的均值,设F′(k)表示金融数据f(k)的第一参考数据子序列,且F′(k)={f(k-m′),f(k-m′+1),…,f(k)},其中,f(k-m′)表示金融时间序列F中的第(k-m′)个金融数据,f(k-m′+1)表示金融时间序列F中的第(k-m′+1)个金融数据,m′的值采用下列方式确定;
(1)当金融数据f(k)满足
时,采用下列方式确定m′的值:
其中,θ(k)表示当金融数据f(k)大于等于
时对应的序列检测函数,f(k-s)表示金融时间序列F中的第(k-s)个金融数据,
表示金融数据f(k-s)对应的第一比较函数,当
时,则
当
时,则
选取使得序列检测函数θ(k)=1的最大m的值记为m′;
(2)当金融数据f(k)满足
时,采用下列方式确定m′的值:
其中,
表示当金融数据f(k)小于
时对应的序列检测函数,
表示金融数据f(k-s)对应的第二比较函数,当
时,则
当
时,则
设F″(k)表示金融数据f(k)的第二参考数据子序列,且
其中,
表示金融时间序列F中的第
个金融数据,
表示金融时间序列F中的第
个金融数据,
表示金融时间序列F中的第
个金融数据;定义金融数据f(k)在第一参考数据子序列F′(k)和第二参考数据子序列F″(k)中的第一检测系数为Y
1(k),且Y
1(k)的表达式为:
式中,Δf(k-m′)表示金融数据f(k-m′)在第一参考数据子序列F′(k)中的标准差,Δf(k)表示金融数据f(k)在第一参考数据子序列F′(k)中的标准差,
表示金融数据
在第二参考数据子序列F″(k)中的标准差,
表示金融数据
在第二参考数据子序列F″(k)中的标准差,
表示向上取整;
定义金融数据f(k)在第一参考数据子序列F′(k)和第二参考数据、子序列F″(k)中的第二检测系数为Y2(k),且Y2(k)的表达式为:
式中,
表示第一参考数据子序列F′(k)中金融数据的均值,
表示第二参考数据子序列F″(k)中金融数据的均值;
定义金融数据f(k)在第一参考数据子序列F′(k)和第二参考数据子序列F″(k)中的异常检测函数为Y(k),且Y(k)的表达式为:
当异常检测函数Y(k)的值满足:Y(k)≤0时,判定金融数据f(k)为正常金融数据,且金融数据f(k)的值保持不变;当异常检测函数Y(k)的值满足:Y(k)>0时,判定金融数据f(k)为异常数据,且令
其中,f(k-c)表示金融时间序列F中的第(k-c)个金融数据。
本优选实施例用于去除所述金融时间序列中的噪声数据,对金融时间序列中的金融数据依次进行检测,判断所述金融数据是否为噪声数据,在对所述金融数据进行检测时,给定数据阈值用于确定待检测金融数据的参考数据序列,所述参考数据序列中的任两个金融数据之间的欧式距离都小于等于所述数据阈值,从而保证了参数数据序列中的金融数据的相似性,根据待检测金融数据和参考数据序列中金融数据均值的关系在所述参考数据序列中选取部分金融数据和待检测金融数据组成待检测金融数据的第一参考数据子序列,从而保证了所述第一参考数据子序列走势的统一性,选取第一参考数据子序列中间的部分金融数据组成待检测金融数据的第二参考子序列,当待检测金融数据为正常数据时,确定的第一参考数据子序列和第二参考数据子序列将有着相似的走势,根据该特性,定义所述金融数据在第一参考数据子序列和第二参考数据子序列中的第一检测系数和第二检测系数,所述第一检测系数通过将所述第一参考数据子序列的初始金融数据的标准差和第二参考数据子序列的初始金融数据的标准差、第一参考数据子序列的结尾金融数据的标准差(即待检测金融数据的标准差)和第二参考数据子序列的结尾金融数据的标准差进行比较,判断待检测金融数据的第一参考数据子序列和第二参考数据子序列走势的相似性,所述第二检测系数通过将第一参考数据子序列中金融数据的均值和第二参考数据子序列中金融数据的均值进行比较,从而判断第一参考数据子序列和第二参考数据子序列走势的相似性,定义待检测金融数据对应的异常检测函数,所述异常检测函数通过第一检测系数和第二检测系数比较所述第一参考数据子序列和第二参数数据子序列之间走势的相似性,从而判断待检测金融数据是否为噪声数据,考虑到当第二参考数据子序列的首尾数据距离第一参考数据子序列的首尾金融数据距离越远,第一参考数据子序列和第二参考数据子序列之间走势的相似性减小的情况,本优选实施例在待检测金融数据的异常检测函数中引入了正弦形式的修正系数对第一检测系数进行修正,使得待检测金融数据的异常检测函数能够更加的灵活,从而有效的提高了噪声数据的检测精度。
最后应当说明的是,以上实施例仅用以说明本发明的技术方案,而非对本发明保护范围的限制,尽管参照较佳实施例对本发明作了详细地说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的实质和范围。