一种数据缺失修补的方法和装置
【技术领域】
本发明涉及计算机应用技术领域,特别涉及一种数据缺失修补的方法和装置。
【背景技术】
随着计算机技术的迅速发展,尤其是大数据时代的到来,数据分析已经广泛地应用于质量管理、产品设计、个性化服务等各方面和各领域。特别是电子商务这一容易产生大数据且逐渐与人类生活密切相关的领域,对数据分析的需求更加强烈。然而,数据分析能够实施且具有一定准确性的前提是数据完整性,当面临数据缺失问题时,需要对缺失数据进行修补。例如,如图1中所示为电子商务平台上某商家的销量-时间序列图,图中横轴表示时间,纵轴表示销量。在T1和T2的时间区间内,存在数据缺失,为了数据分析的需要,需要对该部分数据进行修补。现有的数据缺失修补的方式主要存在以下几种:
一种是平均值修补方式,运用待修补序列中已存在值的平均值,作为缺失区间中各时间点对应的值。另一种方式是缺失区间两端连线的方式,即将确实区间两端值进行直线连接,缺失区间中各时间点对应的直线上的点作为各时间点的值。
无论是上述哪种方式,对缺失数据进行修补的方式都过于粗放,准确性较差。仍以商家的销量-时间序列为例,商品销量可能受季节性影响较大,对于上述两种方式,商家销量的季节性表现都被平滑而无法体现。
【发明内容】
有鉴于此,本发明提供了一种数据缺失修补的方法和装置,以便于提高数据修补的准确性。
具体技术方案如下:
本发明提供了一种数据缺失修补的方法,该方法包括:
从数据库中确定与待修补序列类别对应的序列作为候选序列;
从所述候选序列中,选择与所述待修补序列之间互相关程度满足预设要求的序列,作为待修补序列的邻接序列;
将所述待修补序列中数据完整区间的数据值作为目标,各邻接序列中所述数据完整区间对应的数据值作为预测因子,建立回归模型;
将各邻接序列中与待修补序列的数据缺失区间对应的数据值作为预测因子,利用所述回归模型回归出所述待修补序列的数据缺失区间的数据值。
根据本发明一可选实施方式,该方法还包括:
从所述数据库中识别出存在数据缺失的序列,将存在数据缺失的序列作为所述待修补序列。
根据本发明一可选实施方式,所述从数据库中确定与待修补序列类别对应的序列作为候选序列包括:
确定所述数据库中与所述待修补序列类别一致的序列,和/或,是所述待修补序列类别的上层类别的序列,将确定的序列作为候选序列。
根据本发明一可选实施方式,该方法还包括:对所述数据库中的序列基于类别进行归并处理,得到各层级类别的序列。
根据本发明一可选实施方式,候选序列Y(t)与所述待修补序列X(t)之间互相关程度SCC(X(t),Y(t))的计算时,采用以下公式:
其中,k为预设的时间窗口,
根据本发明一可选实施方式,所述预设要求包括:互相关程度的绝对值排在前若干个,或者互相关程度的绝对值大于或等于预设阈值。
根据本发明一可选实施方式,所述回归模型包括:梯度提升决策树GBDT、神经网络模型或者线性回归模型。
根据本发明一可选实施方式,所述数据库为电子商务平台销售数据库;
所述待修补序列为商家的销售数据序列。
本发明还提供了一种数据缺失修补的装置,该装置包括:
候选序列识别单元,用于从数据库中确定与待修补序列类别对应的序列作为候选序列;
邻接序列选择单元,用于从所述候选序列中,选择与所述待修补序列之间互相关程度满足预设要求的序列,作为待修补序列的邻接序列;
回归模型建立单元,用于将所述待修补序列中数据完整区间的数据值作为目标,各邻接序列中所述数据完整区间对应的数据值作为预测因子,建立回归模型;
缺失数据重构单元,用于将各邻接序列中与待修补序列的数据缺失区间对应的数据值作为预测因子,利用所述回归模型回归出所述待修补序列的数据缺失区间的数据值。
根据本发明一可选实施方式,该装置还包括:
数据缺失识别单元,用于从所述数据库中识别出存在数据缺失的序列,将存在数据缺失的序列作为所述待修补序列提供给所述候选序列识别单元。
根据本发明一可选实施方式,所述候选序列识别单元,具体用于确定所述数据库中与所述待修补序列类别一致的序列,和/或,是所述待修补序列类别的上层类别的序列,将确定的序列作为候选序列。
根据本发明一可选实施方式,该装置还包括:序列归并处理单元,用于对所述数据库中的序列基于类别进行归并处理,得到各层级类别的序列。
根据本发明一可选实施方式,所述邻接序列选择单元在计算候选序列Y(t)与所述待修补序列X(t)之间互相关程度SCC(X(t),Y(t))时,采用以下公式:
其中,k为预设的时间窗口,
根据本发明一可选实施方式,所述预设要求包括:互相关程度的绝对值排在前若干个,或者互相关程度的绝对值大于或等于预设阈值。
根据本发明一可选实施方式,所述回归模型包括:梯度提升决策树GBDT、神经网络模型或者线性回归模型。
根据本发明一可选实施方式,所述数据库为电子商务平台销售数据库;
所述待修补序列为商家的销售数据序列。
由以上技术方案可以看出,本发明从与待修补序列类别对应的序列中,选择与待修补序列互相关程度较高的序列作为邻接序列,将该邻接序列作为参考创建回归模型,基于该回归模型回归出的待修补序列中数据缺失区间的数据的变化趋势,就能够尽量跟随邻接序列中相同区间的数据变化趋势。相比较现有技术中粗放地数据修补方式,本发明能够提高数据修补的准确性。
【附图说明】
图1为电子商务平台上商家销售数据缺失的示意图;
图2为本发明实施例提供的主要方法流程图;
图3为本发明实施例提供的
图4为本发明实施例提供的装置结构图。
【具体实施方式】
为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。
图2为本发明实施例提供的主要方法流程图,如图2中所示,该方法主要包括以下步骤:
在201中,从数据库中确定与待修补序列类别对应的序列作为候选序列。
在执行本步骤之前,可以首先对数据库中的待修补序列进行识别,即从数据库中识别出存在数据缺失的序列。通常对于数据库的操作由R语言实现(R语言是用于统计分析、绘图的语言和操作环境),在R语言中,通常采用NA标识数据缺失或不存在,因此可以通过NA标识来识别数据序列中是否存在数据缺失。在本发明实施例中,可以设置一定的过滤规则,例如将数据缺失区间小于预设区间长度的序列过滤掉,仅保留数据缺失区间大于或等于预设区间长度的序列作为待修补序列。
由于通常数据序列中的数据是具有一定类别的,该类别可以体现于该数据所对应的对象、对象的属性等。例如,对于工厂工人A生产零件a的数量序列,该序列的类别可以是零件a的类别;对于电子商务平台商家B的商品b销售数量序列,该序列的类别可以是商品b的类别。
通常在类别上对应的序列之间数据变化趋势比较类似,因此,在本发明中将在类别上对应的序列确定出来,作为待修补序列的候补序列,以用于后续进一步确定待修补序列的邻接序列,并将邻接序列作为对待修补序列的数据修补参考。
在本发明实施例中,所谓在类别上对应可以是与待修补序列类别一致,也可以是待修补序列类别的上层类别。例如,对于工厂工人A生产零件a的数量序列,可以将该工厂其他工人生产零件a的数量序列、以及该工厂生产a1种类的零件的数量序列作为候选序列,其中a1为a的上层类别,例如a为轴承,a1为紧固件。再例如,对于电子商务平台商家B的商品b的销售数量序列,可以将该电子商务平台其他商家的商品b的销售数量序列、以及该电子商务平台商品b1的销售数量序列作为候选序列,其中b1为b的上层类别,例如b为裙装,b1为女装、服装等。
在确定候选序列时,为了方便确定待修补序列类别的上层类别的序列,可以首先将数据库中的序列基于类别进行归并处理,得到各层级类别的序列。例如将该工厂工人生产轴承的数量序列、生产螺钉的数量序列、生产螺母的数量序列等进行归并处理,得到该工厂生产紧固件的数量序列,将该工厂工人生产销的数量序列、生产键的数量序列等进行归并处理,得到该工厂生产定位件的数量序列,等等。再例如将电子商务平台各商家裙装的销售数量序列、女士大衣的销售数量序列、女士衬衫的销售数量序列等进行归并处理,得到该电子商务平台女装的销售数量序列。将电子商务平台男装的销售数量序列、女装的销售数量序列、童装的销售数量序列等进行归并处理,得到该电子商务平台服装的销售数量序列。
在202中,从候选序列中,选择与待修补序列之间互相关程度满足预设要求的序列,作为待修补序列的邻接序列。
在本步骤中,可以将候选序列作为预测因子,采用样本互相关函数(SCCF)计算各候选序列与待修补序列的互相关程度。计算出的互相关程度可能是正数,也可能是负数,即两者正相关或负相关。在本发明实施例中上述的预设要求可以是互相关程度的绝对值排在前若干个,或者互相关程度的绝对值大于或等于预设阈值。其中前若干个的选择可以采用预设的数量,即排在前n个的序列,也可以选择排在前m%的序列。
下面对计算各候选序列与待修补序列的互相关程度的方式进行简单描述,假设:
待修补序列为:X(0),X(1),X(2),……表示为X(t);
候选序列为:Y(0),Y(1),Y(2),……表示为Y(t)。
由于时间序列可能是无穷,因此在计算时可以设置一个时间窗口k,计算在这个时间窗口之内的SCC:
其中,
在203中,将待修补序列中数据完整区间的数据值作为目标,各邻接序列中数据完整区间对应的数据值作为预测因子,建立回归模型。
本步骤中,实际上是回归出待修补序列与各邻接序列中数据的关系,在本发明实施例中,回归模型可以采用GBDT(梯度提升决策树)、神经网络模型或者线性回归模型等中任一种。由于回归模型的建立过程可以采用现有技术中较成熟的方法,在此不再详述。
在204中,将各邻接序列中与待修补序列的数据缺失区间对应的数据值作为预测因子,利用步骤203建立的回归模型回归出待修补序列的数据缺失区间的数据值。
由于在上述步骤203建立的回归模型中已经回归出了待修补序列与邻接序列中数据的关系,因此依据各邻接序列中与待修补序列的数据缺失区间对应的数据值,就可以回归出待修补序列的数据缺失区间的数据值。然后就可以利用回归出的数据值对待修补序列的数据缺失区间进行修补。
下面结合一个具体的实例,假设对电子商务平台的销售数据库进行数据缺失的识别后,确定出其中一个缺失数据的序列为:电子商务平台商家A对女士大衣的销售数量序列。假设电子商务平台商家A对女士大衣的销售数量序列如图1中所示,在时间T1至T2区间存在缺失,那么将该序列作为待修补序列,该待修补序列的数据缺失区间为T1至T2。
对电子商务平台的销售数据库进行类别归并处理后,可以得到如图3中所示的类别层级结构。销售记录可以包括各商家的销售数量序列。
将该数据库中其他商家女士大衣的销售数量序列中数据完整的序列作为该待修补序列的候选序列,将该数据库中女装的销售数量序列作为该待修补序列的候选序列,将该数据库中服装的销售数量序列作为该待修补序列的候选数列,等等。需要说明的是,在选择上层类别的序列作为候选序列时,可以仅包括其中数据完整的序列,也可以包含所有序列(既包含数据完整的序列,也包含数据不完整的序列)。
分别计算各候选序列与待修补序列之间的互相关程度,该互相关程度可能是正数,反映正相关,例如商家B与商家A在相同时间段销售得都多,在相同时间段销售得都少,从相同的时间段销售的数量都开始上升,在相同时间段销售的数量都开始下降,等等。该互相关程度也可能是负数,反映负相关,例如商家C在某时间段销售得多,商家A在相同时间段销售得少,商家C在某时间段销售的数量开始上升,商家A在相同时间段销售的数量开始下降,等等。
例如:
商家A女士大衣的销售序列与商家B女士大衣的销售序列的互相关程度为0.8;
商家A女士大衣的销售序列与商家C女士大衣的销售序列的互相关程度为-0.7;
商家A女士大衣的销售序列与女装的销售序列的互相关程度为0.6;
商家A女士大衣的销售序列与服装的销售序列的互相关程度为-0.7;
等等。
在本发明实施例中,选择互相关程度的绝对值排在前5%的序列作为邻接序列。
将待修补序列中除了T1至T2之间的区间之外的数据值作为目标,各邻接序列中同样除了T1至T2之间的区间之外的数据值作为预测因子,建立回归模型。然后将各邻接序列中T1至T2之间的区间对应的数据值作为预测因子,利用回归模型回归出待修补序列中T1至T2之间的区间的数据值,利用回归出的数据值对待修补序列进行修补。这样修补出来的数据就能够反映该商品所在类别的整体销售趋势。
以上是对本发明所提供的方法进行的详细描述,下面对本发明提供的装置进行详细描述。图4为本发明实施例提供的装置结构图,如图4中所示,该装置可以包括:候选序列识别单元01、邻接序列选择单元02、回归模型建立单元03和缺失数据重构单元04,还可以包括数据缺失识别单元00和序列归并处理单元05。各组成单元的主要功能如下:
数据缺失识别单元00负责从数据库中识别出存在数据缺失的序列,将存在数据缺失的序列作为待修补序列提供给候选序列识别单元01。通常对于数据库的操作由R语言实现(R语言是用于统计分析、绘图的语言和操作环境),在R语言中,通常采用NA标识数据缺失或不存在,因此可以通过NA标识来识别数据序列中是否存在数据缺失。在本发明实施例中,可以设置一定的过滤规则,例如将数据缺失区间小于预设区间长度的序列过滤掉,仅保留数据缺失区间大于或等于预设区间长度的序列作为待修补序列。
候选序列识别单元01负责从数据库中确定与待修补序列类别对应的序列作为候选序列。具体地,候选序列识别单元01可以确定数据库中与待修补序列类别一致的序列,和/或,是待修补序列类别的上层类别的序列,将确定的序列作为候选序列。
另外,为了方便确定待修补序列类别的上层类别的序列,序列归并处理单元05可以首先对数据库中的序列基于类别进行归并处理,得到各层级类别的序列。
邻接序列选择单元02负责从候选序列中,选择与待修补序列之间互相关程度满足预设要求的序列,作为待修补序列的邻接序列。可以将候选序列作为预测因子,采用样本互相关函数(SCCF)计算各候选序列与待修补序列的互相关程度。计算出的互相关程度可能是正数,也可能是负数,即两者正相关或负相关。在本发明实施例中上述的预设要求可以是互相关程度的绝对值排在前若干个,或者互相关程度的绝对值大于或等于预设阈值。其中前若干个的选择可以采用预设的数量,即排在前n个的序列,也可以选择排在前m%的序列。
邻接序列选择单元02在计算候选序列Y(t)与待修补序列X(t)之间互相关程度SCC(X(t),Y(t))时,可以采用以下公式:
其中,k为预设的时间窗口,
回归模型建立单元03负责将待修补序列中数据完整区间的数据值作为目标,各邻接序列中数据完整区间对应的数据值作为预测因子,建立回归模型。在本发明实施例中,回归模型可以采用GBDT(梯度提升决策树)、神经网络模型或者线性回归模型等中任一种。
缺失数据重构单元04负责将各邻接序列中与待修补序列的数据缺失区间对应的数据值作为预测因子,利用回归模型回归出待修补序列的数据缺失区间的数据值,就可以利用回归出的数据值对待修补序列进行数据修补。
在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。