我正在尝试建立一个电子商务模型,该模型可以预测通过在线营销渠道(例如Google购物)带来的单次点击收入。点击是针对产品详细信息页面的,因此我的培训数据包括产品详细信息,例如:价格,交货时间,类别,制造商。每次历史点击也都为其带来了收入。问题在于,对于超过95%的点击,收入等于零。

历史数据如下所示:

click_id | manufacturer | category | delivery_time | price | revenue
1 |man1 | cat1 | 24 | 100 | 0
2 |man1 | cat1 | 24 | 100 | 0
3 |man1 | cat1 | 24 | 100 | 0
4 |man1 | cat1 | 24 | 100 | 120
5 |man2 | cat2 | 48 | 200 | 0

如您所见,两个数据点可能具有(完全相同)特征,并且目标变量(收入)的值相差很大。例如,前4个数据点具有相同的功能,只有第4个数据点具有收入。理想情况下,我的模型将在具有相同功能的测试示例上预测这4次点击(即30次)的平均收入。

我的问题是在尝试应用模型之前,有关数据表示的问题。我相信我有两个选择:


直接将回归应用于点击数据(如上述情况),并希望回归将做对事情。在这种情况下,回归误差最终会很大,因此很难说出模型的实际效果。
尝试将多个数据点(点击)分组为一个点,以避免出现零-将所有具有相同特征的数据点分组,并计算目标(收入)变量为SUM(收入)/ COUNT(点击)。使用这种方法,我仍然有很多零收入(产品只有很少的点击),有时会有数千次点击只给您一个数据点-这似乎是不对的。


任何有关如何解决此问题的建议都非常欢迎。

最佳答案

由于您95%的数据的收入为零,因此您可能需要对记录做一些事情,例如抽样。按照目前的构造,您的模型可以100%地预测“否”,但仍具有95%的准确度。您需要对模型中想要的错误类型做出设计选择。您是否希望它“尽可能准确”,因为它错过了尽可能少的记录,错过了尽可能少的收入记录,或者避免了将记录实际上不正确地归类为收入(更多内容请参见类型1&2错误(如果您好奇)

您可以选择几个高级选项:

1)您可能会过度采样数据。如果您有很多记录,并且想确定自己捕获了创收功能,则可以复制这些记录,也可以做一些记录工程以创建与产生收入的记录非常相似的“伪造”记录。这将增加您的模型追赶正在推动收入的可能性的可能性,并且在将其应用于实际数据时会过分重视这些功能

2)您可以使用模型预测概率,然后缩放概率。例如,您可能会看模型,并说任何有超过25%可能性产生收入的事情实际上都是“积极”情况

3)如上所述,您可以首先尝试对数据进行聚类,然后尝试对“求和”值而不是单个记录运行分类算法。

4)是否有某些细分命中率> 5%?也许在那些子集上建立模型。

这些都是模型设计的选择,没有正确/错误的答案-这仅取决于您要实现的目标。

根据您的回复进行编辑
回归值可能会受到异常值的显着影响,因此,仅尝试使用回归值来预测美元金额时,我会有些谨慎。您的大多数变量很可能具有较小的系数,并且截距将反映平均支出。您应该记住的另一件事是交互条件。例如,如果您是男性,则更有可能购买,如果年龄在25-30岁之间,则更有可能购买,但是男性和25-30岁的男性都有很大的影响。

我提出分类的原因是您可以尝试进行分类以查看谁有可能购买,然后再应用美元金额。这种方法将防止您为每笔交易都支付相同的非常小的金额。

关于machine-learning - 点击收入预测模型,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37120693/

10-12 23:09