预测客户意图

时间:2018-11-16 22:37:49

标签: python pandas numpy scikit-learn data-mining

我得到了这个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

我想建立一个模型,将潜在客户表中的每个潜在客户分配给客户。该模型将预测潜在客户是否要购买,并返回概率。 Sales表提供有关2015年销售额的信息。我的方法-“买入”列应为模型中的标签,因为1表示该潜在客户在2016年购买,0表示无销售。另一个有趣的栏目是在线活动,范围是5到685。在线活动越高,该产品的前景就越活跃。所以我正在尝试做随机森林模型,然后以某种方式将每个潜在客户的概率放在新的Intent列中。在这种情况下,Random Forest是一种有效的模型吗?也许我应该使用另一个模型。如何将模型结果应用于第一张表中每个潜在客户的新“意图”列。

1 个答案:

答案 0 :(得分:1)

首先,请参阅How to askOn-topic指南。这更多的是咨询,而不是实际或特定的问题。也许更合适的主题是机器学习。

TL; DR:随机森林虽然不错,但由于数据不平衡而似乎不合适。您应该阅读有关推荐系统的信息,以及诸如Wide and Deep

这样的更时尚的高性能模型。

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

建议:

通常来说,这是一种您通常处理非常不平衡的数据的业务-针对大量潜在客户的“ did_buy” = 1数量很少。

在数据科学方面,您应该定义成功的宝贵指标,并尽可能将其直接映射为金钱。在这里,似乎通过做广告或吸引更多可能的客户采取行动可以提高“ did_buy” /“ was_approached”的成功率。加班,如果你增加这个数字,你就会成功。

要考虑的另一件事是您的数据可能稀疏。我不知道您通常会获得多少购买,但可能是您在每个国家/地区等只有1个。这也应考虑在内,因为简单的随机森林可以轻松地针对大多数随机模型中的此列进行定位,过度拟合将成为一个大问题。 决策树遭受数据集不平衡的困扰。但是,通过采用叶子中每个标签的概率而不是做出决定,有时可能对简单的可解释模型有所帮助,并且可以反映出不平衡的数据。老实说,我并不真正相信这是正确的方法。

如果我在哪里:

我首先可以通过以下方式将“前景”列嵌入到向量中:

  • 将类别转换为随机向量(针对每个类别)或一次性编码。
  • 将公司规模标准化或分类为适合预测模型的数字(下一个)
  • 关于日期的相同想法。在这里,也许一年可能有问题,但是几个月/几天应该有用。
  • 国家绝对是类别,也许添加另一个“未知”国家类别。

然后

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

最后,

  • 检查我的结果以及失败的原因。
  • 建议其他型号/功能
  • 重复。
  • 去吃饭吧。
  • 问一堆数据问题。
  • 尝试回答至少一些。
  • 在数据中发现新的有趣关系。
  • 建议一些有趣的事情。
  • 重复(明天)。

当然,除了上述内容之外,还有很多其他功能,但这是您可以发现自己的数据和业务的原因。

希望我能帮上忙!祝你好运。