决策树生成方法和装置
技术领域
本说明书涉及机器学习技术领域,尤其涉及一种决策树生成方法和装置。
背景技术
决策树是一种基础的有监督学习模型,可以不断的对数据进行切割,以达到分割数据的目的。决策树的生成依赖大量有标签的样本,当样本数量较少时,训练得到的决策树的效果往往比较差。
发明内容
有鉴于此,本说明书提供一种决策树生成方法和装置。
具体地,本说明书是通过如下技术方案实现的:
一种决策树生成方法,包括:
获取基础决策树,所述基础决策树基于第一类样本数据生成;
提取所述基础决策树的树骨架,所述树骨架包括节点的分裂特征,且不包括分裂值或包括部分分裂值;
利用第二类样本数据训练所述树骨架缺少的分裂值,得到目标决策树。
一种决策树生成装置,包括:
基础获取单元,获取基础决策树,所述基础决策树基于第一类样本数据生成;
骨架提取单元,提取所述基础决策树的树骨架,所述树骨架包括节点的分裂特征,且不包括分裂值或包括部分分裂值;
目标训练单元,利用第二类样本数据训练所述树骨架缺少的分裂值,得到目标决策树。
一种决策树生成装置,包括:
处理器;
用于存储机器可执行指令的存储器;
其中,通过读取并执行所述存储器存储的与决策树生成逻辑对应的机器可执行指令,所述处理器被促使:
获取基础决策树,所述基础决策树基于第一类样本数据生成;
提取所述基础决策树的树骨架,所述树骨架包括节点的分裂特征,且不包括分裂值或包括部分分裂值;
利用第二类样本数据训练所述树骨架缺少的分裂值,得到目标决策树。
由以上描述可以看出,本说明书可从基础决策树中提取出树骨架,并可将该树骨架迁移到样本数据较少的场景中,基于该场景下的样本数据对所述树骨架进行训练,从而为样本数据较少的场景生成可信的决策树,解决了样本数据较少场景的模型训练问题。
附图说明
图1是本说明书一示例性实施例示出的一种决策树生成方法的流程示意图。
图2是本说明书一示例性实施例示出的一种基础决策树示意图。
图3是本说明书一示例性实施例示出的一种树骨架示意图。
图4是本说明书一示例性实施例示出的一种用于决策树生成装置的一结构示意图。
图5是本说明书一示例性实施例示出的一种决策树生成装置的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书的一些方面相一致的装置和方法的例子。
在本说明书使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书。在本说明书和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
本说明书提供一种决策树生成方案,可从样本量较大场景的决策树中提取出树骨架,然后将树骨架迁移到样本量较少场景中,基于的该场景的样本数据对所述树骨架进行训练,从而为样本量较少的场景训练出较为可信的决策树。
图1是本说明书一示例性实施例示出的一种决策树生成方法的流程示意图。
请参考图1,所述决策树生成方法可以包括以下步骤:
步骤102,获取基础决策树,所述基础决策树基于第一类样本数据生成。
在本实施例中,所述第一类样本数据来自第一场景,所述第一场景通常为样本量较多的场景,基于所述第一类样本数据可生成面向指定主题的决策树,为便于区分,可将该决策树称为基础决策树。
例如,可采用C4.5,C5等算法生成所述基础决策树。
再例如,也可采用GBDT(Gradient Boosting Decision Tree,梯度提升决策树)算法生成含有一棵树的基础决策树。
在本实施例中,所述主题通常是分类判定主题,例如,套现判定、异常账号判定、洗钱判定等,本说明书对此不作特殊限制。
在本实施例中,由于第一类样本量较多,生成的基础决策树较为可信。
步骤104,提取所述基础决策树的树骨架,所述树骨架包括节点的分裂特征,且不包括分裂值或包括部分分裂值。
在本实施例中,可从所述基础决策树的根节点开始向下提取部分节点和所述部分节点之间的分叉路径,也可从所述根节点开始向下提取所述基础决策树的所有节点和所述所有节点之间的分叉路径,以生成树骨架。
所述树骨架可包括提取节点的分裂特征,但可不包括所述分裂特征的分裂值,也可以包括部分分裂特征的分裂值,本说明书对此不作特殊限制。
步骤106,利用第二类样本数据训练所述树骨架缺少的分裂值,得到目标决策树。
在本实施例中,所述第二类样本数据来自第二场景,所述第二场景通常是样本量较少的场景,与所述第一场景具有部分相同的特征,例如,近3天交易总金额、当天转账总人数等。基于第二类样本数据生成的决策树拟合度往往过高,可信度较差。在本步骤中,可基于第二类样本数据对前述步骤104提取出的树骨架进行训练,从而得到所述树骨架缺少的分裂值,然后还可继续对所述树骨架进行延伸,以为所述第二场景生成相同主题的目标决策树。
由以上描述可以看出,本说明书可从基础决策树中提取出树骨架,并可将该树骨架迁移到样本数据较少的场景中,基于该场景下的样本数据对所述树骨架进行训练,从而为样本数据较少的场景生成较为可信的决策树,解决了样本数据较少场景的模型训练问题。
下面以指定主题是套现判定为例,对本说明书的具体实现过程进行详细描述。
上述套现是指套取现金,一般是指用违法或虚假的手段交换取得现金利益,例如,信用卡套现、信贷产品套现等。
在本实施例中,假设第一场景是O2O(Online To Offline,线上到线下)场景,例如,线下扫码支付。假设第二场景是收钱码场景,例如,用户扫描商家的静态二维码进行支付。
在本实施例中,O2O场景中的套现判定样本较多,基于O2O场景下的第一类样本数据,可采用C4.5、C5等算法生成套现判定的基础决策树。
假设在O2O场景中训练得到的基础决策树如图2所示。请参考图2,节点1是该基础决策树的根节点,节点2至节点7是该决策树的普通树节点,节点8至节点15是该基础决策树的叶子节点。
该基础决策树包括若干分叉路径,所述分叉路径用于连接各个节点,例如,路径12连接根节点1和普通树节点2,路径13连接根节点1和普通树节点3等。
该基础决策树的最大深度是3,深度可以理解为节点到根节点的距离,例如普通树节点2到根节点1的距离是1,即普通树节点2的深度是1;叶子节点8到根节点1的距离是3,即叶子节点8的深度是3等。
节点 |
分裂特征 |
根节点1 |
近10天交易总金额 |
普通树节点2 |
近5天交易总金额 |
普通树节点3 |
近5天转账人数 |
普通树节点4 |
近8天转账人数 |
普通树节点5 |
近3天转账人数 |
… |
… |
表1
所述基础决策树中除叶子节点之外的每个节点都可代表一个分裂特征,请参考表1的示例,根节点1代表的分裂特征是近10天交易总金额,普通树节点2代表的分裂特征是近5天交易总金额,普通树节点3代表的分裂特征是近5天转账人数等。
节点 |
分裂特征 |
分裂值 |
根节点1 |
近10天交易总金额 |
1000 |
普通树节点2 |
近5天交易总金额 |
500 |
普通树节点3 |
近5天转账人数 |
8 |
普通树节点4 |
近8天转账人数 |
12 |
普通树节点5 |
近3天转账人数 |
5 |
… |
… |
|
表2
每个分裂特征都可对应一个分裂值,基于所述分裂值和分叉路径的选择策略可确定唯一的分叉路径。其中,所述分叉路径的选择策略可预先设定,例如,左边的分叉路径对应小于等于分裂值的判定结果,右边的分叉路径对应大于分裂值的判定结果。
请参考表2的示例,根节点1的分裂特征近10天交易总金额的分裂值是1000,当近10天交易总金额小于等于1000时,可确定分叉路径是12,跳转到普通树节点2,继续判断近5天交易总金额与分裂值500的大小关系。当近10天交易总金额大于1000时,可确定分叉路径是13,跳转到普通树节点3,继续判断近5天转账人数与分裂值8的大小关系,依次类推。
举例来说,假设某账号近10天交易总金额是950,近5天交易总金额是550,则该账号在图2所示的基础决策树中的路径是根节点1-普通树节点2-普通树节点5…,依次类推。
值得注意的是,图2仅为示例性的说明,在实际应用中,生成的基础决策树通常会比图2更加复杂。
在本实施例中,在生成所述基础决策树后,可进行树骨架的提取。
在一个例子中,可从基础决策树的根节点开始向下提取小于等于指定深度的节点和所述节点之间的分叉路径。
所述指定深度通常小于所述基础决策树的最大深度,可预先设置,例如,可由业务人员依据经验设置等。
假设指定深度是2,仍以图2所示的基础决策树为例,可从根节点开始提取深度是1和2的各个节点和所述节点之间的分叉路径,即提取节点1至节点7以及节点1至节点7之间的分叉路径:路径12、路径13、路径24、路径25、路径36和路径37,以及得到图3所示的树骨架。
在本实施例中,所述树骨架包括提取的节点所代表的分裂特征,即包括根节点1的分裂特征近10天交易总金额、普通树节点2的分裂特征近5天交易总金额等。
所述树骨架可不包括各个分裂特征的分裂值,也可以包括部分分裂特征的分裂值,例如可仅包括根节点1、普通树节点2和普通树节点3的分裂特征的分裂值,本说明书对此不作特殊限制。
在另一个例子中,可从基础决策树的根节点开始向下提取所述基础决策树的所有节点和所述所有节点之间的分叉路径,得到所述基础决策树的树骨架。
所述树骨架可不包括各个分裂特征的分裂值,也可以包括部分分裂特征的分裂值,本说明书对此不作特殊限制。
在另一个例子中,也可以不以深度为基准进行树骨架的提取。仍以图2为例,可提取根节点1以及普通树节点2至普通树节点5等。
在本实施例中,在提取到基础决策树的树骨架后,可采用收钱码场景中的第二类样本数据对所述树骨架进行训练,以得到所述树骨架缺少分裂值。
节点 |
分裂特征 |
分裂值 |
根节点1 |
近10天交易总金额 |
800 |
普通树节点2 |
近5天交易总金额 |
400 |
普通树节点3 |
近5天转账人数 |
7 |
普通树节点4 |
近8天转账人数 |
10 |
普通树节点5 |
近3天转账人数 |
4 |
… |
… |
|
表3
以所述树骨架中不包括任何分裂特征的分裂值为例,基于收钱码场景中的第二类样本数据,可训练得到各个分裂特征的分裂值。请参考表3的示例,可得到根节点1的分裂特征近10天交易总金额的分裂值是800,根据预定的分叉路径选择策略,当近10天交易总金额小于等于800时,可确定分叉路径是12,依次类推。
在本实施例中,在得到树骨架中各个分裂特征的分裂值之后,可基于所述第二类样本数据继续对树骨架进行拟合延伸,并确定延伸后各个延伸节点的分裂特征和分裂值,直至模型收敛,得到目标决策树,从而完成收钱码场景中套现判定决策树的训练。
一般而言,当某个叶子节点的黑样本量较少时,通常认为该叶子节点不可信。可选的,针对训练得到目标决策树,可采用第二场景下的第二类样本数据计算所述目标决策树中各叶子节点的可信度,然后过滤可信度不满足可信条件的叶子节点,以对目标决策树进行精简。
以GBDT算法为例,可先基于所有第二类样本数据对目标决策树的叶子节点进行打分,针对每个叶子节点,可汇总打分结果,并可将打分结果作为所述叶子节点的可信度。假设,可信条件是可信度排列在前1%,则可保留可信度排列在前1%的叶子节点,过滤排列在后面的叶子节点。
值得注意的是,在实际应用中,为确保目标决策树的完整性,可不对不满足可信条件的叶子节点进行剪枝,仅在目标决策树的使用中,不使用所述不满足可信条件的叶子节点。
可选的,针对与金融相关的对解释性方面有较高要求的目标决策树,本说明书可自动生成模型的判定规则。
在本例中,针对训练得到的目标决策树的每个叶子节点,可自下而上获取根节点到所述叶子节点的完整路径,然后根据该完整路径上的节点的分裂特征和分裂值生成所述目标决策树对应的判定规则。
请继续参考图3,图3所示的目标决策树包括有4条完整路径,分别为节点1-节点2-节点4,节点1-节点2-节点5,节点1-节点3-节点6,节点1-节点3-节点7。
假设上述节点所代表的分裂特征和分裂值如表2所示,则可以采用逻辑与连接各个分裂特征及其分裂值。以节点1-节点2-节点4为例,其对应的判定规则为:近10天交易总金额大于等于1000and近5天交易总金额大于等于500and近8天转账人数大于等于12。
由此,可自动生成目标决策树的各个判定规则。
与前述决策树生成方法的实施例相对应,本说明书还提供了决策树生成装置的实施例。
本说明书决策树生成装置的实施例可以应用在服务器上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在服务器的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图4所示,为本说明书决策树生成装置所在服务器的一种硬件结构图,除了图4所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的服务器通常根据该服务器的实际功能,还可以包括其他硬件,对此不再赘述。
图5是本说明书一示例性实施例示出的一种决策树生成装置的框图。
请参考图5,所述决策树生成装置400可应用在前述图4所示的服务器中,包括有:基础获取单元401、骨架提取单元402、目标训练单元403以及规则生成单元404。
其中,基础获取单元401,获取基础决策树,所述基础决策树基于第一类样本数据生成;
骨架提取单元402,提取所述基础决策树的树骨架,所述树骨架包括节点的分裂特征,且不包括分裂值或包括部分分裂值;
目标训练单元403,利用第二类样本数据训练所述树骨架缺少的分裂值,得到目标决策树。
可选的,所述骨架提取单元402,从所述基础决策树的根节点开始向下提取小于等于指定深度的节点和所述节点之间的分叉路径,所述指定深度小于所述基础决策树的深度。
可选的,所述骨架提取单元402,从所述基础决策树的根节点开始向下提取所述基础决策树的所有节点和所述所有节点之间的分叉路径。
可选的,所述目标训练单元403,在利用第二类样本数据训练得到所述树骨架缺少的分裂值之后,基于所述第二样本数据,对所述树骨架进行延伸,并确定延伸节点的分裂特征和分裂值,直至收敛。
规则生成单元404,针对所述目标决策树的每个叶子节点,获取根节点到所述叶子节点的完整路径;
根据所述完整路径上的节点的分裂特征和分裂值生成所述目标决策树对应的判定规则。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本说明书方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
与前述决策树生成方法的实施例相对应,本说明书还提供一种决策树生成装置,该装置包括:处理器以及用于存储机器可执行指令的存储器。其中,处理器和存储器通常借由内部总线相互连接。在其他可能的实现方式中,所述设备还可能包括外部接口,以能够与其他设备或者部件进行通信。
在本实施例中,通过读取并执行所述存储器存储的与决策树生成逻辑对应的机器可执行指令,所述处理器被促使:
获取基础决策树,所述基础决策树基于第一类样本数据生成;
提取所述基础决策树的树骨架,所述树骨架包括节点的分裂特征,且不包括分裂值或包括部分分裂值;
利用第二类样本数据训练所述树骨架缺少的分裂值,得到目标决策树。
可选的,在提取所述基础决策树的树骨架时,所述处理器被促使:
从所述基础决策树的根节点开始向下提取小于等于指定深度的节点和所述节点之间的分叉路径,所述指定深度小于所述基础决策树的深度。
可选的,在提取所述基础决策树的树骨架时,所述处理器被促使:
从所述基础决策树的根节点开始向下提取所述基础决策树的所有节点和所述所有节点之间的分叉路径。
可选的,所述处理器还被促使:
在利用第二类样本数据训练得到所述树骨架缺少的分裂值之后,基于所述第二样本数据,对所述树骨架进行延伸,并确定延伸节点的分裂特征和分裂值,直至收敛。
可选的,所述处理器还被促使:
针对所述目标决策树的每个叶子节点,获取根节点到所述叶子节点的完整路径;
根据所述完整路径上的节点的分裂特征和分裂值生成所述目标决策树对应的判定规则。
与前述决策树生成方法的实施例相对应,本说明书还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,该程序被处理器执行时实现以下步骤:
获取基础决策树,所述基础决策树基于第一类样本数据生成;
提取所述基础决策树的树骨架,所述树骨架包括节点的分裂特征,且不包括分裂值或包括部分分裂值;
利用第二类样本数据训练所述树骨架缺少的分裂值,得到目标决策树。
可选的,提取所述基础决策树的树骨架包括:
从所述基础决策树的根节点开始向下提取小于等于指定深度的节点和所述节点之间的分叉路径,所述指定深度小于所述基础决策树的深度。
可选的,提取所述基础决策树的树骨架包括:
从所述基础决策树的根节点开始向下提取所述基础决策树的所有节点和所述所有节点之间的分叉路径。
可选的,还包括:
在利用第二类样本数据训练得到所述树骨架缺少的分裂值之后,基于所述第二样本数据,对所述树骨架进行延伸,并确定延伸节点的分裂特征和分裂值,直至收敛。
可选的,还包括:
针对所述目标决策树的每个叶子节点,获取根节点到所述叶子节点的完整路径;
根据所述完整路径上的节点的分裂特征和分裂值生成所述目标决策树对应的判定规则。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
以上所述仅为本说明书的较佳实施例而已,并不用以限制本说明书,凡在本说明书的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书保护的范围之内。