百科问答小站 logo
百科问答小站 font logo



有什么算法能对一个长短不一的时间序列进行分类预测? 第1页

  

user avatar   civ-26 网友的相关建议: 
      

题主的问题实际是:

你有一个训练集,其中所有数据长度相等,假设该长度为L。但你的测试集中的数据长度都不一致,并且普遍小于L。所以题主希望找到一种算法能够在训练集上训练得到模型,并且能够应用于测试集上。而你最大的concern是“数据长度不一致”。

实际上你这个问题在定义时就该定义为“变长时序数据的分类问题”,至于你训练集中的数据长度是否一致并不重要。

两种思路解决这个问题。

第一种思路是基于传统的机器学习方法。这要求你在提取特征时只考虑与数据长度无关的特征,例如:所有点的均值、方差等等。在深度学习之前,时序数据分类主要就靠这些手动设计的特征,当然均值、方差这类简单统计量仅仅是最基础的特征,其它一些常用的特征包括峭度、偏度等等,去查一些早期的paper很容易找到一些可以参考的特征,例如这篇:

这里一定要注意你设计的特征必须是与数据长度无关的。这种方法对于任务难度不太大的情况下仍然可以取得很好的效果,并且因为特征具有物理意义,所以模型可解释强。可解释性对于传统行业非常重要(如制造业,没人愿意拿一个黑盒子上生产机床去玩)!!!

第二种思路是使用本身就能处理变长序列的模型,如RNN系列模型。RNN在理论上是完全能够处理变长模型的,它的思路很简单:使用上一个时间点的输出和当前时间点的输入一起产生当前时间点的输出(有点绕口,仔细读,很简单)。所以这个过程可以一直重复到任意序列的结尾,然后最后产生的这个输出作为你这个序列的特征,再用于分类。因为回答主要针对解决你问题的思路,所以不打算详细介绍RNN了。如果有问题,再追更。

但按照实际经验来看,RNN解决序列分类问题通常效果不是很好。

原因是RNN系列模型从理论上讲是对整个序列在进行建模,而通常对时序分类而言,局部的一些特征可能作用更大。所以可以用CNN来代替RNN,从而强调模型对局部特征的提取能力。不过直接使用CNN可能会面临最后送入FC的向量长度不一致,这可以使用Pyramid pooling来解决。

细节不讲了,如有问题,再追更。




  

相关话题

  为什么多标签分类(不是多类分类)损失函数可以使用Binary Cross Entropy? 
  CVPR 2019 有哪些值得关注的亮点? 
  我决定进军期货市场,您有什么建议吗? 
  语音识别中,声学模型与语言模型扮演什么角色?或者说是怎么通过两个模型进行语音识别的? 
  怎样衡量一个机器学习工程师对算法的掌握程度? 
  共轭是指 ‘先验分布与后验分布共轭“ ,还是指 "先验分布与似然函数共轭“? 
  为什么计算注意力机制的时候不加偏置项? 
  看完麻省理工博士胡渊鸣用代码实现「冰雪奇缘」后,自己陷入了深深的自卑,如何排解这种情绪? 
  为什么图形学的会议siggraph的论文代码很少会开源?好像视觉如CVPR、ICCV开源的更多一些。 
  如何解决图神经网络(GNN)训练中过度平滑的问题? 

前一个讨论
机器学习算法进行分类时,样本极度不平衡,评估模型要看哪些指标?
下一个讨论
为什么多标签分类(不是多类分类)损失函数可以使用Binary Cross Entropy?





© 2025-03-07 - tinynew.org. All Rights Reserved.
© 2025-03-07 - tinynew.org. 保留所有权利