【《机器学习算法理论基础综述》4200字】_第1页
【《机器学习算法理论基础综述》4200字】_第2页
【《机器学习算法理论基础综述》4200字】_第3页
【《机器学习算法理论基础综述》4200字】_第4页
【《机器学习算法理论基础综述》4200字】_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

机器学习算法理论基础综述1.1机器学习简介作为近几年大热的研究方向之一,机器学习的主要功能为:根据相关计算机的技术、学习已有数据的规律,进而分析预测未来的数据。机器学习主要分为监督学习、无监督学习和半监督学习,监督学习中的数据集是由特征以及标签组成,其目的是训练机器,从而对标签取值准确的预测。例如:房价预测、肿瘤判定等;无监督学习则是不知道数据的答案和标签,不对数据集作任何说明,其目的是让机器自动将一堆混乱的数据分成几个簇(类),而分类的标准没有人为的事先提供。显然,对于股价的预测应属于监督学习,从所给的训练数据集(股票数据)中训练出一个函数(模型参数),当新的数据到来时,可以根据这个函数预测结果。在监督学习中,其训练集包括输入和输出两部分,有时也被称为特征和目标。训练集中的目标是由人来进行标注的,为了达到预测的目的,首先要训练已有的训练样本(对应到本项目中为已知股票数据及其对应的输出),得到一个最优模型;再通过这个模型,把全部的输入映射为相应的输出,并初步判断这些输出。本文要做的就是要训练股票数据,建立预测模型,预测输出股票的大致走向,从而可以建议用户在最优的时机买入股票,进而获得最大的利润。1.2K-临近算法1.1.1K-临近算法简介K-临近算法,全称是KNearestNeighbors(KNN),意为K个最相近的邻居,属于有监督学习中的分类算法。从它的名字我们可以直观地看出,其算法的基本原理就是,当想要预测一个新的值x时,根据它距离最近的K个点的类别进而判断x的类别。如图2-1,假设绿色的点为想要预测的点,此时K=3,则K-临近算法就去寻找与它最近的三个点(图内圆圈内的点),看哪种点的类别多一些,则把要预测的点归为这一类。本例中蓝色的三角形多一些,这个绿色的点被归为蓝色三角形一类。如图,当K=5时,则变成红色的圆多一些,那么新来的点被归为红色的圆。由此可见,预测结果的准确度十分依赖K值的选取和点距离的计算。图2-SEQ图2-\*ARABIC1K-临近算法预测举例1.1.2距离计算对于计算两个点之间的距离,可以使用欧拉公式来计算,以二维平面为例,二维空间中两点之间的距离计算公式为:ρ(公式2-1二维空间两点间距离公式)K-临近算法就是将待预测的点与平面中各个点之间的距离进行计算,保存后再对其进行排序,选出前K个值,观察这K个值内哪些类别比较多,待预测的这个点就可被化为哪一类。1.1.3K值选择通过先前的例子可以看出,K值的选择十分重要。本文计划采用交叉验证法选择K的值,将样本数据按照8:2拆分出用于训练的数据和用于验证的数据,首先从较小的值开始,再不断增加K值,然后计算验证集合的方差,直到找到一个最优的值。通过交叉验证计算方差后得到的大致图线如下:图2-SEQ图2-\*ARABIC2交叉验证计算方差的结果从图中可以看出,增大K时,错误率会先降低,因为周围有了更多的可以用来借鉴的样本,其效果会更好。为了更好的实现预测效果,本文计划使用SKLearn数据包,调用其中的K-临近算法,指定出参数范围为[2,9],该数据包会自动运行所有参数组合并建立模型,最后返回出效果最好的一组。如图为采用K-临近算法对浦发银行股票的预测图线:图2-SEQ图2-\*ARABIC3利用K-临近算法对浦发银行股票数据预测的结果1.3线性回归算法1.3.1线性回归算法简介很明显,线性回归属于回归问题,也是监督学习的一种。线性回归(LinearRegression)是一种线性的模型,它通过使用线性组合来对所给数据进行训练和预测,其训练目标是将训练数据集间的关系拟合成直线或者是平面,尽可能地降低估计值和实际值之间的误差。1.3.2线性回归算法模型线性回归算法的模型很简单,假设每批数据有n个特征,每个特征都对应着一个属于自己的权重值,将数据与权重值的乘积再加上一个偏离值,就得到了线性回归的模型,公式如下:y=(公式2-2线性回归模型)权重w即为线性回归要学习的参数,通过模型的训练将w的值计算出来,再代回公式,即可得到数据的预测值。1.3.3损失函数很明显,对模型的预测得出的值与实际值约接近,这个模型越好,为此,定义了损失函数。在线性回归中,通常使用均方根误差表示,即最小二乘法。先假设出这个线的方程,然后再把数据点代入假设的方程,得到观测值,进而再求得实际值与观测值相减的平方和最小的参数。损失代价函数为:Jθ其中,y=(公式2-3损失代价函数)接下来就是求解公式中的向量θ,使得J(θ)最小。求解J(θ)有两种方法:梯度下降法和正规方程法。1)梯度下降算法,是经过每次迭代后,使得当前的向量θ代入J(θ)损失函数后,其值逐渐降低,直到最后收敛。2)正规方程法,提供了一种求解最优θ的解析解法。只需要对J(θ)函数中每个θj​(j=0,1,…,n)求偏导,求出每个θj​使得偏导等于0。这些解组合成对应的向量将梯度下降法和正规方程对比,将特征值进行缩放可能是梯度下降算法的一个必不可少的步骤;在特征缩放梯度下降算法中,学习率α需要自己决定,并且其值要适当,且迭代运算要进行很多次。与梯度下降相比,当n比较小时,使正规方程法能更快地得到结果,因此其在普通的线性回归问题中用的比较多。但是在机器学习中,梯度下降法有更大的适用范围。综上所述,由于股票数据的n很大,进行矩阵运算会有很大的代价,正规方程求解的过程也会变的很慢,所以梯度下降更适合系统,因此选用梯度下降的方法来计算损失代价函数。1.3.4使用线性回归算法进行预测同样,为了预测的有效性和易实施性,本文依旧调用SKLearn中的线性回归方法。采用线性回归算法对浦发银行股票数据进行预测结果如下:图2-SEQ图2-\*ARABIC4利用线性回归算法对浦发银行数据进行预测的结果1.4长短期记忆网络算法1.4.1长短期记忆网络算法简介长短期记忆网络(LongShort-TermMemory,下文称LSTM算法),因为其拥有记忆功能,所以通常被用在一些具有时间特性的场景中,并解决了原始的RNN算法的梯度消失问题。假设模型为依次输入一句话,我们要对单词进行分类,例如arriveTianjinonNov,11th,和leaveTianjinonNov,11th,’Tianjin’分别是目的地和出发地,如果使用普通的神经网络,输入是’Tianjin’,输出是确定的。然而,我们的期望是,‘Tianjin’前是‘arrive’时,‘Tianjin’被识别为目的地;‘Tianjin’前是‘leave’时,则被识别为出发地。这就是LSTM常见的应用,它可以记住历史信息,在读到‘Tianjin’时,LSTM会知道它前面是‘leave’还是‘arrive’,根据历史信息的不同来做出判断,即使有相同的输入,由于历史信息不同,输出也会不同。1.4.2长短期记忆网络算法模型普通的神经元是一个输入,一个输出,而对于LSTM来讲,它有四个输入,分别是input(模型输入),forgetgate(遗忘门),inputgate(输入门)和outputgate(输出门)。遗忘门用来决定前一时刻的memory中的是否会被记住,当遗忘门打开(为1)时,前一刻的memory会被保留,当遗忘门关闭(为0时),前一刻的memory则会被清空。输入门的作用是决定目前的输入序列有多少会被记忆下来,在输入序列中,清除掉那些无用的输入信息。输出门则用来决定当前memory内的信息有多少被用来输出。如图,假设用ft表示遗忘门,it表示输入门,Ot表示输出门。C代表memorycell,用来存储记忆信息,Ct-1表示上一个时刻的记忆信息,图2-5LSTM基本模型遗忘门计算:f输入门计算:i当前输入:c当前时刻的记忆信息的更新:c输出门计算:o输出门:h1.4.3模型的训练和实现LSTM的训练过程大致为:首先计算各个神经元的输出值,再反向对每个神经元的误差项进行计算,根据相应的误差项,把各个权重的梯度计算出来,再代回公式进行预测。对于算法的实现,选择调用TensorFlow库和SKLearn数据包:fromkeras.layersimportLSTM,接下来对模型进行了一定的调参,使用默认的超参数设置,并在训练过程中持续观察loss的变化,初步给定的参数范围为[0,60],60%的数据作为训练集,40%作为验证集。关键代码如下:foriinrange(60,len(train)):

x_train.append(scaled_data[i-60:i,0])

y_train.append(scaled_data[i,0])

x_train,y_train=np.array(x_train),np.array(y_train)训练过程中,观察到trainloss逐渐下降,valloss也在不断下降,这表明网络依旧在学习,因此需要加大数据集。同时,为了使数据的训练数据更好,将训练集增加到80%,最终选择的参数为50,此时图线拟合的效果最好。结果如下:图2-6利用LSTM算法对浦发银行股票数据预测的结果1.5移动平均算法1.5.1移动平均算法简介移动平均(MovingAverage),又称滑动平均,经常用来去衡量当前趋势的方向。移动平均算法适用于即期预测,当产品的需求既不呈现快速上涨的趋势也不呈现急速下降的趋势,且季节性的因素对其没有明显影响时,使用该算法能够把预测过程中的随机波动有效地清楚掉。移动平均和平日所提到的平均的概念是一致的,都是通过计算过去的数据的平均值从而得到数学结果。该算法经常应用于金融领域的预测,通过绘制图线将计算出的平均值显示出来,以便于观察平滑的数据,而不是聚焦于金融市场内固有的价格波动。移动平均可以过滤掉高频噪声,反映出中长期的低频趋势,进而辅助投资者做出投资判断。移动平均与普通的平均的不同之处在于,它使用的不是简单的平均值,而是采用“移动”平均技术,这个技术能够为每一个预测使用一组最新的值,对于每个后续步骤,从集合中删除掉最旧的观察值,同时考虑预测值,即数据集在不断地“移动”,因而这种算法能够确保只对当前信息进行核算,并保证了平滑性。1.5.2移动平均算法模型移动平均算法的根本理念是,依据时间行列的资料,一项一项推移,分别计算得出包括特定项数的序时平均值,进而对长时间的趋势进行描述。因此,当时间序列的数值受周期变动和随机波动的影响,有较大的起伏,且事件的趋势不容易被展现出来时,使用移动平均算法能够清除掉这些元素带来的影响,把待预测事件的发展方向和趋势展现出来,然后根据趋势线对待预测序列的长远发展趋势进行分析。移动平均法可以分为:简单移动平均和加权移动平均,本文主要采用的是简单移动平均的方法,调用了Tensorflow中的移动平均模型。Ft(公式2-7简单移动平均)公式中:·Ft·n:移动平均的时期个数;·At·At-2,A1.5.3模型的训练和实现在对移动平均数进行计算时,每次计算需要使用多少个值,其决定依赖于时间序列的序数和变动的周期。如果时间序数多,变动周期长,则能够使用每6个月直到每12个月来进行计算;反之,可以采用每2个月或每5个月来计算。对获取到的股票数据的移动平均数,本文采用每5个月的实际值来进行计算。对于模型的实现,本文计划使用TensorFlow中的ExponentialMovingAverage()来实现。在TensorFlow中,ExponentialMovingAverage()可以传入两

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论