预测客户在广告与否的条件下的购买行为

数据挖掘 Python 随机森林
2022-03-05 15:05:47

我正在尝试预测客户对营销活动的反应。到目前为止,我有来自一个营销活动的数据和我客户的 RFM 数据。

部分客户说 60% 收到了广告。大约 10% 的人回复了

根据响应数据,即是否购买,在这个营销活动中,我使用 scikit-learn 构建了一个随机森林。

该模型在保持集上的表现非常好。但最有影响力的变量是布尔值:CustomerHasBeenAdvertised

我想使用这个模型,为未来的营销活动选择客户。为了获得类似广告条件下客户的“购买概率”,我将变量 CustomerHasBeenAdvertised 设置为 1。

但是,在具有这种附带条件的数据集上,所有预测均高于 0.5。

由于可变重要性,这是额外的普通高价值吗?还是有其他解释?

将变量 CustomerHasBeenAdvertised 设置为 1 是错误的方法吗?

如果是这样,如何处理这种情况:客户在没有广告的情况下购买了?

是否应该简单地忽略广告是否发生的信息?

提前致谢

2个回答

这取决于你想做什么。如果您想要一个模型来预测营销活动的目标/非目标,那么您希望仅使用营销对象来训练模型,这定义了您的两个类别“响应者”和“非响应者”。给定一个看不见的客户,然后您的分类器将确定如果您向他们发送定向营销广告,他们是否可能会做出回应。看看提升营销

如果 CustomerHasBeenAdvertised 变量对应于客户是否从您的活动中收到广告,那么我认为最好的方法是从您的训练集中排除所有没有将 CustomerHasBeenAdvertised 设置为 1 的记录,然后将该变量作为预测变量消除。这仍然可能导致大多数预测值高于 0.5,但这不一定是坏事。

处理不平衡的阶级问题(例如:很少有人响应广告或很少有人因贷款而破产)的一种常见方法是将您的预测分成十分位,然后只对最感兴趣的几个十分位采取行动(在您的案例客户最有可能进行购买)。这意味着预测的相对/排序值比预测的标称值更重要。通常这已经足够了,因为您可能不想向所有客户做广告,因为那样成本太高。