想象在我的火车数据中,我有 3 个目标变量 y1、y2 和 y3,它们都是二进制的。不过,我的主要目标是预测最终变量 Y = y1 * y2 * y3。
在处理这种目标变量时,模型应该采用什么方法,我可以分解成不同的变量?
我是否应该尝试预测 y1、y2、y3,然后计算 Y 并将其传递给损失函数
我是否应该尝试独立预测 Y 而忽略 y1、y2 和 y3?
我应该尝试预测其中的 4 个并在 Y != y1 * y2 * y3 时惩罚我的模型吗?
想象在我的火车数据中,我有 3 个目标变量 y1、y2 和 y3,它们都是二进制的。不过,我的主要目标是预测最终变量 Y = y1 * y2 * y3。
在处理这种目标变量时,模型应该采用什么方法,我可以分解成不同的变量?
我是否应该尝试预测 y1、y2、y3,然后计算 Y 并将其传递给损失函数
我是否应该尝试独立预测 Y 而忽略 y1、y2 和 y3?
我应该尝试预测其中的 4 个并在 Y != y1 * y2 * y3 时惩罚我的模型吗?
不可能肯定地预测这样的想法的结果。太多取决于您的问题和数据集的具体情况。你必须自己做实验。使用 TensorFlow 或 PyTorch 等体面的自动微分引擎,您可以非常快速地尝试所有不同的想法,只需进行一些变化。
以下是我认为根据直觉猜测会发生的事情:
我是否应该尝试预测 y1、y2、y3,然后计算 Y 并将其传递给损失函数
我认为这有可能成为最强大的模型,因为它将您对问题的了解融入到模型的结构中,而不是添加更多的超参数。这也可以让您使用更少的参数来达到相同的精度,并且可以作为正则化的一种形式。
我是否应该尝试独立预测 Y 而忽略 y1、y2 和 y3?
这应该被视为默认/基准模型,无论如何您都希望运行它。如果你只做一个模型,就做这个。
如果您进行比较,您将希望将此类型的最佳模型与其他类型的最佳模型进行比较。不要只是尝试使用改变了顶层的相同网络来改变预测机制——这不会很好地探索你的想法来给你答案。
我应该尝试预测其中的 4 个并在 Y != y1 * y2 * y3 时惩罚我的模型吗?
我预计这将是最难训练的。尽管它可能仍会增加一些正则化效果,但您的问题是,该类别中的“最佳”模型可能会评估一致性而不是准确性 - 您需要使用惩罚度量的不同权重来找到折衷损失函数。
请记住使用交叉验证和测试数据来搜索参数并在最后从每种方法中获得最佳模型的性能的公平无偏测量。