楼主前面有一篇博客提到了周志华老师又一力作:gcForest:探索深度神经网络以外的方法,不了解的小伙伴可以翻前面的博客。
这个算法的确比传统的集成树算法:RandomForest,XGBoost,lightGBM都要优秀,而且引入层的概念后很好的解决了集成树算法容易过拟合的问题。
简单讲他就是借鉴了深度学习分层训练的思路,将机器学习中常用的RandomForest,XGBoost,LogisticRegression等算法进行集成,通过模型和样本的多样性让模型更加优秀。
正是因为它这种集成思想,反而抹杀了传统集成树算法的一大优势,gcForest无法给特征打分。原因很简单,它每层用的基学习器像前面提到的RandomForest,XGBoost提取特征的方式是不一样的:
首先RandomForest作为Bagging的代表,它是通过给指定特征X随机加入噪声,通过加入噪声前后袋外数据误差的差值来衡量该特征的重要程度。具体请参考:随机森林之特征选择;而XGBoost作为典型的Boosting算法提取特征的方式和RandomForest有很大的不同,看了下他的打分函数有weight,gain,cover三种方式,其中默认的是weight,这种方式其实就是统计特征X在每棵决策树当中出现的次数,最后特征X出现的次数之和就作为特征X的最后的得分。我们可以看出这两种算法打分方式不同,得到的数值也不是一个量纲的。同样LogisticRegression提取特征的方式也和前两者不一样。
并且gcForst还提供了用户自己添加基学习器的接口&#