lightgbm python 数据集参考参数是什么意思?

kui*_*ong 10 machine-learning cross-validation lightgbm

我试图弄清楚如何在 python 中使用 lightgbm 训练 gbdt 分类器,但对官方网站上提供的示例感到困惑。按照列出的步骤,我发现validation_data来自任何地方,并且没有关于valid_data的格式的线索,也没有关于有或没有它的训练模型的优点或效用的线索。 验证数据创建步骤 另一个问题是,在文档中,据说“验证数据应该与训练数据对齐”,当我查看数据集详细信息时,我发现还有另一个声明表明“如果这是数据集为了进行验证,应使用训练数据作为参考”。我的最后一个问题是,为什么验证数据应该与训练数据保持一致?数据集中参考的含义是什么以及在训练过程中如何使用它?是否通过训练数据的参考集来实现对齐目标?这种“参考”策略和交叉验证有什么区别?希望有人能帮我走出这个迷宫,谢谢!

Flo*_*tel 6

“验证数据应该与训练数据保持一致”的想法很简单:对训练数据进行的每次预处理,当然都应该以与验证数据和生产过程相同的方式进行。这适用于每个机器学习算法。

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

LightGBM 也是如此。数据将被“分桶”(简而言之,每个连续值都将被离散化),并且您希望将连续值映射到训练和验证中的相同容器。这些箱将使用“参考”数据集进行计算。

关于未经验证的训练,这是大多数时候你不想做的事情!如果没有验证来调整“num_boost_round”等参数,则很容易使训练数据与增强树过度拟合。