风控模型的数据处理方法和装置与流程

文档序号:16472690发布日期:2019-01-02 23:16阅读:380来源:国知局
风控模型的数据处理方法和装置与流程

本发明涉及风控模型领域,具体而言,涉及一种风控模型的数据处理方法和装置。



背景技术:

互联网网贷系统作为邮储银行首个互联网金融服务综合平台,针对不同客群和场景,陆续推出了多类信贷产品。为了及时响应金融市场的迫切需求,搭建了基于规则引擎和脚本引擎的风控模型,通过灵活的动态配置,便可快速实现新产品的审批规则模型及预授信模型,以产品为依托,打造互联网化的风控子系统。

目前比较知名,使用比较广泛的开源规则引擎是drools。drools功能复杂,提供了自己的规则描述语言,但是该语言对业务的友好性比较差,同时规则执行的性能较低。与drools的复杂性相比,也有一些轻量的规则引擎,支持对简单规则以及简单程序脚本的解释处理,如jexl。但是该类规则引擎的可扩展性较差,无法实现对复杂业务逻辑的处理。国内淘宝开源的规则引擎qlexpress弥补了业界开源规则引擎的一些不足。qlexpress是轻量级规则引擎,支持业务友好的接近于自然语言的规则表达形式,可扩展性好,支持自定义函数和操作符,并且支持对编译指令的缓存,执行性能高。

互联网网贷系统的风控模型是基于qlexpress实现的,结合网贷系统自身的需求,做了必要的扩展。但现有的开源规则引擎,规则配置比较复杂不够灵活,而且需要规则执行时预先将所有指标变量准备好之后再执行规则。网贷系统由于产品众多,许多产品也有较大差异,要支持的模型包括审批规则模型,评分模型,预授信模型等,对模型的配置要求很灵活,且对数据的依赖性较强,而网贷系统的很多数据源是通过外部获取的,数据的获取本身比较昂贵,并不容易获取。

针对现有技术中网贷系统的模型中规则配置不够灵活,导致对数据的依赖性较大的问题,目前尚未提出有效的解决方案。



技术实现要素:

本发明实施例提供了一种风控模型的数据处理方法和装置,以至少解决现有技术中网贷系统的模型中规则配置不够灵活,导致对数据的依赖性较大的技术问题。

根据本发明实施例的一个方面,提供了一种风控模型的数据处理方法,包括:获取目标贷款产品的风控模型和风控模型对应的指标数据库;获取待执行规则,并将待执行规则进行拆分,得到子规则;控制风控模型依次执行子规则,其中,当风控模型运行子规则时,从指标数据库中获取当前执行的子规则对应的指标变量。

进一步地,获取待执行规则,并将待执行规则进行拆分,得到子规则,包括:解析待执行规则的规则表达式,生成对应的规则树;根据规则树对待执行规则进行拆分,得到多个子规则和多个子规则的执行顺序,其中,执行顺序由规则树的父节点到子节点,由子节点中的左分支到右分支。

进一步地,控制风控模型依次执行子规则,包括:从指标数据库中获取第n个子规则对应的第n个指标变量添加至风控模型,并控制风控模型执行第n个子规则,得到第n个执行结果;在执行结果为第n个指标变量满足第n个子规则的情况下,从指标数据库中获取第n+1个子规则对应的第n+1个指标变量添加至风控模型,并控制风控模型执行第n+1个子规则,得到第n+1个执行结果;在执行结果为第n个指标变量不满足第n个子规则的情况下,结束执行待执行规则,得到待执行规则的执行结果。

进一步地,获取目标贷款产品的风控模型,包括:将预设的初始风控模型与目标贷款产品建立联接关系;将目标贷款产品的业务规则和预定义指标添加至空规则集,以建立目标贷款产品的规则集,其中,业务规则包括一条或多条逻辑规则的组合,允许一条或多条逻辑规则的组合引用预定义指标;将规则集与初始风控模型关联,得到目标贷款产品对应的风控模型。

进一步地,,获取目标贷款产品的风控模型,包括:将预设的初始风控模型与目标贷款产品建立联接关系;将目标贷款产品的预定义指标添加至初始风控模型;将目标贷款产品的程序脚本关联初始风控模型,得到目标贷款产品对应的风控模型,其中,允许程序脚本引用预定义指标。

进一步地,在得到目标贷款产品对应的风控模型之后,方法还包括:对风控模型进行验证,其中,对风控模型进行验证的步骤包括:向风控模型中输入样本指标变量;检测风控模型的执行结果是否为预设结果;如果检测结果为是,则风控模型验证成功,如果检测结果为否,则风控模型验证失败。

根据本发明实施例的另一方面,还提供了一种风控模型的数据处理装置,包括:.第一获取模块,用于获取目标贷款产品的风控模型和风控模型对应的指标数据库;第二获取模块,用于获取待执行规则,并将待执行规则进行拆分,得到子规则;控制模块,用于控制风控模型依次执行子规则,其中,当风控模型运行子规则时,从指标数据库中获取当前执行的子规则对应的指标变量。

进一步地,第二获取模块包括:解析子模块,用于解析待执行规则的规则表达式,生成对应的规则树;拆分子模块,用于根据规则树对待执行规则进行拆分,得到多个子规则和多个子规则的执行顺序,其中,执行顺序由规则树的父节点到子节点,由子节点中的左分支到右分支。

根据本发明实施例的另一方面,还提供了一种存储介质包括存储的程序,其中,在程序运行时控制存储介质所在设备执行上述风控模型的数据处理方法。

根据本发明实施例的另一方面,还提供了一种处理器,其特征在于,处理器用于运行程序,其中,程序运行时执行上述的风控模型的数据处理方法。

在本发明实施例中,获取目标贷款产品的风控模型和风控模型对应的指标数据库,获取待执行规则,并将待执行规则进行拆分,得到子规则,控制风控模型依次执行子规则。上述方案提供能够原子化地拆分执行每条规则,在每个原子规则执行时动态注入必要的指标变量,解决了现有技术中网贷系统的模型中规则配置不够灵活,导致对数据的依赖性较大的技术问题。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1是根据本申请实施例的风控模型的数据处理方法的流程图;

图2是根据本申请实施例的一种网贷系统风控模型的规则引擎执行规则的示意图;

图3是根据本申请实施例的一种风控模型执行逻辑规则的示意图;以及

图4是根据本申请实施例的一种获取业务规则模型的示意图;

图5是根据本申请实施例的一种程序脚本的示意图;以及

图6是根据本申请实施例的风控模型的数据处理装置的示意图。

具体实施方式

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

需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

实施例1

根据本发明实施例,提供了一种模型的数据处理方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

图1是根据本申请实施例的模型的数据处理方法的流程图,如图1所示,该方法包括如下步骤:

步骤s102,获取目标贷款产品的模型和模型对应的指标数据库。

具体的,上述模型可以是基于qlexpress实现的,结合网贷系统自身的需求,做了必要的扩展的模型。在一种可选的实施例中,指标数据库可以是每个模型对应的一个指标工场,指标工场以java注解的方式向外暴露指标。

步骤s104,获取待执行规则,并将待执行规则进行拆分,得到子规则。

具体的,上述待执行规则用于在模型运行时使用,模型在执行待执行规则时确定指标变量是否满足待执行规则,例如,一种年龄规则可以为(((age>35)and(marriage=='已婚'))or((age>20)and(age<=35)))。

步骤s106,控制模型依次执行子规则,其中,当模型运行子规则时,从指标数据库中获取当前执行的子规则对应的指标变量。

对于模型中待执行规则的执行,尤其是逻辑规则的执行,能够尽可能的进行原子化的拆分,不需要预先准备所有的指标变量,只在运行时动态注入必要的指标变量。通过这种实现方式,尽量降低了对外部数据的依赖。具体来说,每一个模型都对应着一个指标工场,指标工场以java注解的方式向外暴露指标,执行引擎在执行模型时并不是预先获取所有指标再执行,而是在模型执行过程中,动态地从指标工场中获取必要的指标。

图2是根据本申请实施例的一种网贷系统模型的规则引擎执行规则的示意图,结合图2所示,通过可配置的模型参数得到规则模型,从规则模型中差拆分出原子规则(即子规则),在模型的规则引擎依次执行原子规则的过程中,动态查询指标工场,动态注入对应的指标,得到最终的执行结果,其中,原子规则可以如图3示出的规则树中圈出的部分。

由上可知,本申请上述实施例获取目标贷款产品的模型和模型对应的指标数据库,获取待执行规则,并将待执行规则进行拆分,得到子规则,控制模型依次执行子规则。上述方案提供能够原子化地拆分执行每条规则,在每个原子规则执行时动态注入必要的指标变量,解决了现有技术中网贷系统的模型中规则配置不够灵活,导致对数据的依赖性较大的技术问题。

可选的,根据本申请上述实施例,获取待执行规则,并将待执行规则进行拆分,得到子规则,包括:

步骤1s041,解析待执行规则的规则表达式,生成对应的规则树。

步骤s1043,根据规则树对待执行规则进行拆分,得到多个子规则和多个子规则的执行顺序,其中,执行顺序由规则树的父节点到子节点,由子节点中的左分支到右分支。

可选的,根据本申请上述实施例,控制模型依次执行子规则,包括:

步骤s1061,从指标数据库中获取第n个子规则对应的第n个指标变量添加至模型,并控制模型执行第n个子规则,得到第n个执行结果。

步骤s1063,在执行结果为第n个指标变量满足第n个子规则的情况下,从指标数据库中获取第n+1个子规则对应的第n+1个指标变量添加至模型,并控制模型执行第n+1个子规则,得到第n+1个执行结果。

步骤s1065,在执行结果为第n个指标变量不满足第n个子规则的情况下,结束执行待执行规则,得到待执行规则的执行结果。

此处还需要说明的是,不同产品在做的过程中会使用一些内部征信和外部征信的数据,大部分数据都不是免费的,而上述方案由于能够原子化地拆分执行每条规则,避免了对于不必要的数据的依赖。

在一种可选的实施例中,图3是根据本申请实施例的一种模型执行逻辑规则的示意图,结合图3所示,以待执行规则((age>20)and((age>200)or(age<0))and(marriage=='已婚'))为例进行说明,模型执行该待执行规则的步骤如下:

s31,解析规则表达式并生成规则树。规则树如图3所示。

s32,执行原子规则(age>20)(如图3中的①)。

s33,从指标工场动态查询指标age,并将指标的值注入到执行上下文中(此处假设age=28)。

s34,执行原子规则(age>20)结束,逻辑结果为true。由于其父节点的组合关系为and,继续执行下一条规则。

s35,执行规则((age>200)or(age<0))。

s36,执行原子规则(age>200)(即图3中所示的由②),由于指标age已经注入到执行上下文中,不需要再从指标工场查询该指标,执行结果为false。由于其父节点的组合关系为or,继续执行下一条规则。

s37,执行原子规则(age<0)(即图3中所示的由③),由于指标age已经注入到执行上下文中,不需要再从指标工场查询该指标,执行结果为false。由于该节点为其父节点的最后一个子节点,父节点执行结束。

s38,执行规则((age>200)or(age<0))(即图3中所示的由④)结束,执行结果为false。由于其父节点的组合关系为and,不再继续执行,父节点执行结束。

s39,执行规则结束,执行结果为false。

需要说明的是,在上述示例中,中止节点为[1],中止条件为((age>200)or(age<0))。中止节点为[1]表示执行结束于该规则的第2个子节点(子节点编号从0开始),且第2个子节点为完整执行(如果子节点不是完整执行,则中止节点为[1][子节点的中止节点])

由上述示例可知,直到规则执行结束,指标marriage并未在规则执行期间引用到,因此并未查询该指标。

具体的,网贷系统使用开源的规则引擎qlexpress实现了自己的模型。由于到模型会应用于多种不同的场景,如反欺诈,负面信息核查等,都需要不同的逻辑规则,业务规则的维护支持逻辑“与”“或”的组合关系,最终存储为一个规则树。信用评分,预授信模型等含有较复杂的业务逻辑则以程序脚本的方式存储。网贷系统实现的模型管理系统,提供了对逻辑规则的增删改查,可以通过组合逻辑规则实现较复杂的业务规则(如:[年龄规则](((age>35)and(marriage=='已婚'))or((age>20)and(age<=35))))。对于含有复杂业务逻辑的模型,提供了接近于自然语言的程序脚本,用于对模型的更新维护。下面依次进行说明。

可选的,根据本申请上述实施例,在模型为逻辑规则模型的情况下,获取目标贷款产品的模型,包括:

步骤s1021,将预设的初始模型与目标贷款产品建立联接关系。

步骤s1023,将目标贷款产品的业务规则和预定义指标添加至空规则集,以建立目标贷款产品的规则集,其中,业务规则包括一条或多条逻辑规则的组合,允许一条或多条逻辑规则的组合引用预定义指标。

步骤s1025,将规则集与初始模型关联,得到目标贷款产品对应的模型。

上述方案用于对逻辑规则模型进行维护,在一种可选的实施例中,可以通过如下步骤进行:

s41,新建模型,关联所对应的贷款产品。

具体的,上述新建模型即为初始模型。

s42,新建规则集,关联模型。

具体的,上述新建的规则集为空规则集,将新建的空规则集与s41中的模型关联。

s43,将预定义指标(或扩展指标)添加到规则集。

具体的,上述预定义指标即为待执行规则中的指标。

s44,在规则集中添加业务规则。一条业务规则可以添加一条逻辑规则或多条逻辑规则的组合。其中逻辑规则中可以引用s43中添加的预定义指标。

s45,重复s44,为模型添加预定数量的规则。

s46,验证模型。启用模型与规则,输入指标变量的值,验证模型的执行结果是否符合预期。

图4是根据本申请实施例的一种获取业务规则模型的示意图,结合图4所示。该示意图示意的是标号为a01的规则,该规则为年龄规则,其中,原子规则包括“年龄大于35”、“婚姻状态=已婚”、“年龄大于20”以及“年龄小于等于35”。“年龄大于35”和“婚姻状态=已婚”之前的逻辑关系为与,“年龄大于20”和“年龄小于等于35”之间的逻辑关系为与,“年龄大于35”and“婚姻状态=已婚”和“年龄大于20”and“年龄小于等于35”之间的逻辑关系为或,因此可以得到该年龄规则为:(((age>35)and(marriage=='已婚'))or((age>20)and(age<=35)))。可以通过原子规则的按钮添加更多的原子规则,或通过组合规则的按钮添加更多的组合规则。

可选的,根据本申请上述实施例,在模型为程序脚本模型的情况下,获取目标贷款产品的模型,包括:

步骤s1027,将预设的初始模型与目标贷款产品建立联接关系。

步骤s1029,将目标贷款产品的预定义指标添加至初始模型。

步骤s10211,将目标贷款产品的程序脚本关联初始模型,得到目标贷款产品对应的模型,其中,允许程序脚本引用预定义指标。

上述方案用于对逻辑规则模型进行维护,在一种可选的实施例中,可以通过如下步骤进行:

s61,新建模型,关联所对应的贷款产品。

s62,将预定义指标(或扩展指标)添加到模型。

s63,添加一个或多个程序脚本,关联到模型。其中程序脚本中可以引用s62中添加的指标。

s64,验证模型。启用模型与程序脚本,输入指标变量的值,验证模型的执行结果是否符合预期。图5是根据本申请实施例的一种程序脚本的示意图,结合图5所示,方框内的部分即为指标变量,在脚本执行时注入。

可选的,根据本申请上述实施例,在将规则集添加至初始模型,得到目标贷款产品对应的模型之后,方法还包括:对模型进行验证,其中,对模型进行验证的步骤包括:

步骤s10251,向目标模型中输入样本指标变量。

步骤s10253,检测目标模型的执行结果是否为预设结果。

步骤s10255,如果检测结果为是,则模型验证成功,如果检测结果为否,则模型验证失败。

由上可知,网贷系统目前有众多的贷款产品,不同产品配置有自己的审批规则模型,评分模型,预授信模型等,通过这些模型有效地实现了和监控的要求。其中,不同产品在做的过程中会使用一些内部征信和外部征信的数据,大部分数据都不是免费的,网贷系统的规则引擎由于能够原子化地拆分执行每条规则,避免了对于不必要的数据的依赖。

本申请上述方案具有如下优点:

1、规则配置的灵活性,能够支持包括审批规则模型,评分模型,预授信模型等不同场景的模型。

2、规则执行过程的原子性控制。能够原子化的拆分执行规则,不需要预先准备所有的指标变量,只在运行时动态注入必要的指标。通过这种实现方式,降低了对外部数据的依赖。

3、可按照原子规则的执行结果进行统计。

实施例2

根据本发明实施例,提供了一种模型的数据处理装置的实施例,图6是根据本申请实施例的模型的数据处理装置的示意图,如图6所示,该装置包括:

第一获取模块60,用于获取目标贷款产品的模型和模型对应的指标数据库。

第二获取模块62,用于获取待执行规则,并将待执行规则进行拆分,得到子规则。

控制模块64,用于控制模型依次执行子规则,其中,当模型运行子规则时,从指标数据库中获取当前执行的子规则对应的指标变量。

可选的,根据本申请上述实施例,第二获取模块包括:

解析子模块,用于解析待执行规则的规则表达式,生成对应的规则树。

拆分子模块,用于根据规则树对待执行规则进行拆分,得到多个子规则和多个子规则的执行顺序,其中,执行顺序由规则树的父节点到子节点,由子节点中的左分支到右分支。

实施例3

根据本发明实施例,提供了一种存储介质,存储介质包括存储的程序,其中,在程序运行时控制存储介质所在设备执行实施例1的风控模型的数据处理方法。

实施例4

根据本发明实施例,提供了一种处理器,处理器用于运行程序,其中,程序运行时执行实施例1的风控模型的数据处理方法。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

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

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

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