数据处理方法、数据识别和学习方法及其装置与流程

文档序号:14685524发布日期:2018-06-13 00:10
数据处理方法、数据识别和学习方法及其装置与流程

本发明涉及数据处理领域,具体涉及一种数据处理方法、数据识别和学习方法及其装置。



背景技术:

在数据挖掘或机器学习过程中,对于有监督学习模型标识的分类识别至关重要。然而,在该识别过程中存在着正类量级和反类量级比率失调验证的情况。因此,如果不对样本数据进行预处理,只通过简单的模型识别,很有可能导致精度下降等问题发生。

现有的数据预处理包括离群点处理、欠采样和过采样等。然而,这些技术同样存在着各种问题。例如,离群点处理通过数据分布趋势或集中情况将偏离的数据点进行特殊处理,这可能导致反类数据误删除等情况发生,特别是例如在风险用户的特征数据必然出现离群现象的情况下。通过欠采样或过采样的方式虽然可在各个分类的量级层面对数据进行处理,但仍无法解决正类数据特征覆盖反类特征的影响,同时还打破了采样的随机性。

因此,需要一种用于对数据进行预处理以解决上述问题中的至少一些问题的数据处理方法及其装置。



技术实现要素:

为了解决上述问题中的至少一些,本发明实施例提供了一种数据处理方法、数据识别和学习方法及其装置,以高精度地获得所需数据。

根据本发明的一个方案,提供了一种数据处理方法,包括:

(a)通过聚类的方式将样本数据划分为多个编组;

(b)检查所述多个编组中每个编组是否存在正类标识数据,并删除不包含正类标识数据的编组;

(c)确定所述多个编组中正类标识数据的总数量;

(d)确定所述正类标识数据的总数量在所述样本数据中所占比例是否大于第一预定阈值;以及

(e)在所述比例大于所述第一预定阈值的情况下,保留进行步骤(b)处理后的数据。

根据本发明的另一方案,提供了一种用于模式识别和学习的方法,包括:基于上述数据处理方法获得样本数据的经处理的多个编组;以及基于所述样本数据的经处理的多个编组来执行模式识别和学习。

根据本发明的另一方案,提供了一种数据处理装置,包括:

编组划分模块,用于通过聚类的方式将样本数据划分为多个编组;

数据检查模块,用于检查所述多个编组中每个编组是否存在正类标识数据;

数据删除模块,用于删除不包含正类标识数据的编组;

数据数量确定模块,用于确定所述多个编组中正类标识数据的总数量;

数据比例确定模块,用于确定所述正类标识数据的总数量在所述样本数据中所占比例是否大于第一预定阈值;以及

数据保留模块,用于在所述比例大于所述第一预定阈值的情况下,保留所述数据删除模块处理后的数据。

根据本发明的另一方案,提供了一种用于模式识别和学习的装置,包括:

数据编组获取模块,用于从上述数据处理装置获得样本数据的经处理的多个编组;以及

识别和学习子模块,用于基于所述样本数据的经处理的多个编组来执行模式识别和学习。

根据本发明的另一方案,提供了一种数据处理装置,包括:

存储器,用于存储可执行指令;以及

处理器,用于执行存储器中存储的可执行指令,以执行上述数据处理方法。

根据本发明的另一方案,提供了一种用于模式识别和学习的装置,包括:

存储器,用于存储可执行指令;以及

处理器,用于执行存储器中存储的可执行指令,以执行上述模式识别和学习方法。

根据本发明的另一方案,提供了一种其上承载由计算机程序的存储器设备,当由处理器执行所述计算机程序时,所述计算机程序使所述处理器执行上述数据处理方法。

根据本发明的另一方案,提供了一种其上承载由计算机程序的存储器设备,当由处理器执行所述计算机程序时,所述计算机程序使所述处理器执行上述模式识别和学习方法。

上述方案可通过聚类的方法找到所需处理的数据样本的共性,剔除部分干扰数据,平衡正类数据和反类数据的比例,并保留相似性较高的正反类数据,从而可高精度地获得所需数据样本。在这样的数据样本上进行模型学习可大幅提高后续模型学习的精度。

附图说明

通过下面结合附图对发明进行的详细描述,将使本发明的上述特征和优点更加明显,其中:

图1示出了根据本发明实施例的一种数据处理方法的简要流程图;

图2示出了根据本发明实施例的一种用于模式识别和学习的方法的简要流程图;

图3示出了根据本发明实施例的数据处理装置的结构的简要框图;

图4示出了根据本发明实施例的编组划分模块的结构的简要框图;

图5示出了根据本发明实施例的用于模式识别和学习的装置的结构的简要框图;

图6示出根据本发明实施例的数据处理方法的一种具体实现;

图7示出根据本发明的实施例的方差与聚类个数的关系图表;以及

图8示出根据本发明实施例的图3/图5所示装置的示例硬件布置的框图。

具体实施方式

下面,参考附图详细说明本发明的优选实施方式。在附图中,虽然示于不同的附图中,但相同的附图标记用于表示相同的或相似的组件。为了清楚和简明,包含在这里的已知的功能和结构的详细描述将被省略,以避免使本发明的主题不清楚。

在对样本数据的应用中,可能存在着所需数据是比例较小数据的情况。例如在部分用户风险识别、异常识别等应用过程中,在作为样本采集的行为数据中正常用户的数据占大部分,而想要识别出的风险用户/异常用户的数据往往比例较小。这造成了数据样本中反类(正常用户)数据和正类(异常/风险用户)数据的比例失调。这种情况可导致在进行模型学习时,反类数据的特征会严重覆盖正类数据,从而导致模型学习精度过低,并进而导致无法识别风险用户或将风险用户错误地识别为正常用户的情况。

为此,本发明实施例参考图1至图4提供了一种数据处理方法、一种数据识别和学习方法及其装置。在此,正类数据指的是针对模型学习的目标的数据,而其他数据为反类数据。例如在上述的风险识别/异常识别的应用中,风险用户的数据为正类数据,而正常用户的数据为反类数据。

图1示出了根据本发明实施例的一种数据处理方法的简要流程图。如图1所示,该数据处理方法包括:

步骤S110,通过聚类的方式将样本数据划分为多个编组;

步骤S120,检查该多个编组中每个编组是否存在正类标识数据,并删除不包含正类标识数据的编组;

步骤S130,确定该多个编组中正类标识数据的总数量;

步骤S140,确定正类标识数据的总数量在样本数据中所占比例是否大于第一预定阈值;以及

步骤S150,在比例大于第一预定阈值的情况下,保留进行步骤S120处理后的数据。

上述方案可通过聚类的方法初步找到所需处理的数据样本的共性,剔除部分干扰数据,平衡正类数据和反类数据的比例,并保留相似性较高的正反类数据,从而可高精度地获得所需数据样本。

可选地,在一些实施例中,如图1所示,还可包括步骤S160,在比例小于第一预定阈值的情况下,将步骤S120处理后的数据作为样本数据执行步骤S110-S150,其中,在重复执行的步骤S110中增加编组的数量。

通过使用步骤160形成的循环,可多次剔除干扰数据,平衡正类数据和反类数据的比例,并保留相似性较高的正反类数据,实现更高的处理精度。

在一些示例中,还可设置编组的最大数量值。在此情况下,在步骤(f)中,如果当前编组的数量大于等于该最大数量值,不再增加编组的数量,并保留最近一次步骤(b)处理后的数据,结束数据处理。

在一些示例中,可采用k-means算法来实现所述聚类的方式,其中,通过k-means算法确定编组的初始数量,使得在初始数量处,各个聚类内的数据方差的总体变化减缓。

需要注意的是,本发明不限于使用数据方差,也可以使用任何可表征变化量的变化速度的指标来实现该步骤。

在一些示例中,步骤(a)可包括:

(a1)在样本数据中随机抽取多个样本数据分别作为该多个编组中每个编组的中心点,该多个数据样本的数量与要划分的多个编组的数量相等;

(a2)计算所有数据样本到每个中心点的距离,将每个数据样本划分到距离其最近的中心点所在的编组中;

(a3)计算每个编组中所有数据样本的平均值,并将平均值做为每个编组中新的中心点;

(a4)针对每个编组,判断新的中心点与之前的中心点之差是否大于第二预定阈值,以及如果中心点之差大于第二预定阈值,则使用新的中心点执行步骤(a2)和(a3),如果中心点之差不大于第二预定阈值,将新的中心确定为最优聚类中心;以及

(a5)计算所有样本数据到每个最优聚类中心点的距离,将每个样本数据重新划分到距离其最近的最优聚类中心点所在的编组中。

图2示出了根据本发明实施例的一种用于模式识别和学习的方法的简要流程图。如图2所示,该方法包括:

步骤S210,根据图1所示的数据处理方法获得样本数据的经处理的多个编组;以及

步骤S220,基于样本数据的经处理的多个编组来执行模式识别和学习。

需要注意的是,图1和图2所示方法仅是示意性的。可对图1和图2所示方法进行落在本发明保护范围之中的任何修改。例如,虽然图1中示出了由增加编组数量的步骤160所形成的循环,在一些实施例中(例如,在步骤110-130的一次操作已经获得了符合要求的数据的情况下),这样的循环并不是必要的。

图3示出了根据本发明实施例的数据处理装置的简要框图。如图3所示,该装置包括:

编组划分模块310,用于通过聚类的方式将样本数据划分为多个编组;

数据检查模块320,用于检查该多个编组中每个编组是否存在正类标识数据;

数据删除模块330,用于删除不包含正类标识数据的编组;

数据数量确定模块340,用于确定该多个编组中正类标识数据的总数量;

数据比例确定模块350,用于确定正类标识数据的总数量在样本数据中所占比例是否大于第一预定阈值;以及

数据保留模块360,用于在比例大于第一预定阈值的情况下,保留数据删除模块330处理后的数据。

在一些实施例中,编组划分模块310还可用于在比例小于第一预定阈值的情况下,将数据删除模块处理后的数据作为样本数据来执行编组划分,以重复数据检查模块、数据删除模块、数据数量确定模块、数据比例确定模块和数据保留模块的操作,其中,在对数据删除模块330处理后的数据的编组操作中增加编组的数量。通过编组划分模块310的该操作,可形成剔除干扰数据,平衡正类数据和反类数据的比例,并保留相似性较高的正反类数据的一个循环,因此可针对更加复杂的数据情况,并实现更高的处理精度。

图3所示的装置还可包括:最大编组数设置模块370,用于设置编组的最大数量值。如果当前编组的数量大于等于最大数量值,则编组划分模块310在重复执行数据编组操作时不再增加编组的数量,且数据保留模块360保留最近一次数据删除模块处理后的数据。

在一些示例中,编组划分模块310可采用k-means算法来实现所述聚类的方式。其中,编组划分模块310通过k-means算法确定编组的初始数量,使得在初始数量处,各个聚类内的数据方差的总体变化减缓。当然,如上所述,也可以使用任何可表征变化量的变化速度的指标来实现该步骤。

在一些示例中,编组划分模块310还可包括多个子模块。如图4所示,编组划分模块310包括:

中心点确定子模块311,用于在样本数据中随机抽取多个样本数据分别作为该多个编组中每个编组的中心点,该多个数据样本的数量与要划分的多个编组的数量相等;

中心点距离确定子模块312,用于计算所有数据样本到每个中心点的距离,将每个数据样本划分到距离其最近的中心点所在的编组中;

中心点重确定子模块313,用于计算每个编组中所有数据样本的平均值,并将平均值作为每个编组中新的中心点;

最优聚类中心确定子模块314,用于针对每个编组,判断新的中心点与之前的中心点之差是否大于第二预定阈值,以及如果中心点之差大于第二预定阈值,则将新的中心点发送到中心点距离确定子模块312,以重新执行数据编组和新中心点确定,如果中心点之差不大于第二预定阈值,将新的中心确定为最优聚类中心;以及

编组确定子模块315,用于计算所有样本数据到每个最优聚类中心点的距离,将每个样本数据重新划分到距离其最近的最优聚类中心点所在的编组中。

图5示出了根据本发明实施例的一种用于模式识别和学习的装置的简要框图。如图5所示,该装置包括:

数据编组获取模块410,用于从根据图3所示的数据处理装置获得样本数据的经处理的多个编组;以及

识别和学习模块420,用于基于样本数据的经处理的多个编组来执行模式识别和学习

需要注意的是,上述图3至图5的结构框图仅是示意性的,其具体表现也可通过其他形式给出。例如在一些具体实现中,图3至图5所示的装置中各模块/子模块所产生的数据也可保存在某个存储设备(未示出)中,其他模块/子模块可通过从该存储设备读取数据来获得该各模块/子模块所生成的各种数据。在该情况下,图3至图5所示的装置中各模块/子模块之间的连接示意可能会发生变化。然而这种变化并未超出本发明所示实施例的范围,且应被认为在本发明所示实施例的范围之内。例如,虽然在图3中示出了最大编组设置模块370,但在一些实施例中,该模块并非一定需要。

下面将参考图6描述图1至图5所示的方法/装置的具体实现。需要说明的是,图6仅示出了对本发明实施例提供的方法的一种具体实现,而不应被视为是对本发明实施例提供的方法的限制。例如,在另一些具体实现中,也可以不使用下述的k-means算法,而是使用它的其他变型或本领域中能够用于将具有共性的数据聚类的其他任何算法/方法。

图6所示的步骤可大致对应于图1中所示的步骤,例如,图6中的步骤A02、A03可分别对应于图1中的步骤S110和S120,图6中的步骤A04可对应于图1中的步骤S130和S140,以及图6中的步骤A05和A06可分别对应于图1中的步骤S160和S150。然而这种对应并不是必要的且不是严格对应的,在本发明实施例的一些变型中,具体步骤的内容也可以存在不同。

图6所示的流程所使用的聚类算法k-means算法与通常使用的k-means算法存在着不同之处。例如,在进行k-means聚类之前只进行k值的判断,而没有进行常规的数据清洗。

在图6的步骤A01中,可确定k-means算法的初始k值。在本发明的技术方案中,该k值可表示要划分的编组(或聚类)的数量。

k值的确定可采用人工指定、自动指定或二者相结合的方法来实现。例如,如果数据处理人员对数据应用场景非常熟悉,可根据先验经验人工指定聚类的个数。然而在其他一些情况下,也可由系统自动确定k值。下面提供了一种k值的自动确定方法。

首先,指定从2到N的范围。在本发明的一个示例性的示例中,为了进行示出,N值可被确定为15。然而需要注意的是,N的取值并不限于15,而是可根据具体的实现场景选择的任意适合的值。

接下来,在上述选择的范围中执行循环遍历,计算随着聚类数量的增加,聚类内方差的变化情况。在本发明的一个示例中可采用公式来计算该方差变化,其中,u是k类的均值,Xi是类中的各个数据点。

然后,确定所计算出的方差变化的变化速度变缓处的聚类数量。在本发明实施例的方案中,判断适合的k值的标准可以是:适合的聚类个数k对应于这样的一个转折点,在该点之前类内方差急剧减小,在该点之后方差减小变缓。可参考图7所示的方差与聚类个数的关系图表来执行该步骤,或将方差变化的变化速度与某个阈值相比较来确定方差变化的变缓。在手动指定与系统自动指定相结合的方案中,有经验的数据分析人员可例如参考图7所示的结果,选择4或5作为k的取值。或者在系统自动指定的方案中,也可以例如计算方差变化的变化速度并将其与某个阈值相比较来确定方差变化的变缓时刻,对此本发明不再赘述。在优选实施例中,初始k值可选择较小的值,在例如图6的示例中,初始k值可选择为4。

需要注意的是,可在每次使用k-means算法来实现本发明技术方案时都重新确定初始k值。然而在针对相同场景的重复数据处理中,数据处理人员也可能根据先验经验在多次实现本发明技术方案时使用同一初始k值,而无需执行步骤A01的初始k值确定。

在图6的步骤A02中,利用k-means算法来将样本数据划分为多个编组(聚类)。其具体步骤如下:

1)将根据步骤A01得到的聚类编组的数量赋值给变量K,同时随机抽取K个数据样本作为中心点。

2)计算所有数据样本到该K个中心点的距离,并将每个数据样本归类到距离其最近的中心点所在的编组。

3)对每个编组中的所有数据样本求平均值,以作为该编组的新的中心点。

4)针对每个编组,判断该新的中心点与先前的中心点的差异性,如果差异过大(例如,其距离/差大于某个预定阈值),返回步骤2)、3)进行继续迭代,而如果差异较小(例如,小于该预定阈值),这停止迭代,将该新的中心点确定为最优聚类中心。

5)根据步骤4)中计算出的最优聚类中心点,(可选地)对各个最优聚类中心点进行编号,并计算所有样本数据到每个最优聚类中心点的距离,将每个样本数据重新划分(归类)到距离其最近的最优聚类中心点所在的编组中。

在步骤A02中将样本数据划分到各个编组之后,在步骤A03中检查各个数据编组中是否包含正类数据。如果没有包含,将该编组内的所有数据从数据范围中删除。如果存在正类数据,继续保留该编组内的数据。在此,可新建状态变量f,如果存在数据编组删除,则f=true,如果不存在数据编组删除,则f=false。

然后,在步骤A04中,检查样本中的正类数据和反类数据的量级是否达到要求,例如,其比例是否达到平衡。在此可设定一个阈值参数a,将正类样本的数量G和数据样本的总量M之比与该阈值参数进行比较,来判断该比例是否平衡。例如:

如果G/M>=a,

则比例达到平衡,执行步骤A06,

如果G/M<a,

则比例未达到平衡,执行步骤A05->A02->A03->A04,在此可以可选地在每个循环都相应改变步骤A03中状态变量f的取值。

在步骤A05中,对k-means算法的参数k进行调整,使数据更加分散,从而更好地调整正类数据和反类数据。具体地,每次执行该步骤时都增加参数k的取值。

优选地,在该步骤可设置参数k的最大取值x。x越大,代表编组数量越大,每个编组中的样本数据越少,从而数据分散程度越大,在数据特征上表现为数据编组的紧密程度越大。然而过大的x值可导致各个数据编组的紧密程度过大,独立性过弱。因此,x的取值应兼顾编组的紧密程度和编组的独立性。在设置x值的情况下,步骤A05的一个具体实现如下:

IF(f=true),then k=k,继续执行步骤A02->A03->A04,

IF(f=false and k<x),then k=k+1,继续执行步骤A02->A03->A04,

IF(f=false and k>=x),then A06。

需要注意的是,上述伪代码仅是用于说明本发明技术方案的一个具体实现的示例。在其他具体示例中也可以使用其他不同的伪代码。例如,在一些具体实现中,即使在步骤A03中已经删除了数据编组,仍然在步骤A05中执行增加编组数量的操作。在此情况下,上述伪代码中关于状态变量f的条件是不需要的,只要k值未达到最大值x便可增加其值,其修改示例如下:

IF(k<x),then k=k+1,继续执行步骤A02->A03->A04,

IF(k>=x),then A06。

在步骤A06中,通过上述步骤A01-A04(以及在一些情况下,还通过A05)的数据调整删除之后,获得了相对期初的正类和反类相对平衡的样本数据。可基于该样本数据来执行模式识别和学习。

在上述结合图1至图7描述的本发明实施例的技术方案中,将部分反类数据剔除,从而提高剩余样本数据中正反类数据的均衡程度,此外还剔除了与正类属性差异较大的反类数据。因为并非是针对模型学习目标的数据,这些所剔除的数据所导致的样本量减少对后续的模型学习几乎不产生影响,从而很到地保留了数据特性。在这样的正反类属性差异相对小的样本上进行模型学习使得模型学习的识别能力更强,从而提高了识别精度。

图8是示出了根据本公开实施例的图3或图5所示装置的示例硬件布置的框图。该硬件布置包括处理器506(例如,微处理器(μP)、数字信号处理器(DSP)等)。处理器506可以是用于执行本文描述的流程的不同动作的单一处理单元或者是多个处理单元。布置还可以包括用于从其他实体接收信号的输入单元502、以及用于向其他实体提供信号的输出单元504。输入单元502和输出单元504可以被布置为单一实体或者是分离的实体。

此外,布置可以包括具有非易失性或易失性存储器形式的至少一个可读存储介质508,例如是电可擦除可编程只读存储器(EEPROM)、闪存、和/或硬盘驱动器。可读存储介质508包括计算机程序510,该计算机程序510包括代码/计算机可读指令,其在由布置中的处理器506执行时使得硬件布置和/或包括硬件布置在内的设备可以执行例如上面结合图1/图2所描述的流程及其任何变形。

在实现图3所示装置的情况下,计算机程序510可被配置为具有例如计算机程序模块510A~510E架构的计算机程序代码。因此,在例如设备中使用该硬件布置时的示例实施例中,布置的计算机程序中的代码包括:模块510A,用于通过聚类的方式将样本数据划分为多个编组:模块510B,用于检查所述多个编组中每个编组是否存在币类标识数据,并删除不包含正类标识数据的编组;模块510C,用于确定所述多个编组中正类标识数据的总数量;模块510D,用于确定所述正类标识数据的总数量在所述样本数据中所占比例是否大于第一预定阈值;模块510E,用于在所述比例大于第一预定阈值的情况下,保留模块510B处理后的数据。

在实现图5所示装置的情况下,计算机程序510可被配置为仅具有例如计算机程序模块510A~510B架构的计算机程序代码。因此,在例如设备中使用该硬件布置时的示例实施例中,布置的计算机程序中的代码包括:模块510A,用于基于图3所示装置的处理获得样本数据的经处理的多个编组。计算机程序中的代码还包括:模块510B,用于基于样本数据的经处理的多个编组来执行模式识别和学习。

计算机程序模块实质上可以执行图1或图2中所示出的流程中的各个动作,以模拟图3或图5中示出的装置。换言之,当在处理器506中执行不同计算机程序模块时,它们可以对应于图3或图5中示出的装置中的上述不同单元。

尽管上面结合图8所公开的实施例中的代码手段被实现为计算机程序模块,其在处理器506中执行时使得硬件布置执行上面结合图1或图2所描述的动作,然而在备选实施例中,该代码手段中的至少一项可以至少被部分地实现为硬件电路。

处理器可以是单个CPU(中央处理单元),但也可以包括两个或更多个处理单元。例如,处理器可以包括通用微处理器、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC))。处理器还可以包括用于缓存用途的板载存储器。

计算机程序可以由连接到处理器的计算机程序产品来承载。计算机程序产品可以包括其上存储有计算机程序的计算机可读介质。例如,计算机程序产品可以是闪存、随机存取存储器(RAM)、只读存储器(ROM)、EEPROM,且上述计算机程序模块在备选实施例中可以用UE内的存储器的形式被分布到不同计算机程序产品中。

需要注意的是,本发明实施例所记载的技术方案在不冲突的情况下可以任意组合。

在本发明所提供的几个实施例中,应该理解到,所揭露的方法和设备,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。

上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元,即可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。

另外,在本发明各实施例中的各功能单元可以全部集成在一个第二处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。

上面的描述仅用于实现本发明的实施方式,本领域的技术人员应该理解,在不脱离本发明的范围的任何修改或局部替换,均应该属于本发明的权利要求来限定的范围,因此,本发明的保护范围应该以权利要求书的保护范围为准。

再多了解一些
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1