一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

销量数据序列分类方法、装置、计算机设备和存储介质与流程

2022-03-08 22:30:50 来源:中国专利 TAG:


1.本技术涉及计算机技术领域,特别是涉及一种销量数据序列分类方法、装置、计算机设备和存储介质。


背景技术:

2.随着互联网与电子商务的发展,越来越多的企业依靠建立精准的销量预测来实现供应链的高效管理。目前,实现销量预测的方式主要包括传统时间序列预测方式与机器学习方式。其中,机器学习方式通过从历史销量数据与外生因子挖掘特征,能够得到较高的预测准确率,但是其对数据质量和信息完整度要求较高,当商品的数据不完整或者存在无法用足够有效的特征进行解释的间歇性高峰时,将该类商品理解为异常商品,若将异常商品与正常商品各自对应的历史销量数据同时用于训练机器学习模型,会引入噪声,从而会降低机器学习模型的准确率。由此,通过会使用传统时间序列预测方式对异常商品进行建模,或者,将基于正常商品训练得到的机器学习模型迁移至异常商品的销量预测。由此可见,如何正确区分出正常商品与异常商品是销量预测中首先要解决的问题,而正常商品与异常商品的区分通常基于商品对应的销量数据序列来实现,由此,如何对商品对应的销量数据序列进行分类以实现对商品的分类是值得关注的问题。
3.目前,对销量数据序列进行分类通常采用的方式是,通过人工观察销量数据序列的波形特征来进行分类,或者,基于规则进行分类。但是,人工分类方式需要耗费大量的人力物力,且通常存在主观性判断误差,而规则分类方式因通常不能覆盖所有情况而导致存在规则不完备或规则互斥等情况,从而降低了分类的准确性,由此,目前的销量数据序列分类方式存在分类准确性低的问题。


技术实现要素:

4.基于此,有必要针对上述技术问题,提供一种能够提高销量数据序列的分类准确性的销量数据序列分类方法、装置、计算机设备和存储介质。
5.一种销量数据序列分类方法,所述方法包括:
6.获取初始销量数据序列;
7.将所述初始销量数据序列采样至目标序列长度得到目标销量数据序列;
8.对所述目标销量数据序列进行标准化处理,得到满足标准正态分布的标准化销量数据序列;
9.通过已训练好的局部特征提取模型对所述标准化销量数据序列进行局部特征提取,得到局部特征序列;
10.通过已训练好的序列分类模型,根据所述局部特征序列与所述标准化销量数据序列,对所述标准化销量数据序列进行分类得到相应的目标序列类别。
11.一种销量数据序列分类装置,所述装置包括:
12.获取模块,用于获取初始销量数据序列;
13.采样模块,用于将所述初始销量数据序列采样至目标序列长度得到目标销量数据序列;
14.处理模块,用于对所述目标销量数据序列进行标准化处理,得到满足标准正态分布的标准化销量数据序列;
15.提取模块,用于通过已训练好的局部特征提取模型对所述标准化销量数据序列进行局部特征提取,得到局部特征序列;
16.分类模块,用于通过已训练好的序列分类模型,根据所述局部特征序列与所述标准化销量数据序列,对所述标准化销量数据序列进行分类得到相应的目标序列类别。
17.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现方法实施例中的步骤。
18.一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现方法实施例中的步骤。
19.上述销量数据序列分类方法、装置、计算机设备和存储介质,将待分类的初始销量数据序列采样至目标序列长度的目标销量数据序列,以便于该分类方式能够适用于不同源序列长度的初始销量数据序列的分类,也即是针对不同源序列长度的初始销量数据序列均能够得到准确性较高的分类结果,而通过对目标销量数据序列进行标准化处理,得到满足标准正态分布的标准销量数据序列,以便于该分类方式针对不同数量级的初始销量数据序列均有较好的可扩展性,也即是能够提高销量数据序列的分类准确性,而首先提取局部特征序列,再基于局部特征序列与相应标准化销量数据序列结合,对相应初始销量数据序列进行分类,能够提高分类准确性。进一步地,通过已训练好的局部特征提取模型进行局部特征提取,并通过已训练好的序列分类模型,根据所提取出的局部特征序列与标准化销量数据序列,对相应初始销量数据序列进行分类,能够在保证分类效率的同时,进一步提高分类准确性。
附图说明
20.图1为一个实施例中销量数据序列分类方法的流程示意图;
21.图2为一个实施例中基于滑动窗口提取标准化销量数据序列相应的局部特征序列的原理示意图;
22.图3为一个实施例中基于序列分类模型确定标准化销量数据序列的目标序列类别的原理示意图;
23.图4为一个实施例中基于局部特征序列与标准化销量数据序列对标准化销量数据序列进行分类的原理示意图;
24.图5为一个实施例中基于局部特征提取模型与序列分类模型对标准化销量数据序列进行分类的原理示意图;
25.图6为一个实施例中对初始销量数据序列进行下采样得到目标销量数据序列原理示意图;
26.图7为一个实施例中对初始销量数据序列进行上采样得到目标销量数据序列原理示意图;
27.图8为另一个实施例中销量数据序列分类方法的流程示意图;
28.图9为一个实施例中销量数据序列分类方法的原理示意图;
29.图10为一个实施例中基于本技术提供的销量数据序列分类方法对公共数据集进行分类的结果示意图;
30.图11为一个实施例中销量数据序列分类装置的结构框图;
31.图12为一个实施例中计算机设备的内部结构图。
具体实施方式
32.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
33.在一个实施例中,如图1所示,提供了一种销量数据序列分类方法,本实施例以该方法应用于服务器进行举例说明,可以理解的是,该方法也可以应用于终端,还可以应用于包括终端和服务器的系统,并通过终端和服务器的交互实现。本实施例中,该方法包括以下步骤:
34.步骤102,获取初始销量数据序列。
35.其中,初始销量数据序列是指待分类的销量数据序列。初始销量数据序列与目标商品相对应,每个目标商品对应一个初始销量数据序列。通过对初始销量数据序列进行分类能够实现对相应目标商品的分类,也即是确定相应目标商品为正常商品还是异常商品。初始销量数据序列是由多个销量数据排列组成的序列,具体可以是由目标商品对应的多个历史销量数据排列组成的序列。初始销量数据序列中的每个销量数据,是指按照聚合粒度对目标商品对应的历史销售数据进行聚合处理得到的销量数据。销量数据具体可以是指每个聚合粒度内的销售量。聚合粒度是指对目标商品对应的历史销售数据进行聚合的细粒度或细粒程度,具体可自定义,比如,日、周或月等。以聚合粒度为周为例,将目标商品对应的历史销售数据以周为维度进行聚合,得到每周对应的销量数据,也即是得到每周的销售量或销量。
36.具体地,当满足销量数据序列分类条件时,获取待分类的初始销量数据序列。销量数据序列分类条件是用于触发销量数据序列分类操作的依据或条件,具体可以是获取到销量数据序列分类指令,或者,自前一次触发销量数据序列分类操作起达到预设时长。销量数据序列分类指令由用户触发或由预配置的触发单元自动触发。预设时长可自定义,比如1个月。
37.步骤104,将初始销量数据序列采样至目标序列长度得到目标销量数据序列。
38.其中,目标序列长度是序列的目标长度,具体可以是指序列中所包括的销量数据的数量。比如,目标销量数据序列的目标序列长度,是指该目标销量数据序列中所包括的目标销量数据的数量。
39.具体地,服务器根据初始销量数据序列对应的源序列长度与预配置的目标序列长度,按照预设采样方式对该初始销量数据序列进行采样,得到序列长度与目标序列长度一致的目标销量数据序列。预设采样方式比如哈希线性散列方式、随机抽样方式、插值方式等。
40.在一个实施例中,预设采样方式为哈希线性散列方式,这样,服务器通过哈希线性
散列方式对初始销量数据序列进行采样,得到目标序列长度的目标销量数据序列。通过哈希线性散列方式将初始销量数据序列线性散列至目标序列长度,能够保证目标销量数据序列的波形相对于初始销量数据序列的波形无明显变化,这样,基于目标销量数据序列对初始销量数据序列进行分类时,能够保证分类的准确性。比如,若通过哈希线性散列方式对初始销量数据序列进行下采样得到目标销量数据,能够避免在采样过程中丢失初始销量数据序列的峰值或改变初始销量数据序列的波形。可以理解,若目标销量数据序列的波形相对于初始销量数据序列的波形发生明显变化,则基于目标销量数据序列对初始销量数据序列进行分类时,可能会出现误判的情况。
41.在一个实施例中,服务器将初始销量数据序列对应的源序列长度与目标序列长度进行比较。当判定源序列长度大于目标序列长度时,服务器通过预设采样方式对初始销量数据序列进行下采样,得到目标销量数据序列。当判定源序列长度小于目标序列长度时,服务器通过预设采样方式对初始销量数据序列进行上采样,得到目标销量数据序列。当判定源序列长度与目标序列长度一致时,服务器将初始销量数据序列直接确定为目标销量数据序列。
42.步骤106,对目标销量数据序列进行标准化处理,得到满足标准正态分布的标准化销量数据序列。
43.具体地,服务器按照预配置的标准化函数对目标销量数据序列进行标准化处理,得到满足标准正态分布的标准化销量数据序列。标准化函数也可理解为标准化公式。
44.在一个实施例中,标准化函数如下所示:
[0045][0046]
其中,xi表示目标销量数据序列中的第i个销量数据,x
′i表示标准化销量数据序列中的第i个销量数据,也即是表示对目标销量数据序列中的第i个销量数据进行标准化处理后,所得到的销量数据,μ表示目标销量数据序列中各销量数据的平均值,σ表示目标销量数据序列中各销量数据的标准差。
[0047]
在一个实施例中,由于不同商品的销量通常具有较大的差别,比如,热门商品的周销量通常上万,而长尾商品(长尾商品是指需求不旺或销量不佳的商品)的周销量则较低。通过对目标销量数据序列进行标准化处理,得到满足标准正态分布的标准化销量数据序列,以便于基于标准化销量数据序列对相应初始销量数据序列进行分类时,能够保证分类的准确性,也即是使得本技术提供的销量数据序列分类方式,能够适应不同数量级的初始销量数据序列的分类。
[0048]
步骤108,通过已训练好的局部特征提取模型对标准化销量数据序列进行局部特征提取,得到局部特征序列。
[0049]
其中,局部特征提取模型是基于预先获取的训练样本集训练得到的、能够用于对标准化销量数据序列进行局部特征提取得到相应局部特征序列的模型。训练样本集包括样本销量数据序列与相应样本序列类别。局部特征序列是由多个局部特征排列组成的序列,用于表征相应标准化销量数据序列的局部特征。
[0050]
具体地,服务器将标准化销量数据序列输入已训练好的局部特征提取模型,通过该局部特征提取模型对标准化销量数据序列进行局部特征提取,得到相应的局部特征序
列。
[0051]
在一个实施例中,训练局部特征提取模型所涉及的机器学习算法包括但不限于是cnn(convolutional neural networks,卷积神经网络)。
[0052]
在一个实施例中,局部特征提取模型可理解为滑动滤波器,通过预设长度的滑动窗口在标准化销量数据序列上不断滑动,且在滑动的过程中,针对每个窗口位置,基于滑动窗口内的局部销量数据序列得到该窗口位置所对应的局部特征,由此,基于各个窗口位置的局部特征能够得到相应的局部特征序列。
[0053]
在一个实施例中,通过模型训练阶段的训练,局部特征提取模型能够提取出不同特征对应的局部特征序列,比如能够分别提取出均值、方差与偏度等特征各自对应的局部特征序列。这样,通过已训练好的局部特征提取模型,能够从标准化销量数据序列提取出多个局部特征序列,以便于综合该多个局部特征序列对相应初始销量数据序列进行分类时,能够提高分类的准确性。
[0054]
在一个实施例中,由于标准化销量数据序列为一维的序列结构,由此,局部特征提取模型采用一维的滑动窗口来提取局部特征序列。其中,滑动窗口的窗口尺寸可自定义,比如3、5、7。针对每个窗口尺寸预配置的窗口数量可自定义,比如10个。可以理解,预配置的窗口数量与所能提取出的局部特征序列的数量一致。
[0055]
图2为一个实施例中基于滑动窗口提取标准化销量数据序列相应的局部特征序列的原理示意图。如图2所示,实线型的曲线为标准化销量数据序列所对应的波形或曲线,曲线上从左至右显示的四个矩形分别为滑动窗口在标准化销量数据序列上依次滑动的窗口位置,其中,实线矩形框是指滑动窗口当前所处的窗口位置,三个虚线矩形框是指滑动窗口在滑动过程中会遍历到的窗口位置。
[0056]
步骤110,通过已训练好的序列分类模型,根据局部特征序列与标准化销量数据序列,对标准化销量数据序列进行分类得到相应的目标序列类别。
[0057]
其中,序列分类模型是基于预先获取的训练样本集训练得到的、能够用于对标准化销量数据序列进行分类的模型。训练样本集包括样本销量数据序列与相应样本序列类别。可以理解,序列分类模型与局部特征提取模型,是基于预先获取的训练样本集联合训练得到的。目标序列类别是指标准化销量数据序列对应的序列类别,也即是指相应初始销量数据序列对应的序列类别。
[0058]
序列类别包括正类与负类。初始销量数据序列对应的目标序列类别为正类时,则表明相应目标商品为正常商品,正常商品的销售数据通常具有如下特征中的至少一种特征:观察期间全部有稳定销量、观察期间中期以后有稳定销量。初始销量数据序列对应的目标序列类别为负类时,则表明相应目标商品为异常商品,异常商品的销售数据通常具有如下特征中的至少一种特征:商品近期刚上架导致历史销售数据较少、商品下架导致近期销量少或无销量、商品只在某几周有销量且其他时间无销量,由此,针对历史销售数据不完整,或者,存在无法解释的高峰/间隙/空档的商品,其对应的初始销量数据序列所对应的序列类别为负类。
[0059]
具体地,服务器将标准化销量数据序列与相应的局部特征序列作为输入特征,输入已训练好的序列分类模型,通过该序列分类模型对标准化销量数据序列进行分类,得到相应的目标序列类别,也即是得到相应初始销量数据序列所对应的目标序列类别。
[0060]
在一个实施例中,训练序列分类模型所涉及的机器学习算法包括但不限于是lstm(long short-term memory,长短期记忆神经网络)。
[0061]
在一个实施例中,服务器将标准化销量数据序列与相应的局部特征序列进行堆叠(vstack),并将堆叠得到的目标序列输入序列分类模型得到相应的目标序列类别。其中,标准化销量数据序列与局部特征序列均可理解为目标序列中的一个子序列。标准化销量数据序列与局部特征序列,在每个聚合粒度内均具有一个序列值,比如标准化销量数据序列中的每个销量数据可理解为一个序列值,还比如局部特征序列中的每个局部特征可理解为一个序列值。
[0062]
具体地,服务器将目标序列中每个子序列的第一个序列值,作为输入特征输入序列分类模型得到相应的第一输出特征,将第一输出特征与每个子序列的第二个序列值,作为输入特征输入序列分类模型得到相应的第二输出特征,并将第二输出特征与每个子序列的第三个序列值,作为输入特征输入序列分类模型得到相应的第三输出特征,依此类推,直至得到标准化销量数据序列对应的全局特征,将全局特征按照权重进行累加得到最终的输出数值,并基于输出数值得到二分类结果,也即是得到目标序列类别。
[0063]
可以理解,序列分类模型除了在每个聚合粒度内结合局部特征序列中的相应局部特征,还将细胞状态(比如第一输出特征、第二输出特征、第三输出特征、

)按照时序不断传递,从而使得网络具有记忆性,以便于序列分类模型能够提取出整个标准化销量数据序列的变化模式。
[0064]
图3为一个实施例中基于序列分类模型确定标准化销量数据序列的目标序列类别的原理示意图。如图3所示,将局部特征序列与标准化销量数据序列中的各个序列值,依次输入序列分类模型,且在将各个序列值依次输入序列分类模型的过程中,将前一个序列值对应的输出特征与当前序列值作为输入特征一并输入序列分类模型,依此类推,直至得到全局特征,以便于基于全局特征确定标准化销量数据序列的目标序列类别。
[0065]
图4为一个实施例中基于局部特征序列与标准化销量数据序列对标准化销量数据序列进行分类的原理示意图。如图4所示,通过局部特征提取模型对标准化销量数据序列进行特征提取,并将所提取出的局部特征序列与标准化销量数据序列进行堆叠,得到包括局部特征序列与标准化销量数据序列的目标序列,通过序列分类模型,基于目标序列对标准化销量数据序列进行二分类,得到相应的目标序列类别。可以理解,通过局部特征提取模型能够将时序相关的目标序列变换至时序无关的特征空间,以便于在该时序无关的特征空间中,对标准化销量数据序列进行二分类,得到相应的目标序列类别。
[0066]
可以理解,虽然局部特征提取模型能够提取标准化销量数据序列的特征,但是受限于滑动窗口的窗口尺寸,只能提取局部特征,也即只能得到局部特征序列,而判断相应初始销量数据序列是否适合机器学习方式的建模的标准,取决于初始销量数据序列的整体表现,由此通过序列分类模型基于包括局部特征序列与标准化销量数据序列的目标序列,对标准化销量数据序列局部特征的提取,并基于所提取出的局部特征进行分类,能够提高分类的准确性。
[0067]
图5为一个实施例中基于局部特征提取模型与序列分类模型对标准化销量数据序列进行分类的原理示意图。如图5所示,将标准化销量数据序列输入局部特征提取模型进行局部特征提取,将所提取出的局部特征序列与标准化销量数据序列进行堆叠得到目标序
列,并将目标序列输入序列分类模型进行二分类,得到相应的目标序列类别。
[0068]
上述销量数据序列分类方法,将待分类的初始销量数据序列采样至目标序列长度的目标销量数据序列,以便于该分类方式能够适用于不同源序列长度的初始销量数据序列的分类,也即是针对不同源序列长度的初始销量数据序列均能够得到准确性较高的分类结果,而通过对目标销量数据序列进行标准化处理,得到满足标准正态分布的标准销量数据序列,以便于该分类方式针对不同数量级的初始销量数据序列均有较好的可扩展性,也即是能够提高销量数据序列的分类准确性,而首先提取局部特征序列,再基于局部特征序列与相应标准化销量数据序列结合,对相应初始销量数据序列进行分类,能够提高分类准确性。进一步地,通过已训练好的局部特征提取模型进行局部特征提取,并通过已训练好的序列分类模型,根据所提取出的局部特征序列与标准化销量数据序列,对相应初始销量数据序列进行分类,能够在保证分类效率的同时,进一步提高分类准确性。
[0069]
在一个实施例中,步骤104,包括:通过哈希线性散列函数确定初始销量数据序列中的每个源索引号,在目标销量数据序列中对应的目标索引号;目标销量数据序列的序列长度为目标序列长度;根据初始销量数据序列中每个源索引号对应的源销量数据,以及每个源索引号与目标索引号之间的对应关系,确定每个目标索引号对应的目标销量数据;根据各目标索引号对应的目标销量数据得到相应目标销量数据序列。
[0070]
其中,哈希线性散列函数也可理解为哈希线性散列公式。源索引号是指初始销量数据序列中的每个源销量数据,在该初始销量数据序列中对应的索引号。目标索引号是指目标销量数据序列中的每个目标销量数据,在该目标销量数据序列中对应的索引号。索引号用于表征相应销量数据(源销量数据/目标销量数据)在相应销量数据序列(源销量数据序列/目标销量数据序列)中的排序或位置。比如,假设源销量数据对应的源索引号为1,则表明该源销量数据在初始销量数据序列中的排序号为1,也即是表明该源销量数据处于初始销量数据序列的首位。可以理解,本实施例中,将初始销量数据序列中的每个销量数据理解为源销量数据,并将目标销量数据序列中的每个销量数据理解为目标销量数据。
[0071]
具体地,服务器新建一个序列长度与目标序列长度一致的目标销量数据序列,该目标销量数据序列中每个目标索引号对应的目标销量数据按照下述方式确定:服务器根据哈希线性散列函数分别确定初始销量数据序列中的每个源索引号,在目标销量数据序列中所对应的目标索引号,也即是建立初始销量数据序列中的源索引号与目标销量数据序列中的目标索引号之间的对应关系。进一步地,服务器按照源索引号与目标索引号之间的对应关系,根据初始销量数据序列中每个源索引号对应的源销量数据,分别确定目标销量数据序列中每个目标索引号对应的目标销量数据,并根据各目标销量数据按照相应目标索引号的排序,得到相应的目标销量数据序列。
[0072]
在一个实施例中,哈希线性散列函数如下所示:
[0073][0074]
其中,index表示初始销量数据序列中的一个源索引号,index'表示目标销量数据序列中的一个目标索引号,length
source
表示初始销量数据序列对应的源序列长度,length
t arg et
表示目标销量数据序列对应的目标序列长度,符号表示向下取整。
[0075]
上述实施例中,通过哈希线性散列方式建立源索引号与目标索引号之间的对应关系,并基于所建立的对应关系,以及各源索引号对应的源销量数据得到相应目标索引号对应的目标销量数据,进而得到序列长度与目标序列长度一致的目标销量数据。通过该种方式将初始销量数据序列采样至目标序列长度的目标销量数据序列,能够保证初始销量数据序列与目标销量数据序列的首尾对应,且其他销量数据均匀分布,从而能够保证初始销量数据序列与目标销量数据序列之间的波形无明显变化,以便于基于目标销量数据序列对初始销量数据序列进行分类时,能够提高分类的准确性。
[0076]
在一个实施例中,根据初始销量数据序列中每个源索引号对应的源销量数据,以及每个源索引号与目标索引号之间的对应关系,确定每个目标索引号对应的目标销量数据,包括:当初始销量数据序列对应的源序列长度大于目标序列长度时,对初始销量数据序列中与相同目标索引号对应的多个源索引号各自对应的源销量数据求均值;将计算得到的销量数据均值作为相应目标索引号所对应的目标销量数据。
[0077]
具体地,服务器对初始销量数据序列中的源销量数据进行统计分析,得到相应的源序列长度,并将该源序列长度与预配置的目标序列长度进行比较。当判定源序列长度大于目标序列长度时,服务器从该初始销量数据序列中筛选与相同目标索引号对应的多个源索引号,对该多个源索引号各自对应的源销量数据求均值,得到相应的销量数据均值,并将该销量数据均值确定为相应目标索引号所对应的目标销量数据。服务器按照上述方式分别确定目标销量数据序列中每个目标索引号对应的目标销量数据。
[0078]
可以理解,当初始销量数据序列对应的源序列长度大于目标序列长度时,将初始销量数据序列降采样至序列长度为目标序列长度的目标销量数据序列,必然会存在哈希冲突,初始销量数据序列中的多个源索引号会与目标销量数据序列中的同一个目标索引号对应,也即是初始销量数据序列中的多个源销量数据会被散列至目标销量数据序列的同一位置,由此,需要对散列至同一位置的多个源销量数据求均值,得到该同一位置的目标销量数据。
[0079]
图6为一个实施例中对初始销量数据序列进行下采样得到目标销量数据序列原理示意图。如图6所示,初始销量数据序列对应的源序列长度为4,目标序列长度为2,初始销量数据序列中源索引号1、2、3、4对应的源销量数据分别为3、5、1、3,通过哈希线性散列函数,将源索引号1与2各自对应的源销量数据3与5,重复散列至目标索引号为1的位置,将源索引号3与4各自对应的源销量数据1与3,重复散列至目标索引号2的位置,由此,通过对重复散列至同一位置的源销量数据求均值,能够得到目标索引号1与2各自对应的目标销量数据分别为4与2,也即是初始销量数据序列{3,5,1,3}对应的目标销量数据序列为{4,2}。
[0080]
上述实施例中,当初始销量数据序列对应的源序列长度大于目标序列长度时,通过哈希线性散列函数将初始销量数据序列下采样至目标销量数据序列,能够保证初始销量数据序列与目标销量数据序列之间的波形无明显变化。
[0081]
在一个实施例中,根据初始销量数据序列中每个源索引号对应的源销量数据,以及每个源索引号与目标索引号之间的对应关系,确定每个目标索引号对应的目标销量数据,包括:当初始销量数据序列对应的源序列长度小于目标序列长度时,将初始销量数据序列中每个源索引号对应的源销量数据,作为相应目标索引号所对应的目标销量数据;从目标销量数据序列中筛选出尚未与源索引号建立对应关系的目标索引号;通过线性插值方式
确定所筛选出的目标索引号对应的目标销量数据。
[0082]
具体地,当判定源序列长度小于目标序列长度时,服务器根据源索引号与目标索引号之间的对应关系,将初始销量数据序列中的每个源索引号所对应的源销量数据,作为相应目标索引号所对应的目标销量数据,由此,能够得到目标销量数据序列中与源索引号已建立对应关系的每个目标索引号所对应的目标销量数据。进一步地,服务器从目标销量数据序列中筛选出尚未与源索引号建立对应关系的目标索引号,并根据目标销量数据序列中已确定的目标销量数据,通过线性插值方式分别确定所筛选出的每个目标索引号对应的目标销量数据。
[0083]
可以理解,当初始销量数据序列对应的源序列长度小于目标序列长度时,通过哈希线性散列函数,能够将初始销量数据序列中的源销量数据均匀散列至目标销量数据序列,但是目标销量数据序列中仍然存在部分目标索引号对应的目标销量数据为空值,由此,需要对空值进行线性插值,也即是针对目标销量数据为空值的目标索引号,对该目标索引号的相邻索引号所对应的目标销量数据进行线性插值,得到该目标索引号对应的目标销量数据。其中,可采用现有的线性插值方式来确定相应目标销量数据,在此不再赘述。
[0084]
图7为一个实施例中对初始销量数据序列进行上采样得到目标销量数据序列原理示意图。如图7所示,初始销量数据序列对应的源序列长度为2,目标序列长度为4,初始销量数据序列中源索引号1、2对应的源销量数据分别为4、2,通过哈希线性散列函数,将源索引号1与2分别散列至目标索引号为1与4的位置,由此,将源索引号1对应的源销量数据4作为目标索引号1对应的目标销量数据,将源索引号2对应的源销量数据2作为目标索引号4对应的目标销量数据,由于通过哈希线性散列函数不能确定目标索引号2与3各自对应的目标销量数据,也即是目标索引号2与3各自对应的目标销量数据为空值,由此,通过线性插值方式得到目标索引号2与3对应的目标销量数据均为3。
[0085]
上述实施例中,当初始销量数据序列对应的源序列长度小于目标序列长度时,通过哈希线性散列函数将初始销量数据序列上采样至目标销量数据序列,能够保证初始销量数据序列与目标销量数据序列之间的波形无明显变化。
[0086]
在一个实施例中,步骤102,包括:获取目标商品对应的历史销售数据;将历史销售数据按照目标聚合粒度进行聚合处理,得到相应的初始销量数据序列。
[0087]
其中,目标商品是指待分类的商品。目标商品对应的历史销售数据是指目标商品在当前时间之前所对应的销售数据。目标聚合粒度为日、周或月,在此不作具体限定。
[0088]
具体地,服务器确定待分类的目标商品,并获取该目标商品对应的历史销售数据。服务器按照预配置的目标聚合粒度对所获取到的历史销售数据进行聚合处理,得到目标商品在每个聚合粒度内对应的销量数据,并根据各个聚合粒度内的销量数据按照时序得到目标商品对应的初始销量数据序列。
[0089]
举例说明,假设目标聚合粒度为日,服务器则以日为单位对目标商品对应的历史销售数据进行聚合,得到每日的销量数据,并根据各日的销量数据按照时序得到相应的初始销量数据序列。
[0090]
在一个实施例中,目标商品对应的历史销售数据是指该目标商品已有的所有销售数据。以目标商品为新上市商品为例,目标商品对应的历史销售数据是指该目标商品对应的、且近期存在销售量的销售数据。由于新上市商品在前期的销售量为0,若采集过多的前
期销售量为0的销售数据,则初始销量数据序列中会包括大量值为0的销量数据,按照下采样方式对初始销量数据序列进行采样后,会减少目标销量数据序列中有效销量数据的数量,该种情况下,可能会将正类的初始销量数据序列误判为负类,也即是将正常商品误判为异常商品。由此,对于新上市商品,通常仅采集近期存在销售量的销售数据作为历史销售数据,以便于提高分类的准确性。
[0091]
上述实施例中,对目标商品对应的历史销售数据按照目标聚合粒度进行聚合处理,得到初始销量数据序列,以便于通过对该初始销量数据序列进行分类实现对目标商品的分类。
[0092]
在一个实施例中,序列分类模型的训练步骤,包括:获取第一销量数据序列与相应的样本序列类别;对第一销量数据序列进行数据增强得到相应的第二销量数据序列,以及第二销量数据序列对应的样本序列类别;对第二销量数据序列分别进行标准化处理,得到满足标准正态分布的样本销量数据序列;根据样本销量数据序列与相应样本序列类别得到训练样本集;根据训练样本集,对待训练的局部特征提取模型与序列分类模型进行联合训练,得到已训练好的局部特征提取模型与序列分类模型进行联合训练。
[0093]
具体地,在模型训练阶段,服务器获取多个第一销量数据序列与每个第一销量数据序列对应的样本序列类别,并对每个第一销量数据序列进行数据增强得到相应的第二销量数据序列,以及每个第二销量数据序列对应的样本序列类别。服务器对每个第二销量数据序列进行标准化处理,得到满足标准正态分布的样本销量数据序列,并根据各个第二销量数据序列与相应的样本销量数据序列得到训练样本集。进一步地,服务器根据训练样本集对待训练的局部特征提取模型与序列分类模型进行联合训练,得到已训练好的局部特征提取模型与序列分类模型进行联合训练。
[0094]
可以理解,第一销量数据序列本身也可理解为第二销量数据序列。服务器按照本技术一个或多个实施例中提供的标准化处理方式,对每个第二销量数据序列进行标准化处理,得到相应的样本销量数据序列,在此不再赘述。服务器基于训练样本集中的样本销量数据序列与相应样本序列类别,对待训练的局部特征提取模型与序列分类模型进行联合训练的步骤,与基于已训练好的局部特征提取模型及序列分类模型,对标准化销量数据序列进行分类的步骤类似,在此不再赘述。
[0095]
在一个实施例中,服务器获取多个第一销量数据序列,并对每个第一销量数据序列进行标注,得到相应的样本序列类别。具体可通过人工标注方式对每个第一销量数据序列进行标注,在此不作具体限定。
[0096]
在一个实施例中,在模型训练阶段,针对序列分类模型的隐藏状态采用了dropout处理方式。dropout处理方式是指随机丢弃部分特征对应的局部特征序列,预先设定特征丢弃率,以便于在模型训练过程中基于特征丢弃率自动丢弃部分特征。比如,当特征丢弃率为0.5时,针对每个特征随机确定一个[0,1]的随机数,当随机数小于0.5时,则丢弃该特征对应的局部特征序列,否则保留。
[0097]
在一个实施例中,在模型训练过程中,采用了学习率衰减的训练方式,以便于保证模型精确收敛。随着学习率的衰减,能够使得训练得到的模型越来越稳定,也即是使得学习率逐渐趋于稳定通过设定初始学习率,在迭代训练过程中,每迭代训练5次,将学习率衰减为原来的一半,以此来不断降低学习率。
[0098]
在一个实施例中,在模型训练阶段,所涉及到的主要模型参数如下:针对局部特征提取模型,预设的窗口尺寸比如为3、5、7,每个窗口尺寸的窗口数量比如为10,padding(填充)方式比如与标准化销量数据序列等长,激活函数为relu(rectified linear unit,线性整流函数);针对序列分类模型,隐藏状态为70,激活函数为tanh,特征丢弃率为0.5。所采用的优化策略包括:初始学习率为0.01,优化器为adam,学习率衰减策略为每5个epoch(迭代次数)衰减1/2,损失函数为binary cross entropy(二元交叉熵),迭代次数为20次,每次迭代过程中批量输入的样本销量数据序列的数量为32。
[0099]
在一个实施例中,在基于训练样本集按照上述方式训练得到局部特征提取模型与序列分类模型后,通过测试样本集对所训练得到的局部特征提取模型与序列分类模型进行测试,测试的评价指标包括准确率、精确率与召回率。其中,准确率、精确率与召回率的定义分别如下所示:
[0100][0101][0102][0103]
其中,tp表示正确预测为正类的样本个数,tn表示正确预测为负类的样本个数,fp表示错误预测为正类的样本个数,fn表示错误预测为负类的样本个数。
[0104]
举例说明,基于测试样本集进行测试所得到的预测结果的混淆矩阵如下所示,其中,预测值=0表示序列分类模型预测相应序列的序列类别为负类,真实值=0表示相应序列的真实序列类别为负类,其余同理。
[0105] 预测值=0预测值=1真实值=018531真实值=112579
[0106]
根据混淆矩阵可知,模型在测试样本集上的准确率为0.95,精确率和召回率表现如下:其中,负类的精确率和召回率是将负类和正类的序列类别(也即是指类别标签)交换得到的结果,即认为数据不完整或有无法解释的间歇性高峰的样本为正类,数据完整足够支撑机器学习方式建模的样本为负类。
[0107] 精确率召回率正类0.950.98负类0.940.86
[0108]
上述实施例中,依次通过数据增强、标准化处理等操作得到多个满足标准正态分布的样本销量数据序列,以便于基于包括样本销量数据序列与相应样本序列类别的训练样本集进行模型训练时,能够提高所训练得到得到模型的准确性与适用度。
[0109]
在一个实施例中,对第一销量数据序列进行数据增强得到相应的第二销量数据序列,以及第二销量数据序列对应的样本序列类别,包括:对第一销量数据序列进行数据截断得到相应的截断销量数据序列;将截断销量数据序列上采样至目标序列长度,得到第二销量数据序列;将第一销量数据序数据对应的样本序列类别,确定为第二销量数据序列对应
的样本序列类别。
[0110]
具体地,服务器按照预配置的数据截断方式,分别对每个第一销量数据序列进行数据截断得到相应的截断销量数据序列,并将每个截断销量数据序列进行上采样,得到序列长度与目标序列长度一致的第二销量数据序列,相应地,服务器将每个第一销量数据序数据对应的样本序列类别,确定为基于该第一销量数据序数据得到的第二销量数据序列所对应的样本序列类别。预配置的数据截断方式,用于指定数据截断的位置与数量,比如截断第一销量数据序列中处于头部的预设数量的销量数据,还比如截断第一销量数据序列中处于尾部的预设数量的销量数据,还比如同时截断第一销量数据序列中处于头部与尾部的预设数量的销量数据,预设数量比如5,不同位置截断的销量数据的数量也可设置为不一致。可以理解,服务器可按照现有的上采样方式将截断销量数据序列上采样至目标序列长度,在此不再赘述。
[0111]
举例说明,假设初始获取672个第一销量数据序列,每个第一销量数据序列对应的聚合粒度为周,每个第一销量数据序列包括70周的销量数据,按照截断头部5周、截断尾部5周,以及同时截断头尾各5周的方式,分别对每个第一销量数据序列进行数据截断,得到每个第一销量数据序列对应的三个截断销量数据序列,并将每个截断销量数据序列分别上采样至70周,并将基于截断销量数据序列上采样得到的销量数据序列,以及相应第一销量数据序列均确定为该第一销量数据序列对应的第二销量数据序列。由此,通过数据增强的方式,能够初始的672条样本扩充至2688条,这样,在降低样本的获取与标注工作量的同时,能够提高模型的鲁棒性。
[0112]
上述实施例中,通过数量增强的方式,基于较少的标注样本能够扩充得到较多的标注样本,从而能够在不额外增加样本获取与标注工作量的情况下,扩充训练样本集,以便于基于该训练样本集训练得到的模型具有较高的鲁棒性与准确性。
[0113]
如图8所示,在一个实施例中,提供了一种销量数据序列分类方法,该方法具体包括以下步骤:
[0114]
步骤802,获取目标商品对应的历史销售数据。
[0115]
步骤804,将历史销售数据按照目标聚合粒度进行聚合处理,得到相应的初始销量数据序列。
[0116]
步骤806,通过哈希线性散列函数确定初始销量数据序列中的每个源索引号,在目标销量数据序列中对应的目标索引号;目标销量数据序列的序列长度为目标序列长度。
[0117]
步骤808,当初始销量数据序列对应的源序列长度大于目标序列长度时,对初始销量数据序列中与相同目标索引号对应的多个源索引号各自对应的源销量数据求均值。
[0118]
步骤810,将计算得到的销量数据均值作为相应目标索引号所对应的目标销量数据。
[0119]
步骤812,当初始销量数据序列对应的源序列长度小于目标序列长度时,将初始销量数据序列中每个源索引号对应的源销量数据,作为相应目标索引号所对应的目标销量数据。
[0120]
步骤814,从目标销量数据序列中筛选出尚未与源索引号建立对应关系的目标索引号。
[0121]
步骤816,通过线性插值方式确定所筛选出的目标索引号对应的目标销量数据。
[0122]
步骤818,根据各目标索引号对应的目标销量数据得到相应目标销量数据序列。
[0123]
步骤820,对目标销量数据序列进行标准化处理,得到满足标准正态分布的标准化销量数据序列。
[0124]
步骤822,通过已训练好的局部特征提取模型对标准化销量数据序列进行局部特征提取,得到局部特征序列。
[0125]
步骤824,通过已训练好的序列分类模型,根据局部特征序列与标准化销量数据序列,对标准化销量数据序列进行分类得到相应的目标序列类别。
[0126]
图9为一个实施例中销量数据序列分类方法的原理示意图。如图9所示,在模型训练阶段依次包括数据准备、数据增强、数据标准化与基于模型输出分类结果等几个阶段。在销量数据序列分类阶段依次包括获取初始销量数据序列(也即是获取新时序数据)、上/下采样、数据标准化与基于模型输出分类结果等几个阶段。
[0127]
图10为一个实施例中基于本技术提供的销量数据序列分类方法对公共数据集进行分类的结果示意图。其中,对公共数据集m5按照聚合粒度为周的方式进行聚合,得到相应的初始数据序列,并基于本技术提供的销量数据序列分类方法对初始数据序列进行分类,所得到的示例分类结果如图10所示。其中,子图(a)中的左侧图表示初始数据序列,右侧图表示通过下采样后所得到的满足模型输入的目标数据序列,基于该目标数据序列能够判定相应初始数据序列为数据完整、且能够支撑机器学习方式建模的序列。相应地,子图(b)中的左侧图表示初始数据序列,右侧图表示通过下采样后所得到的满足模型输入的目标数据序列,基于该目标数据序列能够判定相应初始数据序列为数据不完整或有无法解释的间歇性高峰的序列。子图(c)中的左侧图表示初始数据序列,右侧图表示通过下采样后所得到的满足模型输入的目标数据序列,基于图示可知,初始数据序列中实际有效的销量数据有40周,但是通过采样后得到的目标数据序列中有效的销量数据只有12周左右,由此可见,由于初始数据序列中包括过多值为0的销量数据,在下采样时会丢失过多有效的销量数据,从而使得相应初始数据序列误判为负类的概率较大。
[0128]
在一个实施例中,对公共数据集m5分别按照聚合粒度为日、月进行聚合,并基于聚合结果进行再次筛选,以比较不同聚合粒度下的分类效果。实验证明,在10000条初始数据序列中,日聚合粒度筛选出的负类有181个,周聚合粒度筛选出的负类有182个,月聚合粒度筛选出的负类有188个。其中,日、周聚合粒度负类的交集有169个,周、月聚合粒度负类的交集有174个,日、月聚合粒度负类的交集有169个,表明了该模型在日、周、月聚合粒度下有较好的稳定性。由此可见,本技术提供的销量数据序列分类方法,在不同数量级、不同聚合粒度以及不同序列长度上有较好的可拓展性。
[0129]
应该理解的是,虽然图1与图8的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1与图8中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
[0130]
在一个实施例中,如图11所示,提供了一种销量数据序列分类装置1100,包括:获
取模块1101、采样模块1102、处理模块1103、提取模块1104和分类模块1105,其中:
[0131]
获取模块1101,用于获取初始销量数据序列;
[0132]
采样模块1102,用于将初始销量数据序列采样至目标序列长度得到目标销量数据序列;
[0133]
处理模块1103,用于对目标销量数据序列进行标准化处理,得到满足标准正态分布的标准化销量数据序列;
[0134]
提取模块1104,用于通过已训练好的局部特征提取模型对标准化销量数据序列进行局部特征提取,得到局部特征序列;
[0135]
分类模块1105,用于通过已训练好的序列分类模型,根据局部特征序列与标准化销量数据序列,对标准化销量数据序列进行分类得到相应的目标序列类别。
[0136]
在一个实施例中,采样模块1102,还用于通过哈希线性散列函数确定初始销量数据序列中的每个源索引号,在目标销量数据序列中对应的目标索引号;目标销量数据序列的序列长度为目标序列长度;根据初始销量数据序列中每个源索引号对应的源销量数据,以及每个源索引号与目标索引号之间的对应关系,确定每个目标索引号对应的目标销量数据;根据各目标索引号对应的目标销量数据得到相应目标销量数据序列。
[0137]
在一个实施例中,采样模块1102,还用于当初始销量数据序列对应的源序列长度大于目标序列长度时,对初始销量数据序列中与相同目标索引号对应的多个源索引号各自对应的源销量数据求均值;将计算得到的销量数据均值作为相应目标索引号所对应的目标销量数据。
[0138]
在一个实施例中,采样模块1102,还用于当初始销量数据序列对应的源序列长度小于目标序列长度时,将初始销量数据序列中每个源索引号对应的源销量数据,作为相应目标索引号所对应的目标销量数据;从目标销量数据序列中筛选出尚未与源索引号建立对应关系的目标索引号;通过线性插值方式确定所筛选出的目标索引号对应的目标销量数据。
[0139]
在一个实施例中,获取模块1101,还用于获取目标商品对应的历史销售数据;将历史销售数据按照目标聚合粒度进行聚合处理,得到相应的初始销量数据序列。
[0140]
在一个实施例中,上述销量数据序列分类装置1100,还包括:模型训练模块,用于获取第一销量数据序列与相应的样本序列类别;对第一销量数据序列进行数据增强得到相应的第二销量数据序列,以及第二销量数据序列对应的样本序列类别;对第二销量数据序列分别进行标准化处理,得到满足标准正态分布的样本销量数据序列;根据样本销量数据序列与相应样本序列类别得到训练样本集;根据训练样本集,对待训练的局部特征提取模型与序列分类模型进行联合训练,得到已训练好的局部特征提取模型与序列分类模型进行联合训练。
[0141]
在一个实施例中,模型训练模块,还用于对第一销量数据序列进行数据截断得到相应的截断销量数据序列;将截断销量数据序列上采样至目标序列长度,得到第二销量数据序列;将第一销量数据序数据对应的样本序列类别,确定为第二销量数据序列对应的样本序列类别。
[0142]
关于销量数据序列分类装置的具体限定可以参见上文中对于销量数据序列分类方法的限定,在此不再赘述。上述销量数据序列分类装置中的各个模块可全部或部分通过
软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
[0143]
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图12所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储初始销量数据序列。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种销量数据序列分类方法。
[0144]
本领域技术人员可以理解,图12中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
[0145]
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
[0146]
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述各方法实施例中的步骤。
[0147]
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(read-only memory,rom)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(random access memory,ram)或外部高速缓冲存储器。作为说明而非局限,ram可以是多种形式,比如静态随机存取存储器(static random access memory,sram)或动态随机存取存储器(dynamic random access memory,dram)等。
[0148]
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
[0149]
以上实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术专利的保护范围应以所附权利要求为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献