Sfoglia il codice sorgente

fix: apptype=0 对照组从 89 迁至 01(20260508 起),新增 t_ctrl_bucket 解耦 diff 基准

- t_experiment_map:补 20260508 起的实验注册(ab/5d/34/2c/89/01 多桶切换)
- 新增 t_ctrl_bucket CTE:按 (apptype, 时间窗) 显式硬编码对照桶,与实验注册解耦
- t_ctrl 改 INNER JOIN t_ctrl_bucket,下游 *_diff 公式不变

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
yangxiaohui 4 settimane fa
parent
commit
b3efcbddf3
1 ha cambiato i file con 55 aggiunte e 33 eliminazioni
  1. 55 33
      tasks/00_尾号实验/base_all_new_v3_分层.sql

+ 55 - 33
tasks/00_尾号实验/base_all_new_v3_分层.sql

@@ -44,21 +44,24 @@ WITH t_suffix_group AS
 (
     -- ── apptype = 4 ──────────────────────────────────────────────────
     SELECT "4" AS apptype, "ab" AS suffix_group, "实验组:变更str*ros建模目标实验 有问题" AS abcode, "20260413" AS start_dt, "20260415" AS end_dt
-    UNION ALL SELECT "4", "ab", "实验组:变更str*ros建模目标实验", "20260416", "29991231"
+    UNION ALL SELECT "4", "ab", "实验组:变更str*ros建模目标实验", "20260416", "20260507"
+    UNION ALL SELECT "4", "ab", "实验组:排序对高质召回提权实验", "20260508", "29991231"
     UNION ALL SELECT "4", "01", "实验组:变更str*ros建模目标实验", "20260320", "20260410"
     UNION ALL SELECT "4", "01", "实验组:变更str*ros建模目标实验 有问题", "20260411", "20260415"
     UNION ALL SELECT "4", "01", "实验组:变更str*ros建模目标实验", "20260416", "29991231"
     UNION ALL SELECT "4", "67", "实验组:变更str*ros建模目标实验", "20260330", "20260410"
     UNION ALL SELECT "4", "67", "实验组:变更str*ros建模目标实验 有问题", "20260411", "20260415"
     UNION ALL SELECT "4", "67", "实验组:变更str*ros建模目标实验", "20260416", "29991231"
+    UNION ALL SELECT "4", "5d", "实验组:解构特征排序str模型",     "20260314", "20260406"
     UNION ALL SELECT "4", "5d", "实验组:变更str*ros建模目标实验", "20260407", "20260410"
     UNION ALL SELECT "4", "5d", "实验组:变更str*ros建模目标实验 有问题", "20260411", "20260415"
-    UNION ALL SELECT "4", "5d", "实验组:变更str*ros建模目标实验", "20260416", "29991231"
+    UNION ALL SELECT "4", "5d", "实验组:变更str*ros建模目标实验", "20260416", "20260507"
+    UNION ALL SELECT "4", "5d", "实验组:DNN模型-调参",     "20260508", "29991231"
     UNION ALL SELECT "4", "34", "实验组:变更str*ros建模目标实验", "20260407", "20260410"
     UNION ALL SELECT "4", "34", "实验组:变更str*ros建模目标实验 有问题", "20260411", "20260415"
-    UNION ALL SELECT "4", "34", "实验组:变更str*ros建模目标实验", "20260416", "29991231"
+    UNION ALL SELECT "4", "34", "实验组:变更str*ros建模目标实验", "20260416", "20260507"
+    UNION ALL SELECT "4", "34", "实验组:召回剔除低质召回实验", "20260508", "29991231"
     UNION ALL SELECT "4", "67", "实验组:bn_ros新损失函数",        "20260311", "20260319"
-    UNION ALL SELECT "4", "5d", "实验组:解构特征排序str模型",     "20260314", "20260406"
     UNION ALL SELECT "4", "ef", "实验组:解构特征排序str模型&召回", "20260314", "20260320"
     UNION ALL SELECT "4", "ef", "实验组:DNN模型",                 "20260407", "29991231"
     UNION ALL SELECT "4", "2c", "实验组:DNN模型-调参",            "20260413", "29991231"
@@ -72,7 +75,8 @@ WITH t_suffix_group AS
     UNION ALL SELECT "0", "ab", "实验组:DNN模型-调参", "20260430", "29991231"
     UNION ALL SELECT "0", "01", "实验组:变更str*ros建模目标实验", "20260320", "20260410"
     UNION ALL SELECT "0", "01", "实验组:变更str*ros建模目标实验 有问题", "20260411", "20260415"
-    UNION ALL SELECT "0", "01", "实验组:变更str*ros建模目标实验", "20260416", "29991231"
+    UNION ALL SELECT "0", "01", "实验组:变更str*ros建模目标实验", "20260416", "20260507"
+    UNION ALL SELECT "0", "01", "对照组", "20260508", "29991231"
     UNION ALL SELECT "0", "34", "实验组:变更str*ros建模目标实验", "20260330", "20260410"
     UNION ALL SELECT "0", "34", "实验组:变更str*ros建模目标实验 有问题", "20260411", "20260415"
     UNION ALL SELECT "0", "34", "实验组:DNN模型-调参", "20260416", "20260416"
@@ -90,8 +94,10 @@ WITH t_suffix_group AS
     UNION ALL SELECT "0", "5d", "实验组:变更str*ros建模目标实验", "20260417", "20260424"
     UNION ALL SELECT "0", "5d", "实验组:曝光建模v1+DNN模型", "20260425", "29991231"
     UNION ALL SELECT "0", "ef", "实验组:DNN模型-调参",            "20260410", "29991231"
-    UNION ALL SELECT "0", "2c", "实验组:DNN模型",                 "20260413", "29991231"
-    UNION ALL SELECT "0", "89", "对照组",                          "20260301", "29991231"
+    UNION ALL SELECT "0", "2c", "实验组:DNN模型",                 "20260413", "20260507"
+    UNION ALL SELECT "0", "2c", "实验组:DNN模型-调参",                 "20260508", "29991231"
+    UNION ALL SELECT "0", "89", "对照组",                          "20260301", "20260507"
+    UNION ALL SELECT "0", "89", "实验组:DNN模型-调参",                          "20260508", "29991231"
 )
 ,t_base AS
 (
@@ -639,34 +645,50 @@ WITH t_suffix_group AS
     AND     a.source_type = c.source_type
     AND     a.layer_type = c.layer_type
 )
--- 基线桶(89)每日指标,作为横向对比基准
+-- ┌─ 对照桶配置:每个 (apptype, 时间窗) 显式指定一个对照桶 ──────────────┐
+-- │  设计原则:硬编码、唯一、可读                                        │
+-- │  - 每行 (apptype, [start_dt,end_dt]) 必须不重叠,保证唯一命中        │
+-- │  - 切换对照桶时:闭旧行 end_dt + 加新行(SCD2 风格)                 │
+-- │  - 与 t_experiment_map 的"对照组"行**有意冗余**,作为 diff 基准的    │
+-- │    单一权威源,避免被实验注册改动间接影响                           │
+-- └──────────────────────────────────────────────────────────────────────┘
+,t_ctrl_bucket AS
+(
+    SELECT "4" AS apptype, "89" AS ctrl_suffix_group, "20260101" AS start_dt, "29991231" AS end_dt
+    UNION ALL SELECT "0", "89", "20260101", "20260507"
+    UNION ALL SELECT "0", "01", "20260508", "29991231"
+)
+-- 对照桶每日指标,作为横向对比基准(按 apptype × dt 动态选取)
 ,t_ctrl AS
 (
-    SELECT  dt
-            ,apptype
-            ,source_type
-            ,layer_type
-            ,dau_vs_5d  AS ctrl_dau_vs_5d
-            ,exp        AS ctrl_exp
-            ,exp_per_dau AS ctrl_exp_per_dau
-            ,str_one    AS ctrl_str_one
-            ,ros_one    AS ctrl_ros_one
-            ,str        AS ctrl_str
-            ,ros        AS ctrl_ros
-            ,vovh24     AS ctrl_vovh24
-            ,str_plus   AS ctrl_str_plus
-            ,ros_minus  AS ctrl_ros_minus
-            ,bn_rov     AS ctrl_bn_rov
-            ,c1_rov     AS ctrl_c1_rov
-            ,cn_rov     AS ctrl_cn_rov
-            ,d1_rov     AS ctrl_d1_rov
-            ,dn_rov     AS ctrl_dn_rov
-            ,total_rov  AS ctrl_total_rov
-            ,ecs        AS ctrl_ecs
-            ,ecs_ratio  AS ctrl_ecs_ratio
-            ,arp        AS ctrl_arp
-    FROM    t_combined
-    WHERE   suffix_group = '89'
+    SELECT  c.dt
+            ,c.apptype
+            ,c.source_type
+            ,c.layer_type
+            ,c.dau_vs_5d  AS ctrl_dau_vs_5d
+            ,c.exp        AS ctrl_exp
+            ,c.exp_per_dau AS ctrl_exp_per_dau
+            ,c.str_one    AS ctrl_str_one
+            ,c.ros_one    AS ctrl_ros_one
+            ,c.str        AS ctrl_str
+            ,c.ros        AS ctrl_ros
+            ,c.vovh24     AS ctrl_vovh24
+            ,c.str_plus   AS ctrl_str_plus
+            ,c.ros_minus  AS ctrl_ros_minus
+            ,c.bn_rov     AS ctrl_bn_rov
+            ,c.c1_rov     AS ctrl_c1_rov
+            ,c.cn_rov     AS ctrl_cn_rov
+            ,c.d1_rov     AS ctrl_d1_rov
+            ,c.dn_rov     AS ctrl_dn_rov
+            ,c.total_rov  AS ctrl_total_rov
+            ,c.ecs        AS ctrl_ecs
+            ,c.ecs_ratio  AS ctrl_ecs_ratio
+            ,c.arp        AS ctrl_arp
+    FROM    t_combined c
+    INNER JOIN t_ctrl_bucket cb
+    ON      c.apptype = cb.apptype
+    AND     c.suffix_group = cb.ctrl_suffix_group
+    AND     c.dt BETWEEN cb.start_dt AND cb.end_dt
 )
 -- 最终输出:原始指标 + 基线对比差值(后缀 _diff = 当前值 / 基线桶值 - 1)
 SELECT  r.dt