cart树随机森林matlab,基于CART算法的随机森林的决策树推理系统及方法与流程

b64056fca43466f35b8200c9e6e38290.gif

本发明属于机器学习算法领域,尤其涉及了一种基于cart算法的随机森林的决策树推理系统及方法。

背景技术:

随机森林(randomforest,简称rf)是一种新兴的高度灵活的机器学习算法,通过从大量数据中通过训练与分析找出一定的规律,并在接收到新数据后判断数据所属的结果类型。通常用来做市场营销模拟建模,或是预测疾病的风险和病患者的易感性。

决策树是一种最基本的树形分类器。其中每个内部节点表示某个属性的特征分类,每个分支代表一个分类结果,常见的分类算法有c4.5、id3和cart。用单一的决策树进行数据推理时得到一致假设而使假设变得过度严格。在训练数据上能够获得比其他假设更好的拟合,但是在训练数据外的数据集上却不能很好地拟合数据。

目前的决策树存在过拟合的风险和趋势且模型易会被特定的特征值或者特征组合所决定,随机性具有一定的局限性,随机效果不够显著。

技术实现要素:

本发明的目的是克服上述背景技术中的不足,在有限的硬件资源下,实现尽可能多特征的决策树分类,提升决策树的训练和推理速度,增加推理的准确率,提供了一种基于cart算法的随机森林的决策树推理系统及方法,具体通过以下技术方案实现:

所述基于cart算法的随机森林的决策树推理系统,包括:

控制模块,输出控制信号;

数据存储模块,根据所述控制信号传输包含有多棵决策树数据的源数据并存放计算模块的计算结果和特征筛选后的剩余特征数值;

计算模块,根据所述控制信号计算gini不纯度,获取最优特征。

所述基于cart算法的随机森林的决策树推理系统的进一步设计在于,所述计算模块,根据特征将数据分类后,记录每个叶子节点的数据数目并传输到计算模块,经过定点加减和乘除法求出gini不纯度,选取gini不纯度的最小值对应的特征作为最优特征。

所述基于cart算法的随机森林的决策树推理系统的进一步设计在于,所述数据存储模块包括:存储决策树奇数层数据的奇数层存储单元、存储偶数层数据的偶数层存储单元以及存储剩余特征的特征存储单元,所述奇数层存储单元与偶数层存储单元记录有决策树中每一个叶子节点中的数据数目并通过所述数据数目决定单棵决策树在进行下一层数据分类时读取所需数据的地址位,所述特征存储单元记录在将最优特征移除后的剩余特征。

所述基于cart算法的随机森林的决策树推理系统的进一步设计在于,当通过比较gini不纯度得到最优特征时,将所述最优特征从抽取的特征中移除,剩余结果存储到16个特征存储单元中。

所述基于cart算法的随机森林的决策树推理系统的进一步设计在于,当一棵决策树训练完毕时,将其所有的数据传输至ddr中,再进行新的决策树训练,在数据推理时,每棵决策树都会单独给出判断结果,最终通过多数投票机制得到最终的推理结果。

根据所述基于cart算法的随机森林的决策树推理系统提供了一种对应的推理方法,包括随机森林训练与推理两个过程:

随机森林训练具体包括如下步骤:

步骤1-1)收到开始信号之后,数据存储模块读取源数据;

步骤1-2)计算模块接收到所述源数据后,将读入的源数据按照设定的特征进行分类,并计算gini不纯度选出最小值gini不纯度对应的特征作为最优特征,循环至所有特征都被分类后,将决策树的计算结果传给数据存储模块,至此完成单棵决策树的构建;

步骤1-3)根据决策树的数目重复步骤1)至步骤2)完成所有决策树的构建形成随机森林模型;

推理具体包括如下步骤:

步骤2-1)当接收到顶层的开始信号时,根据设定的地址位从数据存储模块中读出随机森林模型中一棵决策树的全部与待推理的数据;

步骤2-2)读取当前决策树的第一层特征,根据推理数据得到决策树下一层特征分类时读取所需数据的地址位,直至最后一层;

步骤2-3)根据最后一层中数据所在的叶子位置,引入判断结果参数a,若判断结果为真,则a的值加1,将a的值存储到数据存储模块中;

步骤2-4)重复步骤2-1)至步骤2-3),直至森林模型中所有的决策树都进行过推理,读取所述a的值,若a的值大于等于森林中决策树数目的一半,则最终推理结果记为1,反之记为0,将最终的推理结果存回到数据存储模块中。

本发明的优点

本发明的训练速度快,可以运用在大规模数据集上。由于每棵树可以独立、同时生成,并行度高;由于采用了集成算法,本身精度比大多数单个算法要好;在测试集上表现良好,由于两个随机性(样本随机,特征随机)的引入,使得随机森林具有了一定的抗噪声能力,且不容易陷入过拟合;由于树的组合,使得随机森林可以处理非线性数据,本身属于非线性分类模型。

综上所述,本发明可以有效地提高数据推理的精确度,加快算法运行的速度,有着广泛的应用前景,针对不同的场合有良好的应用价值。

附图说明

图1是本发明的硬件架构示意图。

图2是决策树的模型示意图。

图3是本发明的单棵决策树存储结构示意图。

图4是本发明的硬件模块示意图。

图5是本发明的构建单棵决策树的流程图。

图6是本发明的数据推理的流程图。

具体实施方式

下面结合附图对本发明方案进行详细说明。

如图1,本实施例的基于cart算法的随机森林的决策树推理系统包括控制模块、计算模块以及数据存储模块。其中,控制模块,输出控制信号。数据存储模块,根据所述控制信号传输包含有多棵决策树数据的源数据并存放计算模块的计算结果。计算模块,根据所述控制信号计算gini不纯度,获取最优特征。

每棵决策树的模型参见图2,其中每个圈代表一个分类结果。每一个源数据组根据其判断结果分成两个子模块,并记录各个子模块中数据的总数。当进行新一层的数据分类时,根据上级模块中数据的数目到存储空间中对应的地址位去读取数据进行分类。

数据存储模块包括:存储决策树奇数层数据的奇数层存储单元、存储偶数层数据的偶数层存储单元,所述奇数层存储单元与偶数层存储单元记录有决策树中每一个叶子节点中的数据数目并通过所述数据数目决定决策树下一层特征分类时读取所需数据的地址位。如图3,本实施例的数据存储模块一共包含了128个bank。其中,bank75存储初始数据,bank125和bank127分别存储决策树奇数层和偶数层中数据排列的序号,bank93到bank124分别存储筛选后决策树奇数层和偶数层的特征序号,bank0到bank74存储决策树的结果数据,其余bank存储计算产生的中间数据。

本实施例根据基于cart算法的随机森林的决策树推理系统提供一种对应的推理方法,包括随机森林训练与推理两个过程。

在进行训练之前,将原始数据的每一个特征简化为0和1,然后将这些特征合并组成一个32位数的前31位,不足31位则高位补0,最后一位为数据的判断结果。将处理后的数据存入ddr中。如图4、图5,随机森林模型的训练过程如下:

s1:当该模块接收到顶层的算法开始信号时,从ddr中读取待训练的所有数据至sram中,记录数据数目,特征数目;

s2:有放回的抽取源数据进行训练,无放回的抽取特征,并将抽取的数据序号和特征序号分别存在两个bank中;

s3:根据抽取的特征序号读取数据的对应位,根据判断结果进行分类,将分类后的数据序号存储在某个固定的bank中,并读取两个分类的数据数目,计算gini值,同时,引入参数leaf用来指代决策树该层的某个节点;

s4:依次计算所有特征的gini值,选取gini值最小的特征分类,记录该特征序号;

s5:更新特征,将已经分类过的特征序号移除,剩下的特征存储在一个特定的bank内;

s6:根据leaf值判断该层分类是否完毕,分类完毕,则进入下一层,若尚有数据未分类,则重复s3—s5;

s7:重复s3—s6至所有抽取的特征都被分类完毕,计算每个叶子节点中判断结果为“是”的概率,设定一个阈值,当概率大于此阈值时,该叶子的结果记为1,反之则为0。将判断结果与之前每层分类的最优特征共同存储,并存回到ddr中;

s8:根据设定的决策树数目重复s2—s7,构建出随机森林。

如图6,随机森林推理部分如下:

在进行推理之前,将需要推理的数据的每一个特征简化为0和1,然后将这些特征合并组成一个32位数的前31位,不足31位则高位补0,最后一位0或者1都可以。将处理后的数据存入ddr中。

s1:当接收到顶层的开始信号时,根据设定的地址位从ddr中读出随机森林中一棵决策树的全部数据,以及待推理的数据;

s2:读取决策树的第一层特征,根据推理数据该特征对应的地址位,决定下一层的走向;

s3:不断读取决策树的每一层特征,并对应到数据中,直至最后一层;

s4:根据最后一层中数据所在的叶子位置,引入判断结果参数a,若判断结果为真,则a的值加1,将a的值存储到固定的bank中;

s5:重复s1—s4,至森林中所有的树都进行过推理,读取之前bank中存储的a的值,若a的值大于等于森林中树木总数的一半,则最终推理结果记为1,反之记为0。将最终的推理结果存回到ddr中。

以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或变换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值