我有一个分类任务来预测 {0,1} 标签,但在我的数据集中我只有 1 个标签的数据。类别表示买方已经购买了某些产品。
特征:用户ID、产品ID和购买时间。
用户 ID:从 0 到 20.000 的数字,
产品 ID:从 0 到 881 的数字
如何解决这类任务?我应该使用一些0数据生成,或者有一些方法可以在没有0数据的情况下正确预测?谢谢。
我有一个分类任务来预测 {0,1} 标签,但在我的数据集中我只有 1 个标签的数据。类别表示买方已经购买了某些产品。
特征:用户ID、产品ID和购买时间。
用户 ID:从 0 到 20.000 的数字,
产品 ID:从 0 到 881 的数字
如何解决这类任务?我应该使用一些0数据生成,或者有一些方法可以在没有0数据的情况下正确预测?谢谢。
该任务可以被视为一类分类问题,其中仅使用正实例训练二元分类器。该模型不是确定类之间的最佳限制,而是尝试确定正类的特征,将其他所有内容视为负类。
如果我理解正确你有这样的数据
| 用户身份 | 产品编号 | 时间戳 | 标签 |
|---|---|---|---|
| 一种 | 糖 | 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 |
然后你可以设置一个阈值来定义客户什么时候喜欢这个