python - 预测客户意图
问题描述
我得到了这个前景数据集:
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。它越高 - 潜在客户对产品的活跃度越高。所以我正在尝试做随机森林模型,然后以某种方式将每个潜在客户的概率放在新的意图列中。在这种情况下,随机森林是一个有效的模型,或者我应该使用另一个模型。如何将模型结果应用到第一个表中每个潜在客户的新“意图”列中。
解决方案
首先,请参阅如何提问和主题指南。这更像是一个咨询,而不是一个实际或具体的问题。也许更合适的主题是机器学习。
TL;DR:随机森林很好,但由于数据不平衡,似乎不合适。你应该阅读推荐系统,以及更流行的性能良好的模型,如Wide 和 Deep
答案取决于:你有多少数据?在推理过程中你有哪些可用数据?在客户购买之前,您能看到潜在销售的当前“online_activity”属性吗?许多问题可能会改变适合您任务的整个方法。
建议:
一般来说,这是一种您通常会处理非常不平衡的数据的业务——“did_buy”=1 的数量很少,而潜在客户数量巨大。
在数据科学方面,您应该定义可以直接映射到金钱的有价值的成功指标。在这里,通过广告或接近更有可能的客户采取行动似乎可以提高“did_buy”/“was_approached”是衡量成功的重要指标。加班,如果你增加这个数字,你就成功了。
要考虑的另一件事是您的数据可能很稀疏。我不知道您通常会得到多少购买,但可能每个国家/地区只有 1 个等。这也应该考虑在内,因为简单的随机森林可以很容易地在其大多数随机模型中定位该列,并且过度拟合将成为一个大问题。决策树受到不平衡数据集的影响。然而,通过获取叶子中每个标签的概率,而不是决策,有时对简单的可解释模型很有帮助,它反映了不平衡的数据。老实说,我并不真正相信这是正确的方法。
如果我在你那里:
我会首先通过以下方式将 Prospects 列嵌入到向量中:
- 将类别转换为随机向量(针对每个类别)或 one-hot 编码。
- 将公司规模标准化或分桶化为适合预测模型的数字(下一个)
- 关于日期的相同想法。在这里,也许年份可能有问题,但几个月/几天应该是有用的。
- 国家绝对是分类的,也许添加另一个“未知”国家类。
然后,
- 我会使用一个可以根据不同成本实际优化的模型。逻辑回归是宽泛的一种,深度神经网络是另一种选择,或者看谷歌的Wide 和 deep的组合。
- 将成本设置为我的黄金数字(标签方面的货币指标),或尽可能接近的值。
- 运行实验
最后,
- 检查我的结果以及失败的原因。
- 建议其他型号/功能
- 重复。
- 去吃发射。
- 问一堆数据问题。
- 尝试至少回答一些问题。
- 在数据中发现新的有趣关系。
- 推荐一些有趣的东西。
- 重复(明天)。
当然,除了上述内容之外,还有很多其他内容,但这是供您在数据和业务中发现的。
希望我有所帮助!祝你好运。
推荐阅读
- javascript - firebase 数据未添加到数组 ionic 3
- twilio - Twilio JS 在 VoIP 呼叫中发送数字
- mongodb - 一次删除不同文档中多次出现的嵌入数组元素
- postgresql - postgres启动后如何防止docker退出
- c# - 在前端保存一个从 api 检索为字节数组的 excel 文件
- windows - 捕获 Dos 窗口进度
- c# - 在 .NET 中使用 SHA 256 的 PBKDF2
- c# - 在运行时修改导致 InvalidProgramException 的 IL 代码
- swift - 如何在新故事板中将数据传递给 ViewController
- angularjs - 我正在使用 d3.v3.min.js 来显示诸如思维导图结构之类的数据。我有大量数据,因此显示数据非常不方便