探索变量以指导 xgboost 调优

数据挖掘 可视化 xgboost 超参数调整
2021-10-07 18:16:46

简而言之:在为 xgboost 选择参数值时如何考虑我的变量的类型和分布?

上下文:我有一个数据集,我想使用binary:logistic目标对其进行分类(我正在使用 R 实现)。我想知道目视检查我的数据集中的变量是否可以告知参数值的选择,如果可以,那么通常如何进行。

示例:具有二元结果变量和二元/连续预测变量混合的数据集。

结果变量(每次观察一个值):

结果变量

一组称为风味(~150 个变量)和纹理(~80 个变量)的预测变量具有二进制值 0、1。每个观察值都有一个或多个风味和纹理(水平轴上每个观察值的 f/t 数):

直方图特征数

某些风味/质地比其他风味/质地更容易出现(水平轴上的频率):

直方图特征频率

我添加了一些定量变量来总结每次观察的风味/质地。我计算了每个 f/t 的频率(= 发生该 f/t 的观测值的百分比),然后计算min(给定观测值中最独特的 f/t)max(最常见的 f/t)和mean(平均频率) .

箱线图频率

除此之外,还有另外三个连续变量:

箱线图附加功能

如果有的话,可以从中得出关于模型参数的什么结论?

1个回答

提示:不要

一个窍门:不要

原因?机器学习科学方法论是基于交叉验证的。几乎所有论文(我之所以选择几乎是因为是的)都是基于交叉验证而不是以前的知识来选择所有内容。

Xgboost 尤其复杂,因为它涉及到很多数学。

对于更简单的情况,假设您有 3 个特征的问题,并且您想使用 Lasso 回归。你会选择哪个超参数?即使在这个非常简单的情况下,您也不知道。你需要做简历并在那里选择它们。

对于 xgboost,根据我的经验,我可以提供的唯一提示是,唯一重要的超参数是集成中树的数量。其余的似乎并不那么重要。

我的建议:只调整 xgboost 中的树数并在交叉验证中选择最好的。除非您想找到绝对最小值,否则您将探索 whooooole 超空间。祝你好运!