发明内容
本申请的目的旨在至少在一定程度上解决上述的技术问题之一。
为此,本申请的第一个目的在于提出一种随机森林模型生成方法。
本申请的第二个目的在于提出了一种随机森林模型生成装置。
为达上述目的,本申请第一方面实施例的随机森林模型生成方法,包括:根据目标业务的业务逻辑定制随机森林模型中的训练模板;
根据所述训练模板对所述目标业务的样本数据进行训练,获取与所述目标业务对应的随机森林模型。
本申请实施例的随机森林模型生成方法,根据目标业务的业务逻辑定制随机森林模型中的训练模板,并根据训练模板对目标业务的样本数据进行训练,获取与目标业务对应的随机森林模型。该方法通过与相关用户进行信息交互,使得相关用户根据自己的业务经验和业务知识等,参与随机森林模型的训练,从而可生成与业务逻辑相符合的随机森林模型,使得生成的随机森林模型更好的满足相关业务需求。
另外,本申请实施例的随机森林模型生成方法,还具有如下附加的技术特征:
在本申请的一个实施例中,所述训练模板包括:
随机森林模型的节点分裂属性,和/或,
与节点分裂属性对应的边值。
在本申请的一个实施例中,在所述获取与所述目标业务对应的随机森林模型之后,还包括:
将所述随机森林模型中的树模型按照节点宽度独立存储。
在本申请的一个实施例中,在所述获取与所述目标业务对应的随机森林模型之后,还包括:
获取用户待查看的树模型标识以及对应的节点结构参数;
根据所述树模型标识和所述节点结构参数从所述随机森林模型中确定目标树模型,并显示给所述用户。
在本申请的一个实施例中,在所述显示给所述用户之后,还包括:
判断所述目标树模型中根据预设的边值权重随机生成的节点分裂属性是否满足所述业务逻辑;
如果所述随机生成的节点分裂属性不满足所述业务逻辑,则根据所述业务逻辑重新定制所述训练模板。
在本申请的一个实施例中,还包括:
获取用户欲查看的所述随机森林模型的前N个节点对应的规则集;
导出与所述前N个节点对应的规则集,并显示给所述用户。
为达上述目的,本申请第二方面实施例的随机森林模型生成装置,包括:定制模块,用于根据目标业务的业务逻辑定制随机森林模型中的训练模板;
第一获取模块,用于根据所述训练模板对所述目标业务的样本数据进行训练,获取与所述目标业务对应的随机森林模型。
本申请实施例的随机森林模型生成装置,根据目标业务的业务逻辑定制随机森林模型中的训练模板,并根据训练模板对目标业务的样本数据进行训练,获取与目标业务对应的随机森林模型。该装置通过与相关用户进行信息交互,使得相关用户根据自己的业务经验和业务知识等,参与随机森林模型的训练,从而可生成与业务逻辑相符合的随机森林模型,使得生成的随机森林模型更好的满足相关业务需求。
另外,本申请实施例的随机森林模型生成装置,还具有如下附加的技术特征:
在本申请的一个实施例中,所述训练模板包括:
随机森林模型的节点分裂属性,和/或,
与节点分裂属性对应的边值。
在本申请的一个实施例中,,所述装置还包括:
存储模块,用于将所述随机森林模型中的树模型按照节点宽度独立存储。
在本申请的一个实施例中,所述装置还包括:
第二获取模块,用于获取用户待查看的树模型标识以及对应的节点结构参数;
确定模块,用于根据所述树模型标识和所述节点结构参数从所述随机森林模型中确定目标树模型;
展示模块,用于将所述目标树模型展示给所述用户。
在本申请的一个实施例中,还包括:
判断模块,用于判断所述目标树模型中根据预设的边值权重随机生成的节点分裂属性是否满足所述业务逻辑;
所述定制模块,还用于在所述随机生成的节点分裂属性不满足所述业务逻辑时,根据所述业务逻辑重新定制所述训练模板。
在本申请的一个实施例中,还包括:
第三获取模块,用于获取用户欲查看的所述随机森林模型的前N个节点对应的规则集;
显示模块,用于导出与所述前N个节点对应的规则集,并显示给所述用户。
本申请附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本申请的实践了解到。
具体实施方式
下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本申请,而不能理解为对本申请的限制。
下面参考附图描述本申请实施例的随机森林模型生成方法和装置。
图1是根据本申请一个实施例的随机森林模型生成方法的流程图,如图1所示,该方法包括:
S110,根据目标业务的业务逻辑定制随机森林模型中的训练模板。
通常,很多业务场景中,使用随机森林模型作为分类器,对业务中的大数据进行分类处理等操作,随机森林模型是基于决策树(以下简称树)的组合模型,在实际应用中,随机森林模型通过多个树投票的结果进行分类。
其中,树的每个内部节点表示一个属性上的测试,每个分支代表一个测试输出,每个叶节点代表一种类别,树上除了叶节点外,均记录了当前节点的相关信息,比如节点属性的边值权重信息等。
举例而言,在相亲网站的场景中,随机森林模型中可包括如图2所示的树,该树包含的节点属性包括城市拥有房产、年收入等,通过该树可以根据男性用户有无城市拥有房产、年收入等,将男性用户分为女方愿意见面和不愿意见面两类。
其中,在如图2所示的树中,各个节点属性是按照决定女方是否见面的边值权重值排列的,即城市拥有房产对女方决定是否见面影响的边值权重值最高、年收入对女方决定是否见面影响的边值权重值相对低一点等。
由于传统对随机森林模型的训练过程,是相关程序按照节点属性的边值权重值等自动筛选和构建的,生成的是自由生长的随机森林模型,在有些应用场景下,生成的随机森林模型可能并不符合业务逻辑。
比如,如图2所示,程序自动生成的决策树的第一节点是城市拥有房产,而在实际业务中,相关工作人员发现,如果男性客户的年收入较高,即使没有城市拥有房产,女方也是愿意与该男性客户见面的。因此,该决策树并不符合实际业务逻辑,得到的分类结果并不准确。
因此,本申请实施例的随机森林模型生成算法,为了使得随机森林模型符合业务逻辑,得到更加准确地分类结果等,可通过与相关用户进行信息交互,使得相关用户根据自己的业务经验和业务知识等,参与随机森林模型的训练。
具体地,在实际应用中,可由相关用户根据目标业务的业务逻辑定制随机森林模型中的训练模板。
在本申请的一个实施例中,训练模板可包括随机森林模型的节点分裂属性、与节点分裂属性对应的边值等。从而,可根据如下所示的对节点分裂属性和边的值定义的规则,定制随机森林模型中的训练模板:
DefineModelTemplate(node):
1)不定义直接返回
2)定义node的分裂属性为A,返回
3)定义node的分裂属性为A,且定义与节点分裂属性对应的边值
For边from node to node1,值为a1
DefineModelTemplate(node1)
为了更加清楚的描述,根据业务逻辑定制随机森林模型中的训练模板的过程,下面结合图3,举例说明随机森林模型中的一个树的训练模板的定制过程,在该示例中,训练模板包括随机模型的节点分裂属性与节点分列属性对应的边值,节点分裂属性包括年龄、教育程度等,且年龄对应的边值为18岁以下和大于等于18岁,教育对应的边值为高中和大学等。
如图3所示,可提供一个与相关用户进行交互的界面,该界面上包括随机森林模型中训练模板的示意图,相关用户可根据自身的业务知识等,在新建节点设置界面上,设置随机模型的节点分裂属性为年龄、教育程度,且设置年龄对应的边值为18岁以下和大于等于18岁,教育对应的边值为高中和大学,每设置一个节点分裂属性与节点分列属性对应的边值后,点击新建节点设置界面上的确认菜单进行确认。
进而,根据多次确认的节点分裂属性与节点分裂属性对应的边值生成训练模板,用户可点击该界面上的保存菜单完成对该训练模板的保存。
S120,根据训练模板对目标业务的样本数据进行训练,获取与目标业务对应的随机森林模型。
具体地,在定制随机森林中的训练模板后,可根据训练模板对目标业务的样本数据进行训练,以获取与目标业务对应的随机森林模型,其中为了避免由于目标样本业务的样本数据过多,而导致随机模型的生成速度较慢,可采用随机森林分布式算法等完成对随机森林模型的训练。
综上所述,本申请实施例的随机森林模型生成方法,根据目标业务的业务逻辑定制随机森林模型中的训练模板,并根据训练模板对目标业务的样本数据进行训练,获取与目标业务对应的随机森林模型。该方法通过与相关用户进行信息交互,使得相关用户根据自己的业务经验和业务知识等,参与随机森林模型的训练,从而可生成与业务逻辑相符合的随机森林模型,使得生成的随机森林模型更好的满足相关业务需求。
基于以上实施例,在实际应用中,由于在根据目标业务的业务逻辑定制随机森林模型中的训练模板时,可能仅仅定义了最上面几个节点分裂属性等,对于其他的节点分裂属性,仍通过相关程序根据预设的边值权重随机生成,从而获取的与目标业务对应的随机森林模型中,有可能根据预设的边值权重随机生成的节点分裂属性并不符合业务逻辑。
因此,为了进一步保证生成的随机森林模型与业务逻辑相符合,在生成随机森林模型后,还可根据用户需要向用户可视化展示相关随机森立模型,以便相关用户根据该随机森林模型中的节点分裂属性的边值权重等,对生成的随机森林模型进行相应的调整处理。
图4是根据本申请另一个实施例的种随机森林模型生成方法的流程图,如图4所示,该方法包括:
S410,根据目标业务的业务逻辑定制随机森林模型中的训练模板。
S420,根据训练模板对目标业务的样本数据进行训练,获取与目标业务对应的随机森林模型。
可以理解,随机森林模型中含有大量的树,且每个树拥有大量的节点等,而在实际的业务应用场景中,相关用户也只是关心前几个节点分裂属性信息。
因此,为了便于向用户进行模型展示,在获取与目标业务对应的随机森林模型后,可以将随机森林模型中的每棵树单独存储,每棵树按照节点宽度优先存储,即如图5所示,将每棵树的每层节点的相关信息单独存储,比如将年龄节点的相关信息单独存储等。
从而,在向用户进行模型展示的时候,只需要读取包含前几个存储节点的树的信息即可,大大提高了向用户展示相关树模型的效率,提高了与相关用户的交互效率。
S430,获取用户待查看的树模型标识以及对应的节点结构参数。
S440,根据树模型标识和节点结构参数从随机森林模型中确定目标树模型,并显示给用户。
可以理解,在向用户进行模型展示的时候,可由用户确认读取哪一棵树的包含前几个存储节点的树的模型,进而将用户欲查看的某个树的包含前几个节点的某些部分显示给用户。
具体地,可获取用户待查看的树模型标识以及对应的节点结构参数,进而根据树模型标识和节点结构参数从随机森林模型中确定目标树模型,并显示给用户。
比如,根据树模型标识确定树为C,且对应的节点结构参数为前5层节点,从而将树C中,包含前5层几点的部分显示给用户。
S450,判断目标树模型中根据预设的边值权重随机生成的节点分裂属性是否满足业务逻辑。
S460,如果随机生成的节点分裂属性不满足业务逻辑,则根据业务逻辑重新定制训练模板。
具体地,用户可根据显示的目标树模型中,预设的边值权重随机生成的节点分裂属性是否满足业务逻辑,来对训练模板进行相应的调整,如果随机生成的节点分裂属性不满足业务逻辑,则根据业务逻辑重新定制训练模板。
举例而言,当目标树模型中,节点A的边值权重是0.00001,节点B的边值权重是0.000010001,虽然A和B的边值权重值相差很小,但是根据A和B的边值权重随机生成的节点分裂属性,选择的是权重相对较大的B,而在业务逻辑上,可能A更加符合业务解释,因此相关用户可调整定制模板,把节点分裂属性定义为A。
综上所述,本申请实施例的随机森林模型生成方法,在生成随机森林模型后,根据用户的需求将相关目标树模型显示给用户,以便于用户在判断目标树模型中根据预设的边值权重随机生成的节点分裂属性不满足业务逻辑时,根据业务逻辑重新定制训练模板。由此,通过和用户进行交互,对不符合业务逻辑的随机森林模型重新定制训练模板,进一步保证生成的随机森林模型与业务逻辑相符合,使得该随机森林模型更好的满足相关业务需求。
基于以上实施例,进一步地,在实际应用中,可能需要获取随机森林模型中的规则集,例如,对于针对某个购物网站的虚假交易随机森林模型,相关用户可能非常想了解符合什么规则的交易是虚假交易等。
下面结合对规则集的获取详细说明本申请实施例的随机森林模型生成方法:
图6是根据本申请又一个实施例的随机森林模型生成方法的流程图,如图5所示,该随机模型生成方法包括:
S610,根据目标业务的业务逻辑定制随机森林模型中的训练模板。
S620,根据训练模板对目标业务的样本数据进行训练,获取与目标业务对应的随机森林模型。
需要说明的是,对步骤S610-S620的描述,可参照对步骤S110-S120的描述,在此不再赘述。
S630,获取用户欲查看的随机森林模型的前N个节点对应的规则集。
S640,导出与前N个节点对应的规则集,并显示给用户。
可以理解,由于整个随机森林模型的规则集非常大,而相关用户并非关心每一条规则的重要性,因此,可将随机森林模型中的规则集进行相应的处理,比如可按结论进行分组,每组内保存前几层节点对应的规则集,进而仅仅输出相关用户关心的几条规则集。
举例而言,对于针对淘宝虚假交易的随机森林模型,相关用户非常想知道符合什么规则的交易是虚假交易,而由于该随机森林模型中的规则集非常庞大,因此,可以给出覆盖了80%虚假交易的规则集给用户,以便于相关用户对相关业务进行分析。
具体地,在实际执行过程中,可获取用户欲查看的随机森林模型的前N个节点对应的规则集,进而导出与前N个节点对应的规则集,并显示给用户。
例如,如图7所示,可向用户提供一规则集导出界面,从而,可通过获取用户可在该导出规则输出界面的操作信息,获取用户在该导出规则输出界面上输入的,用户欲查看的随机森林模型每组内前10个节点对应的规则集,当用户点击规则集导出界面中的开始菜单后,相关节点的规则集可保存在相关用户在规则集导出界面中输入的保存路径中。
综上所述,本申请实施例的随机森林模型生成方法,可获取用户欲查看的随机森林模型的前N个节点对应的规则集,并导出与前N个节点对应的规则集,并显示给用户。由此,便于相关用户根据导出的规则集,对相关业务进行分析,进一步满足了相关业务需求。
为了实现上述目的,本申请还提出了一种随机森林模型生成装置,图8是根据本申请一个实施例的随机森林模型生成装置的结构示意图,如图8所示,该装置包括:定制模块100和第一获取模块200。
其中,定制模块100,用于根据目标业务的业务逻辑定制随机森林模型中的训练模板。
具体地,在实际应用中,可由定制模块100根据目标业务的业务逻辑定制随机森林模型中的训练模板。
其中,在本申请的一个实施例中,训练模板可包括随机森林模型的节点分裂属性、与节点分裂属性对应的边值等。
第一获取模块200,用于根据训练模板对目标业务的样本数据进行训练,获取与目标业务对应的随机森林模型。
具体地,在定制随机森林中的训练模板后,第一获取模块200可根据训练模板对目标业务的样本数据进行训练,以获取与目标业务对应的随机森林模型,其中为了避免由于目标样本业务的样本数据过多,而导致随机模型的生成速度较慢,第一获取模块200可采用随机森林分布式算法等完成对随机森林模型的训练。
综上所述,本申请实施例的随机森林模型生成装置,根据目标业务的业务逻辑定制随机森林模型中的训练模板,并根据训练模板对目标业务的样本数据进行训练,获取与目标业务对应的随机森林模型。该装置通过与相关用户进行信息交互,使得相关用户根据自己的业务经验和业务知识等,参与随机森林模型的训练,从而可生成与业务逻辑相符合的随机森林模型,使得生成的随机森林模型更好的满足相关业务需求。
基于以上实施例,为了进一步保证生成的随机森林模型与业务逻辑相符合,在生成随机森林模型后,还可根据用户需要向用户可视化展示相关随机森立模型,以便相关用户根据该随机森林模型中的节点分裂属性的边值权重等,对生成的随机森林模型进行相应的调整处理。
图9是根据本申请另一个实施例的随机森林模型生成装置的结构示意图,如图9所示,在如图8所示的基础上,该随机森林模型生成装置还可包括:第二获取模块300、确定模块400、展示模块500和判断模块600。
其中,第二获取模块300用于获取用户待查看的树模型标识以及对应的节点结构参数。
确定模块400,用于根据树模型标识和节点结构参数从随机森林模型中确定目标树模型。
为了便于向用户进行模型展示,可以将随机森林模型中的每棵树单独存储,每棵树按照节点宽度优先存储,即如图10所示,在如图9所示的基础上,该随机森林模型生成装置还可包括存储模块700,用于将随机森林模型中的树模型按照节点宽度独立存储。
从而,在向用户进行模型展示的时候,只需要读取前几个存储节点分裂属性信息即可,大大提高了向用户展示相关树模型的效率,提高了与相关用户的交互效率。
具体地,第二获取模块300可获取用户待查看的树模型标识以及对应的节点结构参数,该节点结构参数包括节点的个数等,进而确定模块400根据树模型标识和节点结构参数从随机森林模型中确定目标树模型,并通过展示模块500显示给用户。
进一步地,判断模块600可根据显示的目标树模型中,预设的边值权重随机生成的节点分裂属性是否满足业务逻辑,如果随机生成的节点分裂属性不满足业务逻辑,定制模块100则根据业务逻辑重新定制训练模板。
综上所述,本申请实施例的随机森林模型生成装置,在生成随机森林模型后,根据用户的需求将相关目标树模型显示给用户,以便于用户在判断目标树模型中根据预设的边值权重随机生成的节点分裂属性不满足业务逻辑时,根据业务逻辑重新定制训练模板。由此,通过和用户进行交互,对不符合业务逻辑的随机森林模型重新定制训练模板,进一步保证生成的随机森林模型与业务逻辑相符合,使得该随机森林模型更好的满足相关业务需求。
基于以上实施例,进一步地,在实际应用中,可能需要获取随机森林模型中的规则集,例如,对于针对某个购物网站的虚假交易随机森林模型,相关用户可能非常想了解符合什么规则的交易是虚假交易等。
图11是根据本申请还一个实施例的随机森林模型生成装置的结构示意图,如图11所示,在如图8所述的基础上,该随机森林模型生成装置还包括:第三获取模块800和显示模块900。
具体地,在实际执行过程中,第三获取模块800可获取用户欲查看的随机森林模型的前N个节点对应的规则集,进而导出与前N个节点对应的规则集,并通过显示模块900显示给用户。
需要说明的是,本申请实施例的随机森林模型生成装置,与上述参照图1-图7描述的随机森林模型生成方法实施例对应,本申请随机森林模型生成装置实施例中未披露的细节,在此不再赘述。综上所述,本申请实施例的随机森林模型生成装置,可获取用户欲查看的随机森林模型的前N个节点对应的规则集,并导出与前N个节点对应的规则集,并显示给用户。由此,便于相关用户根据导出的规则集,对相关业务进行分析,进一步满足了相关业务需求。
在本申请的描述中,需要理解的是,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本申请的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本申请的实施例所属技术领域的技术人员所理解。
应当理解,本申请的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本申请各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。尽管上面已经示出和描述了本申请的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本申请的限制,本领域的普通技术人员在本申请的范围内可以对上述实施例进行变化、修改、替换和变型。