-1

我正在使用 SageMaker 的内置 XGBoost 算法和以下训练和验证集:

https://files.fm/u/pm7n8zcm

当使用上述数据集运行从训练中得出的预测模型时,总是会产生完全相同的结果。

训练或验证数据集中有什么明显的东西可以解释这种行为吗?

这是我设置超参数的示例代码片段:

{
                    {"max_depth", "1000"},
                    {"eta", "0.001"},
                    {"min_child_weight", "10"},
                    {"subsample", "0.7"},
                    {"silent", "0"},
                    {"objective", "reg:linear"},
                    {"num_round", "50"}
                }

这是源代码:https ://github.com/paulfryer/continuous-training/blob/master/ContinuousTraining/StateMachine/Retrain.cs#L326

我不清楚可能需要调整哪些超参数。

此屏幕截图显示我得到的结果包含 8 个索引: 在此处输入图像描述

但是当我添加第 11 个时,它失败了。这让我相信我必须用零索引训练模型,而不是删除它们。所以接下来我会试试。 在此处输入图像描述 更新:包含零值的再培训似乎没有帮助。每次我仍然得到相同的价值。我注意到我不能向预测端点发送超过 10 个值,否则它将返回错误:“无法评估提供的有效负载”。所以此时使用 libsvm 格式只会增加更多的问题。

4

2 回答 2

0

你有几件事错了。

  1. 使用 {"num_round", "50"} 和这么小的 ETA {"eta", "0.001"} 不会给你任何东西。
  2. {"max_depth", "1000"} 1000 太疯狂了!(默认值为 6)

建议:

    {"max_depth", "6"},
    {"eta", "0.05"},
    {"min_child_weight", "3"},
    {"subsample", "0.8"},
    {"silent", "0"},
    {"objective", "reg:linear"},
    {"num_round", "200"}

试试这个并报告你的输出

于 2018-04-17T13:26:25.390 回答
-1

当我对时间序列进行分组时,某些频率会在数据中产生差距。我通过填充所有 NaN 解决了​​这个问题。

于 2020-07-28T14:13:17.087 回答