本发明涉及数据处理技术领域,具体而言,涉及一种数据清洗方法。
背景技术:
目前,因调研数据和轻量级数据的多变性,对数据往往采取人工清洗的方式,其缺少统一、标准的清洗流程。而人工清洗数据的方式存在以下问题:1、数据清洗耗时长,人工清洗的方式依赖于操作人员进行数据判断,且判断后需要一步步完成清洗,需要大量时间;2、数据清洗容易出现遗漏,操作人员在进行大量数据操作时会因为某些条件遗漏而导致部分样本未被清洗;3、数据清洗结果不稳定,数据清洗的结果会因操作人员的不同而出现清洗结果不一致的问题。
经过大量检索发现一些典型的现有技术,如图3所示,申请号为201010578479.9的专利公开了一种数据清洗方法及装置,其可以同时对多类别数据进行清洗,适用于数据分类处理。又如图4所示,申请号为201610959853.7的专利公开了一种海量数据的清洗方法和系统,其用于提高数据清洗的速度和效率。又如图5所示,申请号为201210289550.0的专利公开了一种海量数据的清洗方法及装置,其能够对海量数据进行有效的清洗。
可见,如何对数据进行清洗,其实际应用中的亟待处理的实际问题(如提高数据清洗的效率等)还有很多未提出具体的解决方案。
技术实现要素:
为了克服现有技术的不足提供了一种数据清洗方法,本发明的具体技术方案如下:
一种数据清洗方法,其包括以下步骤:
步骤1,获取待清洗的训练样本集合,对训练样本集合进行转码后存储到数据文件中;
步骤2,提取训练样本集合中第一行训练样本的数据,并将训练样本集合中第一行训练样本的数据转化成二维数组数据,以作为特征向量;
步骤3,对步骤2得到的特征向量进行聚类处理,通过欧式距离挑选出类别性质相近的数据,以确定训练样本集合中孤立的训练样本;
步骤4,基于步骤3所确定的孤立的训练样本,将异常、冗余的训练样本集合标注为离群点;
步骤5,删除离群点,对象再次聚类;
步骤6,响应于检测到针对目标数量训练样本中的训练样本的删除操作,删除上述操作所指示的训练样本,得到清洗后的训练样本集合;
步骤7,将清洗后的数据按照原顺序格式复制粘贴于新的数据文件中;
步骤8,重复步骤2至6,不断更新清洗后的样本数据。
可选的,在步骤1中,所述数据文件为csv文件或者dat文件。
可选的,在步骤2中,训练样本集合中第一行训练样本的数据通过numpy数据处理库以及ndrray处理函数转化成二维数组数据。
可选的,所述数据清洗方法使用k近邻以及svm算法制作分类模型与聚类模型。
本发明所取得的有益效果包括:
1、可以对原始样本数据进行标签化,进而根据调研目的,在样本数据中筛选出符合分析目标的样本群体点,保证数据结果的信度和效度;
2、克服人工清洗存在的用时长,不稳定等问题,通过更加智能化的方法提高数据清洗的效率;
3、通过聚类、k近邻等挖掘算法,使得数据清洗不在依赖于固定的模式,而会根据数据的不同归纳出不同的簇类,再对簇外的离群点进行剔除,使得清洗质量得到提高。
附图说明
从以下结合附图的描述可以进一步理解本发明,将重点放在示出实施例的原理上。
图1是本发明实施例中一种数据清洗方法的流程示意图;
图2是本发明实施例中一种数据清洗方法的效果图;
图3是现有技术中,一种数据清洗方法及装置的流程示意图;
图4是现有技术中,一种海量数据的清洗方法和系统的流程示意图;
图5是现有技术中,一种海量数据的清洗方法及装置的流程示意图。
具体实施方式
为了使得本发明的目的、技术方案及优点更加清楚明白,以下结合其实施例,对本发明进行进一步详细说明;应当理解,此处所描述的具体实施例仅用于解释本发明,并不用于限定本发明。对于本领域技术人员而言,在查阅以下详细描述之后,本实施例的其它系统、方法和/或特征将变得显而易见。旨在所有此类附加的系统、方法、特征和优点都包括在本说明书内、包括在本发明的范围内,并且受所附权利要求书的保护。在以下详细描述描述了所公开的实施例的另外的特征,并且这些特征根据以下将详细描述将是显而易见的。
本发明实施例的附图中相同或相似的标号对应相同或相似的部件;在本发明的描述中,需要理解的是,若有术语“上”、“下”、“左”、“右”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或组件必须具有特定的方位、以特定的方位构造和操作,因此附图中描述位置关系的用语仅用于示例性说明,不能理解为对本专利的限制,对于本领域的普通技术人员而言,可以根据具体情况理解上述术语的具体含义。
本发明为一种数据清洗方法,根据附图所示讲述以下实施例:
实施例一:
在大数据的时代,许多互联网产业为了自身优化和长远发展,需要获取大量的行业数据以优化产品,提高业务水平,但是不同领域、不同背景的用户对于数据的需求是不一样的,在所得到的原始数据群中,如何剔除冗余、残缺、孤立的数据,是一项费时费力的工作。
在大数据和云计算尚未热门之时,在企业的数据清洗工作中,常采用人工清洗的方法。在寻找到具有残缺或重复元素的数据项,进行人工增补、删除或修改数据项。然而在数据样本数量较多时,使用此方法对于工作人员来说效率极低;
在经历的大数据时代的爆发,数据量轻而易举达到了百万级别,人工清洗显然不合适时代的发展,但仍可以使用excel或者数据库进行函数处理,进而对数据进行清洗,但数据库和办公软件始终不是智能化办公工具,如经常套用函数模板,不仅清洗质量较差,还具有相当大的局限性。
在用户的定量研究和轻量级数据的处理过程中,均需对数据进行清洗处理,以剔除异常数据,保证数据结果的信度和效度。目前,因调研数据和轻量级数据的多变性,对数据往往采取人工清洗的方式,缺少统一、标准的清洗流程,人工清洗的方式主要存在以下问题:①数据清洗耗时长,人工清洗的方式依赖于操作人员进行数据判断,且判断后需要一步步完成清洗,需要大量时间;②数据清洗容易出现遗漏,操作人员在进行大量数据操作时会因为某些条件遗漏而导致部分样本未被清洗;③数据清洗结果不稳定,数据清洗的结果会因操作人员的不同而出现清洗结果不一致的问题;另外,现在的数据清洗技术,由于模型库是固定不变的,导致模型库中的数据清洗规则也是固定的,数据清洗引擎只是简单的基于模块库设立好的固定规则进行数据清洗,当面对复杂的海量数据时,数据清洗的效果和质量较差,具有局限性。
本发明提供的一种数据清洗方法,其可以对原始样本数据进行标签化,进而根据调研目的,在样本数据中筛选出符合分析目标的样本群体点,保证数据结果的信度和效度。
如图1所示,所述数据清洗方法通过以下步骤实现:
步骤1,获取待清洗的训练样本集合,对训练样本集合进行转码后存储到数据文件中;
步骤2,提取训练样本集合中第一行训练样本的数据,并将训练样本集合中第一行训练样本的数据转化成二维数组数据,以作为特征向量;
步骤3,对步骤2得到的特征向量进行聚类处理,通过欧式距离挑选出类别性质相近的数据,以确定训练样本集合中孤立的训练样本;
步骤4,基于步骤3所确定的孤立的训练样本,将异常、冗余的训练样本集合标注为离群点;
步骤5,删除离群点,对象再次聚类;
步骤6,响应于检测到针对目标数量训练样本中的训练样本的删除操作,删除上述操作所指示的训练样本,得到清洗后的训练样本集合;
步骤7,将清洗后的数据按照原顺序格式复制粘贴于新的数据文件中;
步骤8,重复步骤2至6,不断更新清洗后的样本数据。
所述数据清洗方法使用k近邻以及svm算法制作分类模型与聚类模型,然后提取训练样本集合中的训练样本的特征数据,提取后的特征数据(特征向量)可以作为维度属性用于清洗孤立、重复以及冗余的数据。
基于所确定的孤立的训练样本,将异常、冗余的训练样本集合标注为离群点,对训练样本集合进行清洗,删除检测到的不及格、数值波动较大的数据。
本发明基于聚类的离群点进行检测,不仅可以保证数据结果的信度和效度,还克服人工清洗存在的用时长,不稳定等问题,通过更加智能化的方法提高了数据清洗的效率。
如图2所示,a、b、c区域表示不同簇类的数据,d表示离群点数据。结合图1以及图2可以知道,通过聚类、k近邻等挖掘算法,使得数据清洗不在依赖于固定的模式,而会根据数据的不同归纳出不同的簇类,再对簇外的离群点进行剔除,提高了清洗质量。
实施例二:
如图1所示,所述数据清洗方法通过以下步骤实现:
步骤1,获取待清洗的训练样本集合,对训练样本集合转码成符合模型或系统处理的编码格式,然后存储到csv文件或者dat文件中;
步骤2,提取训练样本集合中第一行训练样本的数据,并将训练样本集合中第一行训练样本的数据通过numpy数据处理库以及ndrray处理函数转化成二维数组数据,以作为特征向量;
步骤3,对步骤2得到的特征向量进行聚类处理,通过欧式距离挑选出类别性质相近的数据,以确定训练样本集合中孤立的训练样本;
步骤4,基于步骤3所确定的孤立的训练样本,将异常、冗余的训练样本集合标注为离群点;
步骤5,基于聚类的离群点:一个对象是基于聚类的离群点,如果该对象不强属于任何簇,删除离群点,对象再次聚类;
步骤6,响应于检测到针对目标数量训练样本中的训练样本的删除操作,删除上述操作所指示的训练样本,得到清洗后的训练样本集合;
步骤7,将清洗后的数据按照原顺序格式复制粘贴于新的数据文件中;
步骤8,重复步骤2至6,不断更新清洗后的样本数据。
所述数据清洗方法使用k近邻以及svm算法制作分类模型与聚类模型,然后提取训练样本集合中的训练样本的特征数据,提取后的特征数据(特征向量)可以作为维度属性用于清洗孤立、重复以及冗余的数据。
基于所确定的孤立的训练样本,将异常、冗余的训练样本集合标注为离群点,对训练样本集合进行清洗,删除检测到的不及格、数值波动较大的数据。
本发明基于聚类的离群点进行检测,不仅可以保证数据结果的信度和效度,还克服人工清洗存在的用时长,不稳定等问题,通过更加智能化的方法提高了数据清洗的效率。
如图2所示,a、b、c区域表示不同簇类的数据,d表示离群点数据。结合图1以及图2可以知道,通过聚类、k近邻等挖掘算法,使得数据清洗不在依赖于固定的模式,而会根据数据的不同归纳出不同的簇类,再对簇外的离群点进行剔除,提高了清洗质量。
综上所述,本发明公开的一种数据清洗方法,所产生的有益技术效果包括:
1、可以对原始样本数据进行标签化,进而根据调研目的,在样本数据中筛选出符合分析目标的样本群体点,保证数据结果的信度和效度;
2、克服人工清洗存在的用时长,不稳定等问题,通过更加智能化的方法提高数据清洗的效率;
3、通过聚类、k近邻等挖掘算法,使得数据清洗不在依赖于固定的模式,而会根据数据的不同归纳出不同的簇类,再对簇外的离群点进行剔除,使得清洗质量得到提高。
虽然上面已经参考各种实施例描述了本发明,但是应当理解,在不脱离本发明的范围的情况下,可以进行许多改变和修改。也就是说上面讨论的方法、系统和设备是示例,各种配置可以适当地省略、替换或添加各种过程或组件。例如,在替代配置中,可以以与所描述的顺序不同的顺序执行方法和/或可以添加、省略和/或组合各种部件。而且,关于某些配置描述的特征可以以各种其他配置组合,如可以以类似的方式组合配置的不同方面和元素。此外,随着技术发展其中的元素可以更新,即许多元素是示例,并不限制本发明公开或权利要求的范围。
在说明书中给出了具体细节以提供对包括实现的示例性配置的透彻理解。然而,可以在没有这些具体细节的情况下实践配置,例如已经示出了众所周知的电路、过程、算法、结构和技术而没有不必要的细节,以避免模糊配置。该描述仅提供示例配置,并且不限制权利要求的范围,适用性或配置。相反,前面对配置的描述将为本领域技术人员提供用于实现所描述的技术的使能描述。在不脱离本发明公开的精神或范围的情况下,可以对元件的功能和布置进行各种改变。
综上,其旨在上述详细描述被认为是例示性的而非限制性的,并且应当理解,以下权利要求(包括所有等同物)旨在限定本发明的精神和范围。以上这些实施例应理解为仅用于说明本发明而不用于限制本发明的保护范围。在阅读了本发明的记载的内容之后,技术人员可以对本发明作各种改动或修改,这些等效变化和修饰同样落入本发明权利要求所限定的范围。
1.一种数据清洗方法,其特征在于,包括以下步骤:
步骤1,获取待清洗的训练样本集合,对训练样本集合进行转码后存储到数据文件中;
步骤2,提取训练样本集合中第一行训练样本的数据,并将训练样本集合中第一行训练样本的数据转化成二维数组数据,以作为特征向量;
步骤3,对得到的特征向量进行聚类处理,通过欧式距离挑选出类别性质相近的数据,以确定训练样本集合中孤立的训练样本;
步骤4,基于所确定的孤立的训练样本,将异常、冗余的训练样本集合标注为离群点;
步骤5,删除离群点,对象再次聚类;
步骤6,响应于检测到针对目标数量训练样本中的训练样本的删除操作,删除上述操作所指示的训练样本,得到清洗后的训练样本集合;
步骤7,将清洗后的数据按照原顺序格式复制粘贴于新的数据文件中;
步骤8,重复步骤2至6,不断更新清洗后的样本数据。
2.如权利要求1所述的一种数据清洗方法,其特征在于,在步骤1中,所述数据文件为csv文件或者dat文件。
3.如权利要求2所述的一种数据清洗方法,其特征在于,在步骤2中,训练样本集合中第一行训练样本的数据通过numpy数据处理库以及ndrray处理函数转化成二维数组数据。
4.如权利要求3所述的一种数据清洗方法,其特征在于,所述数据清洗方法使用k近邻以及svm算法制作分类模型与聚类模型。
技术总结