【问题标题】:ExtraTreeRegressor in scikit-learn (Python)scikit-learn (Python) 中的 ExtraTreeRegressor
【发布时间】:2014-08-09 23:04:47
【问题描述】:

我有两个关于 scikit-learn (Python) 中的 ExtraTreeRegressor 的问题。

1) 为什么不能增加输入空间维度以上的特征数量? [1] 中的算法不限制最大特征的数量。在某些情况下,选择更高的 max_feature 可能会产生更好的结果。

2) 我们想使用 ExtraTreeRegressor 来实现拟合 Q 迭代,我们在 for 循环中执行 ExtraTreeRegressor(96 个时间步)。 首先,我们将 max_features 设置为 1,并在每次迭代后绘制 mse(上图)。 然后我们将 max_features 增加到输入空间的维度('auto')并绘制 mse。为什么最后一种情况下mse会增加?

我们希望 max_features 值越大,mse 越小...

![上图显示max features设置为1的循环内的mse,下图显示max_features设置为'auto'的循环内的mse][1]

图:http://imgur.com/aqgCVeU

[1] P. Geurts、D. Ernst. 和 L. Wehenkel,“极端随机树”,机器学习,63(1),3-42,2006。

【问题讨论】:

    标签: python scikit-learn regression


    【解决方案1】:

    我相信参数max_features 指的是每棵树可以选择的最大特征数。这意味着森林中的每棵树最多可以选择n_features - 这可能会导致过度拟合,因为每棵树都可以看到所有内容(这与您在袋装树算法中想要的相反)。更好的诊断图可能是查看max_features 范围内的训练和测试错误——您应该看到一个最佳点,其中模型复杂性很好地捕获了训练和测试错误而不会过度拟合。

    要使n_features 大于数据中的特征数量,您可以构建管道并对更高维空间进行随机投影,然后将此模型拟合到新空间中。默认情况下,我不相信ExtraTreesRegressor 具有此功能,因为 sklearn 具有可以执行此操作的 Pipeline 对象。

    【讨论】:

      猜你喜欢
      • 2013-06-07
      • 2018-06-27
      • 1970-01-01
      • 2015-06-26
      • 2016-04-14
      • 2014-07-28
      • 2014-06-05
      • 2017-07-16
      • 2018-01-24
      相关资源
      最近更新 更多