CN110705683B - 随机森林模型的构造方法、装置、电子设备及存储介质 - Google Patents

随机森林模型的构造方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN110705683B
CN110705683B CN201910968175.4A CN201910968175A CN110705683B CN 110705683 B CN110705683 B CN 110705683B CN 201910968175 A CN201910968175 A CN 201910968175A CN 110705683 B CN110705683 B CN 110705683B
Authority
CN
China
Prior art keywords
feature
sample
decision tree
random forest
model
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.)
Active
Application number
CN201910968175.4A
Other languages
English (en)
Other versions
CN110705683A (zh
Inventor
聂佩芸
李扬
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201910968175.4A priority Critical patent/CN110705683B/zh
Publication of CN110705683A publication Critical patent/CN110705683A/zh
Application granted granted Critical
Publication of CN110705683B publication Critical patent/CN110705683B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/004Artificial life, i.e. computing arrangements simulating life
    • G06N3/006Artificial life, i.e. computing arrangements simulating life based on simulated virtual individual or collective life forms, e.g. social simulations or particle swarm optimisation [PSO]

Abstract

本发明提供了一种随机森林模型的构造方法、装置、电子设备及存储介质;方法包括:将数据集的多个维度特征变量划分为多个特征子集;基于每个特征子集的样本构造对应的决策树模型,基于决策树模型确定特征子集中每个特征变量的权重;根据每个特征子集中特征变量的权重的降序排列,从每个特征子集中抽样排序在前的部分特征变量,组合形成降维特征变量集合;将数据集中的样本划分为多个样本子集;按照降维特征变量集合对每个样本子集进行有放回抽样,以得到与数据集的样本量一致的新样本子集;基于每个新样本子集独立构造决策树模型,并将构造后的多个决策树模型进行集成得到随机森林模型;如此,能够提高随机森林模型的数据处理效率。

Description

随机森林模型的构造方法、装置、电子设备及存储介质
技术领域
本发明涉及互联网技术及区块链技术,尤其涉及一种随机森林模型的构造方法、装置、电子设备及存储介质。
背景技术
随机森林(RF,Random Forest)是通过集成学习的思想将多棵决策树集成的一种算法,相关技术中,对于随机森林模型的构造,所采用的样本需要在大数据量的全量样本中进行样本抽样,进入到模型的不重复数据量大、特征维度高,使得所形成的随机森林模型的数据计算时间长、数据处理效率低。
发明内容
本发明实施例提供一种随机森林模型的构造方法、装置、电子设备及存储介质,能够提高随机森林模型的数据处理效率。
本发明实施例的技术方案是这样实现的:
本发明实施例提供一种随机森林模型的构造方法,包括:
将数据集包括的多个维度特征变量划分为多个特征子集;
在每个所述特征子集上运行决策树模型,以确定所述特征子集中每个特征变量的权重;
根据每个所述特征子集中特征变量的权重的降序排列,从每个特征子集中抽样排序在前的部分特征变量,以组合形成降维特征变量集合;
将所述数据集中对应所述降维特征变量集合的样本划分为多个样本子集;
按照所述降维特征变量集合对每个所述样本子集进行有放回抽样处理,以对应每个所述样本子集抽样得与所述数据集的样本量一致的新样本集合;
基于每个所述新样本集合独立构造决策树模型,并将构造后的多个决策树模型进行集成形成随机森林模型。
上述方案中,所述按照所述降维特征变量集合对每个所述样本子集进行有放回抽样处理,以对应每个所述样本子集抽样得与所述数据集的样本量一致的新样本子集,包括
遍历将所述数据集中的样本划分所形成的b个样本子集,针对遍历的每个样本子集执行以下处理:
对所遍历的样本子集进行s次有放回抽样,得到样本量为n的新样本子集;
其中,s*b=n,s、b和n均为大于1的整数,n为所述数据集中的样本量。
上述方案中,所述分别构造与所述多个新样本子集一一对应的决策树模型,包括:
遍历所述多个新样本子集,并对当前遍历的新样本执行以下处理:
构造对应决策树模型的根节点,所述根节点包括所述样本子集包括的所有特征变量、以及对应所述特征变量的样本;
从所述根节点中抽取使得所述决策树模型的异质性指数最大的特征变量,以构造新的节点,并递归地从所述新的节点中抽取使得所述决策树模型的异质性指数最大的特征变量,以构造更新的节点。
本发明实施例提供一种随机森林模型的构造装置,所述装置包括:
划分模块,用于将数据集包括的多个维度特征变量划分为多个特征子集;
确定模块,用于基于每个所述特征子集的样本构造对应的决策树模型,并基于所述决策树模型确定所述特征子集中每个特征变量的权重;
抽样模块,用于根据每个所述特征子集中特征变量的权重的降序排列,从每个特征子集中抽样排序在前的部分特征变量,以组合形成降维特征变量集合;
所述划分模块,还用于将所述数据集中的样本划分为多个样本子集;
所述抽样模块,还用于按照所述降维特征变量集合对每个所述样本子集进行有放回抽样,以对应每个所述样本子集抽样得到与所述数据集的样本量一致的多个新样本子集;
集成模块,用于分别构造与所述多个新样本子集一一对应的决策树模型,并将构造后的多个决策树模型进行集成得到随机森林模型。
本发明实施例还提供一种随机森林模型的预测方法,包括:
通过所述随机森林模型中的多个决策树模型,分别对数据进行预测得到预测结果;
确定出现频率最高的预测结果作为所述随机森林模型的预测结果,或者,确定各个所述决策树模型的预测结果的均值作为所述随机森林模型的预测结果;
其中,所述随机森林模型采用本发明实施例提供的上述随机森林模型的构造方法所构造得到。
本发明实施例还提供一种随机森林模型的预测装置,包括:
预测模块,用于通过所述随机森林模型中的多个决策树模型,分别对数据进行预测得到预测结果;
处理模块,用于确定出现频率最高的预测结果作为所述随机森林模型的预测结果,或者,确定各个所述决策树模型的预测结果的均值作为所述随机森林模型的预测结果;
其中,所述随机森林模型采用本发明实施例提供的上述随机森林模型的构造方法所构造得到。
本发明实施例还提供一种电子设备,所述电子设备包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现本发明实施例还提供的随机森林模型的构造方法。
本发明实施例还提供一种存储介质,所述存储介质存储有可执行指令,用于引起处理器执行时,实现本发明实施例还提供的随机森林模型的构造方法。
本发明实施例具有以下有益效果:
1),根据每个特征子集中特征变量的权重的降序排列,从每个特征子集中抽样排序在前的部分特征变量,以组合形成降维特征变量集合;如此,实现特征变量的降维,选择得到的特征变量可以很好的代替整体数据集的信息,同时可以增加模型对数据的覆盖率;
2),按照降维特征变量集合对每个样本子集进行有放回抽样,以对应每个样本子集抽样得到与数据集的样本量一致的多个新样本子集,分别构造与多个新样本子集一一对应的决策树模型,并将构造后的多个决策树模型进行集成得到随机森林模型;也即,在构造随机森林模型时,对于每个降维特征变量集合仅执行一次样本抽取,得到新样本子集,如此加速了随机森林模型在实际应用时的数据处理效率。
附图说明
图1是本发明实施例提供的集成学习的原理示意图;
图2是本发明实施例提供的决策树的示意图;
图3是本发明实施例提供的随机森林模型的生成过程示意图;
图4是本发明实施例提供的重抽样方法的原理示意图;
图5是本发明实施例提供的随机森林模型的构造系统100的一个可选的架构示意图;
图6是本发明实施例提供的电子设备600的结构示意图;
图7是本发明实施例提供的随机森林模型的构造方法的流程示意图;
图8是本发明实施例提供的随机森林模型的构造方法的流程示意图;
图9是本发明实施例提供的区块链网络的系统架构示意图;
图10是本发明实施例提供的区块链网络20中区块链的结构示意图;
图11是本发明实施例提供的区块链网络20的功能架构示意图;
图12是本发明实施例提供的随机森林模型的构造方法的流程示意图;
图13是本发明实施例提供的随机森林模型的构造方法的流程示意图;
图14是本发明实施例提供的数据集的结构示意图;
图15是本发明实施例提供的时间和精度方面的数据对比图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,所描述的实施例不应视为对本发明的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本发明实施例的目的,不是旨在限制本发明。
对本发明实施例进行进一步详细说明之前,对本发明实施例中涉及的名词和术语进行说明,本发明实施例中涉及的名词和术语适用于如下的解释。
1)随机森林(RF,Random Forest Classifier)模型,是由多个决策树模型集成的用于解决分类问题或回归问题的模型,决策树模型可以采用各种决策树算法,例如输入数据3(ID3,Input Data3)、C4.5、分类回归树(CART,Classification And Regression Tree)算法等。随机森林模型中的每个决策树模型被独立地训练和预测,对于分类问题,按照多个决策树模型的分类结果进行投票决定分类结果;对于回归问题,由多个决策树模型预测值均值决定回归结果。
2)抽样,从样本集中抽样用于训练随机森林模型中的决策树模型的样本的方法。
例如自助法(Bootstrap),其在样本集中随机抽样以形成训练各个决策树模型的样本子集,训练各个决策树模型的样本子集之间可以存在重复的样本,其中采集自助法抽样时训练集中没有被抽样的数据称为袋外数据(OOB,Out Of Bag)。自助法的衍生算法包括:改进自助法(BLB,Bag of Little Bootstrap)、双自助法、快速双自助法(FDB,FastDouble Bootstrap)和下抽样双自助法(SDB,Subsampled Double Bootstrap)等。
3)交易(Transaction),等同于计算机术语“事务”,交易包括了需要提交到区块链网络执行的操作,并非单指商业语境中的交易,鉴于在区块链技术中约定俗成地使用了“交易”这一术语,本发明实施例遵循了这一习惯。
例如,部署(Deploy)交易用于向区块链网络中的节点安装指定的智能合约并准备好被调用;调用(Invoke)交易用于通过调用智能合约在区块链中追加交易的记录,并对区块链的状态数据库进行操作,包括更新操作(包括增加、删除和修改状态数据库中的键值对)和查询操作(即查询状态数据库中的键值对)。
4)区块链(Blockchain),是由区块(Block)形成的加密的、链式的交易的存储结构。
5)区块链网络(Blockchain Network),通过共识的方式将新区块纳入区块链的一系列的节点的集合。
6)账本(Ledger),是区块链(也称为账本数据)和与区块链同步的状态数据库的统称。其中,区块链是以文件系统中的文件的形式来记录交易;状态数据库是以不同类型的键(Key)值(Value)对的形式来记录区块链中的交易,用于支持对区块链中交易的快速查询。
7)智能合约(Smart Contracts),也称为链码(Chaincode)或应用代码,部署在区块链网络的节点中的程序,节点执行接收的交易中所调用的智能合约,来对状态数据库的键值对数据进行更新或查询的操作。
8)共识(Consensus),是区块链网络中的一个过程,用于在涉及的多个节点之间对区块中的交易达成一致,达成一致的区块将被追加到区块链的尾部,实现共识的机制包括工作量证明(PoW,Proof of Work)、权益证明(PoS,Proof of Stake)、股份授权证明(DPoS,Delegated Proof-of-Stake)、消逝时间量证明(PoET,Proof of Elapsed Time)等。
首先对随机森林进行说明。随机森林是通过集成学习的思想将多棵决策树集成的一种算法,通过样本维度的Bootstrap重抽样与特征维度的随机抽样制造出更多的随机性,以实现减少预测方差的目的;其中,集成学习在分类的表现上就是多个弱分类器组合变成强分类器,图1为本发明实施例提供的集成学习的原理示意图,参见图1,通过集成学习的思想,将多个弱分类器进行结合,能得到更合理的分类决策边界,减少整体错误,实现更好的分类效果。
对随机森林中的决策树进行说明。一棵决策树包含一个根节点、若干个内部节点和若干个叶子节点;叶子节点对应于决策结果(即分类),其他每个节点则对应于一个属性测试;每个节点包含的样本集合根据属性测试的结果被划分到子节点中,也即,每个内部节点上选用一个属性进行分割,每个分叉对应一个属性值;根结点包含样本全集,从根结点到每个叶子结点的路径对应了一个判定测试序列。以二元分类为例,参见图2,图2为本发明实施例提供的决策树的示意图,图中虚线表示给定一个样例(表1中数据),决策树的决策过程。
名字 体温 胎生 类别
小猫咪 恒温
表1
对随机森林的生成进行说明。图3为本发明实施例提供的随机森林模型的生成过程示意图,参见图3,构造多棵决策树(即树分类器),每棵决策树都最大可能地进行生长而不进行剪枝,许多决策树构成一片森林,决策树之间没有联系;当测试数据进入每一棵决策树时,每棵树做出自己的判断,然后进行投票选出最终所属类别。具体地,相关技术中,随机森林的生成可以涉及如下步骤:
(1),从大小为n的样本集中有放回地重抽样选出n个样本;
(2),在所有属性上,对这n个样本建立分类器(ID3、C4.5、CART、SVM、Logistic回归等);
(3),重复以上两步m次,即获得了m个分类器;
(4),将数据放在这m个分类器上,最后根据这m个分类器的投票结果,决定数据属于哪一类。
因为有放回地重采样m次,所以每一次采样注定有一部分数据是不能被选中,n个样本中每个样本每次被选中的概率为1/n,相应的,未被选中的概率为1-1/n,由于在实际实施时n值很大,因此,基于Bootstrap的思想整合决策树模型,在提升决策树模型计算精度的同时,使得RF的计算时间大幅度增加。
这里,对重抽样进行说明,简单来说,子样本之于样本,可以类比样本之于总体,参见图4,图4为本发明实施例提供的重抽样方法的原理示意图,假设要统计样本集中样本的数量,假设样本集中样本数量有1000个,规定总体分布不变,随机抽取样本100个,并进行标记,即对每个样本打上标签,然后放回样本集,之后随机抽取样本100个,确定抽取的100个样本中被标记的样本数量,占比多少(一次重采样取分布),然后将抽取的样本放回样本集,重复执行样本抽取及占比确定,从而建立分布。假设,第一次重新抽取100条,发现里面有标记的样本12个,记下为12%,放回去,再抽取100个,发现标记的为9个,记下9%,重复重复好多次之后,假设取置信区间95%,每次抽取平均在10个左右有标记,所以,可以推测出样本集的数量为1000个左右。
相关技术中,为了提升自助法计算的精度,基于上述自助法提出双自助法,该方法进行了两次自助法,虽然在一定程度上提高了计算精度,但是计算复杂度过高,不适用于大数据。
为了提升计算速度,基于上述双自助法提出快速双自助法(FDB),该方法相对于双自助法在第二次抽样的时候,只抽取一次,以此加快双自助法的计算速度,但是该方法仍旧有较高的计算复杂度,精度比双自助法还要差。
基于Bootstrap的分治思想提出改进自助法(BLB),该方法对原始样本进行无放回抽样,将样本等分为块,记为bag,然后再在每个bag上应用全样本大小的自助法,如此,增大了每组应用自助法的bag之间的差异,并且将样本分割的同时,保证统计上的有效性,但是数据处理速度仍旧不够快。
借鉴改进自助法的模式,提出下抽样双自助法(SDB),在改进自助法的基础上,在每个小数据集上应用自助法时,只进行一次抽样,保证统计有效性的同时,加快了计算速度,然而,由于改进自助法需要同时优化两个参数,如果使用枚举法确定参数,则会消耗大量时间,应用起来非常复杂。
综上所述,相关技术中基于Bootstrap、BLB等方法所生成的随机森林,在进行数据处理时均需要较长时间的计算周期,数据处理效率低。相关技术中,还提出多种提升RF计算效率的方法,如使用欠抽样、替代的自助法等方式进行加速和改进,然均没有充分利用已有的丰富样本,违背了大量数据中挖掘更多有效资源的初衷。
为至少解决相关技术的上述技术问题,本发明实施例提供随机森林模型的构造方法、装置、电子设备及存储介质,能够更加有效的利用已有的样本集,提高随机森林模型的数据处理效率。
首先对本发明实施例提供的随机森林模型的构造系统的架构进行说明。图5是本发明实施例提供的随机森林模型的构造系统100的一个可选的架构示意图,参见图5,为实现支撑一个示例性应用,终端(包括终端400-1和终端400-2)通过网络300连接服务器200,网络300可以是广域网或者局域网,又或者是二者的组合,使用无线或有线链路实现数据传输。
终端(如终端400-1),用于发送随机森林模型的构造请求给服务器200,构造请求中携带包括多个样本的数据集;
这里,在实际应用中,终端可以为智能手机、平板电脑、笔记本电脑等各种类型的用户终端,还可以为可穿戴计算设备、个人数字助理(PDA)、台式计算机、蜂窝电话、媒体播放器、导航设备、游戏机、电视机、或者这些数据处理设备或其他数据处理设备中任意两个或多个的组合。
服务器200,用于将数据集包括的多个维度特征变量划分为多个特征子集;
基于每个特征子集的样本构造对应的决策树模型,并基于决策树模型确定特征子集中每个特征变量的权重;
根据每个特征子集中特征变量的权重的降序排列,从每个特征子集中抽样排序在前的部分特征变量,以组合形成降维特征变量集合;
将数据集中的样本划分为多个样本子集;
按照降维特征变量集合对每个样本子集进行有放回抽样,以对应每个样本子集抽样得到与数据集的样本量一致的新样本子集;
基于每个新样本子集独立构造决策树模型,并将构造后的多个决策树模型进行集成得到随机森林模型;
这里,在实际应用中,服务器200既可以为单独配置的支持各种业务的一个服务器,亦可以配置为一个服务器集群。
服务器200,还用于返回随机森林模型的构造结果给终端。
继续说明本发明实施例提供的电子设备,该电子设备用于实施随机森林模型的构造方法,在实际实施时,电子设备可以是各种终端,例如手机、电脑等,也可以是如图5示出的服务器200。
参见图6,图6是本发明实施例提供的电子设备600的结构示意图,图6所示的电子设备600包括:至少一个处理器610、存储器650、至少一个网络接口620和用户接口630。电子设备600中的各个组件通过总线系统640耦合在一起。可理解,总线系统640用于实现这些组件之间的连接通信。总线系统640除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图6中将各种总线都标为总线系统640。
处理器610可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(DSP,Digital Signal Processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。
用户接口630包括使得能够呈现媒体内容的一个或多个输出装置631,包括一个或多个扬声器和/或一个或多个视觉显示屏。用户接口630还包括一个或多个输入装置632,包括有助于用户输入的用户接口部件,比如键盘、鼠标、麦克风、触屏显示屏、摄像头、其他输入按钮和控件。
存储器650可以是可移除的,不可移除的或其组合。示例性的硬件设备包括固态存储器,硬盘驱动器,光盘驱动器等。存储器650可选地包括在物理位置上远离处理器610的一个或多个存储设备。
存储器650包括易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。非易失性存储器可以是只读存储器(ROM,Read Only Memory),易失性存储器可以是随机存取存储器(RAM,Random Access Memor y)。本发明实施例描述的存储器650旨在包括任意适合类型的存储器。
在一些实施例中,存储器650能够存储数据以支持各种操作,这些数据的示例包括程序、模块和数据结构或者其子集或超集,下面示例性说明。
操作系统651,包括用于处理各种基本系统服务和执行硬件相关任务的系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;
网络通信模块652,用于经由一个或多个(有线或无线)网络接口620到达其他计算设备,示例性的网络接口620包括:蓝牙、无线相容性认证(WiFi)、和通用串行总线(USB,Universal Serial Bus)等;
呈现模块653,用于经由一个或多个与用户接口630相关联的输出装置631(例如,显示屏、扬声器等)使得能够呈现信息(例如,用于操作外围设备和显示内容和信息的用户接口);
输入处理模块654,用于对一个或多个来自一个或多个输入装置632之一的一个或多个用户输入或互动进行检测以及翻译所检测的输入或互动。
在一些实施例中,本发明实施例提供的随机森林模型的构造装置可以采用软件方式实现,图6示出了存储在存储器650中的随机森林模型的构造装置655,其可以是程序和插件等形式的软件,包括以下软件模块:划分模块6551、确定模块6552、抽样模块6553、集成模块6554,这些模块是逻辑上的,因此根据所实现的功能可以进行任意的组合或进一步拆分,将在下文中说明各个模块的功能。
在另一些实施例中,本发明实施例提供的随机森林模型的构造装置可以采用硬件方式实现,作为示例,本发明实施例提供的随机森林模型的构造装置可以是采用硬件译码处理器形式的处理器,其被编程以执行本发明实施例提供的随机森林模型的构造方法,例如,硬件译码处理器形式的处理器可以采用一个或多个应用专用集成电路(ASIC,Application Specific Integrated Circuit)、DS P、可编程逻辑器件(PLD,ProgrammableLogic Device)、复杂可编程逻辑器件(CPLD,Complex Programmable Logic Device)、现场可编程门阵列(FPG A,Field-Programmable Gate Array)或其他电子元件。
接下来对本发明实施例提供的随机森林模型的构造方法进行说明,图7及图8是本发明实施例提供的随机森林模型的构造方法的流程示意图,在一些实施例中,该随机森林模型的构造方法可由服务器或终端实施,或由服务器及终端协同实施,以服务器实施为例,结合图7及图8,本发明实施例提供的随机森林模型的构造方法包括:
步骤701:服务器将数据集包括的多个维度特征变量划分为多个特征子集。
这里,数据集为用于构造随机森林模型的样本集,包含对应多个维度特征变量的多个样本;举例说明,数据集为音乐应用的日志数据,由于用户在音乐应用的使用过程中实时点击会产生多种多样的信息,如点击的音乐入口、读取的音乐内容、在软件中停留的时间等,一个小时之内产生的日志记录可达成百上千条,因此,数据集中样本数量非常庞大;日志数据中存在大量与用户偏好相关的特征变量,为了更加准确的了解用户偏好,对于隐藏在用户背后无法被探知的信息,如天气,心情、环境等因素,需要构造一些特征来刻画,使得数据集所包括的特征变量的维度大大增加。
在一些实施例中,以数据集包含的特征变量的维度数量为p为例,服务器可通过如下方式将数据集包括的多个维度特征变量划分为多个特征子集:
以有放回抽样的方式,对数据集包括的p个维度的特征变量进行c次采样,形成c个部分重叠的特征子集;或者,以无放回抽样的方式,对数据集包括的p个维度的特征变量进行c次采样,形成c个不重叠的特征子集;其中,p、c均为大于1的整数。
也就是说,对于特征子集的划分,可以采用有放回抽样的方式或无放回抽样的方式对数据集的特征变量的维度进行划分,得到c个特征子集,对于第i(i∈(1,c))个特征子集X(i)来说,其包括的样本数量为b,特征变量的数量为l,则可采用下式表示:
Figure BDA0002231202570000131
步骤702:基于每个特征子集的样本构造对应的决策树模型,并基于决策树模型确定特征子集中每个特征变量的权重。
在一些实施例中,服务器基于每个特征子集的样本,可通过如下方式构造对应的决策树模型:服务器按照特征子集中各个特征变量对数据集进行有放回抽样,得到与数据集的样本量一致的样本集合;基于样本集合构造对应的决策树模型。
以数据集的样本量为n为例,即数据集包括n个样本,则根据特征子集中所包括的特征变量对数据集进行抽样,得到特征变量的数量为l、样本量为n的样本集合,基于得到的样本集合构造相应的决策树模型,决策树模型中各个节点与特征子集中的特征变量相对应。
这里,对决策树模型的构造进行说明。决策树模型构造的关键在于如何选择最优的划分属性(即特征变量),所谓最优划分属性,对于二元分类而言,就是尽量使划分的样本属于同一类别,即“纯度”最高的属性,在实际实施时,可基于信息增益或信息增益率进行属性划分。在基于信息增益进行决策树属性的划分时,特征向量对应的信息增益越大,表明该特征向量对数据集合划分所或得的“纯度提升”越大,因此,属性的划分过程即选择信息增益最大的属性的过程;信息增益率称为属性的“固有值”,属性的可能取值数目越多,则相应的信息增益率越大,因此在实际实施时,可直接选择信息增益率最大的属性进行划分,在一些实施例中,存在对可取值数目较少的属性有所偏好的情况,相应的,先从候选划分属性中找出信息增益高于平均水平的属性,再从中选择信息增益率最高的进行划分,进而生成决策树模型。
在一些实施例中,服务器基于决策树模型,可通过如下方式确定特征子集中每个特征变量的权重:
遍历第i特征子集中的每个特征变量,以当前所遍历特征变量为决策树模型的因变量,执行以下操作:
以决策树模型各个节点分别作为分割点,确定决策树模型的输出变量的异质性指数在被分割后相对于被分割前的减少量;确定各个节点分别作为分割点时对应的减少量的平均值,将平均值作为对应当前所遍历的特征变量的权重;
其中,1≤i≤c,i为整数,c为对数据集包括的多个维度的特征变量进行抽样形成的特征子集的数量。
在一些实施例中,以决策树模型各个节点分别作为分割点,确定决策树模型的输出变量的异质性指数在被分割后相对于被分割前的减少量,包括:
遍历决策树模型中的每个节点,并执行以下操作:
以当前所遍历节点作为分割点分割决策树模型,得到左子树和右子树;确定左子树的样本比例、左子树的输出变量的异质性指数之间的第一乘积;确定右子树的样本比例、右子树的输出变量的异质性指数之间的第二乘积;确定被分割前的决策树的输出变量的异质性指数,并与第一乘积以及第二乘积进行差值运算,得到决策树模型的输出变量的异质性指数在被分割后相对于被分割前的减少量。
在一些实施例中,服务器还可以将数据集中对应左子树的样本量与从数据集抽样的样本量的比值,确定为左子树的样本比例;将数据集中对应右子树的样本量与从数据集抽样的样本量的比值,确定为右子树的样本比例。
在实际实施时,对于决策树模型的不同类型(如分类模型或回归模型),可采用不同的参数作为输出变量的异质性指数,在一些实施例中,确定被分割前的所述决策树的输出变量的异质性指数,包括:当决策树模型为分类模型时,确定决策树模型的输出变量的信息熵或基尼指数,将所确定的信息熵或基尼指数作为输出变量的异质性指数;当决策树模型为回归模型时,确定决策树模型的输出变量的方差,将所确定的方差作为输出变量的异质性指数。
以数据集D中包含的类别数为z、样本量为n为例,pk表示样本属于第k类的概率,k∈(1,z);相应的,基尼指数可以采用下式表示:
Figure BDA0002231202570000141
输出变量的信息熵可以采用下式表示:
Figure BDA0002231202570000151
输出变量的方差可以采用下式表示:
Figure BDA0002231202570000152
其中,j用于表示第j个样本,j∈(1,n);yj表示第j个样本所对应的输出变量,
Figure BDA0002231202570000153
表示数据集中所有样本对应的输出变量的平均值。
以基尼指数作为输出变量的异质性指数为例,对于当前遍历的节点t(对应第t个特征变量)来说,将其作为分割节点,左子树的样本量为nl,右子树的样本量为nr,可得左子树的样本比例为nl/n,右子树的样本比例为nr/n,相应的,输出变量的基尼指数在决策树模型被分割后相对于被分割前的减少量,可采用下式表示:
Figure BDA0002231202570000154
对决策树模型各个节点遍历完成后,计算各个节点分别作为分割点时对应的减少量的平均值,进而得到当前所遍历的特征变量t的权重Wt,如下式:
Figure BDA0002231202570000155
步骤703:根据每个特征子集中特征变量的权重的降序排列,从每个特征子集中抽样排序在前的部分特征变量,以组合形成降维特征变量集合。
在一些实施例中,服务器根据每个特征子集中特征变量的权重的降序排列,可通过如下方式从每个特征子集中抽样排序在前的部分特征变量,以组合形成降维特征变量集合:
遍历每个特征子集以执行以下操作:
根据每个特征子集中特征变量的权重的降序排列,从特征子集中抽样排序在前的设定比例或设定数量的特征变量,将所抽样的特征变量组合形成k个维度的特征变量集合;其中,1≤k≤p,k为数据集中特征变量的原始的维度。
步骤704:将数据集中的样本划分为多个样本子集。
在一些实施例中,服务器可通过如下方式将数据集中的样本划分为多个样本子集:以无放回抽样的方式从数据集中抽样;以样本量s将抽样得到的样本划分到b个样本子集;其中,b、s均为大于1的整数。
步骤705:按照降维特征变量集合对每个样本子集进行有放回抽样,以对应每个样本子集抽样得到与数据集的样本量一致的多个新样本子集。
在一些实施例中,服务器可通过如下方式按照降维特征变量集合对每个样本子集进行有放回抽样,以对应每个样本子集抽样得到与数据集的样本量一致的多个新样本子集:遍历将数据集中的样本划分所形成的b个样本子集,针对遍历的每个样本子集执行以下处理:
对所遍历的样本子集进行s次有放回抽样,得到样本量为n的新样本子集;其中,s*b=n,s、b和n均为大于1的整数,n为数据集中的样本量。
步骤706:分别构造与多个新样本子集一一对应的决策树模型,并将构造后的多个决策树模型进行集成得到随机森林模型。
在一些实施例中,服务器可通过如下方式分别构造与多个新样本子集一一对应的决策树模型:遍历多个新样本子集,并对当前遍历的新样本执行以下处理:
构造对应决策树模型的根节点,根节点包括样本子集包括的所有特征变量、以及对应特征变量的样本;从根节点中抽取使得决策树模型的异质性指数最大的特征变量,以构造新的节点,并递归地从新的节点中抽取使得决策树模型的异质性指数最大的特征变量,以构造更新的节点。
在实际应用中,异质性指数越高,意味着数据的杂乱程度越深。因此,为了使决策树更好的实现分类(回归),可以通过最大化输出变量的异质性指数减少量构建决策树,以异质性指数为基尼指数为例,最佳分组变量与最佳分割点应是使△Gini(t)最大的变量与分割点。
在一些实施例中,服务器通过随机森林模型中的多个决策树模型,分别对数据进行预测得到预测结果;确定出现频率最高的预测结果作为随机森林模型的预测结果,或者,确定各个决策树模型的预测结果的均值作为随机森林模型的预测结果。
在一些实施例中,服务器构造得到随机森林模型之后,还可以结合区块链技术,将构造得到的随机森林模型采用非对称密钥加密并存储至区块链网络,以使终端在获得授权后从区块链网络中获得随机森林模型并使用;在实际实施时,终端向服务器请求用于解密随机森林模型的密钥,在服务器对终端授权通过后返回相应的密钥,终端生成用于获取随机森林模型的交易,提交生成的交易至区块链网络中的节点,并接收节点对该交易共识完成后返回的加密后的随机森林模型,采用密钥解密后便可应用该随机森林模型。
接下来对本发明实施例中的区块链网络进行说明。图9为本发明实施例提供的区块链网络的系统架构示意图,包括:区块链网络20(示例性示出了包括共识节点20-1至共识节点20-3)、认证中心30、业务主体40(示例性示出归属于业务主体40的终端40-1)和业务主体50(示例性示出归属于业务主体50的终端50-1),下面分别进行说明。
区块链网络20的类型是灵活多样的,例如可以为公有链、私有链或联盟链中的任意一种。以公有链为例,任何业务主体的电子设备例如用户终端和服务器,都可以在不需要授权的情况下接入区块链网络20;以联盟链为例,业务主体在获得授权后其下辖的电子设备(例如终端/服务器)可以接入区块链网络20,此时,成为区块链网络20中的客户端节点。
在一些实施例中,客户端节点可以只作为区块链网络20的观察者,即提供支持业务主体发起交易(例如,用于上链存储数据或查询链上数据)功能,对于区块链网络20的共识节点的功能,例如排序功能、共识服务和账本功能等,客户端节点可以缺省或者有选择性(例如,取决于业务主体的具体业务需求)地实施。从而,可以将业务主体的数据和业务处理逻辑最大程度迁移到区块链网络20中,通过区块链网络20实现数据和业务处理过程的可信和可追溯。
区块链网络20中的共识节点接收来自不同业务主体(例如图9中示出的业务主体40和业务主体50)的客户端节点(例如,图9中示出的归属于业务主体40的客户端节点40-1、以及归属于业务主体50的客户端节点50-1)提交的交易,执行交易以更新账本或者查询账本,执行交易的各种中间结果或最终结果可以返回业务主体的客户端节点中显示。
例如,客户端节点40-1/50-1可以订阅区块链网络20中感兴趣的事件,例如区块链网络20中特定的组织/通道中发生的交易,由共识节点20-1推送相应的交易通知到客户端节点40-1/50-1,从而触发客户端节点40-1/50-1中相应的业务逻辑。
基于上述对区块链网络的说明,接下来以业务主体40为随机森林模型的云服务商(以下简称云服务商)、业务主体50为随机森林模型的应用端系统为例,对随机森林模型的上链存储及获取进行说明。
参见图9,各业务主体从认证中心30进行登记注册并获得各自的数字证书。业务主体的设备(例如终端或者服务器)运行的客户端都可以向区块链网络20请求接入而成为客户端节点。
首先对云服务商侧随机森林模型的上链存储进行说明。云服务商的业务人员在客户端40-1中登录,触发随机森林模型的上链存储请求,客户端40-1根据该上链存储请求,生成用于存储随机森林模型至区块链网络20的第一交易,第一交易中包括加密的随机森林模型,并在第一交易中指定了实现存储操作需要调用的智能合约、以及向智能合约传递的参数,交易还携带了客户端40-1的数字证书、签署的数字签名(例如,使用客户端40-1的数字证书中的私钥,对第一交易的摘要进行加密得到),并将第一交易广播到区块链网络20中的共识节点。
区块链网络20中的共识节点接收到第一交易时,对第一交易携带的数字证书和数字签名进行验证,验证成功后,根据第一交易中携带的业务主体40的身份,确认业务主体40是否是具有交易权限,数字签名和权限验证中的任何一个验证失败都将导致交易失败;共识节点验证成功后签署节点自己的数字签名(例如,使用节点的私钥对交易的摘要进行加密得到),并继续在区块链网络20中广播。
区块链网络20中的共识节点接收到验证成功的第一交易后,将第一交易填充到新的区块中,并进行广播;区块链网络20中的共识节点广播新区块时,会对新区块进行共识过程,如果共识成功,则将新区块追加到自身所存储的区块链的尾部,并根据交易的结果更新状态数据库,执行新区块中的交易:对于提交存储随机森林模型的交易,以键值对的形式存储加密的随机森林模型至状态数据库,以对于查询随机森林模型的交易,从状态数据库中查询随机森林模型对应的键值对,并返回交易结果。
接下来对应用端系统侧随机森林模型的获取进行说明。应用端系统的用户在客户端50-1中登录,触发随机森林模型的获取请求,客户端50-1根据该获取请求,生成用于从区块链网络20中获取随机森林模型的第二交易,在第二交易中指定了实现获取操作需要调用的智能合约、以及向智能合约传递的参数,交易还携带了客户端50-1的数字证书、签署的数字签名(例如,使用客户端50-1的数字证书中的私钥,对第二交易的摘要进行加密得到),并将第二交易广播到区块链网络20中的共识节点。
区块链网络20中的共识节点接收到第二交易时,对第二交易携带的数字证书和数字签名进行验证,验证成功后,根据第二交易中携带的业务主体50的身份,确认业务主体50是否是具有交易权限,共识节点验证成功后签署节点自己的数字签名(例如,使用节点的私钥对第二交易的摘要进行加密得到),并继续在区块链网络20中广播。
区块链网络20中的共识节点接收到验证成功的第二交易后,将第二交易填充到新的区块中,并进行广播;区块链网络20中的共识节点广播新区块时,会对新区块进行共识过程,如果共识成功,则将新区块追加到自身所存储的区块链的尾部,并执行新区块中的第二交易:对于获取随机森林模型的第二交易,从状态数据库中查询随机森林模型对应的键值对,并返回加密的随机森林模型,以使客户端50-1解密后应用随机森林模型。
作为区块链的示例,参见图10,图10是本发明实施例提供的区块链网络20中区块链的结构示意图,每个区块的头部既可以包括区块中所有交易的哈希值,同时也包含前一个区块中所有交易的哈希值,新产生的交易的记录被填充到区块并经过区块链网络中节点的共识后,会被追加到区块链的尾部从而形成链式的增长,区块之间基于哈希值的链式结构保证了区块中交易的防篡改和防伪造。
下面说明本发明实施例提供的区块链网络的示例性的功能架构,参见图11,图11是本发明实施例提供的区块链网络20的功能架构示意图,包括应用层801、共识层802、网络层803、数据层804和资源层805,下面分别进行说明。
资源层805封装了实现区块链网路20中的各个节点810的计算资源、存储资源和通信资源。
数据层804封装了实现账本的各种数据结构,包括以文件系统中的文件实现的区块链,键值型的状态数据库和存在性证明(例如区块中交易的哈希树)。
网络层803封装了点对点(P2P,Point to Point)网络协议、数据传播机制和数据验证机制、接入认证机制和业务主体身份管理的功能。
其中,P2P网络协议实现区块链网络20中节点810之间的通信,数据传播机制保证了交易在区块链网络20中的传播,数据验证机制用于基于加密学方法(例如数字证书、数字签名、公/私钥对)实现节点810之间传输数据的可靠性;接入认证机制用于根据实际的业务场景对加入区块链网络20的业务主体的身份进行认证,并在认证通过时赋予业务主体接入区块链网络20的权限;业务主体身份管理用于存储允许接入区块链网络20的业务主体的身份、以及权限(例如能够发起的交易的类型)。
共识层802封装了区块链网络20中的节点810对区块达成一致性的机制(即共识机制)、交易管理和账本管理的功能。共识机制包括POS、POW和DPOS等共识算法,支持共识算法的可插拔。
交易管理用于验证节点810接收到的交易中携带的数字签名,验证业务主体的身份信息,并根据身份信息判断确认其是否具有权限进行交易(从业务主体身份管理读取相关信息);对于获得接入区块链网络20的授权的业务主体而言,均拥有认证中心颁发的数字证书,业务主体利用自己的数字证书中的私钥对提交的交易进行签名,从而声明自己的合法身份。
账本管理用于维护区块链和状态数据库。对于取得共识的区块,追加到区块链的尾部;执行取得共识的区块中的交易,当交易包括更新操作时更新状态数据库中的键值对,当交易包括查询操作时查询状态数据库中的键值对并向业务主体的客户端节点返回查询结果。支持对状态数据库的多种维度的查询操作,包括:根据区块序列号(例如交易的哈希值)查询区块;根据区块哈希值查询区块;根据交易序列号查询区块;根据交易序列号查询交易;根据业务主体的账号(序列号)查询业务主体的账号数据;根据通道名称查询通道中的区块链。
应用层801封装了区块链网络能够实现的各种业务,包括交易的溯源、存证和验证等。
继续对本发明实施例提供的随机森林模型的构造方法进行说明,图12及图13是本发明实施例提供的随机森林模型的构造方法的流程示意图,在一些实施例中,该随机森林模型的构造方法可由服务器或终端实施,或由服务器及终端协同实施,以服务器实施为例,结合图12及图13,本发明实施例提供的随机森林模型的构造方法包括:
步骤901:服务器将数据集包括的多个维度特征变量划分为多个特征子集。
这里,以原始数据为音乐应用对应的音乐数据为例,原始数据包括日志数据、歌曲信息、用户信息及歌曲补充信息,对原始数据进行清洗与整合,并结合特征工程从用户、歌曲及两者交互三个维度提取不同的特征变量,最终得到样本量n为100000,特征维数p为1089的数据集,数据集中数据特征示例参见表2;图14为本发明实施例提供的数据集的结构示意图,参见图14,数据集包括用户基本信息、用户活跃情况、歌曲基本信息、歌曲流行情况等多个特征变量。
Figure BDA0002231202570000211
Figure BDA0002231202570000221
表2
在实际实施时,服务器可采用有放回抽样的方式或无放回抽样的方式对数据集的特征变量的维度进行划分,得到c个特征子集。
步骤902:按照特征子集中各个特征变量对数据集进行有放回抽样,得到与数据集的样本量一致的样本集合。
接续上述示例,将数据集划分为c个特征子集后,对于每个特征子集进行有放回抽样,得到c个样本量为100000的样本集合。
步骤903:基于得到样本集合构造对应的第一决策树模型。
步骤904:基于决策树模型,可通过如下方式确定特征子集中每个特征变量的权重。
这里,服务器基于决策树模型,可通过如下方式确定特征子集中每个特征变量的权重:
遍历第i特征子集中的每个特征变量,以当前所遍历特征变量为决策树模型的因变量,执行以下操作:
以决策树模型各个节点分别作为分割点,确定决策树模型的输出变量的异质性指数在被分割后相对于被分割前的减少量;确定各个节点分别作为分割点时对应的减少量的平均值,将平均值作为对应当前所遍历的特征变量的权重。
以异质性指数为基尼指数为例,服务器可依据公式(1)、公式(5)及公式(6)确定特征子集中每个特征变量的权重,该权重用于表征相应的特征变量所对应的样本的重要性。
步骤905:根据每个特征子集中特征变量的权重的降序排列,从每个特征子集中抽样排序在前的部分特征变量,以组合形成降维特征变量集合。
示例性地,根据权重进行特征变量筛选得到重要性排名在前的10个特征变量,依次为X27、X26、X17、X22、X40、X25、X23、X3、X4、X5;得到的这10个特征变量形成降维特征变量集合。
在实际实施时,通过计算得到的特征变量的权重对特征变量进行筛选,实现特征变量的降维,选择得到的特征变量可以很好的代替整体数据集的信息,同时可以增加模型对数据的覆盖率,提升数据的使用效率。
步骤906:将数据集中的样本划分为多个样本子集。
步骤907:按照降维特征变量集合对每个样本子集进行抽样,对应每个样本子集抽样得到与数据集的样本量一致的多个新样本子集。
在实际实施时,服务器可通过如下方式按照降维特征变量集合对每个样本子集进行抽样,以对应每个样本子集抽样得到与数据集的样本量一致的多个新样本子集:
服务器遍历将数据集中的样本划分所形成的多个样本子集,针对遍历的每个样本子集执行以下处理:
对所遍历的样本子集进行s次有放回抽样,得到样本量为n的新样本子集;其中,s*b=n,s、b和n均为大于1的整数,n为数据集中的样本量。
以筛选得到的上述10个特征变量为例,针对特征变量X27、X26、X17、X22、X40、X25、X23、X3、X4及X5,从遍历的样本子集中进行有放回抽样,得到样本量为n的新样本子集。
步骤908:分别构造与多个新样本子集一一对应的决策树模型。
在一些实施例中,服务器可通过如下方式分别构造与多个新样本子集一一对应的决策树模型:遍历多个新样本子集,并对当前遍历的新样本执行以下处理:
构造对应决策树模型的根节点,根节点包括样本子集包括的所有特征变量、以及对应特征变量的样本;从根节点中抽取使得决策树模型的异质性指数最大的特征变量,以构造新的节点,并递归地从新的节点中抽取使得决策树模型的异质性指数最大的特征变量,以构造更新的节点。
步骤909:将构造的多个决策树模型进行集成得到随机森林模型。
步骤910:通过随机森林模型对数据进行预测,确定决策树输出的结果中出现频率最高的结果作为随机森林模型的预测结果。
这里,在实际实施时,在不限制计算时间的情况下,分别采用本发明实施例提供的随机森林模型及相关技术中提供的随机森林算法对测试集进行预测,其中,相关技术中提供的随机森林算法共建立200棵决策树,得到预测结果见表3,结果显示,本发明实施例提供的随机森林模型预测的总体准确率为75.9%,Gmeans为59.5%,与相关技术中提供的随机森林算法得到的计算结果基本一致;但是从计算时间角度看,本发明实施例提供的随机森林模型(Block-SDB-RF)共消耗计算时间13.53分钟,与相关技术中提供的随机森林算法(RF)建立200棵决策树需要耗费的20.19小时相比,大大降低了计算成本,尤其在更加大型的推荐系统中,本发明实施例提供的随机森林模型的优势将更加明显。
Figure BDA0002231202570000241
表3
在一些实施例中,在采用构造的随机森林模型进行结果预测时,亦可采用各个决策树模型的预测结果的均值作为随机森林模型的预测结果。
继续对本发明实施例提供的随机森林模型的构造方法进行说明。通过对样本维度与特征维度同时进行处理,可以有效减少计算时间,提高计算效率,在实际实施时,可通过如下步骤实现随机森林的构造:
1,分组降维
对变量进行分组,使用的方式为随机无放回抽样。在每一组中运行决策树,得到每一个样本变量的重要性,以该重要性为权重,对每组变量进行选择,选择得到的变量可以很好的代替整体信息,同时,增加变量对于特征的良好的覆盖率。
具体地,样本子集的数量b;样本子集大小(即包括的样本的数量)为s;样本的特征变量的维数为p;样本量(即数据集中样本的数量)为n;特征变量的分组数c;进入随机森林的特征变量数为k。
对数据p维特征变量进行无/有放回抽样,将其随机划分为c组(即c个特征子集),表示为:
Figure BDA0002231202570000251
其中,i=1,2,…,
对于i→1 to c,在每一个特征子集上运行决策树,在决策树的不同节点上计算,即以每个节点作为分割节点时,特征子集中每个特征变量使决策树的输出变量的Gini指数减少的量,并求得在每个节点上使Gini指数减少的数量平均值作为每个特征的重要性度量(即权重):
Figure BDA0002231202570000252
其中,bl为第j组中特征变量的数量。
在每个特征子集中,以重要性为权重随机抽取特征,共抽取k个特征进入随机森林,对数据集的所有样本进行不放回抽样,将其随机划分为b个大小为s的样本子集:
Figure BDA0002231202570000253
其中,i=1,2,…,b。
2,SDB抽样
对样本维度进行分割,可以采用样本集的数量为n时的抽样方法,首先对样本集进行随机分割,成为S个等分的b大小的样本子集。针对每一个子集,抽取数量为n的样本建立决策树,如此既减少了计算时间又提高了样本覆盖率。
具体地,对于j→1 to b,遍历每个分组(即特征子集),在每个样本子集上进行一次Bootstrap抽样,将从所有子集中抽样得到的样本量恢复到n(即,在每个子集中抽样形成n个样本),在每个样本子集中,利用样本子集每个样本抽取的k个特征建立决策树。
3,合并决策
将上述建立的S棵决策树合并决策(结合b棵决策树的分类结果或回归结果进行综合决策),采用随机森林的投票决策方式,因为建立的决策树来自不同的样本集,所以它们之间的差异性会远大于随机森林建立的决策树,进行决策时,可以更快的收敛到一定的精度。
本发明上述实施例所构建的随机森林模型可应用到推荐系统之中,如应用到在VOOV推荐场景中,加速推荐分类模型的计算速度;还可以用于用户的性别年龄预测,但是由于它牺牲了一定的算法精度,所以只适用于需要实时更新性别年龄的场景。
应用本发明上述实施例,在数据覆盖率方面,在随机森林中,子集中每个样本被抽到的概率是1/n,重复2n/3次(即全样本大小的一部分)之后,会有
Figure BDA0002231202570000261
的样本不会被抽到,当n取极大的时候,会有
Figure BDA0002231202570000262
的样本不会被抽入训练集合,那么大约只有
Figure BDA0002231202570000263
的样本可以被抽到,这样对样本的覆盖只有0.487左右。
而使用SDB的时候,每个小子集中样本不会被抽到的概率是(1-1/b)n,b为n的一个子集,可以认为是b=n/s,s是子集的数量,那么样本不会被抽到的概率是:
Figure BDA0002231202570000264
s是一个大于1的整数,那么可能进入决策树的样本有1-(1/e)s,这是一个单调递增函数,取1的时候为0.632是大于0.487的,也就是说使用SDB-RF不仅仅可以提高计算效率,同时可以增加模型对数据的覆盖率,提升数据的使用效率。
在时间复杂度方面,对于bootstrap,进行了R次抽样,得到的最后时间复杂度是(R+1)×t(n),而应用本发明上述实施例(Block-SDB-RF),在b个大小为s的子样本集上分别进行一次有放回抽样,所得样本集最多只包含s个不同的样本,相应样本维度的时间复杂度为2b×t(s);因为RF的计算复杂度中的n远大于b,而h远小于p,所以应用本发明上述实施例的计算时间远小于直接计算随机森林。
在特征维度方面,由于随机森林算法对每一个Bootstrap子样本集都从p维特征中抽取比例为1/2的变量建立一棵决策树,因此特征维度的时间复杂度为R×t(p);而应用本发明上述实施例通过分组降维将变量维数降低至k,相应特征维度的时间复杂度为b×t(k).因此,总时间复杂度可记作为2b×b×t(sk),随机森林算法的总时间复杂度记为(R+1)×R×t(np),由于s、k相较n、p更小,显然而应用本发明实施例上述方法(Block-SDB-RF)的时间复杂度更低,可以大大减少计算时间。
应用随机森林算法与应用本发明实施例上述方法(Block-SDB-RF)在时间复杂度上的对比如下表4所示:
方法 时间复杂度
Block-SDB-RF 2b×b×t(sk)
RF (R+1)×R×t(np)
表4
图15为本发明实施例提供的时间和精度方面的数据对比图,参见图15,将Block-SDB-RF与RF在实际数据下进行对比,在1000秒的时间限制内,比较RF和Block-SDB-RF的时间和精度的情况,Block-SDB-RF的计算时间较快,可以很快到达一个较高的精度。
继续对本发明实施例提供的随机森林模型的构造装置的软件实现进行说明。参见图6,本发明实施例提供的随机森林模型的构造装置655包括:
划分模块6551,用于将数据集包括的多个维度特征变量划分为多个特征子集;
确定模块6552,用于基于每个所述特征子集的样本构造对应的决策树模型,并基于所述决策树模型确定所述特征子集中每个特征变量的权重;
抽样模块6553,用于根据每个所述特征子集中特征变量的权重的降序排列,从每个特征子集中抽样排序在前的部分特征变量,以组合形成降维特征变量集合;
所述划分模块6551,还用于将所述数据集中的样本划分为多个样本子集;
所述抽样模块6553,还用于按照所述降维特征变量集合对每个所述样本子集进行有放回抽样,以对应每个所述样本子集抽样得到与所述数据集的样本量一致的多个新样本子集;
集成模块6554,用于分别构造与所述多个新样本子集一一对应的决策树模型,并将构造后的多个决策树模型进行集成得到随机森林模型。
在一些实施例中,所述划分模块,还用于以有放回抽样的方式对所述数据集包括的p个维度的特征变量进行c次采样,形成c个部分重叠的特征子集;或者,
以无放回抽样的方式对所述数据集包括的p个维度的特征变量进行c次采样,形成c个不重叠的特征子集;
其中,p、c均为大于1的整数。
在一些实施例中,所述确定模块,还用于按照所述特征子集中各个特征变量对所述数据集进行有放回抽样,得到与所述数据集的样本量一致的样本集合;
基于所述样本集合构造对应的决策树模型。
在一些实施例中,所述确定模块,还用于遍历第i特征子集中的每个特征变量,以当前所遍历特征变量为所述决策树模型的因变量,并执行以下操作:
以所述决策树模型各个节点分别作为分割点,确定所述决策树模型的输出变量的异质性指数在被分割后相对于被分割前的减少量;
确定所述各个节点的分别作为分割点时对应的减少量的平均值,并将所述平均值确定为对应当前所遍历的特征的权重;
其中,1≤i≤c,i为整数,c为对所述数据集包括的多个维度的特征变量进行抽样形成的特征子集的数量。
在一些实施例中,所述确定模块,还用于遍历所述决策树模型中的每个节点,并执行以下操作:
以当前所遍历节点作为分割点分割所述决策树模型,得到左子树和右子树;
确定所述左子树的样本比例、所述左子树的输出变量的异质性指数之间的第一乘积;
确定所述右子树的样本比例、所述右子树的输出变量的异质性指数之间的第二乘积;
确定被分割前的所述决策树的输出变量的异质性指数,并与所述第一乘积以及所述第二乘积进行差值运算,得到所述决策树模型的输出变量的异质性指数在被分割后相对于被分割前的减少量。
在一些实施例中,所述确定模块,还用于将所述数据集中对应所述左子树的样本量与从所述数据集抽样的样本量的比值,确定为所述左子树的样本比例;
将所述数据集中对应所述右子树的样本量与从所述数据集抽样的样本量的比值,确定为所述右子树的样本比例。
在一些实施例中,所述确定模块,还用于当所述决策树模型为分类模型时,确定所述决策树模型的输出变量的信息熵或基尼指数;
当所述决策树模型为回归模型时,确定所述决策树模型的输出变量的方差。
在一些实施例中,所述抽样模块,还用于遍历每个所述特征子集以执行以下操作:
根据每个所述特征子集中特征变量的权重的降序排列,从所述特征子集中抽样排序在前的设定比例或设定数量的特征变量,
将所特抽样的特征变量组合形成k个维度的特征变量集合;
其中,1≤k≤p,k为所述数据集中特征变量的原始的维度。
在一些实施例中,所述划分模块,还用于以无放回抽样的方式从所述数据集中抽样;
以样本量s将抽样得到的样本划分到b个样本子集;
其中,b、s均为大于1的整数。
在一些实施例中,所述抽样模块,还用于遍历将所述数据集中的样本划分所形成的b个样本子集,针对遍历的每个样本子集执行以下处理:
对所遍历的样本子集进行s次有放回抽样,得到样本量为n的新样本子集;
其中,s*b=n,s、b和n均为大于1的整数,n为所述数据集中的样本量。
在一些实施例中,所述集成模块,还用于遍历所述多个新样本子集,并对当前遍历的新样本执行以下处理:
构造对应决策树模型的根节点,所述根节点包括所述样本子集包括的所有特征变量、以及对应所述特征变量的样本;
从所述根节点中抽取使得所述决策树模型的异质性指数最大的特征变量,以构造新的节点,并递归地从所述新的节点中抽取使得所述决策树模型的异质性指数最大的特征变量,以构造更新的节点。
在一些实施例中,所述装置还包括存储模块,用于采用非对称密钥对所述随机森林模型进行加密;
将加密后的随机森林模型存储至区块链网络。
基于本发明实施例提供的随机森林模型的构造方法所构造得到的随机森林模型,本发明实施例还提供了一种预测装置,包括:
预测模块,用于通过所述随机森林模型中的多个决策树模型,分别对数据进行预测得到预测结果;
处理模块,用于确定出现频率最高的预测结果作为所述随机森林模型的预测结果,或者,确定各个所述决策树模型的预测结果的均值作为所述随机森林模型的预测结果。
这里需要指出的是:以上涉及装置的描述,与上述方法描述是类似的,同方法的有益效果描述,不做赘述,对于本发明实施例所述装置中未披露的技术细节,请参照本发明方法实施例的描述。
本发明实施例还提供了一种电子设备,所述电子设备包括:
存储器,用于存储可执行程序;
处理器,用于执行所述存储器中存储的可执行程序时,实现本发明实施例提供的上述随机森林模型的构造方法。
本发明实施例还提供一种存储有可执行指令的存储介质,其中存储有可执行指令,当可执行指令被处理器执行时,将引起处理器执行本发明实施例提供的随机森林模型的构造方法。
实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、随机存取存储器(RAM,Random Access Memory)、只读存储器(ROM,Read-Only Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
或者,本发明上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、RAM、ROM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本发明的保护范围之内。

Claims (15)

1.一种随机森林模型的构造方法,其特征在于,所述方法包括:
获取数据集,所述数据集包括用户在使用音乐应用的过程中产生的日志数据、歌曲信息和用户信息;
将所述数据集包括的多个维度特征变量划分为与用户偏好相关的多个特征子集,其中,所述特征子集包括以下特征变量至少之一:用户基本信息、用户活跃情况、歌曲基本信息、歌曲流行情况;
基于每个所述特征子集的样本构造对应的决策树模型,并基于所述决策树模型确定所述特征子集中每个特征变量的权重;
根据每个所述特征子集中特征变量的权重的降序排列,从每个特征子集中抽样排序在前的部分特征变量,以组合形成降维特征变量集合;
将所述数据集中的样本划分为多个样本子集;
按照所述降维特征变量集合对每个所述样本子集进行有放回抽样,以对应每个所述样本子集抽样得到与所述数据集的样本量一致的多个新样本子集;
分别构造与所述多个新样本子集一一对应的决策树模型,并将构造后的多个决策树模型进行集成得到随机森林模型;
其中,所述随机森林模型最终的预测结果是通过对所述多个决策树模型的判断进行投票确定的。
2.根据权利要求1所述的方法,其特征在于,将所述数据集包括的多个维度特征变量划分为与用户偏好相关的多个特征子集,包括:
以有放回抽样的方式对所述数据集包括的p个维度的特征变量进行c次采样,形成c个部分重叠的特征子集;或者,
以无放回抽样的方式对所述数据集包括的p个维度的特征变量进行c次采样,形成c个不重叠的特征子集;
其中,p、c均为大于1的整数。
3.根据权利要求1所述的方法,其特征在于,所述基于每个所述特征子集的样本构造对应的决策树模型,包括:
按照所述特征子集中各个特征变量对所述数据集进行有放回抽样,得到与所述数据集的样本量一致的样本集合;
基于所述样本集合构造对应的决策树模型。
4.根据权利要求1所述的方法,其特征在于,所述基于所述决策树模型确定所述特征子集中每个特征变量的权重,包括:
遍历第i特征子集中的每个特征变量,以当前所遍历特征变量为所述决策树模型的因变量,并执行以下操作:
以所述决策树模型各个节点分别作为分割点,确定所述决策树模型的输出变量的异质性指数在被分割后相对于被分割前的减少量;
确定所述各个节点分别作为分割点时对应的减少量的平均值,并将所述平均值确定为对应当前所遍历的特征的权重;
其中,1≤ici为整数,c为对所述数据集包括的多个维度的特征变量进行抽样形成的特征子集的数量。
5.根据权利要求4所述的方法,其特征在于,所述以所述决策树模型各个节点分别作为分割点,确定所述决策树模型的输出变量的异质性指数在被分割后相对于被分割前的减少量,包括:
遍历所述决策树模型中的每个节点,并执行以下操作:
以当前所遍历节点作为分割点分割所述决策树模型,得到左子树和右子树;
确定所述左子树的样本比例、所述左子树的输出变量的异质性指数之间的第一乘积;
确定所述右子树的样本比例、所述右子树的输出变量的异质性指数之间的第二乘积;
确定被分割前的所述决策树的输出变量的异质性指数,并与所述第一乘积以及所述第二乘积进行差值运算,得到所述决策树模型的输出变量的异质性指数在被分割后相对于被分割前的减少量。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
将所述数据集中对应所述左子树的样本量与从所述数据集抽样的样本量的比值,确定为所述左子树的样本比例;
将所述数据集中对应所述右子树的样本量与从所述数据集抽样的样本量的比值,确定为所述右子树的样本比例。
7.根据权利要求5所述的方法,其特征在于,所述确定被分割前的所述决策树的输出变量的异质性指数,包括:
当所述决策树模型为分类模型时,确定所述决策树模型的输出变量的信息熵或基尼指数;
当所述决策树模型为回归模型时,确定所述决策树模型的输出变量的方差。
8.根据权利要求1至7任一项所述的方法,其特征在于,所述根据每个所述特征子集中特征的权重的降序排列,从每个特征子集中抽样排序在前的部分特征变量,以组合形成降维特征变量集合,包括:
遍历每个所述特征子集以执行以下操作:
根据每个所述特征子集中特征变量的权重的降序排列,从所述特征子集中抽样排序在前的设定比例或设定数量的特征变量,
将所特抽样的特征变量组合形成k个维度的特征变量集合;
其中,1≤kpk为所述数据集中特征变量的原始的维度。
9.根据权利要求1至7任一项所述的方法,其特征在于,所述将所述数据集中的样本划分为多个样本子集,包括:
以无放回抽样的方式从所述数据集中抽样;
以样本量s将抽样得到的样本划分到b个样本子集;
其中,b、s均为大于1的整数。
10.根据权利要求1至7任一项所述的方法,其特征在于,所述方法还包括:
采用非对称密钥对所述随机森林模型进行加密;
将加密后的随机森林模型存储至区块链网络。
11.一种随机森林模型的预测方法,其特征在于,所述方法包括:
通过所述随机森林模型中的多个决策树模型,分别对数据进行预测得到预测结果;
确定出现频率最高的预测结果作为所述随机森林模型的预测结果,或者,确定各个所述决策树模型的预测结果的均值作为所述随机森林模型的预测结果;
其中,所述随机森林模型采用如权利要求1至10任一项所述的方法构造得到。
12.一种随机森林模型的构造装置,其特征在于,所述装置包括:
划分模块,用于获取数据集,所述数据集包括用户在使用音乐应用的过程中产生的日志数据、歌曲信息和用户信息;将所述数据集包括的多个维度特征变量划分与用户偏好相关的为多个特征子集,其中,所述特征子集包括以下特征变量至少之一:用户基本信息、用户活跃情况、歌曲基本信息、歌曲流行情况;
确定模块,用于基于每个所述特征子集的样本构造对应的决策树模型,并基于所述决策树模型确定所述特征子集中每个特征变量的权重;
抽样模块,用于根据每个所述特征子集中特征变量的权重的降序排列,从每个特征子集中抽样排序在前的部分特征变量,以组合形成降维特征变量集合;
所述划分模块,还用于将所述数据集中的样本划分为多个样本子集;
所述抽样模块,还用于按照所述降维特征变量集合对每个所述样本子集进行有放回抽样,以对应每个所述样本子集抽样得到与所述数据集的样本量一致的多个新样本子集;
集成模块,用于分别构造与所述多个新样本子集一一对应的决策树模型,并将构造后的多个决策树模型进行集成得到随机森林模型;其中,所述随机森林模型最终的预测结果是通过对所述多个决策树模型的判断进行投票确定的。
13.一种随机森林模型的预测装置,其特征在于,所述装置包括:
预测模块,用于通过所述随机森林模型中的多个决策树模型,分别对数据进行预测得到预测结果;
处理模块,用于确定出现频率最高的预测结果作为所述随机森林模型的预测结果,或者,确定各个所述决策树模型的预测结果的均值作为所述随机森林模型的预测结果;
其中,所述随机森林模型采用如权利要求1至10任一项所述的方法构造得到。
14.一种电子设备,其特征在于,所述电子设备包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现权利要求1至10中任一项所述的随机森林模型的构造方法。
15.一种存储介质,其特征在于,所述存储介质存储有可执行指令,用于引起处理器执行时,实现权利要求1至10中任一项所述的随机森林模型的构造方法。
CN201910968175.4A 2019-10-12 2019-10-12 随机森林模型的构造方法、装置、电子设备及存储介质 Active CN110705683B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910968175.4A CN110705683B (zh) 2019-10-12 2019-10-12 随机森林模型的构造方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910968175.4A CN110705683B (zh) 2019-10-12 2019-10-12 随机森林模型的构造方法、装置、电子设备及存储介质

Publications (2)

Publication Number Publication Date
CN110705683A CN110705683A (zh) 2020-01-17
CN110705683B true CN110705683B (zh) 2021-06-29

Family

ID=69198589

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910968175.4A Active CN110705683B (zh) 2019-10-12 2019-10-12 随机森林模型的构造方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN110705683B (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111652281B (zh) * 2020-04-30 2023-08-18 中国平安财产保险股份有限公司 信息数据的分类方法、装置及可读存储介质
CN111783840A (zh) * 2020-06-09 2020-10-16 苏宁金融科技(南京)有限公司 一种随机森林模型的可视化方法、装置及存储介质
CN111754345B (zh) * 2020-06-18 2022-03-18 天津理工大学 一种基于改进随机森林的比特币地址分类方法
CN111753907A (zh) * 2020-06-24 2020-10-09 国家电网有限公司大数据中心 一种电量数据的处理方法、装置、设备和存储介质
CN111930948B (zh) * 2020-09-08 2021-01-26 平安国际智慧城市科技股份有限公司 一种信息收集和分级方法、装置、计算机设备及存储介质
CN112148994B (zh) * 2020-10-23 2024-04-19 腾讯科技(深圳)有限公司 信息推送效果评估方法、装置、电子设备及存储介质
CN113052375A (zh) * 2021-03-19 2021-06-29 上海森宇文化传媒股份有限公司 一种预测剧集播放量的方法和装置
CN113516513B (zh) * 2021-07-20 2023-04-07 重庆度小满优扬科技有限公司 数据分析方法、装置、计算机设备和存储介质
CN113539414A (zh) * 2021-07-30 2021-10-22 中电药明数据科技(成都)有限公司 一种抗生素用药合理性预测方法及系统
CN114331731A (zh) * 2022-02-28 2022-04-12 国网电子商务有限公司 基于pca与rf的区块链异常检测方法及相关装置

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105550374A (zh) * 2016-01-29 2016-05-04 湖南大学 Spark云服务环境下面向大数据的随机森林并行机器学习方法
CN107292186A (zh) * 2016-03-31 2017-10-24 阿里巴巴集团控股有限公司 一种基于随机森林的模型训练方法和装置
CN107590688A (zh) * 2017-08-24 2018-01-16 平安科技(深圳)有限公司 目标客户的识别方法及终端设备
KR101903127B1 (ko) * 2017-05-12 2018-10-01 이래에이엠에스 주식회사 시선방향 예측 방법 및 장치
CN109409647A (zh) * 2018-09-10 2019-03-01 昆明理工大学 一种基于随机森林算法的薪资水平影响因素的分析方法
CN109800815A (zh) * 2019-01-24 2019-05-24 北华航天工业学院 基于随机森林模型的训练方法、小麦识别方法和训练系统
CN109977028A (zh) * 2019-04-08 2019-07-05 燕山大学 一种基于遗传算法和随机森林的软件缺陷预测方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105550374A (zh) * 2016-01-29 2016-05-04 湖南大学 Spark云服务环境下面向大数据的随机森林并行机器学习方法
CN107292186A (zh) * 2016-03-31 2017-10-24 阿里巴巴集团控股有限公司 一种基于随机森林的模型训练方法和装置
KR101903127B1 (ko) * 2017-05-12 2018-10-01 이래에이엠에스 주식회사 시선방향 예측 방법 및 장치
CN107590688A (zh) * 2017-08-24 2018-01-16 平安科技(深圳)有限公司 目标客户的识别方法及终端设备
CN109409647A (zh) * 2018-09-10 2019-03-01 昆明理工大学 一种基于随机森林算法的薪资水平影响因素的分析方法
CN109800815A (zh) * 2019-01-24 2019-05-24 北华航天工业学院 基于随机森林模型的训练方法、小麦识别方法和训练系统
CN109977028A (zh) * 2019-04-08 2019-07-05 燕山大学 一种基于遗传算法和随机森林的软件缺陷预测方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
large multivariate datasets;Shahab Basiri等;《2014 48th Asilomar Conference on Signals, Systems and Computers》;20150427;第8-13页 *
基于异质性数据的Logit变量选择模型研究;斯介生等;《统计研究》;20171231;第110-118页 *
基于随机森林的加权特征选择算法;徐少成等;《统计与决策》;20181231;第25-28页 *

Also Published As

Publication number Publication date
CN110705683A (zh) 2020-01-17

Similar Documents

Publication Publication Date Title
CN110705683B (zh) 随机森林模型的构造方法、装置、电子设备及存储介质
US11593894B2 (en) Interest recommendation method, computer device, and storage medium
US9536201B2 (en) Identifying associations in data and performing data analysis using a normalized highest mutual information score
US9619661B1 (en) Personal information data manager
US20190058719A1 (en) System and a method for detecting anomalous activities in a blockchain network
CN111125460B (zh) 信息推荐方法及装置
US7945668B1 (en) System and method for content-aware co-clustering algorithm based on hourglass model
CN113711536A (zh) 从区块链网络中提取数据
US20230045726A1 (en) Video information processing method and apparatus, electronic device, and storage medium
CN110837862B (zh) 用户分类方法及装置
CN111026858B (zh) 基于项目推荐模型的项目信息处理方法及装置
Hirshman et al. Unsupervised approaches to detecting anomalous behavior in the bitcoin transaction network
WO2021159738A1 (zh) 基于医学领域的数据推荐方法、设备、服务器及存储介质
CN111367965B (zh) 目标对象确定方法、装置、电子设备及存储介质
CN111553744A (zh) 联邦产品推荐方法、装置、设备及计算机存储介质
CN113590576A (zh) 数据库参数调整方法、装置、存储介质以及电子设备
CN110909222A (zh) 基于聚类的用户画像建立方法、装置、介质及电子设备
CN111177246A (zh) 一种业务数据的处理方法及装置
CN112989074A (zh) 多媒体信息推荐方法、装置、电子设备及存储介质
CN112749827A (zh) 金融信息处理方法、装置、电子设备及存储介质
CN113179659A (zh) 利用封闭数据的个性化数据模型
WO2022057525A1 (zh) 一种数据找回方法、装置、电子设备及存储介质
Wang et al. Personalized re-ranking for improving diversity in live recommender systems
CN112766560B (zh) 联盟区块链网络优化方法、装置、系统和电子设备
WO2021217933A1 (zh) 同质网络的社群划分方法、装置、计算机设备和存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40020956

Country of ref document: HK

SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant