【问题标题】:How to use xgboost algorithm for multi-variable prediction?如何使用 xgboost 算法进行多变量预测?
【发布时间】:2018-03-01 17:35:40
【问题描述】:

我有一组特征:x1、x2、x3。此外,我还有一组标签:y1、y2、y3。

例如,我的 x 变量是身高、体重和受教育年限。每个 Yi 代表以下领域的一个等级:科学、艺术和管理。每个学生都被分配了一个共同响应领域(科学、艺术、管理)的成绩。我想使用 xgboost 算法来识别分数最低的班级。例如,如果标记是 (10, 25, 5),那么算法应该将类别预测为 y3。我怎样才能自定义我的目标函数来完成这个任务。我是 R 用户

【问题讨论】:

  • “每个学生都被分配了科学、艺术、管理的分数。”你是什​​么意思?你的意思是每个学生都给出了他喜欢这个领域的分数吗?
  • 根据考试成绩为每个科目分配的分数。很抱歉造成混乱
  • 你想预测什么?每个领域的分数?在尝试预测字段 y2 的分数时,您是否在字段 y1 中有分数?
  • 我想通过传递 y1、y2 和 y3 来预测具有最小值的类。
  • 如果你有 y1, y2, y3 你不需要预测任何东西。你只需做 min(y1, y2, y3)。尝试重新表述您的问题并定义您想要预测的内容

标签: r xgboost boosting


【解决方案1】:

在这种情况下,不确定它是解决这个问题的最佳方法,但它会解决它。

构建 3 个模型。每个模型将根据x1, x2, x3 预测类Yi。 (这意味着您将复制数据 3 次,对于每个副本,您将预测共同响应的 Yi

所以model1会预测class1的等级,class2的model2等等。

然后,对模型的结果运行一个最小问题。最低的就是赢家。

为每个模型使用常规的“linear:reg”目标函数。

通过简单的准确性测试来评估您的程序

【讨论】:

  • 认为这也是正确的解决方案(如果必须使用xgboost)。
  • 是的,这是一种方法。但是问题在于我们丢失了关于 Y 之间相关性的信息。是的,xgboost 是强制性的
  • 我们不会丢失 Y 之间的相关性,因为正如您所说,我们不会在未知数据中包含它们中的任何一个。但是,如果您可能拥有它们,只需将它们添加为 Xs(例如,如果尝试预测 y3,则添加 x4=y1, x5=y2
  • 我说的是模型训练过程。
猜你喜欢
  • 2018-12-31
  • 2020-01-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-28
  • 2021-10-27
相关资源
最近更新 更多