我的情况相当复杂,所以我将给出一个来自更简单领域的类似示例。假设我们想尝试预测移动游戏用户何时会进行购买(如果给定销售)。几乎每个用户总是瞬间成为非购买者,因为每个人都在不断地不购买任何东西。有些人买东西是为了瞬间成为购买者,但又回到了不购买的标准状态。我们有该购买的时间戳。如果我们能够充分了解用户行为,我们就可以在用户购买之前预测他们何时购买。如果是这种情况,那么行为和游戏状态与购买者非常相似但实际上并未购买的用户在进行销售时会这样做。所以问题是我们如何把它变成一个机器学习问题。我目前的计划是通过将 YES 案例标记为购买者来使用二进制分类,因为那些以正常价格购买的人会在出售时购买。我根据最近回顾窗口中的操作构建我的功能,例如在最后一天有多少类型的操作。对于从不购买的所有用户,我选择随机时间戳,构建我的功能并将它们用作 NO 案例。因为我可以选择任意数量的 NO 时间戳,所以我已经做了 100 次我的 YES 案例。然后我可以使用分类器,我喜欢树集成方法,但我认为分类器在这里并不重要。对于从不购买的所有用户,我选择随机时间戳,构建我的功能并将它们用作 NO 案例。因为我可以选择任意数量的 NO 时间戳,所以我已经做了 100 次我的 YES 案例。然后我可以使用分类器,我喜欢树集成方法,但我认为分类器在这里并不重要。对于从不购买的所有用户,我选择随机时间戳,构建我的功能并将它们用作 NO 案例。因为我可以选择任意数量的 NO 时间戳,所以我已经做了 100 次我的 YES 案例。然后我可以使用分类器,我喜欢树集成方法,但我认为分类器在这里并不重要。
问题是这不起作用。有两件事值得注意,我认为这是我遇到的问题的核心。首先,我们试图预测“何时”,而不仅仅是“谁”。经常玩或之前购买过的用户通常更有可能购买,因此很容易制作一个与时间无关的分类器并预测谁可能购买。这意味着对简单的时间无关问题有用的特征可能会“污染”特征集。我已经删除了其中的一些功能并看到了一些改进。第二个问题与标签有关。我们为购买者提供了许多“是”案例,但如何定义“否”案例。我在上面描述了我正在做的事情,但我不确定这是否真的是最好的方法。
另外,我应该指出两种情况,这不是。这不是一类二元分类,它通常在不平衡情况下使用大类,将问题减少到无监督异常/异常值检测。这也不是半监督的情况,我将两个类都标记为数据的子集。我确实只有一些肯定的案例,没有一个没有案例。欢迎任何想法。