关于scikit learn(Python)中的ExtraTreeGressor,我有两个问题。在
1)为什么不能在输入空间的维度上增加特征的数量?[1]中的算法没有限制最大特征的数量。在某些情况下,选择更高的max_特性可以获得更好的结果。在
2)我们希望使用ExtraTreeRegressor实现fitted Q迭代,在for循环中执行ExtraTreeRegressor(96个时间步)。 首先,我们将max_features设置为1,并在每次迭代后绘制mse(上图)。 然后我们将max_特征增加到输入空间的维数('auto'),并绘制mse。为什么在最后一个案例中mse会增加?在
我们预计mse将更小,最大值功能更大。。。在
啊![上图显示了将max features设置为1时循环内的mse,下图显示了max_features设置为“auto”时循环内的mse][1]
[1]p.Geurts,D.Ernst.和L.Wehenkel,“极度随机树”,机器学习,63(1),3-422006。在
{eem>表示每棵树可以选择的最大特征数。这意味着林中的每棵树最多可以选择
n_features
-这可能会导致过度拟合,因为每棵树都能看到所有内容(这与您在bagged tree算法中所希望的相反)。一个更好的诊断图可能是查看max_features
范围内的训练和测试错误—您应该看到一个最佳点,即模型复杂性很好地捕捉了训练和测试错误,而不会过度拟合。在要使
n_features
大于数据中的特征数,可以构建一个管道并对更高维空间进行随机投影,然后将此模型放入新空间。默认情况下,我不相信ExtraTreesRegressor
有这个功能,因为sklearn有管道对象可以做到这一点。在相关问题 更多 >
编程相关推荐