首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >梯度增强回归树与随机森林特征重要性的计算

梯度增强回归树与随机森林特征重要性的计算
EN

Stack Overflow用户
提问于 2015-01-09 14:23:30
回答 1查看 5.7K关注 0票数 0

在具有一些特性的数据上,我为回归目的训练了一个随机森林,并且梯度增强了回归树。对于这两种方法,我都计算了特性的重要性,我发现它们有很大的不同,尽管它们的得分相似。

对于随机森林回归:

代码语言:javascript
复制
MAE: 59.11
RMSE: 89.11

Importance:

Feature 1: 64.87
Feature 2: 0.10
Feature 3: 29.03
Feature 4: 0.09
Feature 5: 5.89

对于梯度增强的回归树:

代码语言:javascript
复制
MAE: 58.70
RMSE: 90.59

Feature 1: 65.18
Feature 2: 5.67
Feature 3: 13.61
Feature 4: 4.26
Feature 5: 11.27

这是为什么?我想,也许是因为有了坡度增强的回归树,树木比随机森林更浅。但我不确定。

EN

回答 1

Stack Overflow用户

发布于 2015-01-10 16:34:10

虽然它们都是基于树的,但它们仍然是不同的算法,因此每个算法计算特性的重要性不同,下面是相关代码:

scikit-learn/sklearn/ensemble/gradient_boosting.py

代码语言:javascript
复制
def feature_importances_(self):   
    total_sum = np.zeros((self.n_features, ), dtype=np.float64)
    for stage in self.estimators_:
        stage_sum = sum(tree.feature_importances_
                        for tree in stage) / len(stage)
        total_sum += stage_sum

    importances = total_sum / len(self.estimators_)
    return importances

scikit-learn/sklearn/ensemble/forest.py

代码语言:javascript
复制
def feature_importances_(self):
    all_importances = Parallel(n_jobs=self.n_jobs, backend="threading")(
        delayed(getattr)(tree, 'feature_importances_')
        for tree in self.estimators_)
    return sum(all_importances) / self.n_estimators

因此,不同的树木和不同的方式组合树木。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27862667

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档