基于二元密度聚类的物资价格时延计算方法研究

2023-12-21 03:36程晓晓蒲兵舰张国平丁萌萌
吉林大学学报(信息科学版) 2023年5期
关键词:规整原材料物资

程晓晓,蒲兵舰,张国平,丁萌萌

(国网河南省电力公司 a.物资部; b.物资公司,郑州 450000)

0 引 言

物资的市场价格变化受多种因素影响,若进行物资市场价格预测需要掌握对物资价格产生影响的特征数据,例如原材料价格、各原材料占比、经济指数[1-2]等。物资市场价格受社会供需结构、市场需求、原料价格波动等多种要素的间接影响,且这种影响是具有传递性的,当供应链上游发生波动后,该影响在供应链条中逐渐向下游传递,最终作用在产品的市场价格上。例如,电缆物资由多种原材料组成,当其中某一原材料价格发生变化时,不会直接对物资的价格产生影响,而是随着库存的消耗、市场的动态均衡、供需关系的调整等因素逐渐作用于物资的价格,直至物资的市场价格与原材料价格的走势趋于一致,这段时间即为价格的时间延迟。因此在对物资的市场价格与原材料价格数据进行融合时需考虑价格的时间延迟。

一般利用动态时间规整算法计算时间序列的相似度,动态时间规整算法是基于动态规划的思想,用于解决时间序列非对齐和相对偏移问题[3]。通过动态时间规整算法可以对物资的市场价格和原材料价格两条非对齐的时间序列进行规整计算,目的是寻找一条使两条时间序列之间距离最小的弯曲路径,并可利用弯曲路径的路径长度衡量时间序列之间的相似度。但在收集数据时发现数据中存在干扰值,若直接使用动态时间规整算法将会对结果产生干扰,因此笔者提出将二元密度聚类方法与动态时间规整算法相结合,利用二元密度聚类方法对价格的特征数据进行编码操作,可有效规避干扰。

物资的市场价格受原材料价格的时间延迟计算,即是对两条时间序列进行聚类和规整计算。目前各行业对市场价格的影响机理都开展了相关研究,张桓等[4]考虑渔业种群、渔获量对最后水产市场价格的影响关系和作用时间,并建立新型动态价格。王露晓[5]在农业领域对菜籽油市场价格波动机理开展研究,最终发现菜籽油的市场价格与玉米、大豆和棉花等大宗期货品种间的价格波动间的相关性。对价格预测的常用方法有动态时间规整算法、时间序列建模、HMM(Hidden Markov Model)等,但传统动态时间规整算法存在局限性,因此学者们提出了改进的动态时间规整算法。陶洋等[6]针对传统的分段时间序列聚类的效果并不理想,提出了一种基于动态时间规整距离度量的层次聚类算法。Li等[7]针对动态时间规整易于出现过度拉伸和压缩问题,提出了一种自适应约束算法,利用自适应惩罚函数规划路径。Mueen等[8]提出一种新的稀疏时间序列的时间翘曲相似性度量(AWarp),将该度量作用于稀疏时间序列的游程编码表示。靳子豫等[9]将时间序列划分为短期和长期时间序列,并基于短、长期时间序列分别进行预测,结果证明长期时间序列效果更优。梁建海等[10]提出以标识极值作为时间序列的区间性特征,相应的特征标识能对距离相同但趋势不同的时间序列进行有效分类。丁望祥[11]提出多变量时间序列聚类算法,从而对多特征的时间序列进行归类分析,提高分析结果的可靠性。在笔者研究的数据集中,尽管物资的市场价格和原材料价格在趋势上相近,但二者在数值上的差异较大,且计量单位也统一。为排除上述因素干扰,通过密度聚类将物资价格变换为其所属的簇号,同时考虑物资价格的持续时间,设计了一种二元密度聚类方法。利用该聚类方法对各特征数据进行编码,然后将物资的市场价格和原材料价格的编码序列执行动态时间规整算法,得到相似系数最小的两条时间序列,即相似程度最高的两条时间序列。计算这两条时间序列相似度最高点对应时间的差值即为价格的时间延迟。

1 数据预处理

数据融合方法的设计框架如图1所示。

笔者主要对收集到的物资价格、原材料价格、原材料属性数据集进行预处理操作,并针对物资的市场价格与原材料价格进行时间延迟计算。分别对价格数据和记录时间数据进行密度聚类操作,再将簇类得到的簇号序列利用动态时间规整计算相似系数,根据相似系数确定价格的时间延迟,计算价格的时间延迟前需要先设置制定规范。定义每次选择的时间跨度(以周为单位)的大小为细粒度。

1.1 数据标准化处理

利用爬虫技术获得电缆物资的名称、市场价格、市场价格记录时间等,共同组成初始数据集。由于各项数据的记录时间不同,因此以时间戳为查询条件时部分特征缺少对应数据。利用线性插值方法根据缺失值前后的数值为基准,对缺失值进行补全,将补全的数据集规范化存储,价格数据集示例参见表1。

表1 价格数据集示例

由于二元密度聚类要求聚类操作的数据类型统一化,因此需将补全的特征数据集规范化处理,将特征数据以独热码形式进行储存。

1.2 计算细粒度

粒度大小即为对物资的市场价格和原材料价格进行动态时间规整的窗口大小,以原材料价格和物资的市场价格为例,需按给定的细粒度对原材料价格时间序列和物资市场价格的时间序列在时间维度上进行切割。因此粒度越大,对比的时间序列长度越长,即价格的时间延迟周数越大。首先设置一个初始的粒度大小,以此粒度值为基准对物资的市场价格、原材料价格、经济指标进行切割,形成一个由多个一维数组组成的二维数组,其中一维数组的长度即为粒度值大小。

2 价格数据融合方法

数据融合方法流程如图2所示。数据融合方法首先需要确定规整窗口大小即寻找周数的范围,再将价格数据利用二元密度聚类算法进行编码操作,实现对价格高低类别的划分,在此过程中可直接排除干扰值。

图2 数据融合方法流程示意图

对编码后的市场价格和原材料价格的时间序列进行动态时间规整计算,得到这两条时间序列的相似系数,时间序列对应时间的间隔即为价格的时间延迟。将该价格的时间延迟作为物资的市场价格和原材料价格数据的合并条件,完成数据融合。

2.1 计算价格的时间延迟

根据设定的细粒度截取经济指标、原材料价格和物资的市场价格的独热码形式的数据。使用二元密度聚类对经济指标和物资的市场价格以及原材料价格和物资的市场价格在价格和时间两个维度上做聚类操作,将具体的数值划分到聚类簇中用簇号表征[12]。在此基础上,调用动态时间规整算法对簇号序列间的相似度做计算,得出两个序列间相似程度的数值表示形式,即相似系数,将其储存在一个数组。选中相似系数数组中最小的相似系数所对应的细粒度,计算经济指标和物资的市场价格以及原材料价格与物资的市场价格之间的时间延迟,即为在该粒度下价格的时间延迟。价格的时间延迟计算流程如图3所示。

图3 价格的时间延迟计算流程

2.2 基于价格的密度聚类

时间序列作为数据挖掘的关键,可通过聚类分析找到不同序列的特征,最终确定该序列所属的类别。密度聚类算法无需事先指定簇的个数,即最终簇的个数不确定,可满足从数据集中分析得到类别个数的要求[13]。

首先计算被细粒度切割形成的二维数组中各个数值所归属的簇号,并返回输出簇号序列。根据价格数值大小进行归类,数值较大的被聚类到1号簇,数值较小的则被归到0号簇,噪声数据则被归为簇号-1类,簇号归类后删除噪声数据输出簇号序列。

初始化二元密度聚类算法并调制其参数,设置密度阈值为2.0,设定半径的取值范围[0.001,1],步长为0.05。对输入的物资市场价格簇号序列和原材料价格簇号序列做聚类操作,将聚类的结果保存到一个自定义的结果对象中,并将所有结果储存为聚类结果数组,从聚类结果数组中过滤出聚类簇数大于1的结果对象,从中取出最大的半径参数作为调参的结果。选中二维数组中的第1个子数组,依次与其他子数组做密度聚类计算,完成后第2个子数组循环上述操作,直至二维数组中全部的子数组均被遍历。

2.3 基于时间的密度聚类

在完成基于价格的密度聚类后,基于价格的持续时间对物资的市场价格和原材料价格进行密度聚类,得到簇号序列。在簇号序列中根据簇号连续出现的次数生成一个持续时间序列,持续时间序列中每个元素值对应的就是价格簇号序列中同一个簇号连续出现的次数。由于持续时间序列的输入数据可能存在噪声点,需对噪声点进行过滤,在对其进行过滤后即完成了针对时间与价格的二元密度聚类,可对最终得到的持续时间序列进行动态时间规整。

2.4 基于时间特征的相似度计算

物资的市场价格和原材料价格时间序列由于每次记录的时间间隔不同,因此这两个簇号序列的长度可能不相等。为此,笔者使用具有弹性度量性质的动态时间规整算法计算两个长度不相等的时间序列的相似系数,将其存入一个相似系数数组中[14],基于时间特征的相似度计算流程如图4所示。

图4 基于时间特征的相似度计算流程

具体操作方法,首先将物资的市场价格和原材料价格的簇号序列转化为簇号序列字符串,利用动态时间规整的弹性度量方式,对序列做动态时间规整计算。

动态时间规整即是对时间序列做对齐操作,将较长的簇号序列的长度压缩至与较短簇号序列长度相等。设两个时间序列长度为n和m,则需构造一个长为n、宽为m的矩阵网格。矩阵元素(i,j)表示长度为n的簇号序列上i点到长度为m的簇号序列上j点的距离,距离越小则相似度越高,目的即是寻找沿着该路径的积累距离达到最小值的路径。通过动态时间规整计算,将两个长度不相等的簇号序列进行压缩,压缩后得到两个长度相同的子序列,计算压缩过程中累计的最短距离,此距离即为两个子序列的相似系数。将得到的全部相似系数储存为一个相似系数数组中。

遍历选出最小相似系数对应的两条簇号序列,确定每个簇号序列第1个簇号所对应的日期时间,计算出这两个簇号序列的时间间隔。如图5所示结果表明,时间间隔为11周时价格序列的相似度系数最大。

图5 延迟周数的相似度系数对比

延迟周数的价格趋势对比如图6所示。

图6 延迟周数的价格趋势对比

为验证上述结论,笔者分别选取了2019年-2021年间4次采购的电缆不含税单价平均值,并以周为单位依次前推,绘制原材料价格(铜价)和电缆不含税单价的折线图。如图6所示,前推10周和12周的相似度与前推11周最接近,前推1周的相似度与前推11周差距最大。这证明了上述得出的时间间隔为11周是相似度最大的结论。

2.5 价格数据融合

以原材料价格时间为比对基准,首先找到原材料价格记录的最初时间,在此时间基础上后延计算得到的时间延迟长度找到对应时间的市场价格。表示最初的原材料价格实际对物资的市场价格产生影响,导致市场价格进行调整后的价格应为后延时间延迟长度所对应的市场价格。最后将物资的市场价格数据与原材料价格数据按上述操作进行合并,完成价格的数据融合。

3 结 语

物资的市场价格受到多因素的影响,因此在预测物资的市场价格时需要考虑与其相关的特征进行特征数据的融合。通过二元密度聚合方法与动态时间规划算法的结合,计算出不同时间间隔内物资的市场价格与原材料价格走势的相似度并找到相似度最高的点,即价格的时间延迟。二元密度聚类分别从价格、价格对应的日期两个维度进行编码操作,在此过程中可有效的规避特征数据中的干扰值。动态时间规整算法则用于计算编码后的市场价格和原材料价格之间的相似系数,得到价格的时间延迟。价格的时间序列以价格的时间延迟作为物资市场价格和原材料价格数据合并的依据,利用合并后的价格数据训练价格的预测模型。通过价格的预测模型可针对当前日期及经济指标,预测物资的市场价格,采购人员可将该预测价格视为一个相对公平的指导价格,减少干扰值的影响,为采购人员提供决策意见。

猜你喜欢
规整原材料物资
水利工程原材料质量检测控制探讨
被偷的救援物资
观点
300kt/a硫酸系统规整填料使用情况简介
知识无穷尽
电力企业物资管理模式探讨
提高日用玻璃陶瓷规整度和表面光滑度的处理方法
电梯的建筑化艺术探索
救援物资
基于发音机制的贪婪自适应语音时长规整算法