我有一个在线采购订单数据集,其中包含两种类型的客户:
- 拥有帐户的客户因此是具有唯一客户编号的已知客户。
- 没有账户并以客人身份进行购买的客户;因此,这些是未知客户并被赋予一个默认号码(在 50 个预定义号码的列表中)。这意味着它不是唯一的编号,此处区分交易的唯一方法是通过唯一的订单编号。
为了避免失真并确保我的训练/测试数据集在已知和未知客户方面具有相同的分布,我想选择一个训练/测试集,如下所示:
包含要拆分的已知客户的数据集部分 80/20。
包含未知客户的数据集部分将被拆分 80/20(此处子数据集的选择将取决于订单未链接到客户(= 链接到默认客户编号)的规则。
在 Scikit-learn 中,我需要设置 X(features) 和 Y(target) 才能进行 train_test_split。我的问题是将我的数据框拆分为:
- df1 包含所有已知客户。
- df2 包含所有未知客户。
然后为 df1 和 df2 分别设置 X、Y 和 x_train、x_test、y_train、y_test,然后将结果合并为一个并继续构建模型的其余部分?
这是一个好方法还是有其他解决方案?
