Uplift模型系列一:评价指标

Uplift 模型的评价指标与传统的分类或回归模型的评价指标(如准确率、AUC、MSE 等)不同。这些指标旨在衡量 uplift 模型在识别"可说服者"(即对干预最敏感的个体)方面的能力。以下是常见的 uplift 模型评价指标及其详细说明:

一、Qini 曲线与 Qini 系数

1.1. Qini 曲线的定义

Qini 曲线是 uplift 模型评估中最重要的可视化工具之一,用于衡量模型在识别**"可说服者"(即对干预最敏感的个体)方面的能力**。它通过展示随着样本数量增加,模型预测的累积 uplift 效果来反映模型性能。

  • 横轴: 样本比例(从高到低按模型预测的 uplift 值排序后的累计样本比例)。
  • 纵轴: 累积 uplift 效果,表示干预组和对照组之间的净增量收益。

1.2. Qini 曲线的计算步骤

  1. 排序: 将数据按照模型预测的 uplift 值从高到低排序。
  2. 分组: 将数据分为若干个子群体(例如按百分比分组)。
  3. 计算 uplift : 对每个子群体,计算实际的 uplift 值:
    Uplift = P ( Response ∣ Treatment ) − P ( Response ∣ Control ) \text{Uplift} = P(\text{Response} | \text{Treatment}) - P(\text{Response} | \text{Control}) Uplift=P(Response∣Treatment)−P(Response∣Control)
    其中 P ( Response ∣ Treatment ) P(\text{Response} | \text{Treatment}) P(Response∣Treatment) 是干预组的响应率, P ( Response ∣ Control ) P(\text{Response} | \text{Control}) P(Response∣Control) 是对照组的响应率。
  4. 累积 uplift: 计算每个子群体的累积 uplift 效果,即将当前子群体及之前所有子群体的 uplift 值累加。
  5. 绘制曲线: 以样本比例为横轴,累积 uplift 效果为纵轴,绘制 Qini 曲线。

1.3. Qini 系数

Qini 系数是 Qini 曲线下面积(AUQC, Area Under the Qini Curve),用于量化 uplift 模型的整体性能。

  • 理想曲线: 如果模型能够完美区分"可说服者"和"不可说服者",则 Qini 曲线会接近理想曲线。
  • 随机曲线: 如果模型无法区分干预效果,则 Qini 曲线会接近随机曲线(即对角线)。
  • Qini 系数计算 :
    Qini Coefficient = Area under the Qini Curve Area under the Ideal Qini Curve \text{Qini Coefficient} = \frac{\text{Area under the Qini Curve}}{\text{Area under the Ideal Qini Curve}} Qini Coefficient=Area under the Ideal Qini CurveArea under the Qini Curve
    Qini 系数的取值范围通常在 [0, 1] 之间,值越大表示模型性能越好。

1.4. Qini 曲线的优点

  • 直观性: Qini 曲线能够直观地展示 uplift 模型的效果。
  • 综合评估: 它不仅考虑了 uplift 的大小,还考虑了模型对样本的排序能力。
  • 比较性: 可以通过比较不同模型的 Qini 曲线或 Qini 系数来选择最佳模型。

二、AUUC (Area Under the Uplift Curve)

2.1. AUUC 的定义

AUUC 是 uplift 曲线下面积,用于量化 uplift 模型的整体性能。Uplift 曲线类似于 Qini 曲线,但它更关注 uplift 效果的绝对值,而不是相对值。

  • 横轴: 样本比例(从高到低按模型预测的 uplift 值排序后的累计样本比例)。
  • 纵轴: 累积 uplift 效果。

2.2. AUUC 的计算步骤

  1. 排序: 将数据按照模型预测的 uplift 值从高到低排序。
  2. 分组: 将数据分为若干个子群体(例如按百分比分组)。
  3. 计算 uplift : 对每个子群体,计算实际的 uplift 值:
    Uplift = P ( Response ∣ Treatment ) − P ( Response ∣ Control ) \text{Uplift} = P(\text{Response} | \text{Treatment}) - P(\text{Response} | \text{Control}) Uplift=P(Response∣Treatment)−P(Response∣Control)
  4. 累积 uplift: 计算每个子群体的累积 uplift 效果。
  5. 绘制曲线: 以样本比例为横轴,累积 uplift 效果为纵轴,绘制 uplift 曲线。
  6. 计算面积: 计算 uplift 曲线下的面积,得到 AUUC。

2.3. AUUC 的优点

  • 简单直接: AUUC 直接反映了 uplift 模型在整个样本分布上的表现。
  • 易于比较: 可以通过比较不同模型的 AUUC 来选择最佳模型。
  • 适用广泛: AUUC 不依赖于特定的业务目标,适用于各种 uplift 模型评估场景。

2.4. AUUC 与 Qini 的区别

特性 Qini 曲线与 Qini 系数 AUUC
关注点 关注 uplift 的相对效果(相对于随机选择) 关注 uplift 的绝对效果
理想曲线 靠近理想曲线(完全区分可说服者和不可说服者) 面积最大化的曲线
应用场景 更适合需要对比多个模型的场景 更适合需要量化整体 uplift 效果的场景
计算复杂度 稍微复杂(需要考虑随机曲线和理想曲线) 较为简单(仅需计算曲线下面积)

三、总结

  • Qini 曲线与 Qini 系数:

    • 更注重 uplift 模型的相对性能,能够直观地展示模型对"可说服者"的识别能力。
    • 适用于需要对比多个 uplift 模型的场景。
  • AUUC:

    • 更注重 uplift 模型的绝对性能,能够量化 uplift 模型在整个样本分布上的表现。
    • 适用于需要评估 uplift 模型整体效果的场景。
相关推荐
jz_ddk1 小时前
[学习] C语言多维指针探讨(代码示例)
linux·c语言·开发语言·学习·算法
星夜9823 小时前
C++回顾 Day6
开发语言·数据结构·c++·算法
asom227 小时前
LeetCode Hot100(矩阵)
算法·leetcode·矩阵
蒟蒻小袁7 小时前
力扣面试150题--二叉树的右视图
算法·leetcode·面试
一块plus7 小时前
当 Bifrost 与 Hydration 携手:Gigadot 能为 Polkadot DeFi 带来哪些新可能?
算法·架构
进击的小白菜7 小时前
LeetCode 215:数组中的第K个最大元素 - 两种高效解法详解
java·算法·leetcode
写个博客9 小时前
代码随想录算法训练营第五十三天
算法
1白天的黑夜19 小时前
动态规划-152.乘积最大子数组-力扣(LeetCode)
c++·算法·leetcode·动态规划
apcipot_rain10 小时前
【应用密码学】实验七 Hash函数——SM3
算法·哈希算法
理论最高的吻11 小时前
1614. 括号的最大嵌套深度【 力扣(LeetCode) 】
c++·算法·leetcode·职场和发展·字符串··字符匹配