风险容忍度和模型效果

在预测用户行为时,总是存在一定程度的不确定性,因此您需要权衡:是要在预测组中以较高的总体准确度纳入较少的用户,还是以较低的总体准确度纳入较多的用户。

风险容忍级别

Firebase 预测根据两个指标来定义风险容忍级别:

  • 预测的真正例率是指系统预测其会执行某项操作且随后确实执行了这项操作的用户所占的比例(例如,Firebase 曾预测其会进行购买且随后确实进行了购买的用户所占的比例)。
  • 预测的假正例率是指系统预测其会执行某项操作但随后并未执行这项操作的用户所占的比例(例如,Firebase 曾预测其会进行购买但随后并未进行购买的用户所占的比例)。

您可以为某项预测选择风险容忍级别,以便 Firebase 预测了解您在定位用户时愿意接受多大程度的不确定性。每个风险容忍级别均能保证假正例率不超过相应的最大阈值。预测会在不超过该假正例阈值的情况下,定位尽可能多的用户,以最大限度提高真正例率。如果可实现的最高真正例率达不到最小阈值,则系统会停用相应风险概况,并且不会使用该风险概况定位任何用户。因此,风险概况带来了这样一种机制:确保您应用的任何定位设置均对应某个确定性阈值,如果达不到该阈值,则系统会停用该定位设置。

根据预测模型定位用户时,您可以选择风险容忍级别。根据预测类型和可用 Analytics 事件的数量,以下风险容忍级别中可能会有一个或多个可用于该预测:

风险容忍级别
  • 定位的用户数最多,但要以牺牲预测准确性为代价
  • 保证假正例率不超过 20%
  • 真正例率低于 45% 时无效
  • 每 10 个正确定位的用户,最多对应 4.44 个 (10 × 20% ÷ 45%) 错误定位的用户*
  • 定位的用户数较少,准确性更高
  • 保证假正例率不超过 10%
  • 真正例率低于 35% 时无效
  • 每 10 个正确定位的用户,最多对应 2.86 个 (10 × 10% ÷ 35%) 错误定位的用户*
  • 定位的用户数最少,准确性最高
  • 保证假正例率不超过 5%
  • 真正例率低于 25% 时无效
  • 每 10 个正确定位的用户,最多对应 2 个 (10 × 5% ÷ 25%) 错误定位的用户*

*假设您的用户中的实际正例数和负例数一样多。如果负例数是正例数的 X 倍,则用 X 乘以假正例数量上限。

示例

假设您有一款拥有 3.5 万名用户的应用,您想要预测哪些用户会在未来几天内停止使用您的应用(即流失),以便采取措施来鼓励这部分用户继续使用您的应用。

在下图中,每张面孔代表您的 1000 名用户,其中满意、不会流失的群组显示为绿色;不满意、有可能流失的群组显示为红色。

高风险容忍度

如果选择了高风险容忍度,预测可能会创建一个如下图所示的群组,该群组涵盖了 1.3 万名不满意用户中的 1 万名。因此,该预测的真正例率约为 76.9%。在您选择了这种高风险容忍度的情况下,一旦此值降至 45% 以下,则系统将不再执行该预测,直到真正例率提高为止。

该群组还包含了 4000 名对您的应用感到满意的用户,而您可能并不希望针对这些用户实施再次吸引策略。由于您的 2.2 万名满意用户中有 4000 名被错误地预测为会流失,因此该预测的假正例率约为 18.18%,低于高风险容忍概况所保证的最大假正例率 (20%)。

sentiment_very_satisfied sentiment_very_satisfied sentiment_very_satisfied sentiment_very_satisfied sentiment_very_satisfied
sentiment_very_satisfied sentiment_very_satisfied sentiment_very_satisfied sentiment_very_satisfied sentiment_very_satisfied
sentiment_very_satisfied sentiment_very_satisfied sentiment_very_satisfied sentiment_very_satisfied sentiment_very_satisfied
sentiment_very_satisfied sentiment_very_satisfied sentiment_very_satisfied sentiment_very_satisfied sentiment_very_satisfied
sentiment_very_satisfied sentiment_very_satisfied sentiment_very_dissatisfied sentiment_very_dissatisfied sentiment_very_dissatisfied
sentiment_very_dissatisfied sentiment_very_dissatisfied sentiment_very_dissatisfied sentiment_very_dissatisfied sentiment_very_dissatisfied
sentiment_very_dissatisfied sentiment_very_dissatisfied sentiment_very_dissatisfied sentiment_very_dissatisfied sentiment_very_dissatisfied

低风险容忍度

另一方面,下图显示了使用低风险容忍度创建的群组是怎样的。该群组包含的假正例较少(只有 1000 名用户),但所包含的不满意用户的数量比高风险容忍群组少 4000 名。该预测的真正例率约为 46.15%,假正例率约为 4.55%。

sentiment_very_satisfied sentiment_very_satisfied sentiment_very_satisfied sentiment_very_satisfied sentiment_very_satisfied
sentiment_very_satisfied sentiment_very_satisfied sentiment_very_satisfied sentiment_very_satisfied sentiment_very_satisfied
sentiment_very_satisfied sentiment_very_satisfied sentiment_very_satisfied sentiment_very_satisfied sentiment_very_satisfied
sentiment_very_satisfied sentiment_very_satisfied sentiment_very_satisfied sentiment_very_satisfied sentiment_very_satisfied
sentiment_very_satisfied sentiment_very_satisfied sentiment_very_dissatisfied sentiment_very_dissatisfied sentiment_very_dissatisfied
sentiment_very_dissatisfied sentiment_very_dissatisfied sentiment_very_dissatisfied sentiment_very_dissatisfied sentiment_very_dissatisfied
sentiment_very_dissatisfied sentiment_very_dissatisfied sentiment_very_dissatisfied sentiment_very_dissatisfied sentiment_very_dissatisfied

了解风险容忍度对效果的影响

您可以使用 Firebase 控制台“预测”页面上的卡片来了解预测在不同风险容忍级别下的效果。

该图表显示了预测模型在过去两周内针对您的数据达成的真正例率。图表上的每个数据点都表示模型在这一天对维持数据集的预测效果(请参阅效果统计信息的计算方式)。真正例率低于规定阈值的每一天,图表都显示为红色。在这些日期,Firebase 不会根据该预测定位用户。

如果您发现模型在过去 14 天中有若干天处于无效状态,则您可能需要考虑提高风险容忍级别以定位更多用户和减少无效天数,但这可能会产生更多假正例。通过将风险容忍度滑块移到不同的位置,您可以查看不同的风险容忍级别对模型效果的影响:

当您执行此操作时,图表会显示在您选择的风险容忍级别下,每一天的模型效果。在上面的示例中,您可以看到将风险容忍级别从中提到高,会使模型在过去两周内的每一天,真正例率都保持在远高于 45% 阈值的水平(但对假正例的容忍度更高)。

当您发现某个风险容忍级别能够在您满意的用户覆盖率和准确度之间实现平衡时,请在使用远程配置、A/B 测试或通知撰写工具来定位用户时选择该风险容忍级别。

效果统计信息的计算方式

标签

和许多机器学习任务一样,训练预测模型也是一种“监管学习”任务。这意味着必须为用于训练模型的所有用户分配诸如“将流失”、“不会花钱”等标签。为了给用户添加标签,Firebase 预测会获取您的应用在 28 天内的活跃用户,并从其数据中提取最近 7 天的活动。这 7 天的时间称为“标签时段”。Firebase 预测会使用标签时段中的事件来为用户分配标签,然后使用这 7 天之前的用户事件(“训练时段”中的事件)来训练模型。

因此,从本质上讲,模型始终都是基于超过 7 天之前的数据进行训练的。

维持数据和训练数据

并非所有数据都会直接用于训练。与监管学习任务的典型情况一样,Firebase 预测会将 20% 的数据留作“维持数据”,并仅使用其余 80% 的数据来训练模型。然后,为了评估模型的效果,系统会基于训练时段的数据为维持集内的用户生成预测,并按照基于标签时段生成的标签,对比每个用户的预测结果和实际结果。

Firebase 控制台中显示的所有统计信息都是利用维持数据进行模型评估后得出的。

发送以下问题的反馈:

此网页
需要帮助?请访问我们的支持页面