, g% n- k! ^8 O" b. G 第三类称其为时间序列,因为输入是按顺序的离散值,大多数情况下就是时间,针对此类问题,由于输入以稳定步长增长的,所以不用考虑输入,直接研究输出的变化规律,这一点类似于高中学的数列,比方说有名的斐波那契数组:1,1,2,3,5...,它的数据特征是f(n+2)=f(n)+f(n+1),现在我们要求后面的数就直接利用该数据特征就行了,当然也可以求出其通项公式,有兴趣的同学可以求着试试。8 B' b9 ?% r" {5 p/ O
5 c. H, p: E6 g% j
而时间序列方面的算法其实就是猜测数据前后存在着什么关系,比如说:一次移动平均算法就是猜测每一个数据 与最近的部分数据的均值存在着某种关系,指数平滑法就是猜测每个数据都跟之前的历史数据的加权平均存在着某种关系。这些算法都可以算作是时间序列算法,不过以上算法都是对数据特征简单的猜测,而对于更复杂的数据特征则可能会用到微分方程,利用微分方程,即可以直接预测,还能用于灰色系统,从而将无规则数据转化为有规律的生成序列。 ' i6 j L" E5 Y% [; Z ?, z$ K0 j, I
(4)机器学习9 ~2 g M$ p% K
1 i: }: \4 p7 I) F
最后一个就是机器学习,即我们只需要搭好框架,数据特征则会由其自己挖掘,比较有名的有:支持向量机(SVM)、决策树、神经网络(深度学习)。这种算法的最终目的是模拟人脑的结构,它的好处就是在搭建好网络结构之后,通过对已有数据的学习,网络会自行提取数据特征,然后只要我们输入一个数据,网络将自行计算,然后输出它的预测值。这种方法的优点是方便,无需考虑数据规律和数据维度,而缺点则是要求数据量要大,少量样本的训练效果一般不具有适用性。- p1 I$ D P' ^* B3 v
7 c6 w3 z6 e! |# s5 u4 H- Y' ^(5)模型检验) ~0 |4 o# r$ ~) v. V' F
* s- X5 i! F' Y" `- S$ Z* e
预测问题中尤其还要注意的是对结果的检验,通常使用残差和后验误差等作为概率统计的检验,也可以用均方误差MSE检验。 7 L0 \! ]: A% W0 p+ M$ r $ I5 s8 q' I+ P, n, A8 W 残差值反映了预测值和原始数据的相对差距:# ?' g2 P u, \
! o0 ?/ c' d6 X5 ^ z 1 B' M% I0 ~& K. c* g! Q+ o, F
后验误差反映模型的精度:) D* N ~1 K5 h( u @7 W
# c4 ^9 z( _' }+ e- N 3 N. n2 T9 p* J" ]* m, j9 V4 z 9 } P: G, }! `" H% z$ n6 R( n) _2 r( I4 g% s0 Q
' S! u- H0 Q$ G- S2 y
然后依据下表判断模型精度: - H& {* v h2 r( a. t & F$ g' E$ E) x+ u 4 i8 B: R7 r7 E! p( B9 X0 v- H! J' i0 @ |
均方误差则是一个简单的误差效果:' Y- I; ?; c5 U' X2 E G
3 r. D+ K4 S( |$ Y( ^
k b3 b3 a: p, L: q! U; ]" B
--------------------- / ^- \% q- @, {! b0 L5 @5 b 5 M4 G( I( w. c) N! A, W/ D9 u5 L" F0 x! g; Q& [1 B- h7 z
1 h3 i2 S) ]) x% D8 [# c