如何构建多输出回归模型的目标变量?

问题描述 投票:0回答:1

我想使用 XGBoost 构建一个多输出模型,其中如果联系了客户,则输出是预测销售,例如:

  • output1 是联系后的预测销售额并且
  • output2 是在未联系的情况下预测的销售额。

我的数据如下所示:

地区 销售类别 在线客户 已联系 销售
3 1 1 1000
2 0 0 600
2 0 1 500

我打算将 Contacted 和 Sales 组合在一起,形成两个目标列,如下所示:

地区 销售类别 在线客户 联系_销售 非接触式_销售
3 1 1000 0
2 0 0 600
2 0 500 0

这是正确的做法吗?零会扰乱模型训练并降低模型的准确性吗?将模型与一个预测联系销售和一个预测非接触销售分开的更好方法是吗?

python machine-learning data-science xgboost
1个回答
0
投票

我不认为你的方法是正确的,因为你正在做的是用 0 填充目标变量中的缺失值,这是不建议的。

我认为第二种拥有两个独立模型的方法很好,但是只有当你有足够的数据时,并且你需要考虑管理两个模型的复杂性。

我的建议是使用以下方法训练一个模型:

  • Sale
    作为目标
  • X_variables
    Region
    SaleCategory
    OnlineCustomer
    )和
    Contacted
    作为输入

对于预测,如果您的数据如下所示:

X_变量 已联系
北、3、1 1
北, 2, 0 0
东, 2, 0 1

您可以复制每一行以在

Contacted
中包含 1 和 0:

X_变量 已联系
北、3、1 1
北、3、1 0
北, 2, 0 0
北, 2, 0 1
东, 2, 0 1
东, 2, 0 0

然后使用您的模型进行预测:

X_变量 已联系 销售
北、3、1 1 1000
北、3、1 0 500
北, 2, 0 0 800
北, 2, 0 1 1200
东, 2, 0 1 600
东, 2, 0 0 950

然后将其转换为所需的输出:

X_变量 联系_销售 非接触式_销售
北、3、1 1000 500
北, 2, 0 1200 800
东, 2, 0 600 950
© www.soinside.com 2019 - 2024. All rights reserved.