数据预处理:缺少标签

数据挖掘 数据集 数据 预处理
2022-03-02 01:48:03

我有一个分类任务来预测 {0,1} 标签,但在我的数据集中我只有 1 个标签的数据。类别表示买方已经购买了某些产品。

特征:用户ID、产品ID和购买时间。

用户 ID:从 0 到 20.000 的数字,

产品 ID:从 0 到 881 的数字

如何解决这类任务?我应该使用一些0数据生成,或者有一些方法可以在没有0数据的情况下正确预测?谢谢。

2个回答

该任务可以被视为一类分类问题,其中仅使用正实例训练二元分类器。该模型不是确定类之间的最佳限制,而是尝试确定正类的特征,将其他所有内容视为负类。

如果我理解正确你有这样的数据

用户身份 产品编号 时间戳 标签
一种 21-08-03 1
萝卜 21-08-02 1
一种 萝卜 21-08-02 1
C 菠萝 21-08-01 1
一种 21-08-01 1

所以实际上你实际上有很多 0 个标签,超过 1 个标签,这些都是客户没有购买的产品

如果您想预测客户将购买的下一个产品,您可以为每个用户制作一个时间序列,其中产品是标签您可以输出一个 881 维的二进制向量。

每个维度对应一个产品id,如果用户当天购买了该产品则为1,否则为0

然后经过训练的模型会尝试预测客户每天会购买哪些产品

如果任务是为客户推荐产品, 一种方法是制作矩阵分解模型

您需要一个用户 x 产品分数,一种方法是获取用户购买产品的购买比例

您可以使用它来构建矩阵 Num_Users x Num_Products

用户\产品 萝卜 菠萝
一种 0.6 0.3
1
C 1

该算法将填补空白并为每个用户预测每个产品的“分数”

用户\产品 萝卜 菠萝
一种 0.6 0.3 0.01
0.2 1 0.1
C 0 0.1 1

然后你可以设置一个阈值来定义客户什么时候喜欢这个