CN110245140A - 数据分箱处理方法及装置、电子设备和计算机可读介质 - Google Patents
数据分箱处理方法及装置、电子设备和计算机可读介质 Download PDFInfo
- Publication number
- CN110245140A CN110245140A CN201910504964.2A CN201910504964A CN110245140A CN 110245140 A CN110245140 A CN 110245140A CN 201910504964 A CN201910504964 A CN 201910504964A CN 110245140 A CN110245140 A CN 110245140A
- Authority
- CN
- China
- Prior art keywords
- data
- branch mailbox
- node
- pending data
- target
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2291—User-Defined Types; Storage management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开提供一种数据分箱处理方法、装置以及电子设备和计算机可读介质,涉及数据处理领域,该方法包括:获取待处理数据及其目标分箱方式和预设分箱数;若所述待处理数据的数据量大于等于预设阈值,则将所述待处理数据随机分配至N个节点,N为大于1的正整数;根据所述预设分箱数并利用所述目标分箱方式对所述N个节点上的待处理数据进行处理,以确定所述待处理数据的目标分位点;根据所述目标分位点对所述待处理数据进行分箱操作以获得分箱结果。本公开实施例提供的技术方案可以对数据量较大的数据进行分箱处理。
Description
技术领域
本公开涉及数据处理技术领域,尤其涉及一种数据分箱处理方法及装置、电子设备和计算机可读介质。
背景技术
数据分箱是一种常用的数据处理方法。数据分箱实际上就是把数据按照某一属性的属性值划分子区间,如按照年龄划分子区间、按照身高划分子区间等。如果一个数据的属性值处于某个子区间范围内,就把该数据放到该子区间代表的分箱内。
随着大数据的发展,数据规模逐渐增大,一种能适应大规模数据的分箱方法,对于数据处理是具有极其重要的意义。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
有鉴于此,本公开实施例提供一种数据分箱处理方法及装置、电子设备和计算机可读介质,能够实现对数据规模较大数据进行分箱处理。
本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。
根据本公开实施例的第一个方面,提出一种数据分箱处理方法,该方法包括:获取待处理数据及其目标分箱方式和预设分箱数;若所述待处理数据的数据量大于等于预设阈值,则将所述待处理数据随机分配至N个节点,N为大于1的正整数;根据所述预设分箱数并利用所述目标分箱方式对所述N个节点上的待处理数据进行处理,以确定所述待处理数据的目标分位点;根据所述目标分位点对所述待处理数据进行分箱操作以获得分箱结果。
在本公开的一些示例性实施例中,根据所述预设分箱数并利用所述目标分箱方式对所述N个节点上的待处理数据进行处理,以确定所述待处理数据的目标分位点,包括:若所述目标分箱方式为第一分箱方式,则确定所述待处理数据的第一候选切分点;根据所述第一候选切分点将所述待处理数据有序分配到所述N个节点上;分别对有序分配后的各节点上的待处理数据进行排序,以获得各个节点中的第一排序数据;根据所述各个节点中的第一排序数据获得所述待处理数据的全局KS;根据所述待处理数据的全局KS确定所述目标分位点。
在本公开的一些示例性实施例中,确定所述待处理数据的第一候选切分点,包括:分别对各节点上的待处理数据排序,以获得各个节点中的第二排序数据;根据所述节点的个数N分别对各第二排序数据进行等频划分,以获得各个节点上的第一预切分点;根据所述第一预切分点确定所述第一候选切分点。
在本公开的一些示例性实施例中,根据所述待处理数据的全局KS确定所述目标分位点,包括:根据所述待处理数据的全局KS在所述N个节点上的第一排序数据中的确定第二候选切分点;根据所述预设分箱数在所述第二候选切分点中确定所述目标分位点。
在本公开的一些示例性实施例中,根据所述待处理数据的全局KS在所述N个节点上的第一排序数据中确定第二候选切分点,包括:在所述全局KS中确定一个最大KS,将其对应的待处理数据作为所述第二候选切分点;若所述第二候选切分点左侧和右侧的待处理数据的数据量大于预设数据量,则在所述第二候选切分点的左侧和右侧分别确定一个最大KS对应的待处理数据,以作为所述第二候选切分点。
在本公开的一些示例性实施例中,根据所述预设分箱数在所述第二候选切分点中确定所述目标分位点,包括:判断所述第二候选切分点的个数是否小于所述预设分箱数;如果所述第二候选切分点的个数小于所述预设分箱数,则确定所述第二候选切分点就是所述目标分位点;如果所述第二候选切分点的个数大于等于所述预设分箱数,根据所述预设分箱数并利用动态规划方法确定所述目标分位点。
在本公开的一些示例性实施例中,所述数据分箱处理方法还包括:若所述待处理数据的数据量小于预设阈值,则对所述待处理数据进行排序,以生成第三排序数据;确定所述第三排序数据的KS;根据所述第三排序数据的KS确定第三候选切分点;判断所述第三候选切分点的个数是否大于等于所述预设分箱数;如果所述第三候选切分点的个数大于等于所述预设分箱数,根据所述预设分箱数并利用动态规划方法确定所述目标分位点。
在本公开的一些示例性实施例中,根据所述预设分箱数并利用所述目标分箱方式对所述N个节点上的待处理数据进行处理,以确定所述待处理数据的目标分位点,还包括:若所述目标分箱方式为第二分箱方式,则确定所述待处理数据的第四候选切分点;根据所述第四候选切分点将所述待处理数据有序分配到所述N个节点上;分别对有序分配后的各节点上的待处理数据进行排序,以获得各个节点中的第四排序数据;根据所述预设分箱数在所述第四排序数据中确定所述目标分位点。
在本公开的一些示例性实施例中,确定所述待处理数据的第四候选切分点,包括:分别对各节点上的待处理数据排序,以获得各个节点中的第五排序数据;根据所述节点的个数N分别对各第五排序数据进行等频划分,以获得各个节点上的第二预切分点;根据所述第二预切分点确定所述第四候选切分点。
在本公开的一些示例性实施例中,根据所述预设分箱数并利用所述目标分箱方式对所述N个节点上的待处理数据进行处理,以确定所述待处理数据的目标分位点,还包括:若所述目标分箱方式为第三分箱方式,则分别获得各个节点上的最大值和最小值;根据所述各个节点上的最大值和最小值确定所述待处理数据的最大值和最小值;根据所述待处理数据的最大值和最小值以及预设分箱数确定所述目标分位点。
根据本公开实施例的第二方面,提出一种数据分箱处理装置,该装置包括:数据获取模块、数据分配模块、目标分位点确定模块以及分箱模块。其中,数据获取模块配置为获取待处理数据及其目标分箱方式和预设分箱数;数据分配模块配置为若所述待处理数据的数据量大于等于预设阈值,则将所述待处理数据随机分配至N个节点,N为大于1的正整数;目标分位点确定模块配置为根据所述预设分箱数并利用所述目标分箱方式对所述N个节点上的待处理数据进行处理,以确定所述待处理数据的目标分位点;分箱模块配置为根据所述目标分位点对所述待处理数据进行分箱操作以获得分箱结果。
根据本公开实施例的第三方面,提出一种电子设备,该电子设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现上述任一项所述的数据分箱处理方法。
根据本公开实施例的第四方面,提出一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如上述任一项所述的数据分箱处理方法。
本公开某些实施例提供的数据分箱处理方法、装置及电子设备和计算机可读介质,通过将待处理数据量分配至多个节点上,然后在多个节点上的数据确定目标分位点,最后根据目标分位点实现对待处理数据的分箱操作。该数据分箱处理方法将数据量较大的数据分配至多个节点,同时使用多个节点以完成对待处理数据的分箱操作,克服了单个节点内存过小,无法处理大规模数据的缺陷。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。下面描述的附图仅仅是本公开的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了应用于本公开实施例的据分箱处理方法或据分箱处理装置的示例性系统架构的示意图。
图2是根据一示例性实施例示出的一种数据分箱处理方法的流程图。
图3是根据一示例性实施例示出的另一种数据分箱处理方法的流程图。
图4是根据一示例性实施例示出的又一种数据分箱处理方法的流程图。
图5是根据一示例性实施例示出的再一种数据分箱处理方法的流程图。
图6是根据一示例性实施例示出的另一种数据分箱处理方法的流程图。
图7是根据一示例性实施例示出的另一种数据分箱处理方法的流程图。
图8是根据一示例性实施例示出的另一种数据分箱处理方法的流程图。
图9是根据一示例性实施例示出的另一种数据分箱处理方法的流程图。
图10是根据一示例性实施例示出的另一种数据分箱处理方法的流程图。
图11是根据一示例性实施例示出的另一种数据分箱处理方法的流程图。
图12是根据一示例性实施例示出的另一种数据分箱处理方法的流程图。
图13是根据一示例性实施例示出的另一种数据分箱处理方法的流程图。
图14是根据一示例性实施例示出的另一种数据分箱处理方法的流程图。
图15是根据一示例性实施例示出的一种数据分箱处理装置的框图。
图16是根据一示例性实施例示出的另一种应用于数据分箱处理装置的计算机系统的结构示意图。
具体实施方式
现在将参考附图更全面地描述示例实施例。然而,示例实施例能够以多种形式实施,且不应被理解为限于在此阐述的实施例;相反,提供这些实施例使得本公开将全面和完整,并将示例实施例的构思全面地传达给本领域的技术人员。在图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。
所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。在下面的描述中,提供许多具体细节从而给出对本公开的实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而省略特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本公开的各方面。
附图仅为本公开的示意性图解,图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和步骤,也不是必须按所描述的顺序执行。例如,有的步骤还可以分解,而有的步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
本说明书中,用语“一个”、“一”、“该”、“所述”和“至少一个”用以表示存在一个或多个要素/组成部分/等;用语“包含”、“包括”和“具有”用以表示开放式的包括在内的意思并且是指除了列出的要素/组成部分/等之外还可存在另外的要素/组成部分/等;用语“第一”、“第二”和“第三”等仅作为标记使用,不是对其对象的数量限制。
下面结合附图对本公开示例实施方式进行详细说明。
图1示出了可以应用于本公开实施例的数据分箱处理方法或数据分箱处理装置的示例性系统架构的示意图。
如图1所示,系统架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。其中,终端设备101、102、103可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器105可以是提供各种服务的服务器,例如对用户利用终端设备101、102、103所进行操作的装置提供支持的后台管理服务器。后台管理服务器可以对接收到的请求等数据进行分析等处理,并将处理结果反馈给终端设备。
服务器105可例如获取待处理数据及其目标分箱方式和预设分箱数;若所述待处理数据的数据量大于等于预设阈值,则将所述待处理数据随机分配至N个节点,N为大于1的正整数;根据所述预设分箱数并利用所述目标分箱方式对所述N个节点上的待处理数据进行处理,以确定所述待处理数据的目标分位点;根据所述目标分位点对所述待处理数据进行分箱操作以获得分箱结果。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的,服务器105可以是一个实体的服务器,还可以为多个服务器组成,根据实际需要,可以具有任意数目的终端设备、网络和服务器。
在相关技术中,可以将数据按照某一属性的属性值划分子区间,如按照年龄划分子区间、按照身高划分子区间等。如果一个数据的属性值处于某个子区间范围内,就把该数据放到该子区间代表的分箱内。然后用整个子区间的属性来表示这个子区间里的数据的属性。可以将这种分箱处理理解为数据的离散化,对数据离散化处理可以具备以下优势:
1.可以很轻松的完成对离散数据的增减操作,该离散数据类型有利于模型的快速迭代。
2.离散化后的数据形成的稀疏向量在进行内积乘法时,运算速度较快,计算结果方便存储,容易扩展。
3.离散化后的数据对于异常数据具有很强的鲁棒性。例如,在年龄数据中,异常数据“年龄大于300”会对模型造成很大的干扰,而将该年龄数据离散化后(可以将大于30的年龄表示为1,否则为0)形成了只有0和1特征的数据,将离散化后异常数据代入模型中将不会对模型产生干扰。
4.对于广义线性模型,连续型数据表达能力受限。而将离散化数据代入该模型中相当于为该模型引入了非线性,提高了表达能力,增强了拟合效果。
5.将连续型数据离散化后代入模型,模型将会变得更稳定。例如,对于一个会随着时间变化的年龄数据,如果将20~30岁作为一个年龄区间,假设一个用户年龄是25,一年后该用户年龄变为26,但是其对应的离散数据值不变。
6.将连续型数据离散化后,可简化逻辑回归模型的作用,降低了模型过拟合的风险。
图2是根据一示例性实施例示出的一种数据分箱处理方法的流程图。
参照图2,本公开实施例提供的数据分箱处理方法可以包括以下步骤。
步骤S1,获取待处理数据及其目标分箱方式和预设分箱数。
在一些实施例中,所述预设分箱数指的是用户指定的将所述待处理数据需要划分的箱数,目标分箱方式指的是用户指定的分箱方式。在一些实施例中,目标分箱方式可以包括第一分箱方式、第二分箱方式以及第三分箱方式中的至少一种。
步骤S2,若所述待处理数据的数据量大于等于预设阈值,则将所述待处理数据随机分配至N个节点,N为大于1的正整数。
在一些实施例中,预设阈值可以指的是单机可以处理的数据量。例如,对于一个包括标签列、序号列、特征值的待处理数据列表来说,假设标签、序号、特征值都是int型数据(整型数据,每个int型数据占用4字节),那么内存为1G的服务器仅能处理108~109的数据量。在一些实施例中,当待处理数据的数据量大于等于预设阈值时,可以将待处理数据分散至N个节点中进行处理。
在一些实施例中,N个节点可以指的是N个可以进行数据处理的终端,例如N个服务器或者N个电脑终端等。本公开对N个节点的实体形式不做限制,以实际操作为准。
在一些实施例中,各个节点上随机分配后的待处理数据的数据量大致相同。
步骤S3,根据所述预设分箱数并利用所述目标分箱方式对所述N个节点上的待处理数据进行处理,以确定所述待处理数据的目标分位点。
步骤S4,根据所述目标分位点对所述待处理数据进行分箱操作以获得分箱结果。
在一些实施例中,可以在目标分位点处将待处理数据进行分割以形成多箱数据。
上述实施例提供了一种数据分箱处理方法,一方面在数据分箱之前考虑了待处理数据量与预设阈值之间的关系,避免了因数据量过大,无法完成对待处理数据进行分箱操作的问题,另一方面,通过将数据量较大的数据分配至多个节点,使用多个节点同时完成对待处理数据的分箱操作,克服了单个节点内存过小,无法处理大规模数据的缺陷。
参照图3,图2所示实施例提供的步骤S3可以包括以下步骤。
步骤S31,若所述目标分箱方式为第一分箱方式,则确定所述待处理数据的第一候选切分点。
在一些实施例中,第一分箱方式可以是一种基于数据的ks值使用分布式方法完成的数据分箱处理方法。
在一些实施例中,确定第一候选切分点可以包括如图4所示步骤。
步骤S311,分别对各节点上的待处理数据排序,以获得各个节点中的第二排序数据。
在一些实施例中,可以首先将所述待处理数据随机分配至N个节点上,N为大于1的正整数。
例如,将M个待处理数据随机分配到N个节点上,各节点上的数据分别表示为M1、M2…….MN-1、MN。
在一些实施例中,可以分别对各节点上的待处理数据进行排序处理,以获得各节点中的第二排序数据。在一些实施例中,第二排序数据并不是一组数据,而是指各个节点上排序后的数据,所以第二排序数据可以指的是多组排序后的数据。
例如,对各节点上的数据M1、M2…….MN-1、MN排序后分别生成各节点上的第二排序数据M’1、M’2…….M’N-1、M’N。
在一些实施例中,可以根据节点内存大小和处理待处理数据所需的内存大小选择排序方法以实现对待处理数据量的排序。在一些实施例中,当单个节点上的待处理数据所需的内存空间小于该节点的一半内存时,可以采用桶排序(例如基数排序)对该节点上的待处理数据进行排序,当单个节点上的待处理数据所需的空间大于等于该节点的一半内存时可以,可采用快速排序对该节点上的待处理数据进行排序。其中快速排序占用内存少,但是速度较慢,而桶排序速度较快,但是占用内存较大。
在一些实施例中,节点中处理待处理数据所需的内存与该节点上的待处理数据的数据量、数据类型以及待处理数据包括的属性个数等相关。例如,对于一个包括标签列、序号列、特征值的待处理数据列表来说,假设它的数据量为108~109,再假设标签、序号、特征值都是int型数据(每个int型数据占用4字节),那么要处理上述数待处理数据至少需要1G的内存。
步骤S312,根据所述节点的个数N分别对各第二排序数据进行等频划分,以获得各个节点上的第一预切分点。
在一些实施例中,根据用户指定的节点个数N以及各个节点上待处理数据的数据量可以实现对各个节点上的第二排序数据的等频划分。假设第一节点上待处理数据量为1000,节点个数为5,那么可以根据每箱数据量为1000/5对第一节点上的第二排序数据进行等频划分。
在一些实施例中,根据各个节点上的待处理数据量以及所述节点的个数N对各个节点进行等频划分以获得各个节点上的第一预切分点。
例如,假设各节点上的第二排序数据M’1、M’2,…….M’N-1、M’N,根据节点数N以及各节点中数据的数据量可以分别对各节点的第二排序数据进行等频划分。假设第一个节点上确定的第一预切分点分别是m11、m12、m1N-1(容易理解的是只需要N-1个切分点就可以将M个数据分到N箱中)、第二个节点上确定的第一预切分点分别是m21、m22,…..m2N-1、第i个节点上确定的第一预切分点分别是mi1、mi2,…….miN-1,i为小于等于N的正整数。
步骤S313,根据所述第一预切分点确定所述第一候选切分点。
在一些实施例中,可以对各个节点上的第一预切分点对应求均值以确定第一候选切分点。例如,假设预设分箱数为N,第一节点上确定的第一预切分点为m11、m12,…….m1N-1,第二节点上确定的第一预切分点为m21、m22、m2N-1,第i个节点上确定的第一预切分点分别是mi1、mi2,…….miN-1,i为小于等于N的正整数。
那么第一候选切分点可以通过对应确定为
其中miN-1代表第i个节点上的第N-1个第一预切分点。
在另外一些实施例中,也可以对各个节点上的第一预切分点对应求中值、最大值或者最小值等以作为第一候选切分点。
图4所示实施例,不仅通过多个节点共同确定了对待处理数据进行初步划分的第一候选切分点,而且还根据节点内存大小和待处理数据的数据量对节点上待处理数据进行排序,在充分利节点内存的情况下保证了运行速度。
步骤S32,根据所述第一候选切分点将所述待处理数据有序分配到所述N个节点上。
在一些实施例中,有序分配指的是分配后的各个节点上的待处理数据之间存在特定、已知的大小关系。例如,第一节点上的待处理数据最大值小于第二节点上待处理数据的最小值,以此类推等。
例如,假设节点个数N为4,第一候选切分点分别为C1、C2、C3,将待处理数据根据第一候选切分点有序分配至4个节点上可以表示为:将第0至第C1个数据分配至第一个节点上,将第C1+1至第C2个数据分配至第2个节点上、将第C1+1至第C2个数据分配至第2个节点上、将第C3+1至最后一个数据分配至第4个节点上。
步骤S33,分别对有序分配后的各节点上的待处理数据进行排序,以获得各个节点中的第一排序数据。
在一些实施例中,可以根据各节点的内存大小和节点上的待处理数据的数据量大小选择排序方法以实现对各节点上待处理数据量的排序。
步骤S34,根据所述各个节点中的第一排序数据获得所述待处理数据的全局KS。
在一些实施例中,可以通过以下方式获取区间(该区间可以只有一个数据)的KS值。
1、对数据进行排序处理。
2、对排序后数据按序进行分类处理,以生成多个数据区间。
3、获取各区间的第一样本的数量和第二样本的数量。
4、获取各区间的累计第一样本数和累计第二样本数(累计第一样本数指的是当前区间的第一样本数加上本区间之前所有区间的第一样本数,如,第一区间有3个第一样本,第二个区间有2个第一样本,第三个区间有4个第一样本,那么第二个区间的累计第一样本数为2+3个)。
5、获取各区间的累计第一样本数占数据总第一样本数的比例(good%)和各区间的累计第二样本数占数据总第二样本数的比例(bad%)。
6、确定区间的累计第一样本数占总第一样本数的比例和该区间的累计第二样本数占总第二样本数的比例的差值的绝对值(|good%-bad%|),以作为该区间的KS值。
在相关技术中,KS值可以用来对模型风险区分能力进行评估,指标衡量的是第一样本和第二样本累计部分之间的差距。KS值越大,表示该变量越能将第一样本和第二样本区分开来。
在一些实施例中,数据的全局KS指的是在全部待处理数据的基础上获取对应数据的KS值。例如,将待处理数据分到三个节点上,每个节点上分别N1、N2、N3个第一样本,那么第二个节点上的最后一个数据的全局KS值可以表示为((N1+N2)/(N1+N2+N3))。
在一些实施例中,在确定待处理数据的全局KS之前可以将重复的待处理数据合并。
在一些实施例中,可以首先获取各个节点中的第一样本的数据量和第二样本内的数据量。
在一些实施例中,第一样本和第二样本的标注规则可以由用户自行定义。例如,在银行数据中,用户可以定义那些存在信用问题的客户所对应的数据为第一样本,定义那些不存在信用问题的客户所对应的数据为第二样本。
在一些实施例中,由于各个节点之间的第一排序数据之间也是有序的,所以可以根据节点中的第一样本的数据量和第二样本的数据量分别确定待处理数据的全局KS值。
步骤S35,根据所述待处理数据的全局KS确定所述目标分位点。
在一些实施例中,可以根据如图5所示步骤确定目标分位点。
步骤S351,根据所述待处理数据的全局KS在所述N个节点上的第一排序数据中的确定第二候选切分点。
在一些实施例中,还可以根据如图6所示步骤确定第二候选切分点。
步骤S3511,在所述全局KS中确定一个最大KS,将其对应的待处理数据作为所述第二候选切分点。
在一些实施例中,可以根据待处理数据的全局KS在待处理数据中确定一个最大KS值所对应的数据作为第二候选切分点。
步骤S3512,若所述第二候选切分点左侧和右侧的待处理数据的数据量大于预设数据量,则在所述第二候选切分点的左侧和右侧分别确定一个最大KS对应的待处理数据,以作为所述第二候选切分点。
在一些实施例中,预设数据量可以由用户提前设定。
在一些实施例中,判断根据步骤S3511获取的第二候选切分点左侧和右侧的待处理数据的数据量大于预设数据量(如果步骤S3511获取了不止一个第二候选切分点,则分别判断上述不止一个第二候选切分点的左侧和右侧的待处理数据的数据量大于预设数据量)。若所述第二候选切分点左侧和右侧的待处理数据的数据量全部大于预设数据量,则继续在各第二候选切分点的左侧和右侧分别确定一个最大KS对应的待处理数据,以作为所述第二候选切分点。若判断存在一个第二候选切分点的左侧或者右侧的待处理数据的数据量小于预设数据量,则停止迭代。
步骤S352,根据所述预设分箱数在所述第二候选切分点中确定所述目标分位点。
在一些实施例中,根据预设分箱数在所述第二候选切分点钟确定所述目标分位定可以通过如图7所示步骤实现。
步骤S3521,判断所述第二候选切分点的个数是否小于所述预设分箱数。
步骤S3522,如果所述第二候选切分点的个数小于所述预设分箱数,则确定所述第二候选切分点就是所述目标分位点。
步骤S3523,如果所述第二候选切分点的个数大于等于所述预设分箱数,根据所述预设分箱数并利用动态规划方法确定所述目标分位点。
在一些实施例中,假设第二候选切分点的个数为N,目标分箱数为M,其中N大于等于M,那么必须在N个第二候选切分点中确定M-1个目标分为点。
在一些实施例中,在N个第二候选切分点中确定M-1个目标切分点时可能会有种解,每种解都会可以通过公式(1)求得对应解的IV值。
其中,good_Pcnti%代表第i个区间(该区间可以只包括一个数)的第一样本数占数据总第一样本数的比例,bad_Pcnti%代表第i个区间的第二样本数占数据总样本数的比例。
在一些实施例中,可以依次求出每个解的IV值,并找出最大IV值对应的解以作为最优解,并根据最优解确定目标分位点。该方法占用空间少、逻辑简单,但是该方法进行了多次重复计算,计算效率不高,。
在一些实施例中,可以选择动态规划的方法确定目标分为点。动态规划方法可以将已经解决过的子问题的解缓存以来,在下次使用该子问题的解时可以直接使用结果,避免了重复运算。
上述实施例提供了一种数据分箱处理方法,该方法具有以下有益效果:
一、基于KS指标对待处理数据进行分箱,能够有效地对连续变量进行分箱处理,具有更强的解释性,而且该方法可以附加许多用户的特定需求,例如要求分箱结果的IV要单调等。
二、根据节点内存和节点上待处理数据的数据量对待处理数据进行排序,在充分利节点内存的情况下保证了运行速度。
三、使用动态规划方法确定目标分位点,节约了运行时间。
四、相比于等频、等距等分箱方法,本方法不需要业务经验,可自动完成分箱操作。
五、该方法通过将大规模的将待处理数据量分配至多个节点上,然后在多个节点上的数据中确定了目标分位点,最后根据目标分位点实现对待处理数据的分箱操作,克服了单机内存过小,无法处理大规模数据的缺陷。
参照图8,本公开实施例提供的数据分箱处理方法还可以包括以下步骤。
步骤S1,获取待处理数据。
步骤S5,若所述待处理数据的数据量小于预设阈值,则对所述待处理数据进行排序,以生成第三排序数据。
在一些实施例中,可以根据节点内存大小和处理待处理数据所需的内存大小选择排序方法以实现对待处理数据量的排序。在一些实施例中,当单个节点上的待处理数据所需的内存空间小于该节点的一半内存时,可以采用桶排序(例如基数排序)对该节点上的待处理数据进行排序,当单个节点上的待处理数据所需的空间大于等于该节点的一半内存时可以,可采用快速排序对该节点上的待处理数据进行排序。其中快速排序占用内存少,但是速度较慢,而桶排序速度较快,但是占用内存较大。
在一些实施例中,节点中处理待处理数据所需的内存与该节点上的待处理数据的数据量、数据类型以及待处理数据包括的属性个数等相关。例如,对于一个包括标签列、序号列、特征值的待处理数据列表来说,假设它的数据量为108~109,再假设标签、序号、特征值都是int型数据(每个int型数据占用4字节),那么要处理上述数待处理数据至少需要1G的内存。
步骤S6,确定所述第三排序数据的KS。
在一些实施例中,在确定待处理数据的KS之前可以将重复的待处理数据合并。
在一些实施例中,可以根据第三排序数据中的总第一样本数和总第二样本数以及第三排序数据中各个数据处的累计第一样本数和第二累计样本数确定第三排序数据中的数据的KS值。
步骤S7,根据所述第三排序数据的KS确定第三候选切分点。
在一些实施例中,可以首先在所述第三排序数据的KS中确定一个最大KS,将其对应的待处理数据作为所述第三候选切分点。
在一些实施例中,若所述第三候选切分点左侧和右侧的待处理数据的数据量大于预设数据量,则在所述第三候选切分点的左侧和右侧分别确定一个最大KS对应的待处理数据,以作为所述第三候选切分点。
在一些实施例中,预设数据量可以由用户提前设定。
在一些实施例中,判断上述第三候选切分点左侧和右侧的待处理数据的数据量大于预设数据量(如果上述步骤获取了不止一个第三候选切分点,则分别判断上述不止一个第三候选切分点的左侧和右侧的待处理数据的数据量大于预设数据量)。若判断所述第三候选切分点左侧和右侧的待处理数据的数据量全部大于预设数据量,则继续在各第三候选切分点的左侧和右侧分别确定一个最大KS对应的待处理数据,以作为所述第三候选切分点。若判断存在一个第三候选切分点的左侧或者右侧的待处理数据的数据量小于预设数据量,则停止迭代。
步骤S8,判断所述第三候选切分点的个数是否大于等于所述预设分箱数。
在一些实施例中,如果所述第三候选切分点的个数小于所述预设分箱数,则确定所述第三候选切分点就是所述目标分位点。
步骤S9,如果所述第三候选切分点的个数大于等于所述预设分箱数,根据所述预设分箱数并利用动态规划方法确定所述目标分位点。
在一些实施例中,假设第二候选切分点的个数为N,目标分箱数为M,其中N大于等于M,那么必须在N个第二候选切分点中确定M-1个目标分为点。
在一些实施例中,在N个第二候选切分点中确定M-1个目标切分点时可能会有种解,每种结果都会可以通过公式(1)求得对应解的IV值。
在一些实施例中,可以选择一个IV值最大的解对应的第三候选切分点作为目标分位点。
在一些实施例中,可以依次求出每个解的IV值,并找出最大IV值对应的解以作为最优解,并根据最优解确定目标分位点,这种最优解求取方法占用空间少、逻辑简单,但是该方法进行了多次重复计算,计算效率不高。
在一些实施例中,可以选择动态规划的方法确定目标分为点。动态规划方法可以将将已经解决过的子问题的解缓存以来,在下次使用该子问题的解时可以直接使用结果,避免了重复运算。
在一些实施例中,可以在单个节点中使用图8所示实施例提供的技术方案以完成单个属性数据的分箱处理。如果一个数据列表中包括多个属性的数据,例如一个数据列表中既包括年龄也包括分数,也可以将上述数据列表中的数据按照属性分配至多个节点中并同时使用上述方法以完成分箱处理。
图8所述实施例提供的技术方案一方面基于KS指标对待处理数据进行分箱,能够有效地对连续变量进行分箱处理,而且具有更强的解释性,另一方面根据节点内存和节点上待处理数据的数据量对待处理数据进行排序,在充分利节点内存的情况下保证了运行速度,进一步的,该方法使用动态规划找出符合条件的目标分位点,节约了运行时间。
参照图9,图2所示实施例提供的步骤S3还可以包括以下步骤。
步骤S36,若所述目标分箱方式为第二分箱方式,则确定所述待处理数据的第四候选切分点。
参照图10,图9所示实施例提供的步骤S36可以包括以下步骤。
S361,分别对各节点上的待处理数据排序,以获得各个节点中的第五排序数据。
在一些实施例中,可以首先将所述待处理数据随机分配至N个节点上,N为大于1的正整数。
在一些实施例中,可以分别对各节点上的待处理数据进行排序处理,以获得各节点中的第五排序数据。
在一些实施例中,可以根据节点内存大小和处理待处理数据所需的内存大小选择排序方法以实现对待处理数据量的排序。在一些实施例中,当单个节点上的待处理数据所需的内存空间小于该节点的一半内存时,可以采用桶排序(例如基数排序)对该节点上的待处理数据进行排序,当单个节点上的待处理数据所需的空间大于等于该节点的一半内存时可以,可采用快速排序对该节点上的待处理数据进行排序。其中快速排序占用内存少,但是速度较慢,而桶排序速度较快,但是占用内存较大。
在一些实施例中,节点中处理待处理数据所需的内存与该节点上的待处理数据的数据量、数据类型以及待处理数据包括的属性个数等相关。例如,对于一个包括标签列、序号列、特征值的待处理数据列表来说,假设它的数据量为108~109,再假设标签、序号、特征值都是int型数据(每个int型数据占用4字节),那么要处理上述数待处理数据至少需要1G的内存。
S362,根据所述节点的个数N分别对各第五排序数据进行等频划分,以获得各个节点上的第二预切分点。
在一些实施例中,根据用户指定的节点的个数N以及各个节点上待处理数据的数据量可以实现对各个节点上的排序后数据的等频划分。假设第一节点上待处理数据量为1000,用户预设的分箱数为5,那么可以根据每箱数据量为1000/5对第一节点上的排序后数据进行等频划分。
在一些实施例中,根据各个节点上的待处理数据量以及所述节点的个数N对各个节点进行等频划分后可以获得各个节点上的第二预切分点。
S363,根据所述第二预切分点确定所述第四候选切分点。
在一些实施例中,可以根据所述第二预切分点确定所述第四候选切分点。
在一些实施例中,可以对各个节点上的第二预切分点对应求均值以确定所述第四候选切分点。例如,假设节点的个数N为4,第一节点上确定的第二预切分点为2.2、4.2、5.8、8.2,第二节点上确定的第二预切分点为1.8、3.8、6.2、7.8,那么对第一节点上的第二预切分点与第二节点上的第二预切分点分别对应求均值之后求得的第四候选切分点为2、4、6、8。
在另外一些实施例中,也可以对各个节点上的第二预切分点对应求中值、最大值或者最小值等以作为第四候选切分点。
步骤S37,根据所述第四候选切分点将所述待处理数据有序分配到所述N个节点上。
在一些实施例中,有序分配指的是各个节点上的待处理数据之间存在特定、已知的大小关系。例如,第一节点上的待处理数据最大值小于第二节点上待处理数据的最小值,以此类推等。
步骤S38,分别对有序分配后的各节点上的待处理数据进行排序,以获得各个节点中的第四排序数据。
在一些实施例中,可以根据各节点的内存大小和节点上的待处理数据的数据量大小选择排序方法以实现对各节点上待处理数据量的排序。
步骤S39,根据所述预设分箱数在所述第四排序数据中确定所述目标分位点。
在一些实施例中,如果已对待处理数据进行排序,根据待处理数据的数据量、预设分箱数就可以确定目标分为点。
例如,已知待处理数据量为1000,第一节点上的第四排序数据为2520、第二节点上的第四排序数据为2480、第三节点和第四节点上第四排序数据为2500,并且第一节点上的最大值小于第二节点上的最小值,以此类推。如果节点个数为4,那么目标分为点应该为第2500、500、7500个数据,因为四个节点上的数据是排序后数据,而四个节点之间的也是有序的,所以很容易确定排序后第2500、5000、7500的数据。
上述实施例提供的分箱处理方法,基于等频方法完成了在多个节点上对大规模的待处理数据的分箱处理。该方法首先将待处理随机分配至多个节点上,并确认了初步等频切分点-第四候选切分点,然后根据第四候选切分点将待处理数据按序分配至各个节点,并对各个节点上的数据进行排序,最后根据排序后数据、预设分箱数就确认了目标分位点。该分箱处理方法可以对分布均匀的大规模数据进行分箱处理。
在一些实施例中,图2所示实施例提供的步骤S3还可以包括以下步骤。
若所述目标分箱方式为第三分箱方式,则分别获得各个节点上的最大值和最小值;根据所述各个节点上的最大值和最小值确定所述待处理数据的最大值和最小值;根据所述待处理数据的最大值和最小值以及预设分箱数确定所述目标分位点。
在一些实施例中,将待处理数据随机分配至N个节点后可以分别获取各个节点上的最大值和最小值,并在上述各节点上的最大值和最小值中确定一个最大值和最小值以作为上述待处理数据的最大值和最小值。如果一直待处理数据的最大值和最小值以及预设分箱数据,就可以确定待处理数据的分位点。例如,如果已知待处理数据的最大值为10000,最小值为1,分箱数为4,那么目标分位点就是2500、500、7500,根据目标分位点就可以实现对数据的分箱操作。
上述实施例,首先通过在各个节点中确认最大值和最小值来,然后再根据节点中的最大值和最小值确定了大规模待处理数据中的最大值和最小值,最后根据待处理数据的最大值、最小值以及预设分箱数来完成对待处理数据的分箱操作。该方法简单易操作,适用于一些分布比较集中的待处理数据。
图11是根据一示例性实施例示出的一种数据分箱处理方法的流程图。
参照图11,本公开实施例提供的数据分箱处理方法可以包括以下步骤。
步骤S111,获取待处理数据及其目标分箱方式和预设分箱数。
步骤S112,若所述待处理数据的数据量大于等于预设阈值。
步骤S113,将所述待处理数据随机分配至N个节点,N为大于1的正整数。
步骤S114,若所述目标分箱方式为第一分箱方式,分别对各节点上的待处理数据排序,以获得各个节点中的第二排序数据。
步骤S115,根据所述节点个数分别对各第二排序数据进行等频划分,以获得各个节点上的第一预切分点。
步骤S116,根据所述第一预切分点确定所述第一候选切分点。
步骤S117,根据所述第一候选切分点将所述待处理数据有序分配到所述N个节点上。
步骤S118,分别对有序分配后的各节点上的待处理数据进行排序,以获得各个节点中的第一排序数据。
步骤S119,根据所述各个节点中的第一排序数据获得所述待处理数据的全局KS。
步骤S1110,在所述全局KS中确定一个最大KS,将其对应的待处理数据作为所述第二候选切分点。
步骤S1111,判断所述第二候选切分点左侧和右侧的待处理数据的数据量是否大于预设数据量。
若所述第二候选切分点左侧和右侧的待处理数据的数据量大于预设数据量,则执行步骤S1112;若所述第二候选切分点左侧和右侧的待处理数据的数据量不大于预设数据量,则执行步骤S1113;
步骤S1112,在所述第二候选切分点的左侧和右侧分别确定一个最大KS对应的待处理数据,以作为所述第二候选切分点。然后,继续执行步骤S1111,直至所述第二候选切分点左侧和右侧的待处理数据的数据量小于等于预设数据量。
步骤S1113,判断所述第二候选切分点的个数是否小于所述预设分箱数。
若判断所述第二候选切分点的个数小于所述预设分箱数,则执行步骤S1114;若判断所述第二候选切分点的个数不小于所述预设分箱数,则执行步骤S1115。
步骤S1114,确定所述第二候选切分点就是所述目标分位点。
步骤S1115,根据所述预设分箱数并利用动态规划方法确定所述目标分位点。
步骤S1116,根据所述目标分位点获得所述待处理数据的分箱结果。
上述实施例提供了一种数据分箱处理方法,该方法具有以下有益效果:
一、基于KS指标对待处理数据进行分箱,能够有效地对连续变量进行分箱处理,而且具有更强的解释性。
二、根据节点内存和节点上待处理数据的数据量对待处理数据进行排序,在充分利节点内存的情况下保证了运行速度。
三、使用动态规划方法确定目标分位点,节约了运行时间。
四、该方法通过将大规模的将待处理数据量分配至多个节点上,然后在多个节点上的数据中确定了目标分位点,最后根据目标分位点实现对待处理数据的分箱操作,克服了单机内存过小,无法处理大规模数据的缺陷。
图12是根据一示例性实施例示出的一种数据分箱处理方法的流程图。
参照图2,本公开实施例提供的数据分箱处理方法可以包括以下步骤。
步骤S121,获取待处理数据及其目标分箱方式和预设分箱数。
步骤S122,若所述待处理数据的数据量大于等于预设阈值。
步骤S123,若所述目标分箱方式为第二分箱方式,则分别对各节点上的待处理数据排序,以获得各个节点中的第五排序数据。
步骤S124,根据所述节点个数分别对各第五排序数据进行等频划分,以获得各个节点上的第二预切分点。
步骤S125,根据所述第二预切分点确定所述第四候选切分点。
步骤S126,根据所述第四候选切分点将所述待处理数据有序分配到所述N个节点上。
步骤S127,分别对有序分配后的各节点上的待处理数据进行排序,以获得各个节点中的第四排序数据。
步骤S128,根据所述预设分箱数在所述第四排序数据中确定所述目标分位点。
步骤S129,根据所述目标分位点获得所述待处理数据的分箱结果。
上述实施例提供的分箱处理方法,基于等频方法完成了在多个节点上对大规模的待处理数据的分箱处理。该方法首先将待处理随机分配至多个节点上,并确认了初步等频切分点-第四候选切分点,然后根据第四候选切分点将待处理数据按序分配至各个节点,并对各个节点上的数据进行排序,最后根据排序后数据、预设分箱数就确认了目标分位点。该分箱处理方法可以对分布均匀的大规模数据进行分箱处理。
图13是根据一示例性实施例示出的一种数据分箱处理方法的流程图。
参照图3,本公开实施例提供的数据分箱处理方法可以包括以下步骤。
步骤S131,获取待处理数据及其目标分箱方式和预设分箱数。
步骤S132,若所述待处理数据的数据量大于等于预设阈值。
步骤S133,将所述待处理数据随机分配至N个节点,N为大于1的正整数。
步骤S134,若所述目标分箱方式为第三分箱方式,则分别获得各个节点上的最大值和最小值。
步骤S135,根据所述各个节点上的最大值和最小值确定所述待处理数据的最大值和最小值。
步骤S136,根据所述待处理数据的最大值和最小值以及预设分箱数确定所述目标分位点。
步骤S137,根据所述目标分位点获得所述待处理数据的分箱结果。
上述实施例,首先通过在各个节点中确认最大值和最小值来,然后再根据节点中的最大值和最小值确定了大规模待处理数据中的最大值和最小值,最后根据待处理数据的最大值、最小值以及预设分箱数来完成对待处理数据的分箱操作。该方法简单易操作,适用于一些分布比较集中的待处理数据。
图14是根据一示例性实施例示出的一种数据分箱处理方法的流程图。
参照图4,本公开实施例提供的数据分箱处理方法可以包括以下步骤。
步骤S141,获取待处理数据及其目标分箱方式和预设分箱数。
步骤S142,若所述待处理数据的数据量小于预设阈值。
步骤S143,对所述待处理数据进行排序,以生成第三排序数据。
步骤S144,确定所述第三排序数据的KS。
步骤S145,在所述第三排序数据的KS中确定一个最大KS,将其对应的待处理数据作为所述第五候选切分点。
步骤S146,判断所述第五候选切分点左侧和右侧的待处理数据的数据量是否大于预设数据量。
若判断所述第五候选切分点左侧和右侧的待处理数据的数据量大于预设数据量,则继续执行步骤S146,否则执行步骤S147。
步骤S147,判断所述第五候选切分点的个数是否小于所述预设分箱数。
若判断所述第五候选切分点的个数小于所述预设分箱数,则执行步骤S148,否则执行步骤149。
步骤S148,确定所述第二候选切分点就是所述目标分位点。
步骤S149,根据所述预设分箱数并利用动态规划方法确定所述目标分位点。
步骤S1410,根据所述目标分位点获得所述待处理数据的分箱结果。
在一些实施例中,可以在单个节点中使用图14所示实施例提供的技术方案以完成单个属性数据的分箱处理。如果一个数据列表中包括多个属性的数据,例如一个数据列表中既包括年龄也包括分数,也可以将上述数据列表中的数据按照属性分配至多个节点中并同时使用上述方法以完成分箱处理。
图14所述实施例提供的技术方案一方面基于KS指标对待处理数据进行分箱,能够有效地对连续变量进行分箱处理,而且具有更强的解释性,另一方面根据节点内存和节点上待处理数据的数据量对待处理数据进行排序,在充分利节点内存的情况下保证了运行速度,进一步的,该方法使用动态规划找出符合条件的目标分位点,节约了运行时间。
图15是根据一示例性实施例示出的一种数据分箱处理装置的框图。参照图15,该装置150包括数据获取模块1501、数据分配模块1502、目标分位点确定模块1503以及分箱模块1504。
其中,数据获取模块1501可以配置为获取待处理数据及其目标分箱方式和预设分箱数;数据分配模块1502可以配置为若所述待处理数据的数据量大于等于预设阈值,则将所述待处理数据随机分配至N个节点,N为大于1的正整数;目标分位点确定模块1503可以配置为根据所述预设分箱数并利用所述目标分箱方式对所述N个节点上的待处理数据进行处理,以确定所述待处理数据的目标分位点;分箱模块1504可以配置为根据所述目标分位点对所述待处理数据进行分箱操作以获得分箱结果。
在一些实施例中,图15所示目标分位点确定模块03可以包括第一候选切分点确定子模块、第一分配子模块、第一排序子模块、全局KS确定子模块以及第一目标分位点确定子模块。
其中,第一候选切分点确定子模块可以配置为若所述目标分箱方式为第一分箱方式,则确定所述待处理数据的第一候选切分点;第一分配子模块可以配置根据所述第一候选切分点将所述待处理数据有序分配到所述N个节点上;第一排序子模块可以配置分别对有序分配后的各节点上的待处理数据进行排序,以获得各个节点中的第一排序数据;全局KS确定子模块可以配置根据所述各个节点中的第一排序数据获得所述待处理数据的全局KS;第一目标分位点确定子模块,根据所述待处理数据的全局KS确定所述目标分位点。
在一些实施例中,第一候选切分点确定子模块可以包括第二排序单元、第一预切分点确定单元以及确定第一候选切分点单元。
其中,第二排序单元可以配置为分别对各节点上的待处理数据排序,以获得各个节点中的第二排序数据;第一预切分点确定单元可以配置为根据所述节点个数N分别对各第二排序数据进行等频划分,以获得各个节点上的第一预切分点;确定第一候选切分点单元可以配置为根据所述第一预切分点确定所述第一候选切分点。
在一些实施例中,图15所示第一目标分位点确定子模块035可以包括第二候选切分点确定单元和确定目标分位点单元。
其中,第二候选切分点确定单元可以配置为根据所述待处理数据的全局KS在所述N个节点上的第一排序数据中的确定第二候选切分点;确定目标分位点单元可以配置为根据所述预设分箱数在所述第二候选切分点中确定所述目标分位点。
在一些实施例中,第二候选切分点确定单元可以包括最大KS确定子单元和二分子单元。
其中,最大KS确定子单元可以配置为在所述全局KS中确定一个最大KS,将其对应的待处理数据作为所述第二候选切分点;二分子单元,若所述第二候选切分点左侧和右侧的待处理数据的数据量大于预设数据量,则在所述第二候选切分点的左侧和右侧分别确定一个最大KS对应的待处理数据,以作为所述第二候选切分点。
在一些实施例中,第二目标分位点确定单元可以包括第一判断子单元、第二目标分位点确定子单元以及第二目标分位点确定子单元。
其中,第一判断子单元,判断所述第二候选切分点的个数是否小于所述预设分箱数;第二目标分位点确定子单元,如果所述第二候选切分点的个数小于所述预设分箱数,则确定所述第二候选切分点就是所述目标分位点;第二目标分位点确定子单元,如果所述第二候选切分点的个数大于等于所述预设分箱数,根据所述预设分箱数并利用动态规划方法确定所述目标分位点。
在一些实施例中,图15所示的装置150还可以包括:第三排序模块、KS确定模块、第三候选切分点确定模块、第二判断模块以及第三目标分位点确定模块。
其中,第三排序模块可以配置为若所述待处理数据的数据量小于预设阈值,则对所述待处理数据进行排序,以生成第三排序数据;KS确定模块可以配置为确定所述第三排序数据的KS;第三候选切分点确定模块可以配置为根据所述第三排序数据的KS确定第三候选切分点;第二判断模块可以配置为判断所述第三候选切分点的个数是否大于等于所述预设分箱数;第三目标分位点确定模块可以配置为如果所述第三候选切分点的个数大于等于所述预设分箱数,根据所述预设分箱数并利用动态规划方法确定所述目标分位点。
在一些实施例中,图15所示的目标分位点确定模块03还可以包括:第四候选切分点确定子模块、第二分配子模块、第四排序数据获取子模块以及第四目标分位点确定子模块。
其中,第四候选切分点确定子模块可以配置为若所述目标分箱方式为第二分箱方式,则确定所述待处理数据的第四候选切分点;第二分配子模块可以配置为根据所述第四候选切分点将所述待处理数据有序分配到所述N个节点上;第四排序数据获取子模块可以配置为分别对有序分配后的各节点上的待处理数据进行排序,以获得各个节点中的第四排序数据;第四目标分位点确定子模块可以配置为根据所述预设分箱数在所述第四排序数据中确定所述目标分位点。
在一些实施例中,第四候选切分点确定子模块可以包括:第五排序子模块、第二预切分点确定子模块以及第四候选切分点子模块。
其中,第五排序子模块可以配置为分别对各节点上的待处理数据排序,以获得各个节点中的第五排序数据;第二预切分点确定子模块可以配置为根据所述节点的个数N分别对各第五排序数据进行等频划分,以获得各个节点上的第二预切分点;第三候选切分点子模块可以配置为根据所述第二预切分点确定所述第四候选切分点。
在一些实施例中,图15所示的装置150还可以包括:节点最值获取模块、全局最值确定模块以及第五目标分位点确定子模块
节点最值获取模块可以配置为若所述目标分箱方式为第三分箱方式,则分别获得各个节点上的最大值和最小值;全局最值确定模块可以配置为根据所述各个节点上的最大值和最小值确定所述待处理数据的最大值和最小值;第四目标分位点确定子模块根据所述待处理数据的最大值和最小值以及预设分箱数确定所述目标分位点。
由于本公开的示例实施例的数据分箱处理装置150的各个功能模块与上述数据分箱处理方法的示例实施例的步骤对应,因此在此不再赘述。
下面参考图16,其示出了适于用来实现本申请实施例的终端设备的计算机系统1600的结构示意图。图16示出的终端设备仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图16所示,计算机系统1600包括中央处理单元(CPU)1601,其可以根据存储在只读存储器(ROM)1602中的程序或者从存储部分1608加载到随机访问存储器(RAM)1603中的程序而执行各种适当的动作和处理。在RAM 1603中,还存储有系统1600操作所需的各种程序和数据。CPU 1601、ROM 1602以及RAM 1603通过总线1604彼此相连。输入/输出(I/O)接口1605也连接至总线1604。
以下部件连接至I/O接口1605:包括键盘、鼠标等的输入部分1606;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分1607;包括硬盘等的存储部分1608;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分1609。通信部分1609经由诸如因特网的网络执行通信处理。驱动器1610也根据需要连接至I/O接口1605。可拆卸介质1611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1610上,以便于从其上读出的计算机程序根据需要被安装入存储部分1608。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分1609从网络上被下载和安装,和/或从可拆卸介质1611被安装。在该计算机程序被中央处理单元(CPU)1601执行时,执行本申请的系统中限定的上述功能。
需要说明的是,本申请所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元也可以设置在处理器中,例如,可以描述为:一种处理器包括发送单元、获取单元、确定单元和第一处理单元。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。
作为另一方面,本申请还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备可实现功能包括:获取待处理数据及其目标分箱方式和预设分箱数;若所述待处理数据的数据量大于等于预设阈值,则将所述待处理数据随机分配至N个节点,N为大于1的正整数;根据所述预设分箱数并利用所述目标分箱方式对所述N个节点上的待处理数据进行处理,以确定所述待处理数据的目标分位点;根据所述目标分位点对所述待处理数据进行分箱操作以获得分箱结果。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,本公开实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算设备(可以是个人计算机、服务器、移动终端、或者智能设备等)执行根据本公开实施例的方法,例如图2的一个或多个所示的步骤。
此外,上述附图仅是根据本公开示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
本领域技术人员在考虑说明书及实践这里公开的公开后,将容易想到本公开的其他实施例。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未申请的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由权利要求指出。
应当理解的是,本公开并不限于这里已经示出的详细结构、附图方式或实现方法,相反,本公开意图涵盖包含在所附权利要求的精神和范围内的各种修改和等效设置。
Claims (13)
1.一种数据分箱处理方法,其特征在于,包括:
获取待处理数据及其目标分箱方式和预设分箱数;
若所述待处理数据的数据量大于等于预设阈值,则将所述待处理数据随机分配至N个节点,N为大于1的正整数;
根据所述预设分箱数并利用所述目标分箱方式对所述N个节点上的待处理数据进行处理,以确定所述待处理数据的目标分位点;
根据所述目标分位点对所述待处理数据进行分箱操作以获得分箱结果。
2.根据权利要求1所述方法,其特征在于,根据所述预设分箱数并利用所述目标分箱方式对所述N个节点上的待处理数据进行处理,以确定所述待处理数据的目标分位点,包括:
若所述目标分箱方式为第一分箱方式,则确定所述待处理数据的第一候选切分点;
根据所述第一候选切分点将所述待处理数据有序分配到所述N个节点上;
分别对有序分配后的各节点上的待处理数据进行排序,以获得各个节点中的第一排序数据;
根据所述各个节点中的第一排序数据获得所述待处理数据的全局KS;
根据所述待处理数据的全局KS确定所述目标分位点。
3.根据权利要求2所述方法,其特征在于,确定所述待处理数据的第一候选切分点,包括:
分别对各节点上的待处理数据排序,以获得各个节点中的第二排序数据;
根据所述节点的个数N分别对各第二排序数据进行等频划分,以获得各个节点上的第一预切分点;
根据所述第一预切分点确定所述第一候选切分点。
4.根据权利要求2所述方法,其特征在于,根据所述待处理数据的全局KS确定所述目标分位点,包括:
根据所述待处理数据的全局KS在所述N个节点上的第一排序数据中的确定第二候选切分点;
根据所述预设分箱数在所述第二候选切分点中确定所述目标分位点。
5.根据权利要求4所述方法,其特征在于,根据所述待处理数据的全局KS在所述N个节点上的第一排序数据中确定第二候选切分点,包括:
在所述全局KS中确定一个最大KS,将其对应的待处理数据作为所述第二候选切分点;
若所述第二候选切分点左侧和右侧的待处理数据的数据量大于预设数据量,则在所述第二候选切分点的左侧和右侧分别确定一个最大KS对应的待处理数据,以作为所述第二候选切分点。
6.根据权利要求4所述方法,其特征在于,根据所述预设分箱数在所述第二候选切分点中确定所述目标分位点,包括:
判断所述第二候选切分点的个数是否小于所述预设分箱数;
如果所述第二候选切分点的个数小于所述预设分箱数,则确定所述第二候选切分点就是所述目标分位点;
如果所述第二候选切分点的个数大于等于所述预设分箱数,根据所述预设分箱数并利用动态规划方法确定所述目标分位点。
7.根据权利要求1所述方法,其特征在于,还包括:
若所述待处理数据的数据量小于预设阈值,则对所述待处理数据进行排序,以生成第三排序数据;
确定所述第三排序数据的KS;
根据所述第三排序数据的KS确定第三候选切分点;
判断所述第三候选切分点的个数是否大于等于所述预设分箱数;
如果所述第三候选切分点的个数大于等于所述预设分箱数,根据所述预设分箱数并利用动态规划方法确定所述目标分位点。
8.根据权利要求1所述方法,其特征在于,根据所述预设分箱数并利用所述目标分箱方式对所述N个节点上的待处理数据进行处理,以确定所述待处理数据的目标分位点,还包括:
若所述目标分箱方式为第二分箱方式,则确定所述待处理数据的第四候选切分点;
根据所述第四候选切分点将所述待处理数据有序分配到所述N个节点上;
分别对有序分配后的各节点上的待处理数据进行排序,以获得各个节点中的第四排序数据;
根据所述预设分箱数在所述第四排序数据中确定所述目标分位点。
9.根据权利要求8所述方法,其特征在于,确定所述待处理数据的第四候选切分点,包括:
分别对各节点上的待处理数据排序,以获得各个节点中的第五排序数据;
根据所述节点的个数N分别对各第五排序数据进行等频划分,以获得各个节点上的第二预切分点;
根据所述第二预切分点确定所述第四候选切分点。
10.根据权利要求1所述方法,其特征在于,根据所述预设分箱数并利用所述目标分箱方式对所述N个节点上的待处理数据进行处理,以确定所述待处理数据的目标分位点,还包括:
若所述目标分箱方式为第三分箱方式,则分别获得各个节点上的最大值和最小值;
根据所述各个节点上的最大值和最小值确定所述待处理数据的最大值和最小值;
根据所述待处理数据的最大值和最小值以及预设分箱数确定所述目标分位点。
11.一种数据分箱处理装置,其特征在于,包括:
数据获取模块,配置为获取待处理数据及其目标分箱方式和预设分箱数;
数据分配模块,配置为若所述待处理数据的数据量大于等于预设阈值,则将所述待处理数据随机分配至N个节点,N为大于1的正整数;
目标分位点确定模块,配置为根据所述预设分箱数并利用所述目标分箱方式对所述N个节点上的待处理数据进行处理,以确定所述待处理数据的目标分位点;
分箱模块,配置为根据所述目标分位点对所述待处理数据进行分箱操作以获得分箱结果。
12.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-10中任一项所述的方法。
13.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-10中任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910504964.2A CN110245140B (zh) | 2019-06-12 | 2019-06-12 | 数据分箱处理方法及装置、电子设备和计算机可读介质 |
PCT/CN2019/100804 WO2020248356A1 (zh) | 2019-06-12 | 2019-08-15 | 数据分箱处理方法及装置、电子设备和计算机可读介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910504964.2A CN110245140B (zh) | 2019-06-12 | 2019-06-12 | 数据分箱处理方法及装置、电子设备和计算机可读介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110245140A true CN110245140A (zh) | 2019-09-17 |
CN110245140B CN110245140B (zh) | 2020-07-17 |
Family
ID=67886711
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910504964.2A Active CN110245140B (zh) | 2019-06-12 | 2019-06-12 | 数据分箱处理方法及装置、电子设备和计算机可读介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN110245140B (zh) |
WO (1) | WO2020248356A1 (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111242244A (zh) * | 2020-04-24 | 2020-06-05 | 支付宝(杭州)信息技术有限公司 | 特征值分箱方法、系统及装置 |
CN111311599A (zh) * | 2020-01-17 | 2020-06-19 | 北京达佳互联信息技术有限公司 | 图像处理方法、装置、电子设备和存储介质 |
CN111507479A (zh) * | 2020-04-15 | 2020-08-07 | 深圳前海微众银行股份有限公司 | 特征分箱方法、装置、设备及计算机可读存储介质 |
CN111506485A (zh) * | 2020-04-15 | 2020-08-07 | 深圳前海微众银行股份有限公司 | 特征分箱方法、装置、设备及计算机可读存储介质 |
CN111611243A (zh) * | 2020-05-13 | 2020-09-01 | 第四范式(北京)技术有限公司 | 数据处理方法及装置 |
CN112667608A (zh) * | 2020-04-03 | 2021-04-16 | 华控清交信息科技(北京)有限公司 | 一种数据处理方法、装置和用于数据处理的装置 |
CN112667741A (zh) * | 2020-04-13 | 2021-04-16 | 华控清交信息科技(北京)有限公司 | 一种数据处理方法、装置和用于数据处理的装置 |
CN114491416A (zh) * | 2022-02-23 | 2022-05-13 | 北京百度网讯科技有限公司 | 特征信息的处理方法、装置、电子设备和存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070185896A1 (en) * | 2006-02-01 | 2007-08-09 | Oracle International Corporation | Binning predictors using per-predictor trees and MDL pruning |
CN108764273A (zh) * | 2018-04-09 | 2018-11-06 | 中国平安人寿保险股份有限公司 | 一种数据处理的方法、装置、终端设备及存储介质 |
-
2019
- 2019-06-12 CN CN201910504964.2A patent/CN110245140B/zh active Active
- 2019-08-15 WO PCT/CN2019/100804 patent/WO2020248356A1/zh active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070185896A1 (en) * | 2006-02-01 | 2007-08-09 | Oracle International Corporation | Binning predictors using per-predictor trees and MDL pruning |
CN108764273A (zh) * | 2018-04-09 | 2018-11-06 | 中国平安人寿保险股份有限公司 | 一种数据处理的方法、装置、终端设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
巫晓杰: "基于并行随机森林的在线贷款逾期预测研究", 《中国优秀硕士学位论文全文数据库 经济与管理科学辑》 * |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111311599B (zh) * | 2020-01-17 | 2024-03-26 | 北京达佳互联信息技术有限公司 | 图像处理方法、装置、电子设备和存储介质 |
CN111311599A (zh) * | 2020-01-17 | 2020-06-19 | 北京达佳互联信息技术有限公司 | 图像处理方法、装置、电子设备和存储介质 |
CN112667608B (zh) * | 2020-04-03 | 2022-01-25 | 华控清交信息科技(北京)有限公司 | 一种数据处理方法、装置和用于数据处理的装置 |
CN112667608A (zh) * | 2020-04-03 | 2021-04-16 | 华控清交信息科技(北京)有限公司 | 一种数据处理方法、装置和用于数据处理的装置 |
CN112667741A (zh) * | 2020-04-13 | 2021-04-16 | 华控清交信息科技(北京)有限公司 | 一种数据处理方法、装置和用于数据处理的装置 |
CN112667741B (zh) * | 2020-04-13 | 2022-07-08 | 华控清交信息科技(北京)有限公司 | 一种数据处理方法、装置和用于数据处理的装置 |
CN111506485A (zh) * | 2020-04-15 | 2020-08-07 | 深圳前海微众银行股份有限公司 | 特征分箱方法、装置、设备及计算机可读存储介质 |
CN111507479B (zh) * | 2020-04-15 | 2021-08-10 | 深圳前海微众银行股份有限公司 | 特征分箱方法、装置、设备及计算机可读存储介质 |
CN111507479A (zh) * | 2020-04-15 | 2020-08-07 | 深圳前海微众银行股份有限公司 | 特征分箱方法、装置、设备及计算机可读存储介质 |
CN111242244B (zh) * | 2020-04-24 | 2020-09-18 | 支付宝(杭州)信息技术有限公司 | 特征值分箱方法、系统及装置 |
CN111242244A (zh) * | 2020-04-24 | 2020-06-05 | 支付宝(杭州)信息技术有限公司 | 特征值分箱方法、系统及装置 |
CN111611243A (zh) * | 2020-05-13 | 2020-09-01 | 第四范式(北京)技术有限公司 | 数据处理方法及装置 |
CN111611243B (zh) * | 2020-05-13 | 2023-06-13 | 第四范式(北京)技术有限公司 | 数据处理方法及装置 |
CN114491416A (zh) * | 2022-02-23 | 2022-05-13 | 北京百度网讯科技有限公司 | 特征信息的处理方法、装置、电子设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2020248356A1 (zh) | 2020-12-17 |
CN110245140B (zh) | 2020-07-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110245140A (zh) | 数据分箱处理方法及装置、电子设备和计算机可读介质 | |
CN110019396A (zh) | 一种基于分布式多维分析的数据分析系统及方法 | |
CN112800095B (zh) | 一种数据处理方法、装置、设备及存储介质 | |
CN109766497A (zh) | 排行榜生成方法及装置、存储介质、电子设备 | |
CN110457331B (zh) | 通用的实时更新多维数据可视化系统及方法 | |
CN109255072A (zh) | 信息召回方法及装置、计算机存储介质、电子设备 | |
CN110580649A (zh) | 一种商品潜力值的确定方法和装置 | |
CN109903105B (zh) | 一种完善目标商品属性的方法和装置 | |
CN109582849A (zh) | 一种基于知识图谱的网络资源智能检索方法 | |
CN109961077A (zh) | 性别预测方法、装置、存储介质及电子设备 | |
CN108804383B (zh) | 基于度量空间的支撑点并行枚举方法及装置 | |
CN105740480B (zh) | 机票推荐方法及系统 | |
CN109002440A (zh) | 用于大数据多维分析的方法、装置及系统 | |
CN110232178A (zh) | 报表生成方法及装置 | |
CN110825526B (zh) | 基于er关系的分布式调度方法及装置、设备以及存储介质 | |
CN110473073A (zh) | 线性加权推荐的方法及装置 | |
CN109558248A (zh) | 一种用于确定面向海洋模式计算的资源分配参数的方法及系统 | |
CN112116426A (zh) | 一种推送物品信息的方法和装置 | |
CN109597810A (zh) | 一种任务切分方法、装置、介质及电子设备 | |
CN110298371A (zh) | 数据聚类的方法和装置 | |
CN112418258A (zh) | 一种特征离散化方法和装置 | |
CN112464040B (zh) | 图结构识别、可视化展示及显示操作方法及装置 | |
CN110390011A (zh) | 数据分类的方法和装置 | |
CN112231299A (zh) | 一种特征库动态调整的方法和装置 | |
CN107844536A (zh) | 应用程序选择的方法、装置和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20210910 Address after: Room 209, building 18, No. 998, Wenyi West Road, Wuchang Street, Yuhang District, Hangzhou City, Zhejiang Province, 310012 Patentee after: TONGDUN TECHNOLOGY Co.,Ltd. Address before: Room 704, building 18, No. 998, Wenyi West Road, Wuchang Street, Yuhang District, Hangzhou City, Zhejiang Province Patentee before: TONGDUN HOLDINGS Co.,Ltd. |
|
TR01 | Transfer of patent right |