使用深度森林(Deep Forest)进行分类-Python

深度森林是一种基于树的集成学习方法,克服了深度神经网络的一些不足,如需要大量数据、复杂模型和过多超参数。它由级联森林和多粒度扫描构成,级联森林通过级联多个决策树森林,而多粒度扫描利用不同大小的滑动窗口增强特征。深度森林通过自动确定级联层数和采用交叉验证减少过拟合风险。在Iris数据集上的分类实践中,展示了深度森林的使用方法和预测效果。
摘要由CSDN通过智能技术生成

一、什么是深度森林?

传统DNN的不足:

1、需要大量的数据集来训练;

2DNN的模型太复杂;

3DNN有着太多的超参数

gcForest的优势:

1、更容易训练;

2、性能更佳;

3、效率高且可扩展、支持小规模训练数据。

        深度森林是一个新的基于树的集成学习方法,它通过对树构成的森林进行集成并串联起来达到让分类器做表征学习的目的,从而提高分类的效果。

二、深度森林的结构

其结构主要包括级联森林和多粒度扫描。

1.级联森林

        级联森林的构成:级联森林的每一个Level包含若干个集成学习的分类器(这里是决策树森林),这是一种集成中的集成的结构

        为了体现多样性,这里用了两种代表了若干不同的集成学习器。图中的级联森林每一层包括两个完全随机森林(黑色)和两个随机森林(蓝色)。这两种森林的主要区别在于候选特征空间,完全随机森林是在完整的特征空间中随机选取特征来分裂,而普通随机森林是在一个随机特征子空间内通过基尼系数来选取分裂节点。

       我们都知道决策树其实是在特征空间中不断划分子空间,并且给每个子空间打上标签(分类问题就是一个类别,回归问题就是一个目标值),所以给予一条测试样本,每棵树会根据样本所在的子空间中训练样本的类别占比生成一个类别的概率分布,然后对森林内所有树的各类比例取平均,输出整个森林对各类的比例。也就是每个森林都会生成一个长度为 C 的概率向量,假如 gcforest 的每一层由 N 个森林构成,那么每一层的输出就是 N C 维向量连接在一起,即 C*N 维向量。gcForest采用了DNN中的layer-by-layer结构,从前一层输入的数据和输出结果数据做concat作为下一层的输入。这个向量然后与输入到级联的下一层的原始特征向量相拼接(图 中粗红线部分),作为下一层的输入.这样我们就做了一次特征变化,并保留了原始特征继续后续处理,每一层都这样,最后一层将所有随机森林输出的三维向量加和求平均算出最大的一维作为最终输出。

例如,

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值