基于时序的股票预测算法研究

合集下载

基于时间序列模型的股票走向预测

基于时间序列模型的股票走向预测

基于时间序列模型的股票走向预测研究证券市场波动的规律性,分析引起市场波动的成因,是证券市场理论研究和实证分析的重要内容,也可以为投资者、监管者和上市公司等提供有迹可循的依据。

本文采用时间序列模型预测股票未来一段时间的走向,此模型中使用差分的方法将股票的收盘价平稳化,通过收盘价的ACF(自相关)与PACF(偏自相关)图去判断处理后的收盘价是否符合要求,最后通过MATLAB结合现现有数据的股票指数波动实现对该股未来一年指数波动的预测。

标签:股票预测;时间序列模型;MATLAB;差分0引言随着信息技术迅猛发展,各行业数据库中储存的具有时间标签的数据越来越多,这些数据随时间的推移规模越来越大,例如,医院计算机系统中存放的,关于病人的病情诊断、用药等跟踪信息;股市中股票随时间的交易数据等[1]。

通过时间序列模型,利用其中的一些交易数据就可以预测股票的未来走势,该方法可为投资者提供建议、规避风险。

1时间序列模型介绍时间序列是按时间次序排列的随机变量。

如股票成交量的变动,开盘价与收盘价的浮动,任何时间序列经过合理的函数变换后,都可认为是由三个部分叠加而成,即:趋势项、周期项、随机噪声项。

通过对三个部分的拆分与预测,即可完成模型。

2模型建立及求解2.1 模型建立在实际中遇到的时间序列往往有三个特性:趋势性、季节性与非平稳性,我们主要采用Box- Jenkins 方法,即差分方法,有时还要用时间序列的变换方法,消除其趋势性、季节性,使得变换后的序列是平稳序列[2],并假设为ARIMA 序列,再用上面介绍的方法去研究。

2.2 模型数据我们在网上随机选取一支股票近一年多的收盘价,数据只做参考。

2.3 模型求解首先我们采用MATLAB将这支股票的收盘价导入,观察现有数据的股票指数波动,(2)确定ARIMA模型预测需要确定的三个参数,p、d、q,其中d是用差分法来确定需要几阶差分,差分运算可以使一类非平稳序列(即带有趋势性的序列)平稳化。

基于时间序列分析的股票价格预测研究

基于时间序列分析的股票价格预测研究

基于时间序列分析的股票价格预测研究随着科技的发展和市场经济的日益成熟,股票投资成为了越来越多人关注的话题。

对于股票投资者来说,预测股票价格的趋势是非常重要的,因为及时地察觉价格的波动可以帮助我们做出更好的投资决策。

而基于时间序列分析的股票价格预测方法是当前较为流行的一种方法。

时间序列分析是指根据时间顺序对数据进行分析,主要研究数据的周期性、趋势性、季节性等特征,以预测未来的发展趋势。

股票的价格也具备这样的特点,所以通过对股票价格的时间序列进行分析,可以有助于制定投资策略和决策。

在时间序列分析中,首先需要将数据进行平稳化处理。

平稳化的数据更适合进行模型的建立和拟合。

如果数据没有平稳化,那么在模型的建立和预测过程中就会出现噪音干扰,从而影响预测结果的准确性。

常见的平稳化方法包括差分、对数变换等。

在平稳化之后,常用的时间序列分析方法包括ARIMA模型和指数平滑模型。

其中,ARIMA模型(自回归差分移动平均模型)是一类广泛应用于时间序列分析的统计模型,它可以描述时间序列数据的自相关性、季节性和趋势性等特征。

ARIMA模型的预测效果较好,但需要选择适当的参数和阶次来优化模型拟合效果,同时对于数据量较小的时间序列,ARIMA模型常常会出现过拟合的情况。

另一种常见的方法是指数平滑模型,它主要基于过去的数据寻找价格的趋势和平稳值,然后结合衰减因子作为加权因子来对未来的趋势进行预测。

指数平滑模型预测速度较快,因为对于所有时间点而言,预测值是一致的;但是对于着重考虑时间序列中的季节性和周期性的数据来说,指数平滑模型的效果略逊于ARIMA模型。

尽管ARIMA模型和指数平滑模型有各自的优缺点,但是它们对于时间序列预测都有着一定的适用性。

在实际情况中,由于数据的复杂性和种类繁多,选择合适的时间序列分析方法主要取决于数据特点和分析要求。

除了以上的两种方法之外,还有一些其他的时间序列分析方法可以被应用于股票价格的预测领域。

其中,神经网络模型是一个有趣的领域。

基于时间序列分析的股票价格趋势预测研究

基于时间序列分析的股票价格趋势预测研究

基于时间序列分析的股票价格趋势预测研究基于时间序列分析的股票价格趋势预测研究摘要:股票市场对于投资者而言是一个高风险高回报的地方,预测股票价格的趋势对于投资者来说非常重要。

本文通过基于时间序列分析的方法,以历史股票价格数据为基础,探讨了预测股票价格趋势的可行性和有效性。

一、引言股票市场一直以来都是吸引投资者的地方,而预测股票价格的趋势一直是金融市场中的研究热点。

股票价格的变动受到多种因素的影响,包括市场供求关系、宏观经济指标、公司业绩等。

为了更好地理解和预测股票价格的走势,时间序列分析方法被广泛应用于股票市场。

二、时间序列分析的基本原理时间序列分析是一种基于历史数据的数学和统计分析方法,通过分析时间序列数据的特征和规律,来预测未来时间点的趋势。

时间序列分析包括了平稳性检验、白噪声检验、自相关函数和偏自相关函数的分析等。

三、数据处理和特征提取在进行时间序列分析之前,需要对原始数据进行预处理和特征提取。

首先,需要对股票价格进行平滑,去掉异常值和噪声,以获得更加平稳的时间序列数据。

然后,可以通过计算移动平均、指数平滑、股票价格的一阶差分和二阶差分等方法,提取出更多的特征变量供分析使用。

四、时间序列模型的建立和评估根据时间序列分析的方法,可以建立合适的模型来对股票价格进行趋势预测。

常用的时间序列模型包括ARIMA模型(AutoRegressive Integrated Moving Average)、SARIMA模型(Seasonal ARIMA)、GARCH模型(Generalized Autoregressive Conditional Heteroskedasticity)等。

通过对模型的建立和参数的调整,可以得到较为准确的价格预测结果。

在进行时间序列模型的评估时,需要对模型进行误差分析和预测效果评估。

常用的评估指标包括均方根误差(RMSE)、平均绝对误差(MAE)、平均绝对百分比误差(MAPE)等。

基于时间序列和神经网络股票预测分析

基于时间序列和神经网络股票预测分析

基于时间序列和神经网络股票预测分析股票市场一直以来都是人们非常关注的焦点之一,尤其是投资者们。

然而,由于市场的不稳定性,很多投资者在做出投资决策时面临巨大的难题。

近年来,随着大数据和机器学习技术的发展,越来越多的人开始尝试利用这些技术来预测股票市场的走势,其中基于时间序列和神经网络的方法受到了广泛关注。

时间序列预测是指根据时间序列中的历史数据,预测未来某一时间点的数值。

在股票市场中,时间序列预测可以用来预测股票价格的走势。

时间序列预测方法通常涉及到时间序列建模、时间序列分析和时间序列预测三个步骤。

时间序列建模是指将时间序列数据转化为可以被模型处理的形式。

时间序列分析是指使用各种统计方法和工具对时间序列数据进行分析,以了解其规律性和趋势性,并更好地预测未来的数据。

时间序列预测是指利用时间序列分析的结果,运用各种预测方法,以得到未来时间点的数值预测结果。

神经网络是一种模仿人类神经系统工作方式的计算机智能算法,具有自适应、自我学习、自我适应能力。

神经网络预测方法可以根据历史数据预测股票价格的未来趋势。

在基于时间序列和神经网络的股票预测分析中,首先需要采集历史股票价格数据,并进行时间序列数据处理。

具体步骤如下:第一步:采集股票价格数据:通过抓取相应股票代码的历史交易数据,获取股票价格的时间序列数据。

第二步:数据清理:对收集的数据进行清洗和处理,去除重复数据,填充缺失值。

第三步:数据分析:对洗好后的数据量进行了解,如统计数据的概括、趋势图、变化率等等。

第四步:数据预处理:将时间序列数据转换为可以被机器学习算法处理的数据类型。

将股票价格数据按照时间顺序排列成矩阵形式,即作为训练数据输入神经网络。

第五步:建立神经网络:运用机器学习算法构建神经网络模型,尝试使用不同的神经网络结构和参数配置来改进预测性能。

第六步:训练神经网络:根据时间序列数据对神经网络进行训练。

通过学习训练数据并进行反向传播,不断调整神经网络的权值和偏差值,直到达到预设的误差目标。

基于时间序列数据的预测算法研究

基于时间序列数据的预测算法研究

基于时间序列数据的预测算法研究随着时代的发展和信息技术的进步,越来越多的数据被收集和存储。

这些数据可以是各种类型的,比如图像、文本、音频等等。

而我们所关注的是时间序列数据,即按照时间顺序排列的数据集合,包括股票价格、天气预测、工业生产等。

时间序列数据具有自相关性和趋势性,其特点在于总体变化趋势和局部波动,而且这些变化是带有时间关系的。

通过对时间序列数据的分析,我们可以得出一些有用的结论,比如预测未来的趋势和波动,提供决策参考等。

在时间序列数据的预测中,我们需要选择一种合适的算法,可以根据不同的数据类型和目标来选择不同的方法。

其中,ARIMA模型是一种常用的时间序列模型,通过对时间序列数据的分析,建立ARIMA模型,然后对模型进行训练和测试,得出预测结果。

ARIMA模型可以自适应的增加或减少回归方程,对于时序数据中周期性呈现明显季节特点的情况,可以采用带有季节成分的ARIMA模型来进行预测。

另外,指数平滑模型也是一种较为常用的预测算法,其基础是加权平均法,通过将历史的值和预测的值加权平均来得到未来的预测值。

指数平滑模型可以根据不同的数据类型采用不同的平滑系数,同时还可以进行多步预测和趋势分析。

在时间序列预测算法中,常常需要根据历史数据进行参数调整以达到最佳预测效果。

这需要对模型进行评估和比较,常用的评价指标有均方误差(MSE)、平均绝对误差(MAE)等。

同时,交叉验证也是一种常用的模型评估方法,可以避免模型过拟合的问题,提高模型的泛化能力。

除了以上两种常用的算法,还有一些新兴的算法正在不断涌现,比如深度学习中的循环神经网络(RNN),利用记忆单元来处理时序数据,可以准确预测未来数据趋势。

而支持向量回归(SVR)则是一种基于统计学习的算法,可以在时间序列预测中处理复杂的非线性关系。

总之,时间序列数据的预测算法研究一直在不断发展和创新,新的算法不断涌现,不同的算法适用于不同的数据类型和预测目标。

通过对时间序列数据的分析,我们可以更好地了解和预测未来的发展趋势,提高决策的准确性和效率。

基于时间序列分析的股票价格预测模型研究

基于时间序列分析的股票价格预测模型研究

基于时间序列分析的股票价格预测模型研究股票价格预测一直是股票市场中备受关注的问题。

在过去,股市的变化往往受到很多非经济因素的影响,从政治、社会、文化到自然灾害,任何一个因素都足以让股市大幅波动。

但如今,随着科技的发展,预测股价已经不仅仅依靠人类的直觉和经验,而是越来越多地使用自动化算法来进行。

其中一个常用的算法就是时间序列分析,它是一种按照时间顺序的自动化模型,将以往股票价格数据作为基础,通过分析并预测未来行情,提供给投资者参考意见,有助于他们做出更加明智的投资决策。

时间序列分析主要应用在短期投资上,如日交易,一周或者一月交易,其适用范围一般不超过三个月。

时间序列分析的基本概念首先,时间序列分析需要使用一定的基础概念。

这些概念一般用于描述股票价格演变过程:1. 时间序列:一系列时间按升序排列的数据,通常采用等距时间间隔例如天、周、月等。

2. 价值序列:时间序列中与时间相关的现象的数字度量形成的序列,也就是股票价格的变化序列。

3. 常见模式:时间序列中可能出现的模式,包括:趋势、季节、循环等。

4. 季节性:周期性波动性,时间单位的数量通常为一年或几年。

时间序列分析方法时间序列分析可以分为三个阶段:模型拟合、参数估计、预测。

1. 模型拟合模型拟合是指根据股票价格数据的历史信息,建立具有一定统计学意义的模型。

常见的模型包括:ARIMA、ARIMAX、VAR等。

其中,ARIMA是最为常用的模型之一。

ARIMA(Autoregressive Integrated Moving Average Model)即自回归滑动平均模型,是最基本、最常使用的时间序列分析模型。

该模型包括两部分:自回归部分和移动平均部分。

其中,自回归部分(AR)指利用过去时间步的观测值预测未来时间步的观测值,移动平均部分(MA)是利用过去时间步的预测误差之和来预测未来时间步。

综合起来,ARIMA模型就是将AR和MA结合起来,用来描绘时间序列结构本身的变化规律。

基于时间序列分析的股票预测模型的研究

基于时间序列分析的股票预测模型的研究近年来,股票预测技术正受到越来越多专家和研究者的关注,以期望准确预测股票市场未来的变化。

时间序列分析是预测股票市场变化的一种重要方法,其目标是根据历史股票市场数据,预测未来股票市场的走向。

随着人工智能技术的发展,越来越多的研究者开始将机器学习算法应用于股票市场的预测上。

本文旨在通过分析时间序列分析法在股票市场中的应用,来研究基于时间序列分析的股票预测模型。

首先,本文将讨论时间序列分析的基本原理,包括它是如何分析时间序列数据的,以及它的优缺点是什么。

其次,本文将讨论有关利用时间序列分析法预测股票市场的最新研究,以及常用的算法。

然后,研究者根据实际的股票数据,将讨论如何构建基于时间序列分析的股票预测模型,研究如何分析预测模型的准确度,以及预测模型的不足之处。

同时,本文还将探讨时间序列分析和机器学习技术的结合,讨论如何利用机器学习技术来提高股票预测模型的性能。

最后,本文将提出股票预测模型的发展趋势,以及未来的发展方向。

时间序列分析是预测股票市场的一种重要工具,但也存在一些缺陷,其中包括受时间序列数据质量影响的偏差,以及抽象性太强,无法捕捉股市复杂性的问题。

因此,提出基于时间序列分析的股票预测模型,可能需要结合机器学习技术,以提升股票预测模型的性能。

实际上,许多研究者已经开始探索如何将机器学习技术与时间序列分析相结合,以提高股票预测的准确度。

本文的研究也将重点讨论如何将机器学习技术与时间序列分析相结合,努力实现更准确地预测股票市场的趋势。

综上所述,本文介绍了基于时间序列分析的股票预测模型的研究。

本文分析了时间序列分析的基本原理,以及时间序列分析法在股票市场的预测研究,并介绍了如何构建基于时间序列分析的股票预测模型。

此外,本文也探讨了将机器学习技术与时间序列分析相结合的可行性,以提高股票预测模型的性能。

我们期望通过本文的研究,为投资者提供一种有效地利用时间序列分析法来预测股票市场变化的方法,以及如何利用机器学习技术来提高预测模型的效果。

基于时间序列分析的股票价格预测模型研究

基于时间序列分析的股票价格预测模型研究随着科技的不断进步和信息的高速传递,投资者们对于股票市场的关注度也在不断增加。

然而,股票市场的波动性和不确定性给投资者们带来了很大的挑战。

在这样的背景下,如何准确预测股票价格成为了投资者们关注的焦点之一。

本文将从时间序列分析的角度,探讨基于时间序列分析的股票价格预测模型。

时间序列分析是通过观察一系列按照时间顺序排列的数据来研究数据随时间变化的规律,并利用这些规律来进行预测的一种方法。

在股票市场中,股价的变动是一个典型的时间序列数据,包括开盘价、收盘价、最高价、最低价等多个变量。

首先,进行时间序列分析的第一步是数据的收集和清洗。

股票价格数据通常可以从金融数据提供商或相关交易所获取。

收集到的数据需要进行清洗,包括处理缺失值、异常值等,并统一数据的时间周期,例如以日,周,月为单位。

接下来,进行时间序列的可视化分析。

通过绘制股票价格的折线图,可以直观地反映出股价的波动情况。

此外,还可以绘制移动平均线、趋势线等图形,来辅助分析股价的长期趋势和短期波动。

然后,进行时间序列的平稳性检验。

平稳性是时间序列分析的前提条件,它要求时间序列的均值和方差在不同时间下保持不变。

常用的平稳性检验方法有ADF 检验和KPSS检验等。

在确认时间序列数据的平稳性后,可以对数据应用经典的时间序列模型,如ARIMA模型。

ARIMA模型是一种广泛应用于时间序列分析的方法,它结合了自回归(AR)、滑动平均(MA)以及差分运算(I)等多种技术。

此外,还可以考虑使用更高级的模型来进行股票价格的预测。

例如,长短期记忆网络(LSTM)是一种递归神经网络模型,它在处理时间序列数据时具有较好的性能。

LSTM模型可以更好地捕捉时间序列数据中的长期依赖关系,从而提高预测的准确性。

在应用时间序列模型进行股票价格预测时,还需要注意选择适当的训练集和测试集。

在使用历史数据训练模型时,要注意选择合适的时间段,同时要确保选取的样本具有代表性。

时间序列分析技术在股票预测中的应用研究

时间序列分析技术在股票预测中的应用研究摘要:股票市场中的价格数据具有时间序列的特性,时间序列分析技术被广泛应用于股票预测中。

本文将介绍时间序列分析的一些基本概念和方法,并探讨其在股票预测中的应用。

一、引言股票市场是一个充满不确定性的环境,预测股票价格波动对于投资者来说是至关重要的。

时间序列分析技术是一种用来预测未来数据的统计方法,通过分析数据的趋势和周期性,可以预测股票价格的未来走势。

二、时间序列分析的基本原理时间序列分析是基于时间序列数据的统计分析方法,其基本原理包括趋势分析、季节性分析和周期性分析。

1. 趋势分析趋势分析是指在长期观察中,时间序列数据呈现出的总体上升或下降的趋势。

常用的趋势分析方法包括移动平均法和指数平滑法。

移动平均法通过计算数据的平均值来消除随机波动,从而更好地观察到趋势的变化。

指数平滑法则是通过给予当前数据更多的权重来预测未来的趋势。

2. 季节性分析季节性分析是指在周期性上,时间序列数据呈现出的相似的季节性特征。

常用的季节性分析方法包括季节性指数法和回归分析法。

季节性指数法主要通过计算不同季节的指数来研究股票的季节性波动,从而预测未来的季节性行为。

回归分析法则是通过建立一个数学模型来分析股票价格与季节性因素之间的关系。

3. 周期性分析周期性分析是指在特定周期上,时间序列数据呈现出的规律性周期变化。

常用的周期性分析方法包括周期图法和傅里叶分析法。

周期图法通过绘制时间序列数据的周期图来提取周期性的信息。

傅里叶分析法则是将时间序列数据转化为频率谱来研究其周期性特征。

三、时间序列分析技术在股票预测中的应用时间序列分析技术在股票预测中的应用可以归纳为趋势预测、季节性预测和周期性预测。

1. 趋势预测通过趋势分析技术,可以预测股票价格的长期趋势。

例如,移动平均法可以在消除随机波动的同时,预测股票价格的长期趋势。

指数平滑法则可以通过计算当前价格和历史价格之间的差异来预测未来的趋势走势。

2. 季节性预测季节性分析技术可以预测股票价格的季节性波动。

基于时间序列的股票市场波动预测研究

基于时间序列的股票市场波动预测研究随着全球经济的发展,股票市场已成为各国经济的重要组成部分。

股市的波动与经济活动息息相关,而股票市场波动的预测也成为了重要的课题。

然而,股票市场波动非常复杂,有很多影响因素,因此预测股票市场波动是一项非常具有挑战性的工作。

时间序列分析是预测股票市场波动的有效方法之一。

时间序列是描述随时间变化而变化的一系列数值的方法。

股票市场的价格数据可以表示为时间序列,价格随时间变化而变化。

时间序列分析基于历史股票价格数据来预测未来的股票价格。

时间序列分析用于预测股票市场波动的方法有很多种,例如平滑方法、趋势方法、季节性方法、周期性方法、多元回归和机器学习等。

平滑方法是基本的时间序列分析方法之一。

平滑方法根据股票市场波动的趋势来预测未来的股票价格。

平滑方法主要有两种:移动平均法和指数平滑法。

移动平均法是将某一时间段内的股票价格平均值作为预测值。

移动平均方法可以使用多种不同的时间跨度,例如5天、10天、20天等。

不同的时间跨度将对预测结果产生不同的影响。

指数平滑法是通过给不同时期的价格赋予不同的权值来进行预测。

权值通常通过指数(比如2/(n+1))来定义。

指数平滑法将重点关注最近的价格数据,因为这些价格数据对于最新的股票价格预测具有更大的影响。

趋势方法是基于股票市场趋势的预测方法。

趋势方法涉及到股票市场价格数据及其它经济因素的分析。

通过研究价格溢价、收益率和一些主要经济因素等,趋势方法可以识别未来股票市场的涨势或跌势。

季节性方法是用来预测季节性变化的方法。

股票市场也存在季节性波动,例如春节期间股票市场的波动会更加剧烈。

季节性方法可以通过分析和预测这种波动来预测未来的股票市场。

周期性方法是用来检测股票市场中存在的周期性波动的方法。

周期性波动的周期可以是任何时间长度,例如一年、两年或五年。

周期性方法可以通过分析价格波动的周期性行为来预测未来的股票市场波动。

多元回归是基于股票市场价格数据和其它经济因素的预测方法。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

0引言在股票预测算法中,关联规则挖掘是一种有效的挖掘方法。传统的关联规则主要是揭示了多个事物的同一属性在相同的时间点上的相互关联性,以股票为例,传统的关联规则挖掘方法挖掘的关联规则类似于“A股票涨,B股票涨C股票涨(30%,80%)”这样的规则,项与项之间没有体现时间上的差别,也就无法对时间序列的发展趋势进行预测。本文采用的时序关联规则主要是描述了同一事物的某属性连续变化的关联程度。例如,如果我们从某只股票每日的收盘价的历史时序数据中得知该股票的日收盘价不会出现连续4天都呈现上升的情况,那么我们就可以据此判断:“如果该股票的日收盘价已经出现连续4天均为上升的走势,那么在第5天的时候,该股票的日收盘价不会再上升”。尽管我们难以预测在第5天该股票的日收盘价格是多少,但是我们可以预测该股票的日收盘价的大概走势[1]。

1基本概念1.1股票时间序列集的定义给定股票I的状态集H={h1,h2,…,hn},其中hk(k=1,2,…,n)是集合H中的一个项目。因为本文考虑的是时序关联,所以在此要引入时间这个属性,用来反映各项的先后发生顺序。因而在定义1的基础上给出了加入时间属性后的集合T,记为T={,,…,},其中ti代表hi的发生时间,且有ti位的集合T;其中hk(1≤k≤n)表示的是股票I的日收盘价在对应时间ti上的属性状态(上升或者下降)。这里用“->”表示上升状态,“<-”表示下降状态[2]。本文中的上升和下降的状态是以每天的属性值与前一天的属性值相比较,来决定某事物的某个属性是上升还是下降,如果出现既不上升也不下降,即持平状态,我们要根据持平状态的前一个状态来定,也就是说如果持平状态之前的状态是上升的,那么我们把持平状态归为上升状态;相反,如果持平状态之前的状态是下降的,那么我们就把持平状态归为下降状态。如果持平状态出现在序列的开始,那么就按照持平状态的后一个状态来定,后一个状态如果是上升的,前面的持平状态归为上升状态;如果后一个状态是

收稿日期:2010-04-02;修回日期:2010-04-10作者简介:王果(1982-),女,河南郑州人,工程师,硕士,研究方向为数据挖掘、智能信息处理。

基于时序的股票预测算法研究王果,骆晓艳,胡志波,陈素(广州中医药大学信息技术学院,广东广州510006)

摘要:提出了一种基于时序的股票预测算法。该算法基于时序,对股票在连续时间段内发生变化的数值进行研究,并利用该算法得到的结果进行预测。结果表明,这种方法对于事物的单属性预测是具有实际意义的。关键词:数据挖掘;股票;时序关联规则中图分类号:TP301.6文献标识码:A文章编号:1674-8522(2010)06-0005-04

第16卷第6期江苏技术师范学院学报

JOURNALOFJIANGSUTEACHERSUNIVERSITYOFTECHNOLOGYVol.16,No.6

Jun.,20102010年6月下降的,前面的持平状态就归为下降状态。1.2时间序列子集的定义记si=(hi,hi+1,…,hi+k-1)(1≤i≤n-k+1)为时间序列集合T的一个时间子序列集,其中k为该时间子序列的长度,si中的各项的排列顺序和它们在时间序列T中顺序保持一致。即si中各项也是按照它们发生时间的递增顺序排列的[3]。根据上述定义,我们得到时间序列T的长度为k的所有的时间子序列集。记为:S(T,k)={si︳i=1,2,…,n-k+1},且S(T,k)=n-k+1。

2基于时序的股票预测算法2.1算法思想基于时序的股票预测算法的挖掘过程共分为三大步骤,先求出时间序列的长度为k的子时间序列集S(T,k)的个数;接着从子时间序列集S(T,k)中分别求出这些子时间序列集中的上升和下降的子时间序列集的个数,然后求出T中最大的上升的子时间序列的长度和T中最大的下降的子时间序列的长度;再利

用这些数据,并用公式计算出相应的支持度和置信度,最后得到具有时序性质的关联规则。算法中用到的参数:k为挖掘子时间序列的长度;m表示从T中挖掘出来的长度为k的上升子时间序列的个数,Lr表示从T中挖掘出来最大的上升子时间序列的长度,SR(T,k)表示T中时间序列的长度为k的所有上升子时间序列的集合[4]。2.2T1算法输入:时间序列集T,要挖掘的子时间序列长度值k(2≤k≤n-1);输出:从T中挖掘出来的长度为k的上升子时间序列的个数m。T1.[初始化]置S(T,k)为空,m=1;T2.[循环]置i=1;当i≤n-k+1时,则循环执行步骤T3-T8;否则执行步骤T9;T3.[求子序列si]si=(ti’,ti+1’,…,ti+k-1’);T4.[循环]置j=i;当j≤i+k-2时,则循环执行步骤T5;否则执行步骤T6;T5.[判断]如果tj’=tj+1’=‘->’时,则执行步骤T8;否则执行步骤T7;T6.[判断]如果j>i+k-2,m++,返回执行步骤T2;T7.[循环控制变量i自加]i++;返回执行步骤T2;T8.[循环控制变量j自加]j++;返回执行步骤T4;T9.[输出值m]输出T中的长度为k的所有上升子时间序列的个数m;这样就得到了T中所有长度为k的上升子时间序列的个数m;同理,可从T中挖掘出来所有长度为k的下降子时间序列的个数,记为t。2.3T2算法输入:时间序列集T,任意子时间序列长度值p(2≤p≤n);输出:从T中挖掘出来最大的上升子时间序列的长度Lr。T1.[初始化]置SR(U’,p)为空;T2.[循环]置i=1;当i≤n-p+1时,则循环执行步骤T3-T7;否则执行步骤T8;T3.[求子序列si]si=(ui’,ui+1’,…,ui+p-1’);T4.[循环]置j=i;当j≤i+p-2时,则循环执行步骤T5;T5.[判断]如果uj’=uj+1’=‘->’时,则执行步骤T28;否则执行步骤T6;T6.[判断]如果j>i+p-2,则执行步骤T7;否则执行步骤T29;T7.[加入新序列]SR(U’,p)=SR(U’,p)∪{si};置i=i+1,返回执行步骤T2;

6第16卷江苏技术师范学院学报T8.[判断]当SR(U’,p)不为空时,循环执行步骤T9-T12;否则执行步骤T18;T9.[变量p加1]p=p+1;T10.[初始化变量]置SR(U’,p)为空;T11.[循环]置i=1;当i≤n-p+1时,则循环执行步骤T13-T17;T12.[判断]如果SR(U’,p)为空时,则赋p=p-1,执行步骤T34;否则返回执行步骤T9;T13.[求子序列si]si=(ui’,ui+1’,…,ui+p-1’);T14.[循环]置j=i;当j≤i+p-2时,则循环执行步骤T15;T15.[判断]如果uj’=uj+1’=‘->’时,则执行步骤T30;否则执行步骤T16;T16.[判断]如果j>i+p-2,则执行步骤T17;否则执行步骤T31;T17.[加入新序列]SR(U’,p)=SR(U’,p)∪{si};T18.[判断]当SR(U’,p)为空时,p=p-1,执行步骤T19-T22;T19.[变量p减1]p=p-1;T20.[初始化变量]置SR(U’,p)为空;T21.[循环]置i=1;当i≤n-p+1时,则循环执行步骤T23-T27;T22.[判断]如果SR(U’,p)不为空时,则赋p=p+1,执行步骤T34;否则返回执行步骤T19;T23.[求子序列si]si=(ui’,ui+1’,…,ui+p-1’);T24.[循环]置j=i;当j≤i+p-2时,则循环执行步骤T25;T25.[判断]如果uj’=uj+1’=‘->’时,则执行步骤T32;否则执行步骤T26;T26.[判断]如果j>i+p-2,则执行步骤T27;否则执行步骤T33;T27.[加入新序列]SR(U’,p)=SR(U’,p)∪{si};T28.[循环控制变量j自加]j++;返回执行步骤T4;T29.[循环控制变量i自加]i++;返回执行步骤T2;T30.[循环控制变量j自加]j++;返回执行步骤T14;T31.[循环控制变量i自加]i++;返回执行步骤T11;T32.[循环控制变量j自加]j++;返回执行步骤T24;T33.[循环控制变量i自加]i++;返回执行步骤T21;T34.[输出值Lr]输出U’中最大的上升子时间序列的长度Lr,即Lr=p;这样就得到了T中最大的上升子时间序列的长度Lr;同理,可从T中挖掘出来最大的下降子时间序列的长度,记为Ld。算法T2的复杂度分析:分析该算法之前,假设时间序列集T中的项集为n个。该算法中递归调用了一个循环体,这个循环体主要是从T中挖掘出来的长度为p的上升子时间序列集,分析出这个循环体的时间复杂度就可以得到该算法的时间复杂度。因为要从T中挖掘出长度为p的上升子时间序列集,首先就要从T中挖掘出长度为p的子时间序列集,这个过程只需要一次循环,耗费的时间为T(n)=3n-3p+4,即时间复杂度为O(T(n))=O(n)。然后从这些长度为p的子时间序列集中找出上升子时间序列集,因为子时间序列集中的子时间序列的长度为p,故判断其是否为上升的子时间序列需要在每个子时间序列中进行p-1次的比较,故耗费时间为T(n)=(3n-3p+4)(p-1),即时间复杂度为O(T(n))=O(n)。整个算法包含了三个这样的循环体,因为2≤p≤n,所以进行比较的时候最差的情况是要进行n-1次,最好的情况是进行2次,该算法最大的时间消耗为T(n)=(n-1)(3n-3p+4)(p-1),即时间复杂度为O(T(n))=O(n2)。2.4关联规则算法输入:时间序列集T,要挖掘的子时间序列长度值k;输出:输出关联规则。T1.[求m1]调用算法T1,求出T中所有长度为k的上升子时间序列的个数m1;

第6期王果骆晓艳胡志波等:基于时序的股票预测算法研究7

相关文档
最新文档