预测客户意图

Predicting customers intent

我得到了这个 Prospects 数据集:

ID     Company_Sector         Company_size  DMU_Final  Joining_Date  Country
65656  Finance and Insurance       10        End User   2010-04-13   France
54535  Public Administration       1         End User   2004-09-22   France

和销售数据集:

ID    linkedin_shared_connections   online_activity  did_buy   Sale_Date
65656            11                        65           1      2016-05-23
54535            13                        100          1      2016-01-12

我想建立一个模型,为潜在客户 table 中的每个潜在客户分配成为客户的概率。该模型将预测潜在客户是否会购买,以及 return 的概率。 Sales table 提供有关 2015 年销售额的信息。我的方法 - 'did buy' 列应该是模型中的标签,因为 1 代表 2016 年购买的潜在客户,0 表示没有销售。另一个有趣的列是在线 activity,范围从 5 到 685。它越高 - 潜在客户对产品越活跃。所以我可能会尝试做随机森林模型,然后以某种方式将每个潜在客户的概率放入新的意图列中。在这种情况下,随机森林是一种有效的模型吗?或者我应该使用另一个模型。如何将模型结果应用到第一个 table.

中每个潜在客户的新 'intent' 列中

首先,请参阅 How to ask and the On-topic 指南。这与其说是一个实际的或具体的问题,不如说是一种咨询。也许更合适的主题是机器学习。

TL;DR:随机森林很好,但由于数据不平衡似乎不合适。您应该阅读推荐系统,以及更流行的性能良好的模型,例如 Wide and Deep

答案取决于:你有多少数据?在推理过程中您的可用数据是什么?您能否在客户购买之前看到潜在销售的当前 "online_activity" 属性?许多问题可能会改变适合您任务的整个方法。

建议:

一般来说,在这些业务中,您通常会处理非常不平衡的数据 - "did_buy"=1 的数量很少,而潜在客户的数量却很大。

在数据科学方面,您应该定义有价值的成功指标,尽可能直接映射到金钱上。在这里,似乎通过广告或接触更多可能的客户来采取行动可以提高 "did_buy" / "was_approached" 是成功的重要指标。加班,你升到那个数就成功了。

另一件需要考虑的事情是,您的数据可能很稀疏。我不知道你通常有多少购买量,但可能是每个国家只有 1 个等。这也应该考虑在内,因为简单的随机森林可以很容易地在其大多数随机模型中瞄准这一列,并且过度拟合将成为一个大问题。 决策树受到不平衡数据集的影响。然而,通过获取叶子中每个标签的概率而不是决策,有时可以有助于简单的可解释模型并且它反映了不平衡的数据。老实说,我并不真正相信这是正确的做法。

如果我在你那里:

我首先将 Prospects 列嵌入到向量中:

  • 将类别转换为随机向量(针对每个类别)或单热编码。
  • 将公司规模标准化或分桶为适合预测模型的数字(下一步)
  • 关于日期的相同想法。在这里,也许年份可能有问题,但 months/days 应该有用。
  • 国家/地区绝对是绝对的,也许可以添加另一个 "unknown" 国家/地区 class。

然后,

  • 我会使用一个可以根据不同成本实际优化的模型。逻辑回归是一个广泛的,深度神经网络是另一种选择,或者参见 Google 的 Wide and deep 的组合。
  • 将成本设置为我的黄金数字(标签方面的金钱指标),或尽可能接近的值。
  • 运行 实验

最后,

  • 检查我的结果以及失败的原因。
  • 再推荐一个 model/feature
  • 重复。
  • 去吃发射。
  • 提出一堆数据问题。
  • 尝试至少回答一些。
  • 发现数据中有趣的新关系。
  • 推荐一些有趣的东西。
  • 重复(明天)。

当然,除上述内容外,还有很多其他内容,但这些内容供您根据自己的数据和业务进行发现。

希望我有所帮助!祝你好运。