跳到主要内容 跳到补充内容

应用结构化框架:客户流失示例

本示例将逐步引导您完成定义机器学习问题的过程。您将学习如何将业务知识与事件触发器、目标、预测点和特征的框架相结合,以构建一个定义良好的问题。

出发点是商业案例“客户会流失吗?”。通过使用结构化框架,我们将把这归结为可以通过机器学习算法预测的更具体的内容。

事件触发器

事件触发器是触发创建新预测的动作或事件。我们将事件触发器标识为“客户已注册订阅”。这在数据中表示为创建了新客户。我们希望在客户层面预测他们是否会流失,所以每一行都需要代表一个客户。

利用我们的业务知识并通过检查数据进行确认,我们知道新客户的流失率最高。因此,我们决定特别关注新客户。事件触发器是一个新客户注册,我们可以将每个客户视为从他们订阅的那天起有一个单独的时间线。

事件触发器是当新客户订阅时。水平线表示订阅后的天数。

新客户的时间表。

目标

目标是我们试图预测的结果。目标是我们试图预测的结果。我们希望预测客户流失,所以我们知道我们的总体目标是“客户会流失吗?”。但我们需要更具体地创建一个高质量的机器学习模型。首先,我们认为“流失”意味着客户致电我们取消其订阅。

目标结果是客户致电取消其订阅。

具有目标的客户时间表。

接下来,我们决定取消呼叫的时间范围(地平线)。当我们查看多个取消的客户时,我们发现时间线不一致。一些客户在 45 天后取消,而另一些客户在 110 天后才取消。

从订阅到客户打电话取消订阅的天数。每一行代表不同的客户。

显示客户取消前天数的时间线。

我们有一个 90 天的免费试用计划,我们知道很多客户都从试用中流失。基于这种业务环境,我们最初的想法是使用 90 天的期限。通过预测谁将取消预订,我们计划提前联系这些客户,并提供奖励(如折扣或其他订阅功能),鼓励他们留下来。

客户取消注册后多少天的直方图证实了我们的商业直觉。在图中,我们可以看到过去三年中所有客户的数据。

订阅后的天数内取消呼叫的分布。大多数取消都发生在客户订阅后 90 天左右。

显示客户取消前天数的直方图。

选择 90 天的地平线似乎是一个很好的开始。然而,当我们在直方图上画出地平线时,我们意识到有很多客户在 90 天的试用期后的几天内继续流失。原因可能是他们看到自己的信用卡被收取费用,或者几天后收到付款方式被拒绝的通知,然后才打电话取消订阅。

订阅后 90 天的地平线

标有 90 天地平线的直方图。

因为我们希望在我们的模型中包含这些“流失”的客户,所以我们决定将 110 天作为我们的目标期限更有意义。通过使用 110 天,我们捕获了大多数客户,他们的流失可能与免费试用计划有关。

订阅后 110 天的地平线

标有 110 天地平线的直方图。

既然我们已经定义了目标,我们就可以确定数据存储在何处,以及需要如何清理数据以在数据集中构建目标列。在此示例中,我们执行以下操作:

  1. 从 Salesforce 中获取客户状态。

  2. 提取状态、客户创建日期和客户取消日期:

    带有样本数据的表格。

  3. 清理提取的数据并将其转换为目标列:

    带有样本数据的表格。

我们现在已经定义了事件触发器(新客户注册)和目标(客户在注册后 110 天内致电取消其订阅)。它们在图中的时间线上显示。.

事件触发器是当新客户注册时 (1),目标结果是当客户呼叫取消时 (2),目标期限是订阅后 110 天 (3)。

显示事件触发器、目标和目标范围的时间线。

预测点

预测点是停止收集特征数据并预测每行目标的指定时间。预测点可以落在事件触发(订阅注册日)和目标范围(注册后的第 110 天)之间的任何位置。为了选择一个起点,我们可以考虑我们想要采取的行动。

在我们的示例中,如果预测客户会流失,客户支持团队可能会要求 30 天时间向客户提供保留服务。这意味着,最晚我们要预测目标地平线前 30 天,即第 80 天。

预测点 (2) 设置在事件触发 (1) 和目标地平线 (3) 之间的第 80 天。

显示预测点的时间线。

选择第 80天 作为我们的预测点将给我们 80 天的时间来收集新客户的数据。事件触发和预测点之间的这个时间帧被称为数据累积窗口。在数据累积窗口期间收集的数据用于生成特征。

数据累积窗口是事件触发和预测点之间的时间。

显示事件触发器和预测点之间的数据模拟窗口的时间线。

使用第 80 天作为预测点留下 30 天的行动窗口,这是预测点和目标地平线之间的时间。这是客户支持团队要求联系客户的 30 天窗口。

操作窗口是预测点和目标地平线之间的时间。

显示预测点和地平线之间的数据模拟窗口的时间线。

除了考虑对预测采取行动所需的最小行动窗口外,我们还需要查看变动前的天数直方图。应用第 80 天的预测点,我们将得到以下结果:

取消调用与数据累积窗口和操作窗口的分布。

标记预测点和水平线的直方图。

查看此直方图,我们意识到使用 80 天预测点无法最大化业务价值。尽管 80 天的数据有助于提高模型的准确性,但其可操作性成本很高:

  • 首先,许多客户在第 80 天就已经开始大量生产了,因此在我们做出任何预测之前,他们将在数据积累窗口期间开始大量生产。这也意味着我们不想将它们包括在我们的训练数据集中,因为我们在做出预测之前会知道结果。

  • 第二,许多客户在第 80 到 90 天左右流失,因此客户成功团队将没有整整 30 天的时间接触这些客户。

在预测点之前取消订阅的客户将不包括在训练数据中。

显示在预测点之前大量涌入的客户比例的直方图。

将预测点移动到第 60 天提供了准确性和可操作性之间的更好平衡。我们仍有 60 天的时间来收集数据,以用于我们模型中的功能,但我们现在已经提前预测,客户成功团队有 30 天的时间接触到我们预测将流失的大多数客户。通过减少数据累积窗口,我们可以预期模型精度会略有下降,但预测更具可操作性。

将预测点移动到第 60 天缩短了数据累积窗口,但为我们提供了更长的操作窗口。它将较少的客户排除在训练数据之外。

具有较早预测点和较长动作窗口的直方图。

特征

定义了事件触发器、目标和预测点后,我们就可以将最后一部分添加到数据集:特征。特征是训练数据集中每行数据的已知属性或观察值,机器学习算法从中学习一般模式。当应用数据集中出现一行新数据时,算法使用这些特征进行预测。

将特征视为基于对结果有影响的业务知识的假设。在我们的示例中,一些特征可能是客户位置、潜在客户来源、注册月份、登录次数或活动用户数。

有两类特征:

  • 固定特征是最直接的,因为它们不会随时间变化。在我们的示例中,客户位置(注册时)、潜在客户来源和注册月份都被认为是固定的特征。一旦客户注册(就在事件触发时),他们就被知道了,无论我们将预测点放在何处,他们都将是已知的和恒定的。

  • 依赖于窗口的功能稍微复杂一些。依赖于窗口的功能稍微复杂一些。重要的是要确保您只使用及时知道的数据,否则模型可能会发生数据泄漏。(有关更多信息,请参阅数据泄露。)

一个简单的模型可能只使用第 0 天已知的信息,也就是说,只使用固定的特性。这将给出第 0 天的预测点,如图所示。

如果预测点在第 0 天,我们有 0 天时间收集数据,我们只能使用第 0 天已知的固定特征。行动窗口是整个 110 天。

预测点位于第 0 天的直方图。

生成的数据集将如下所示:

仅具有固定特征的训练数据

带有样本数据的表格。

然而,我们可能还希望使用客户订阅后收集的数据,如我们的示例中预测点为第 60 天。

第 60 天的预测点给了我们 60 天收集数据和 50 天采取行动的时间。

预测点位于第 60 天的直方图。

现在,我们可以使用在客户注册后的前 60 天收集的信息,为我们的模型添加依赖于窗口的功能。这个模型的数据集现在看起来像下表,包括依赖于窗口的功能“前 60 天登录”和“60 天内的活跃用户”。

具有窗口相关特征的示例数据

带有样本数据的表格。

注意,在本示例中,特征反映了整个数据累积窗口。它们也可以更小。例如,我们可以测量前 10 天或第 30-60 天的登录,只要特征不包括超过预测点的任何信息。

依赖于窗口的特征收集起来可能更复杂,因为它们需要日期,并且需要额外的努力来确保它们在数据累积窗口内,以避免数据泄漏。但它们也可能是一些最强大的特征,因为它们可以反映更接近预测时间收集的信息。

由此产生的机器学习问题

我们从简单的用例“客户会流失吗?”开始。然后,我们将事件触发器定义为“新客户注册”,因为我们希望在单个客户级别进行预测。

我们用一个特定的结果定义了我们的目标-“客户来电取消其订阅(是或否)”-并将期限设置为 110 天,因为这是我们大多数试用客户取消订阅的时间。

通过查看过去三年中客户打电话取消注册后的天数直方图,我们确定了注册后 60 天的预测点。这将给我们 60 天的时间来收集信息(数据积累窗口),然后再进行预测,但仍会给客户支持团队时间对预测采取行动,以减少流失。

最后,我们收集了第 60 天之前可用的客户数据,以生成特征。

由此产生的机器学习问题是:“在前 60 天的活动结束后,客户会在第 110 天之前打电话取消吗?”

数据集现在已准备好用于自动机器学习,如下表所示。位置、潜在客户来源、加入月份和订阅金额是固定的特征,前 60 天登录和 60 天活跃用户是依赖于窗口的特征,目标列为“在 110 天之前删除”。

具有固定特征 (1)、窗口相关特征 (2) 和目标 (3) 的样本数据

带有样本数据的表格。

本页面有帮助吗?

如果您发现此页面或其内容有任何问题 – 打字错误、遗漏步骤或技术错误 – 请告诉我们如何改进!