发明内容
有鉴于此,实有必要提供一种数据清洗方法及计算机可读存储介质,能够有效对数据集进行清洗,弱化错误标签的可信度。
第一方面,本发明实施例提供一种数据清洗方法,所述数据清洗方法包括:
获取第一数据集和第二数据集,其中,所述第一数据集的第一数据包括第一原标签,所述第二数据集的第二数据包括第二原标签;
利用所述第一数据集训练第一分类器;
利用所述第二数据集训练第二分类器;
将所述第一数据输入所述第二分类器并获取相应的第一预测标签;
将所述第二数据输入所述第一分类器并获取相应的第二预测标签;
根据所述第一预测标签和所述第一原标签对所述第一原标签进行增强处理和弱化处理以得到第一增强标签和第一弱化标签,并利用所述第一增强标签和所述第一弱化标签更新所述第一数据,其中,利用所述第一增强标签和所述第一弱化标签更新所述第一数据具体包括:
将所述第一数据的第一原标签更新为所述第一增强标签;
选取第一数量的第一数据成为第一子数据集,其中,所述第一子数据集中的第一子数据包括所述第一增强标签;以及
将所述第一子数据的第一增强标签更新为相应的所述第一弱化标签;
根据所述第二预测标签和所述第二原标签对所述第二原标签进行增强处理和弱化处理以得到第二增强标签和第二弱化标签,并利用所述第二增强标签和所述第二弱化标签更新所述第二数据;以及
将更新后的第一数据和更新后的第二数据合并成目标数据集。
第二方面,本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质用于存储程序指令,所述程序指令可被处理器执行以实现如上所述的数据清洗方法。
上述数据清洗方法及计算机可读存储介质,利用第一数据集和第二数据集分别训练第一分类器和第二分类器,再将第一数据和第二数据分别输入第二分类器和第一分类器获取相应的第一预测标签和第二预测标签。根据第一预测标签和第一原标签对第一原标签进行增强和弱化,根据第二预测标签和第二原标签对第二原标签进行增强和弱化,从而得到目标数据集。本方法能够有效对样本数据集进行清洗,解决样本数据集中标签分类效果较差的问题,从而弱化错误标签的可信度,得到标签更加精确的目标数据集。同时,获取目标数据集的步骤非常简单可行,能够更加快捷且廉价地获取标签更加精确的目标数据集,为目标数据集后续的应用提供便利。本方法适用于任何存在冗余错误标签的数据集,具有广泛的实用性。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的规划对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,换句话说,描述的实施例根据除了这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,还可以包含其他内容,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于只清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
需要说明的是,在本发明中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者多个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。
请结合参看图1,其为本发明实施例提供的数据清洗方法的流程图。数据清洗方法用于对带有多标签的数据进行清洗,以解决数据的部分标签问题,即数据带有冗余标签或错误标签的问题。数据清洗方法具体包括如下步骤。
步骤S102,获取第一数据集和第二数据集。获取样本数据集,将样本数据集中的数据随机均分为第一数据集和第二数据集。在本实施例中,样本数据集中的每一数据均带有多个标签。根据样本数据集中数据的数量将样本数据集中的数据随机划分为数量相等的第一数据集和第二数据集。即是说,第一数据集中第一数据的数量和第二数据集中第二数据的数量相等。其中,第一数据集的第一数据包括第一原标签,第二数据集的第二数据包括第二原标签。在本实施例中,第一原标签和第一预测标签均为标签向量。相应地,第一原标签和第二原标签均包括多个数值,每一第一数据的多个标签与相对应的第一原标签中的数值一一对应,每一第二数据的多个标签与相对应的第二原标签中的数值一一对应。其中,数值范围在0至1之间,数值越大,表示与该数值相对应的标签越可信;数值越小,表示与该数值相对应的标签越不可信。
在一些可行的实施例中,第一数据集中第一数据的数量和第二数据集中第二数据的数量可以不相等,举例来说,第一数据的数量与第二数据的数量的比例为4比6或者5.5比4.5,在此不做限定。
步骤S104,利用第一数据集训练第一分类器。将第一数据集中的第一数据依次输入多标签分类器中,并获取相应的输出标签。根据第一数据的第一原标签和相应的输出标签对多标签分类器进行优化,使输出标签和相应的第一原标签尽量相同,从而得到第一分类器。具体的训练过程与现有的模型训练相似,在此不再赘述。其中,多标签分类器包括但不限于支持向量机(support vector machines,SVM)、逻辑(logistic)分类器等。
步骤S106,利用第二数据集训练第二分类器。将第二数据集中的第二数据依次输入多标签分类器中,并获取相应的输出标签。根据第二数据的第二原标签和相应的输出标签对多标签分类器进行优化,使输出标签和相应的第二原标签尽量相同,从而得到第二分类器。具体的训练过程与现有的模型训练相似,在此不再赘述。其中,多标签分类器包括但不限于支持向量机(support vector machines,SVM)、逻辑(logistic)分类器等。
步骤S108,将第一数据输入第二分类器并获取相应的第一预测标签。将所有的第一数据都输入第二分类器中获取第一预测标签。相应地,第一预测标签为标签向量。其中,第一预测标签中数值的数量与相对应的第一原标签中数值的数量相同。
步骤S110,将第二数据输入第一分类器并获取相应的第二预测标签。将所有的第二数据都输入第一分类器中获取第二预测标签。相应地,第二预测标签为标签向量。其中,第二预测标签中数值的数量与相对应的第二原标签中数值的数量相同。
步骤S112,根据第一预测标签和第一原标签对第一原标签进行增强处理和弱化处理以得到第一增强标签和第一弱化标签,并利用第一增强标签和第一弱化标签更新第一数据。在本实施例中,根据第一预测标签和第一原标签对第一原标签进行增强处理得到第一增强标签,根据第一预测标签和第一原标签对第一原标签进行弱化处理得到第一弱化标签,并将第一增强标签和第一弱化标签替代第一原标签,以对第一数据进行更新。具体处理过程和更新过程将在下文详细描述。
步骤S114,根据第二预测标签和第二原标签对第二原标签进行增强处理和弱化处理以得到第二增强标签和第二弱化标签,并利用第二增强标签和第二弱化标签更新第二数据。在本实施例中,根据第二预测标签和第二原标签对第二原标签进行增强处理得到第二增强标签,根据第二预测标签和第二原标签对第二原标签进行弱化处理得到第二弱化标签,并将第二增强标签和第二弱化标签替代第二原标签,以对第二数据进行更新。具体处理过程和更新过程将在下文详细描述。
步骤S116,将更新后的第一数据和更新后的第二数据合并成目标数据集。可以理解的是,目标数据集包括第一数据和第二数据。其中,第一数据包括第一增强标签和第一弱化标签,第二数据包括第二增强标签和第二弱化标签。
上述实施例中,利用第一数据集和第二数据集分别训练第一分类器和第二分类器,再将第一数据和第二数据分别输入第二分类器和第一分类器获取相应的第一预测标签和第二预测标签。根据第一预测标签和第一原标签对第一原标签进行增强和弱化,根据第二预测标签和第二原标签对第二原标签进行增强和弱化,从而得到目标数据集。本方法能够有效对样本数据集进行清洗,解决样本数据集中标签分类效果较差的问题,从而弱化错误标签的可信度,得到标签更加精确的目标数据集。同时,获取目标数据集的步骤非常简单可行,能够更加快捷且廉价地获取标签更加精确的目标数据集,为目标数据集后续的应用提供便利。本方法适用于任何存在冗余错误标签的数据集,具有广泛的实用性。此外,将样本数据集中的数据进行随机均分,使训练得到的第一分类器和第二分类器更加可靠。将第一数据和第二数据分别输入第二分类器和第一分类器中获取相应的第一预测标签和第二预测标签,可以增加标签预测的随机性,避免过拟合于噪声。
请结合参看图2,其为本发明实施例提供的数据清洗方法的第一子流程图。步骤S112中,根据第一预测标签和第一原标签对第一原标签进行增强处理以得到第一增强标签,并利用第一增强标签更新第一数据具体包括如下步骤。
步骤S202,将每一第一数据的第一预测标签和第一原标签进行点积运算以得到相应的第一增强标签。依次将每一第一数据的第一预测标签和第一原标签进行点积运算得到相应的第一增强标签。相应地,第一增强标签也为标签向量。第一增强标签中数值的数量与相对应的第一原标签中数值的数量相同。其中,数值范围均在0至1之间。
在一些可行的实施例中,第一数据集中所有第一数据的第一原标签组成一个标签矩阵,所有第一数据的第一预测标签组成一个标签矩阵,可以将第一原标签的标签矩阵和第一预测标签的标签矩阵进行点积运算,从而得到关于第一增强标签的标签矩阵,再从第一增强标签的标签矩阵中获取与每一第一数据相对应的第一增强标签。
得到第一增强标签之后,对第一增强标签进行归一化处理。在本实施例中,将每一第一增强标签中最大的数值映射到1,最小的数值映射到0,其余数值以相对应的最大数值为基准进行等比例映射,从而得到归一化后的第一增强标签。举例来说,若第一增强标签为(0.5,0.6,0.7),则归一化后的第一增强标签为(0,0.86,1)。
步骤S204,将第一数据的第一原标签更新为第一增强标签。将每一第一数据的第一原标签更新为归一化后的第一增强标签。
上述实施例中,通过将每一第一数据的第一原标签和第一预测标签进行点积运算的方式对第一原标签进行增强处理,得到第一增强标签,使得第一原标签中可信度较强的数值变得更强,可信度较弱的数值变得更弱,从而达到标签增强的效果。
请结合参看图3,其为本发明实施例提供的数据清洗方法的第二子流程图。步骤S112中,根据第一预测标签和第一原标签对第一原标签进行弱化处理以得到第一弱化标签,并利用第一弱化标签更新第一数据具体包括如下步骤。
步骤S302,计算每一第一数据的第一预测标签和第一原标签之间的距离。在本实施例中,计算每一第一数据的第一预测标签和第一原标签之间的第一汉明距离。在一些可行的实施例中,还可以计算每一第一数据的第一预测标签和第一原标签之间的欧式距离或者曼哈顿距离等。
步骤S304,按照距离从远到近的顺序选取第一数量的第一数据成为第一子数据集。在本实施例中,第一数量为第一数据数量的5%至第一数据数量的20%之间的任意数值。举例来说,若第一数据的数量为100,则第一数量为5至20中的任意数值。优选地,第一数量为第一数据数量的10%。按照距离从远到近的顺序对第一数据进行排序,从排序中第一个第一数据开始计算,选取第一数量的第一数据成为第一子数据集。其中,第一子数据集中的第一子数据包括第一增强标签。
步骤S306,将第一子数据的第一增强标签乘以第一值以得到第一弱化标签。在本实施例中,第一值为0.1-0.7之间的任意数值。优选地,第一值为0.6。将第一增强标签乘以第一值就是将第一增强标签中的每个数值均乘以第一值,从而得到第一弱化标签。相应地,第一弱化标签也为标签向量。第一弱化标签中数值的数量与相对应的第一增强标签中数值的数量相同。
步骤S308,将第一子数据的第一增强标签更新为相应的第一弱化标签。将每一第一子数据的第一增强标签更新为相应的第一弱化标签。可以理解的是,第一子数据包括第一弱化标签,除第一子数据以外的第一数据均包括第一增强标签。
上述实施例中,计算每一第一数据的第一预测标签和第一原标签之间的距离,并将第一预测标签和第一原标签之间差距较大的一部分第一数据的第一增强标签做弱化处理,从而将错误标签的可信度弱化,减少错误标签的影响。
请结合参看图4,其为本发明实施例提供的数据清洗方法的第三子流程图。步骤S114中,根据第二预测标签和第二原标签对第二原标签进行增强处理以得到第二增强标签,并利用第二增强标签更新第二数据具体包括如下步骤。
步骤S402,将每一第二数据的第二预测标签和第二原标签进行点积运算以得到相应的第二增强标签。依次将每一第二数据的第二预测标签和第二原标签进行点积运算得到相应的第二增强标签。相应地,第二增强标签也为标签向量。第二增强标签中数值的数量与相对应的第二原标签中数值的数量相同。其中,数值范围均在0至1之间。
在一些可行的实施例中,第二数据集中所有第二数据的第二原标签组成一个标签矩阵,所有第二数据的第二预测标签组成一个标签矩阵,可以将第二原标签的标签矩阵和第二预测标签的标签矩阵进行点积运算,从而得到关于第二增强标签的标签矩阵,再从第二增强标签的标签矩阵中获取与每一第二数据相对应的第二增强标签。
得到第二增强标签之后,对第二增强标签进行归一化处理。在本实施例中,将每一第二增强标签中最大的数值映射到1,最小的数值映射到0,其余数值以相对应的最大数值为基准进行等比例映射,从而得到归一化后的第二增强标签。
步骤S404,将第二数据的第二原标签更新为第二增强标签。将每一第二数据的第二原标签更新为归一化后的第二增强标签。
上述实施例中,通过将第二原标签和第二预测标签进行点积运算的方式对第二原标签进行增强处理,得到第二增强标签,使得第二原标签中可信度较强的数值变得更强,可信度较弱的数值变得更弱,从而达到标签增强的效果。
请结合参看图5,其为本发明实施例提供的数据清洗方法的第四子流程图。步骤S114中,根据第二预测标签和第二原标签对第二原标签进行弱化处理以得到第二弱化标签,并利用第二弱化标签更新第二数据具体包括如下步骤。
步骤S502,计算每一第二数据的第二预测标签和第二原标签之间的距离。在本实施例中,计算每一第二数据的第二预测标签和第二原标签之间的第二汉明距离。在一些可行的实施例中,还可以计算每一第二数据的第二预测标签和第二原标签之间的欧式距离或者曼哈顿距离等。
步骤S504,按照距离从远到近的顺序选取第二数量的第二数据成为第二子数据集。在本实施例中,第二数量为第二数据数量的5%至第二数据数量的20%之间的任意数值。优选地,第二数量为第二数据数量的10%。即是说,第二数量与第一数量相同。在一些可行的实施例中,第二数量与第一数量不相同。按照距离从远到近的顺序对第二数据进行排序,从排序中第一个第二数据开始计算,选取第二数量的第二数据成为第二子数据集。其中,第二子数据集中的第二子数据包括第二增强标签。
步骤S506,将第二子数据的第二增强标签乘以第二值以得到第二弱化标签。在本实施例中,第二值为0.1-0.7之间的任意数值。优选地,第二值与第一值相同,均为0.6。在一些可行的实施例中,第二值与第一值不相同。将第二增强标签乘以第二值就是将第二增强标签中的每个数值均乘以第二值,从而得到第二弱化标签。相应地,第二弱化标签也为标签向量。第二弱化标签中数值的数量与第二增强标签中数值的数量相同。
步骤S508,将第二子数据的第二增强标签更新为相应的第二弱化标签。将每一第二子数据的第二增强标签更新为相应的第二弱化标签。可以理解的是,第二子数据包括第二弱化标签,除第二子数据以外的第二数据均包括第二增强标签。
上述实施例中,计算每一第二数据的第二预测标签和第二原标签之间的距离,并将第二预测标签和第二原标签之间差距较大的一部分第二数据的第二增强标签做弱化处理,从而将错误标签的可信度弱化,减少错误标签的影响。
请结合参看图6,其为本发明实施例提供的终端的内部结构示意图。终端10包括计算机可读存储介质11、处理器12以及总线13。其中,计算机可读存储介质11至少包括一种类型的可读存储介质,该可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、磁性存储器、磁盘、光盘等。计算机可读存储介质11在一些实施例中可以是终端10的内部存储单元,例如终端10的硬盘。计算机可读存储介质11在另一些实施例中也可以是的外部终端10存储设备,例如终端10上配备的插接式硬盘、智能存储卡(Smart MediaCard,SMC)、安全数字(Secure Digital,SD)卡、闪存卡(Flash Card)等。进一步地,计算机可读存储介质11还可以既包括终端10的内部存储单元也包括外部存储设备。计算机可读存储介质11不仅可以用于存储安装于终端10的应用软件及各类数据,还可以用于暂时地存储已经输出或者将要输出的数据。
总线13可以是外设部件互连标准(peripheral component interconnect,PCI)总线或扩展工业标准结构(extended industry standard architecture,EISA)总线等。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,图6中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
进一步地,终端10还可以包括显示组件14。显示组件14可以是发光二极管(LightEmitting Diode,LED)显示器、液晶显示器、触控式液晶显示器以及有机发光二极管(Organic Light-Emitting Diode,OLED)触摸器等。其中,显示组件14也可以适当的称为显示装置或显示单元,用于显示在终端10中处理的信息以及用于显示可视化的用户界面。
进一步地,终端10还可以包括通信组件15。通信组件15可选地可以包括有线通信组件和/或无线通信组件,如WI-FI通信组件、蓝牙通信组件等,通常用于在终端10与其他智能控制设备之间建立通信连接。
处理器12在一些实施例中可以是一中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器或其他数据处理芯片,用于运行计算机可读存储介质11中存储的程序代码或处理数据。具体地,处理器12执行多源异构数据的处理程序以控制终端10实现数据清洗方法。
可以理解地,图6仅示出了具有组件11-15以及实现数据清洗方法的终端10,本领域技术人员可以理解的是,图6示出的结构并不构成对终端10的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘且本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
以上所列举的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属于本发明所涵盖的范围。