Python 预测客户意图

Python 预测客户意图,python,pandas,numpy,scikit-learn,data-mining,Python,Pandas,Numpy,Scikit Learn,Data Mining,我得到了这个数据集: 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 lin

我得到了这个数据集:

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
销售数据集:

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

我想建立一个模型,为Prospects表中的每个prospect分配成为客户的概率。该模型将预测潜在客户是否会购买,并返回概率。销售表提供了2015年的销售信息。我的方法“确实购买”列应该是模型中的一个标签,因为1代表2016年购买的潜在客户,0表示不出售。另一个有趣的专栏是在线活动,范围从5到685。价格越高,潜在客户对产品的兴趣就越活跃。所以我试着做一个随机森林模型,然后把每个潜在客户的概率放到新的意向栏中。在这种情况下,随机森林是一个有效的模型吗?或者我应该使用另一个模型。如何将模型结果应用到第一个表中每个潜在客户的新“意向”列中。

首先,请参阅和指南。这更像是一个咨询,而不是一个实际或具体的问题。也许更合适的话题是机器学习

TL;DR:随机森林很好,但由于数据不平衡,似乎不合适。你应该阅读推荐系统,以及更时尚、性能更好的模型,如

答案取决于:你有多少数据?在推理过程中,你有哪些可用数据?在客户购买之前,您是否可以查看潜在销售的当前“在线活动”属性?许多问题可能会改变适合您任务的整个方法

建议:

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

在数据科学方面,您应该为成功定义有价值的指标,这些指标可以尽可能直接映射到金钱。在这里,似乎通过广告或接近更可能的客户采取行动可以提高“是否购买”/“是否接近”是衡量成功的一个重要指标。加班,如果你提高这个数字,你就会成功

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

如果我希望你:

我首先通过以下方式将Prospects列嵌入到向量:

  • 将类别转换为随机向量(针对每个类别)或一个热编码
  • 将公司规模标准化或bucketizing为符合预测模型的数字(下一步)
  • 关于日期也有同样的想法。在这里,一年可能会有问题,但月/日应该是有用的
  • Country绝对是分类的,可能会添加另一个“未知”的Country类
那么

  • 我会使用一个可以根据不同成本进行实际优化的模型。逻辑回归是一个广泛的选择,深层神经网络是另一个选择,或者看看谷歌的组合
  • 将成本设置为我的黄金数字(标签中的货币度量),或尽可能接近的值
  • 运行实验
最后,

  • 检查我的结果以及失败的原因
  • 建议其他型号/功能
  • 重复一遍
  • 去吃吧
  • 问一些数据问题
  • 试着回答至少一些问题
  • 发现数据中新的有趣关系
  • 提出一些有趣的建议
  • 重复(明天)
当然,这方面的内容远不止上述内容,但这需要您从数据和业务中发现


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

欢迎来到StackOverflow。请按照您创建此帐户时的建议,阅读并遵循帮助文档中的发布指南,在这里申请。StackOverflow不是设计、编码、研究或教程资源。然而,如果你遵循你在网上找到的任何资源,进行诚实的编码尝试,并遇到问题,你会有一个很好的例子发布。请检查。那么你的问题是什么?在这种情况下,如果随机林是一个有效的模型,或者我应该使用另一个模型。如何将模型结果应用到第一个表中每个潜在客户的新“意向”列中。