我希望使用Scikit-Learn 的 Gradient Boosting Regressor训练一些数据。
我的问题是:
1)算法是否能够捕捉非线性关系?例如,在y=x^2的情况下,y随着x接近负无穷和正无穷而增加。如果图形看起来像 y=sin(x) 怎么办?
2)算法是否能够检测特征之间的交互/关系?具体来说,我应该将作为原始特征的总和/差异的特征添加到训练集中吗?
我希望使用Scikit-Learn 的 Gradient Boosting Regressor训练一些数据。
我的问题是:
1)算法是否能够捕捉非线性关系?例如,在y=x^2的情况下,y随着x接近负无穷和正无穷而增加。如果图形看起来像 y=sin(x) 怎么办?
2)算法是否能够检测特征之间的交互/关系?具体来说,我应该将作为原始特征的总和/差异的特征添加到训练集中吗?
GB 方法通过最小化损失函数并以产生高纯度叶子的方式拆分每个节点来工作。没有估计人口公式,因此您可以估计目标和特征之间的所有类型的关系。
但是我不会将模型相关变量作为:
对于梯度提升树,由于其鲁棒性,通常不需要检查多重共线性。但实际上,你还是应该做一些基本的检查。例如,如果您发现两个变量 100% 相同,那么保留两者当然没有意义。即使它具有 98% 的相关性,通常也可以删除一个变量而不会降低整个模型的性能。
资料来源:Quora