使用多个数据源训练模型

数据挖掘 机器学习 分类 数据集 数据
2022-03-10 04:22:44

我必须训练一个分类模型来预测客户是否会购买产品。我有多个(例如 3 或 4 个)数据源。不同数据源之间的变量分布非常不同(例如,在第一个中,我有绝大多数年轻人,而在第二个中,有很多成年人)。当模型用于生产时,测试数据集将由仅来自一个数据源的记录组成(我事先不知道是哪一个)。

我的问题是:结合这些不同来源的最佳方式是什么?数据不多,所以我无法为每个数据源训练一个独立的模型。我可以只连接数据框还是必须执行其他类型的步骤?

谢谢!

4个回答

将所有数据加在一起,并确保您拥有代表所有可能见解的特征。在您的情况下,具有年龄/成熟度的一项功能(年轻,成人......)。假设您适合决策树(或随机森林,梯度提升......),如果模型包含有意义的信息,模型将决定是否对该特征进行拆分。

如果你结合起来,你应该能够拥有更多的数据,并且模型会更好地工作。

如果 data1 中的列与 data2 中的列不同,请考虑将它们保留为 NaN,然后​​正确处理它们。

我可以想到这些可能的解决方案:

  1. 最基本的方法是整合整个数据并尝试不同的算法并评估结果。
  2. 如果不同样本(数据集)之间的年龄分布不成比例分布,即如果您的数据集与“成人”相比有大量“年轻”样本,反之亦然,那么我肯定会尝试调整我的模型而不考虑“年龄”作为一个特征。训练后的模型可能会偏向多数类,这就是放弃这些特征的原因。
  3. 也可以探索基于集成的方法。分别为“年轻”和“成人”组训练模型。在测试过程中,我不会对 ensemble 中的每个模型给予相同的分数,而是根据年龄值来决定贡献因子。

在我看来,最好的方法是在所有数据上训练一个模型,并让它整理出将一个数据集与另一个数据集区分开来的特征。

如果您事先不知道从哪个集合中获取数据,您将无法知道选择哪个模型,因此拥有多个模型会限制您

希望此链接对您有所帮助。拥有更多数据总是更好,因此连接数据源至少会比以前稍微提高模型的性能。