数据离散化方法、装置和服务器与流程

文档序号:17625253发布日期:2019-05-10 23:35阅读:224来源:国知局
数据离散化方法、装置和服务器与流程

本发明涉及数据处理技术领域,尤其是涉及一种数据离散化方法、装置和服务器。



背景技术:

在一些机器学习建模场景中,数据特征的离散化处理在特征工程中占据非常重要的地位,其优点有:离散特征的运算速度快、对异常数据鲁棒性强、以离散化数据中的离散特征作为输入的模型更加稳定、可以为广义线性模型引入非线性来提升模型的表达能力和可以简化模型降低过拟合风险等。

通过穷举法可以找到数据离散化的全局最优解,但是该方法所进行的计算量巨大,基本没有应用价值;现有方法中有监督的数据离散化方法如决策树法,使用的是贪心算法,该类方法能够分步的实现特征的离散化,但通常得到的只是一个局部最优解,因此,该类方法得到的离散化数据缺乏合理性。



技术实现要素:

有鉴于此,本发明的目的在于提供数据离散化方法、装置和服务器,以得到划分点的近似全局最优解,提高数据离散化的合理性。

第一方面,本发明实施例提供了一种数据离散化方法,该方法包括:获取待离散化的数据;根据预设规则,将数据中指定数量的取值作为初始划分点;通过蒙特卡罗方法,从所有初始划分点中确定预设数量的最终划分点;根据最终划分点,将数据进行区间划分,得到数据对应的离散化数据。

结合第一方面,本发明实施例提供了第一方面的第一种可能的实施方式,其中,上述方法还包括:将得到的数据对应的离散化数据写入指定的文件或者传输至外部设备。

结合第一方面,本发明实施例提供了第一方面的第二种可能的实施方式,其中,上述根据预设规则,将数据中指定数量的取值作为初始划分点的步骤,至少包括下述方式之一:通过等频法,从数据的取值中得到指定数量的初始划分点;其中,初始划分点划分的每个区间的数据量相等;通过等距法,从数据的取值中得到指定数量的初始划分点;其中,初始划分点划分的每个区间的间距相等;第一个区间的起始点为数据最小的取值,最后一个区间的终止点为数据最大的取值;通过单变量决策树法,从数据的取值中得到指定数量的初始划分点。

结合第一方面,本发明实施例提供了第一方面的第三种可能的实施方式,其中,上述通过单变量决策树法,从数据的取值中得到指定数量的初始划分点的步骤,包括:获取待离散化的数据中的原始特征和对应的类别标签;根据原始特征和类别标签,建立决策树模型,其中,决策树模型的叶节点数量为指定数量加1;通过决策树模型,计算得到指定数量的初始划分点。

结合第一方面,本发明实施例提供了第一方面的第四种可能的实施方式,其中,上述通过蒙特卡罗方法,从所有初始划分点中确定预设数量的最终划分点的步骤,包括:根据预设的用户需求,设置离散化的区间数量;通过蒙特卡罗方法计算所有初始划分点的价值,将价值最高的初始划分点确定为第一个最终划分点;通过蒙特卡罗方法计算除去第一个最终划分点的初始划分点的价值,得到价值最高的初始划分点为第二个最终划分点,直至得到区间数量减一个最终划分点。

结合第一方面,本发明实施例提供了第一方面的第五种可能的实施方式,其中,通过蒙特卡罗方法计算所有初始划分点的价值的步骤,包括:将初始划分点d作为临时的最终划分点,从大于d的s个初始划分点中选出k-a-2个划分点,其中a表示已确定的最终划分点的个数,k离散化的区间数量;根据临时的最终划分点、k-a-2个划分点和已确定的最终划分点,得到k-1个划分点;根据排列组合的方法,得到种划分方法,从上述划分方法中抽取固定比例或者固定数量的划分方法;根据价值评价函数计算抽取的划分方法的价值,将抽取的划分方法的价值的统计指标作为初始划分点d的价值;其中,价值评价函数采用负信息熵、iv值或者gini不纯度;统计指标采用期望、最大值、最小值、top-n平均值或者bottom-n平均值。

第二方面,本发明实施例还提供一种数据离散化装置,该装置包括:数据获取模块,用于获取待离散化的数据;初始划分点确定模块,用于根据预设规则,将数据中指定数量的取值作为初始划分点;最终划分点确定模块,用于通过蒙特卡罗方法,从所有初始划分点中确定预设数量的最终划分点;离散化模块,用于根据最终划分点,将数据进行区间划分,得到数据对应的离散化数据。

结合第二方面,本发明实施例提供了第二方面的第一种可能的实施方式,其中,上述装置还包括:数据传输模块,用于将得到的数据对应的离散化数据写入指定的文件或者传输至外部设备。

结合第二方面,本发明实施例提供了第二方面的第二种可能的实施方式,其中,上述最终划分点确定模块,还用于:根据预设的用户需求,设置离散化的区间数量;通过蒙特卡罗方法计算所有初始划分点的价值,将价值最高的初始划分点确定为第一个最终划分点;通过蒙特卡罗方法计算除去第一个最终划分点的初始划分点的价值,得到价值最高的初始划分点为第二个最终划分点,直至得到区间数量减一个最终划分点。

第三方面,本发明实施例还提供一种服务器,该服务器包括存储器和处理器;存储器用于存储支持处理器执行第一方面所述方法的程序,处理器被配置为用于执行存储器中存储的程序。

本发明实施例带来了以下有益效果:

本发明提供了一种数据离散化方法、装置和服务器,其中,数据离散化方法中,首先获取待离散化的数据;根据预设规则,将该数据中指定数量的取值作为初始划分点;然后通过蒙特卡罗方法,从所有的初始划分点中确定预设数量的最终划分点;最后根据最终划分点,将待离散化的数据进行区间划分,得到数据对应的离散化数据。本发明通过蒙特卡罗方法得到划分点的近似全局最优解,提高了数据离散化的合理性。

本发明的其他特征和优点将在随后的说明书中阐述,或者,部分特征和优点可以从说明书推知或毫无疑义地确定,或者通过实施本发明的上述技术即可得知。

为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施方式,并配合所附附图,作详细说明如下。

附图说明

为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的一种数据离散化方法的流程图;

图2为本发明实施例提供的另一种数据离散化方法的流程图;

图3为本发明实施例提供的另一种数据离散化方法的流程图;

图4为本发明实施例提供的一种数据离散化装置的结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

现有的特征离散化方法中,通常得到的是局部最优解,基于此,本发明实施例提供的一种数据离散化方法、装置和服务器,该技术可以应用于数据的建模和数据的特征离散化等场景中。

为便于对本实施例进行理解,首先对本发明实施例所公开的一种数据离散化方法进行详细介绍。

参见图1所示的一种数据离散化方法的流程图,该方法包括如下步骤:

步骤s102,获取待离散化的数据;

从存有待离散化数据的文件中,读取数据,该数据包括原始特征及其对应的类别标签;该原始特征通常是指需要做离散化的特征的变量,该原始特征可以是月收入、年龄和交易量等变量;对应的类别标签通常是指原始特征对应的类别的标签变化表示,例如,月收入对应的类别标签为0或者1,其中0表示信用良好,1表信用糟糕。

步骤s104,根据预设规则,将上述数据中指定数量的取值作为初始划分点;

根据上述数据中的原始特征,从数据的取值中选取指定数量的初始划分点,该指定数量是根据用户需求设定的,例如m个,该m个初始化分点可将数据的所有取值分成m+1个区间;其中,初始划分点的个数越多,越有利于提高数据的划分精度;上述指定数量的初始划分点是根据预设规则选取的。

上述预设规则可以是不同的算法,即通过采取不同算法得到初始划分点,那么获取初始划分点的方法包括下述方式之一:

1)通过等频法,从数据的取值中得到指定数量的初始划分点;其中,初始划分点划分的每个区间的数据量相等;

等频法得到的m个初始划分点,可以将数据的所有取值划分为m+1个区间,每个区间中数据量是相等的,该方法的操作简单,可以减小选择初始划分点的计算量。

2)通过等距法,从数据的取值中得到指定数量的初始划分点;其中,初始划分点划分的每个区间的间距相等;第一个区间的起始点为数据最小的取值,最后一个区间的终止点为数据最大的取值;

等距法得到的m个初始划分点,可以将数据的所有取值划分为m+1个区间;通过等距法得到的m+1个区间的过程,相当于,根据数据的初始特征,将数据的取值从小到大进行排列,从排列的数据中选择出m个初始划分点,并按照该排列顺序对数据的取值进行区间划分,以使划分的前一个区间的所有取值的大小小于后一个区间的所有取值;其中,第一个区间的起始点特征最小的取值(相当于上述数据的取值最小),最后一个区间的终止点为特征最大的取值(相当于上述数据的取值最大)。

3)通过单变量决策树法,从数据的取值中得到指定数量的初始划分点。

通过单变量决策树法,得到指定数量的初始划分点的步骤,包括:获取待离散化的数据中的原始特征和对应的类别标签;根据原始特征和类别标签,建立决策树模型,其中,决策树模型的叶节点数量为指定数量加1;通过决策树模型,计算得到指定数量的初始划分点。

单变量决策树法通常是一种从无次序、无规则的样本数据集中推理出决策树表示形式的分类规则方法;根据待离散化的数据中的原始特征和对应的类别标签,可以建立基于信息熵或者基尼不纯度的决策树模型,设置模型的叶节点数量为m+1,其中,m表示需要得到的初始划分点的个数;然后根据决策树模型的计算得到的m个决策点为初始划分点。

步骤s106,通过蒙特卡罗方法,从所有初始划分点中确定预设数量的最终划分点;

蒙特卡罗方法的基本思想,通常为当所求解问题是某种随机事件出现的概率,或者是某个随机变量的期望值时,通过某种“实验”的方法,以这种事件出现的频率估计这一随机事件的概率,或者得到这个随机变量的某些数字特征,并将其作为问题的解,通过该解可以从初始划分点中确定最终的划分点。

根据预设的用户需求,设置数据离散化后的区间数量为k,那么上述预设数量为k-1,也就是说需要从m个初始划分点(相当于上述所有初始划分点)中确定k-1个最终划分点,其中m大于k。

由于需要确定k-1个最终划分点,那么需要使用蒙特卡罗方法对初始划分点进行k-1轮的计算,得到k-1个最终划分点;第一轮使用蒙特卡罗方法计算m个初始划分点的价值,选择价值最高的初始划分点作为第一个最终划分点;以后每轮,都使用蒙特卡罗方法计算大于上一次选出的最终划分点的初始划分点的价值,并从中选择价值最高的初始划分点作为下一个最终划分点;经过k-1轮计算,得到第k-1个最终划分点。

步骤s108,根据最终划分点,将数据进行区间划分,得到数据对应的离散化数据。

例如,根据上述得到的k-1个最终划分点,可将数据划分为k个区间,该k个区间的数据即为数据对应的离散化数据;该k个区间主要是针对数据的原始特征进行划分的,此时,也实现了数据特征的离散化。

本发明提供了一种数据离散化方法,该方法首先获取待离散化的数据;根据预设规则,将该数据中指定数量的取值作为初始划分点;然后通过蒙特卡罗方法,从所有的初始划分点中确定预设数量的最终划分点;最后根据最终划分点,将待离散化的数据进行区间划分,得到数据对应的离散化数据。本发明通过蒙特卡罗方法得到划分点的全局最优解,提高了数据离散化的合理性。

参见图2所示的另一种数据离散化方法的流程图,该方法在上述图1所示实施例所提供的方法的基础上实现;该方法包括如下步骤:

步骤s202,获取待离散化的数据;

步骤s204,根据预设规则,将上述数据中指定数量的取值作为初始划分点;

步骤s206,根据预设的用户需求,设置离散化的区间数量;

根据不同应用场景,用户可以设置不同的离散化的区间数量,通常情况下,设置的区间数量越多,数据的划分越精细,也就是得到的离散化数据的精度越高。

步骤s208,通过蒙特卡罗方法计算所有初始划分点的价值,将价值最高的初始划分点确定为第一个最终划分点;

步骤s210,通过蒙特卡罗方法计算除去第一最终划分点的初始划分点的价值,得到价值最高的初始划分点为第二个最终划分点,直至得到区间数量减一个最终划分点;

通过蒙特卡罗方法计算任意一个初始划分点d的价值的步骤,包括:

步骤01,将初始划分点d作为临时的最终划分点,从大于d的s个初始划分点中选出k-a-2个划分点,其中a表示已确定的最终划分点的个数;

由于后选择出的最终划分点需要大于先选择出的最终划分点,所以需要从大于临时最终划分点d(相当于上述初始划分点d)的初始划分点中选择出k-a-2个划分点,其中设置k为离散化的区间数量。

步骤02,根据临时的最终划分点、k-a-2个划分点和已确定的最终划分点,得到k-1个划分点;

根据上述k-1个划分点,可以将数据划分为k个区间。

步骤03,根据排列组合的方法,得到种划分方法,从种划分方法中抽取固定比例或者固定数量的划分方法;

在选择从s个初始划分点中选取k-a-2个划分点的排列组合有种,因此,上述得到的k-1个划分点就可确定中划分方法;可以根据用户需求从所有的划分方法中,选择出固定比例(例如,1:1或者1:3等)或者固定数量(例如,20个或者10个等)的划分方法,并计算选择出的划分方法的价值。

步骤04,根据价值评价函数计算抽取的划分方法的价值,将抽取的划分方法的价值的统计指标作为初始划分点d的价值;其中,价值评价函数可以采用负信息熵、iv(informationvalue,信息价值指标)值或者gini(基尼)不纯度;统计指标可以采用期望、最大值、最小值、top-n平均值或者bottom-n平均值。

计算第二个最终划分点的步骤为:通过蒙特卡罗方法计算除去第一最终划分点,且初始划分点大于第一个最终划分点的初始划分点的价值;将得到的价值最高的初始划分点选定为第二最终划分点。

通过蒙特卡罗方法计算除去第一个最终划分点和第二个最终划分点,且初始划分点大于第二个最终划分点的初始划分点的价值;将得到的价值最高的初始划分点选定为第三最终划分点;以此类推,直至得到k-1个(相当于上述区间数量减一)最终划分点。

步骤s212,根据最终划分点,将数据进行区间划分,得到数据对应的离散化数据。

用k-1个最终划分点将待离散化数据划分为k个区间,使用数据取值的最小值作为第一个划分区间的下限,下限可以是负无穷,数据取值的最大值作为最后一个划分区间的上限,上限可以是正无穷。

步骤s214,将得到的数据对应的离散化数据写入指定的文件或者传输至外部设备。

离散化数据写入指定的文件或者传输至外部设备,以供用户对离散化数据进行处理和分析,提供了用户使用的便捷性。

数据离散化通常是将值域上的连续特征划分到有限个区间内;衡量数据离散化的离散效果的指标有,信息熵、gini不纯度、iv值等,通常的算法都是希望通过找到一种数据划分方法(相当于上述数据离散化方法)使得这种划分方法在这类指标上达到最优。

本实施例通过蒙特卡罗方法计算初始划分点的价值,得到最终划分点,而且由于蒙特卡罗方法的计算方式,可以把信息熵、gini不纯度、iv值等指标作为优化目标,提高了离散化数据的合理性。

为了更好地理解上述数据离散化方法,本实施例中描述一种具体的应用场景;该实施例中,以数据的原始特征为月收入为例进行说明,其中,将数据划分为4个区间。

参见图3所示的另一种数据离散化方法的流程图,该方法的具体步骤如下:

步骤s302,读取待离散化的月收入数据;

步骤s304,根据预设的用户需求,设定离散化后的区间数量为4;

根据区间数量,可以将与收入数据划分为4个片段。

步骤s306,从上述月收入数据的所有取值中,选择出5个初始划分点;

例如,采用单变量决策树方法从月收入数据的所有取值中选出5个初始划分点:1000,2000,5000,10000,20000。

步骤s308,基于5个初始划分点,通过蒙特卡罗方法,确定出3个最终划分点;

根据5个初始划分点,依次使用蒙特卡罗方法评估每个初始划分点的价值并将价值最高的划分点作为最终划分点之一,然后基于已有的最终划分点,继续评估剩余初始划分点的价值,直至3个最终划分点被选出,该方法的具体方式如下。

将月收入数据划分为4个区间,也就是寻找到3个最终划分点,已选出的5个初始划分点是:1000,2000,5000,10000,20000;针对得到的5个初始划分点,首先评估初始划分点1000的价值,先将1000作为临时最终划分点,再每次从大于1000的初始划分点中选出2个划分点,备选的划分方法集合为[(1000,2000,5000)、(1000,2000,10000)、(1000,2000,20000)、(1000,5000,10000)、(1000,5000,20000)、(1000,10000,20000)],蒙特卡罗方法从划分方法集合中选取一定比例或者一定数量的划分方法,计算每种划分方法的价值,如选取三种划分方法(1000,2000,5000),(1000,2000,20000),(1000,10000,20000),根据月收入对应的类别标签计算得到三个划分方法的价值分别为0.5、0.3和0.2,那么划分点1000的价值取三个价值的平均值,即为0.3。

再将2000作为临时最终划分点,从大于2000的初始划分点中选出2个划分点,备选的划分方法集合为[(2000,5000,10000)、(2000,5000,20000)、(2000,10000,20000)],计算这三种划分方法的价值分别为0.6、0.4和0.2,那么划分点2000的价值取三个价值的平均值,即为0.4。

其次将5000作为临时最终划分点,由于大于5000的初始划分点只有两个,因此只有(5000,1000,20000)这一种划分方法,其价值为0.2,那么划分点5000的价值取为0.2。

至此,第一轮评估结束。第一轮中价值最高的初始划分点为2000,因此将2000作为第一个最终划分点。

第二轮,将5000作为临时最终划分点,从大于5000的初始划分点中选出1个划分点,备选的划分方法集合为[(2000,5000,10000)、(2000,5000,20000)],计算这两种划分方法的价值分别为0.4和0.2,因此本轮中5000的价值为0.3。

其次,将10000作为临时最终划分点,由于大于10000的只有20000,因此划分方法只有(2000,10000,20000),其价值为0.2,因此本轮中10000的价值为0.2。

至此,第二轮评估结束。本轮中价值最高的初始划分点为5000,因此将5000作为第二个最终划分点。

第三轮,将10000作为临时最终划分点,此时已满足3个划分点的条件,因此划分方法为(2000,5000,10000),其价值为0.6,因此第三轮中10000的价值为0.6;

其次,将20000作为临时最终划分点,此时已满足3个划分点的条件,因此划分方法为(2000,5000,20000),其价值为0.4,因此第三轮中20000的价值为0.4;

至此,第三轮评估结束。本轮中价值最高的初始划分点为10000,因此将10000作为第三个最终划分点。此时,已满足3个最终划分点的条件,划分结束,因此,最终划分点为(2000,5000,10000)。

步骤s310,根据3个最终划分点,将月收入数据划分为4个区间,得到离散化数据;

根据最终划分点2000、5000和10000,将月收入数据划分为0-2000、2001-5000、5001-10000和10001以上4个区间。

步骤s312,将离散化数据写入文件或者传输至外部设备。

本实施例以月收入数据为例,通过蒙特卡罗方法计算初始划分点的价值,从而确定最终的划分点,该方法可以得到月收入数据划分的近似全局最优解,提高了数据离散化的合理性。

对应于上述数据离散化方法的实施例,参见图4所示的一种数据离散化装置的结构示意图;该装置包括:

数据获取模块40,用于获取待离散化的数据;

初始划分点确定模块41,用于根据预设规则,将数据中指定数量的取值作为初始划分点;

最终划分点确定模块42,用于通过蒙特卡罗方法,从所有初始划分点中确定预设数量的最终划分点;

离散化模块43,用于根据最终划分点,将数据进行区间划分,得到数据对应的离散化数据。

进一步地,上述装置还包括数据传输模块,用于将得到的数据对应的离散化数据写入指定的文件或者传输至外部设备。

进一步地,上述最终划分点确定模块,还用于:根据预设的用户需求,设置离散化的区间数量;通过蒙特卡罗方法计算所有初始划分点的价值,将价值最高的初始划分点确定为第一最终划分点;通过蒙特卡罗方法计算除去第一最终划分点的初始划分点的价值,得到价值最高的初始划分点为第二最终划分点,直至得到区间数量减一个最终划分点。

本发明实施例提供的数据离散化装置,与上述实施例提供的数据离散化方法具有相同的技术特征,所以也能解决相同的技术问题,达到相同的技术效果。

本实施例还提供了一种与上述方法实施例相对应的一种服务器,该服务器包括存储器和处理器;存储器用于存储支持处理器执行数据离散化方法的程序,处理器被配置为用于执行所述存储器中存储的程序。本发明实施例所提供的数据离散化方法、装置和服务器的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的服务器的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

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