Lightgbm python数据集引用参数是什么意思?

人气:60 发布:2023-01-03 标签: machine-learning cross-validation lightgbm

问题描述

我正在尝试找出如何用python中的lightgbm来训练gbdt分类器,但与the official website中提供的示例混淆了。 按照列出的步骤,我发现VALIDATION_DATA不知从何而来,并且不知道VALID_DATA的格式,也不知道使用或不使用它的训练模型的优点或用处。 随之而来的另一个问题是,在文档中,有一句话是说"验证数据应该与训练数据对齐",当我查看数据集的细节时,我发现还有另一种说法显示,"如果这是用于验证的数据集,则应将训练数据用作参考"。 我的最后一个问题是,为什么验证数据应该与培训数据保持一致?数据集中引用的含义是什么?在培训过程中如何使用?对齐目标是否在参考培训数据的情况下实现?这种"参考"策略和交叉验证有什么不同? 希望有人能帮我走出这个迷宫,谢谢!

推荐答案

"验证数据应与训练数据对齐"的概念很简单: 您对训练数据进行的每一次预处理,都应该以同样的方式对验证数据进行处理,当然,在生产中也是如此。这适用于所有ML算法。

例如,对于神经网络,您通常会将训练输入归一化(用平均值减去,用标准差除以)。 假设你有一个可变的"年龄",训练中的平均值是26岁。它将被映射到"0",用于训练您的神经网络。对于验证数据,您希望以与训练数据相同的方式进行归一化(使用训练平均值和训练标准),以便验证中的26yo仍然映射到0(相同的值->相同的预测)。

这与LightGBM相同。数据将是"bucketed"(简而言之,每个连续的值都将被离散化),并且您希望在训练和验证中将连续的值映射到相同的箱。这些垃圾箱将使用"参考"数据集进行计算。

关于未经验证的培训,这是您大多数时候都不想做的事情!如果您没有用于调整参数的验证,例如"num_ost_round",则很容易使用增强树来覆盖训练数据。

19