使用 PyCaret 正确预测潜在客户得分
使用 PyCaret 正确预测潜在客户得分
一步一步指南,教你如何利用 PyCaret 构建潜在客户得分模型,并提高营销活动的投资回报率。
介绍
如今,潜在客户是许多企业的推动力。随着订阅制业务模式的发展,尤其是在初创企业领域,将潜在客户转化为付费客户对企业的生存至关重要。简单来说,“潜在客户”代表对购买你的产品/服务感兴趣的潜在客户。
通常,当你通过第三方服务获取潜在客户,或者通过自己运营营销活动获得潜在客户时,通常会包括以下信息:
- 潜在客户的姓名和联系方式
- 潜在客户属性(人口统计、社交、客户偏好)
- 来源(Facebook 广告、网站落地页、第三方等)
- 在网站上花费的时间、点击次数等
- 推荐详情等。
一览潜在客户管理流程
市场营销和销售部门在潜在客户管理上投入了大量时间、金钱和精力,这个概念包括潜在客户生成、资格认定和货币化三个关键阶段。
👉潜在客户生成
潜在客户生成是引导客户对你的业务产品或服务产生兴趣或询问的开始。潜在客户的创建是为了将这种兴趣或询问转化为销售。互联网上有无数第三方公司承诺生成最佳潜在客户。然而,你也可以通过自己运营营销活动来实现。生成潜在客户的方法通常属于广告范畴,但也可能包括非付费来源,如有机搜索引擎结果或现有客户的推荐。
👉 潜在客户资格认定
潜在客户资格认定是指确定哪些潜在客户最有可能进行实际购买的过程。这是销售漏斗的一个组成部分,通常吸引了许多潜在客户,但只转化了其中的一小部分。简单来说,潜在客户资格认定意味着评估和优先考虑潜在客户,以确定转化的可能性,这样你的市场营销和销售部门就可以追踪优先考虑的潜在客户,而不是所有可能有数千个的潜在客户。
👉潜在客户转化
潜在客户转化是最终将合格的潜在客户转化为付费客户的阶段。它涵盖了所有刺激购买产品或服务的营销实践,并推动潜在客户做出购买决定的过程。这是一个货币化或结束阶段,其结果通常定义了整个营销活动的成功。
👉 潜在客户得分真正意味着什么?
想象一下,你的团队有许多潜在客户(潜在客户),但没有足够的资源来追踪所有这些潜在客户。无论你是一个以产品为主导的企业,拥有大量免费用户,拥有众多潜在客户的出色入口漏斗,或者只是一个出色的门到门销售团队,最终,你需要优先考虑销售团队的时间,并为他们提供“最佳”潜在客户。
问题是,你如何做到这一点,以便最大化你的获胜率?
做到这一点的一种简单方法是分析历史数据,并查看导致潜在客户转化为销售的属性。例如,历史上可能有一个特定的国家、城市或邮政编码,在那里潜在客户转化为销售的概率达到90%。同样,你的数据也可以告诉你,在你的网站上花费了超过20分钟的客户大多数时间会转化为销售。使用这些业务规则,你可以创建一个潜在客户得分系统,根据这些业务规则为每个潜在客户附加分数(分数越高越好)。
这种方法的问题在于,你只能用业务规则覆盖到一定程度。随着业务的扩张,你可以收集的数据类型和种类将呈指数增长。在某个时候,手动基于规则的系统将不足以继续增加价值。
机器学习登场
你可以从机器学习的角度来处理潜在客户得分系统,在这里,你可以根据客户属性、潜在客户来源、推荐和其他可用细节训练机器学习模型,目标将是潜在客户转化(是或否)。
如何获得目标变量?嗯,大多数客户关系管理系统,如 Salesforce、Zoho 或 Microsoft Dynamics,都可以跟踪个体潜在客户及其状态。潜在客户的状态将帮助你创建目标变量。
一个需要注意的问题是,您必须确保在训练数据集中不泄露任何信息。例如,您的CRM系统可能存储有关转介费用的信息,想象一下如果您在训练数据中使用了这些信息,那么从技术上讲这是一种泄露,因为您只会在转化后支付转介费,而这是您事后才知道的。
让我们从实际示例开始 👇
什么是 PyCaret?
PyCaret 是一个开源的、低代码的 Python 机器学习库和端到端模型管理工具,用于自动化机器学习工作流程。使用 PyCaret,您可以高效地构建和部署端到端的机器学习流水线。要了解更多关于 PyCaret 的信息,请查看他们的 GitHub。
安装 PyCaret
# 安装 PyCaret
pip install pycaret
👉 数据集
在本教程中,我使用了来自 Kaggle 的一个 Lead Conversion 数据集。该数据集包含超过 9000 个潜在客户的特征,例如潜在客户来源、潜在客户的来源、在网站上花费的总时间、在网站上的总访问次数、人口统计信息以及目标列 Converted(表示转化为 1,未转化为 0)。
# 导入库
import pandas as pd
import numpy as np
# 读取 csv 数据
data = pd.read_csv('Leads.csv')
data.head()
👉 探索性数据分析
# 检查数据信息
data.info()
请注意,有几列存在许多缺失值。处理缺失值有几种方法。我将让 PyCaret 自动处理缺失值。如果您想了解有关在 PyCaret 中填充缺失值的不同方法的更多信息,请查看此 文档链接。
直观地说,在网站上花费的时间和活动得分以及潜在客户来源是关于潜在客户转化的非常重要的信息。让我们通过可视化来探索它们之间的关系:
请注意,来自“添加表单”的潜在客户很可能无论在网站上花费的时间还是得分如何都会转化为销售。通过 API 或网站的落地页产生的潜在客户则有不同的情况。得分较高且在网站上花费的时间较长的潜在客户更有可能转化为最终销售。
👉 数据准备
对于 PyCaret 中的所有模块,setup 是在 PyCaret 中执行任何机器学习实验的第一个且唯一必需的步骤。此函数负责在训练模 型之前进行所有必要的数据准备工作。除了执行一些基本的默认处理任务外,PyCaret 还提供了广泛的预处理功能。要了解 PyCaret 中所有预处理功能的更多信息,您可以查看此 链接。
# 初始化 setup
from pycaret.classification import *
s = setup(data, target='Converted', ignore_features=['Prospect ID', 'Lead Number'])
在 PyCaret 中初始化 setup 函数后,它会自动对数据集进行分析,并推断出所有输入变量的数据类型。如果一切都推断正确,您可以按 Enter 键继续。您还可以在 setup 中使用 numeric_features 和 categorical_features 参数来强制/覆盖数据类型。
还要注意,我在 setup 函数中传递了 ignore_features = ['Prospect ID', 'Lead Number'],以便在训练模型时不考虑它们。这样做的好处是 PyCaret 不会从数据集中删除该列,它只会在模型训练时在后台忽略它。因此,在生成最终预测时,您无需担心自己手动连接 ID。