Kaynağa Gözat

update ad abtest threshold predict

liqian 2 yıl önce
ebeveyn
işleme
fdfd255f8a
2 değiştirilmiş dosya ile 260 ekleme ve 38 silme
  1. 19 17
      ad_user_video_predict.py
  2. 241 21
      config.py

+ 19 - 17
ad_user_video_predict.py

@@ -91,22 +91,22 @@ def predict_ad_group_video(dt, config_key, config_param):
         all_group_data.extend(predict_df[item['group']].tolist())
 
     # 计算对应的阈值
-    ad_threshold_mapping = config_param.get('threshold')
-    threshold_data = {}
-    for _, item in group_df.iterrows():
-        # 获取分组对应的均值作为阈值
-        threshold_data[item['group']] = predict_df[item['group']].mean() * ad_threshold_mapping['group']
-    threshold_data['mean_group'] = np.mean(all_group_data) * ad_threshold_mapping['mean_group']
-    log_.info(f"config_key = {config_key}, threshold_data = {threshold_data}")
-
-    # 将阈值写入redis
-    abtest_config_list = config_key.split('-')
-    abtest_id, abtest_config_tag = abtest_config_list[0], abtest_config_list[1]
-    for key, val in threshold_data.items():
-        key_name = f"{config_.KEY_NAME_PREFIX_AD_THRESHOLD}{abtest_id}:{abtest_config_tag}:{key}"
-        redis_helper.set_data_to_redis(key_name=key_name, value=val, expire_time=2 * 24 * 3600)
-
-    predict_df.to_csv(f'./data/ad_user_video_predict_{config_key}.csv')
+    ad_threshold_mappings = config_param.get('threshold')
+    for abtest_group, ad_threshold_mapping in ad_threshold_mappings.items():
+        threshold_data = {}
+        for _, item in group_df.iterrows():
+            # 获取分组对应的均值作为阈值
+            threshold_data[item['group']] = predict_df[item['group']].mean() * ad_threshold_mapping['group']
+        threshold_data['mean_group'] = np.mean(all_group_data) * ad_threshold_mapping['mean_group']
+        log_.info(f"config_key = {config_key}, abtest_group = {abtest_group}, threshold_data = {threshold_data}")
+
+        # 将阈值写入redis
+        abtest_config_list = config_key.split('-')
+        abtest_id, abtest_config_tag = abtest_config_list[0], abtest_config_list[1]
+        for key, val in threshold_data.items():
+            key_name = f"{config_.KEY_NAME_PREFIX_AD_THRESHOLD}{abtest_id}:{abtest_config_tag}:{abtest_group}:{key}"
+            redis_helper.set_data_to_redis(key_name=key_name, value=val, expire_time=2 * 24 * 3600)
+    # predict_df.to_csv(f'./data/ad_user_video_predict_{config_key}.csv')
     log_.info(f"config_key = {config_key} update end!")
 
 
@@ -118,7 +118,9 @@ def predict():
     threshold_record = {}
     for config_key, config_param in params.items():
         predict_ad_group_video(dt=dt, config_key=config_key, config_param=config_param)
-        threshold_record[config_key] = config_param['threshold']['group']
+        # 阈值参数记录
+        for abtest_group, ad_threshold_mapping in config_param['threshold'].items():
+            threshold_record[f"{config_key}-{abtest_group}"] = ad_threshold_mapping['group']
     redis_helper.set_data_to_redis(key_name=config_.KEY_NAME_PREFIX_AD_THRESHOLD_RECORD,
                                    value=str(threshold_record),
                                    expire_time=24*3600)

+ 241 - 21
config.py

@@ -777,70 +777,290 @@ class BaseConfig(object):
         # 票圈vlog
         '173-a': {'video': {'data': 'data1'},
                   'user': {'data': 'data1', 'rule': 'rule1'},
-                  'threshold': {'group': 13 / 24, 'mean_group': 13 / 24}},
+                  'threshold': {
+                      'ab0': {'group': 13 / 24, 'mean_group': 13 / 24},
+                      'ab1': {'group': 13 / 24, 'mean_group': 13 / 24},
+                      'ab2': {'group': 13 / 24, 'mean_group': 13 / 24},
+                      'ab3': {'group': 13 / 24, 'mean_group': 13 / 24},
+                      'ab4': {'group': 13 / 24, 'mean_group': 13 / 24},
+                      'ab5': {'group': 13 / 24, 'mean_group': 13 / 24},
+                      'ab6': {'group': 13 / 24, 'mean_group': 13 / 24},
+                      'ab7': {'group': 13 / 24, 'mean_group': 13 / 24},
+                      'ab8': {'group': 13 / 24, 'mean_group': 13 / 24},
+                      'ab9': {'group': 13 / 24, 'mean_group': 13 / 24},
+                  }},
         '173-b': {'video': {'data': 'data1'},
                   'user': {'data': 'data1', 'rule': 'rule2'},
-                  'threshold': {'group': 1 / 2, 'mean_group': 1 / 2}},
+                  'threshold': {
+                      'ab0': {'group': 1 / 2, 'mean_group': 1 / 2},
+                      'ab1': {'group': 1 / 2, 'mean_group': 1 / 2},
+                      'ab2': {'group': 1 / 2, 'mean_group': 1 / 2},
+                      'ab3': {'group': 1 / 2, 'mean_group': 1 / 2},
+                      'ab4': {'group': 1 / 2, 'mean_group': 1 / 2},
+                      'ab5': {'group': 1 / 2, 'mean_group': 1 / 2},
+                      'ab6': {'group': 1 / 2, 'mean_group': 1 / 2},
+                      'ab7': {'group': 1 / 2, 'mean_group': 1 / 2},
+                      'ab8': {'group': 1 / 2, 'mean_group': 1 / 2},
+                      'ab9': {'group': 1 / 2, 'mean_group': 1 / 2},
+                  }},
         '173-c': {'video': {'data': 'data1'},
                   'user': {'data': 'data1', 'rule': 'rule3'},
-                  'threshold': {'group': 11 / 24, 'mean_group': 11 / 24}},
+                  'threshold': {
+                      'ab0': {'group': 11 / 24, 'mean_group': 11 / 24},
+                      'ab1': {'group': 11 / 24, 'mean_group': 11 / 24},
+                      'ab2': {'group': 11 / 24, 'mean_group': 11 / 24},
+                      'ab3': {'group': 11 / 24, 'mean_group': 11 / 24},
+                      'ab4': {'group': 11 / 24, 'mean_group': 11 / 24},
+                      'ab5': {'group': 11 / 24, 'mean_group': 11 / 24},
+                      'ab6': {'group': 11 / 24, 'mean_group': 11 / 24},
+                      'ab7': {'group': 11 / 24, 'mean_group': 11 / 24},
+                      'ab8': {'group': 11 / 24, 'mean_group': 11 / 24},
+                      'ab9': {'group': 11 / 24, 'mean_group': 11 / 24},
+                  }},
         '173-d': {'video': {'data': 'data1:7days'},
                   'user': {'data': 'data1', 'rule': 'rule1'},
-                  'threshold': {'group': 1 / 3, 'mean_group': 1 / 3}},
+                  'threshold': {
+                      'ab0': {'group': 1 / 3, 'mean_group': 1 / 3},
+                      'ab1': {'group': 1 / 3, 'mean_group': 1 / 3},
+                      'ab2': {'group': 1 / 3, 'mean_group': 1 / 3},
+                      'ab3': {'group': 1 / 3, 'mean_group': 1 / 3},
+                      'ab4': {'group': 1 / 3, 'mean_group': 1 / 3},
+                      'ab5': {'group': 1 / 3, 'mean_group': 1 / 3},
+                      'ab6': {'group': 1 / 3, 'mean_group': 1 / 3},
+                      'ab7': {'group': 1 / 3, 'mean_group': 1 / 3},
+                      'ab8': {'group': 1 / 3, 'mean_group': 1 / 3},
+                      'ab9': {'group': 1 / 3, 'mean_group': 1 / 3},
+                  }},
         # 票圈视频+
         '190-a': {'video': {'data': 'data1'},
                   'user': {'data': 'data1', 'rule': 'rule1'},
-                  'threshold': {'group': 7 / 12, 'mean_group': 7 / 12}},
+                  'threshold': {
+                      'ab0': {'group': 7 / 12, 'mean_group': 7 / 12},
+                      'ab1': {'group': 7 / 12, 'mean_group': 7 / 12},
+                      'ab2': {'group': 7 / 12, 'mean_group': 7 / 12},
+                      'ab3': {'group': 7 / 12, 'mean_group': 7 / 12},
+                      'ab4': {'group': 7 / 12, 'mean_group': 7 / 12},
+                      'ab5': {'group': 7 / 12, 'mean_group': 7 / 12},
+                      'ab6': {'group': 7 / 12, 'mean_group': 7 / 12},
+                      'ab7': {'group': 7 / 12, 'mean_group': 7 / 12},
+                      'ab8': {'group': 7 / 12, 'mean_group': 7 / 12},
+                      'ab9': {'group': 7 / 12, 'mean_group': 7 / 12},
+                  }},
         '190-b': {'video': {'data': 'data1'},
                   'user': {'data': 'data1', 'rule': 'rule2'},
-                  'threshold': {'group': 7 / 12, 'mean_group': 7 / 12}},
+                  'threshold': {
+                      'ab0': {'group': 7 / 12, 'mean_group': 7 / 12},
+                      'ab1': {'group': 7 / 12, 'mean_group': 7 / 12},
+                      'ab2': {'group': 7 / 12, 'mean_group': 7 / 12},
+                      'ab3': {'group': 7 / 12, 'mean_group': 7 / 12},
+                      'ab4': {'group': 7 / 12, 'mean_group': 7 / 12},
+                      'ab5': {'group': 7 / 12, 'mean_group': 7 / 12},
+                      'ab6': {'group': 7 / 12, 'mean_group': 7 / 12},
+                      'ab7': {'group': 7 / 12, 'mean_group': 7 / 12},
+                      'ab8': {'group': 7 / 12, 'mean_group': 7 / 12},
+                      'ab9': {'group': 7 / 12, 'mean_group': 7 / 12},
+                  }},
         # 票圈视频
         '194-a': {'video': {'data': 'data1'},
                   'user': {'data': 'data1', 'rule': 'rule1'},
-                  'threshold': {'group': 9 / 24, 'mean_group': 9 / 24}},
+                  'threshold': {
+                      'ab0': {'group': 9 / 24, 'mean_group': 9 / 24},
+                      'ab1': {'group': 9 / 24, 'mean_group': 9 / 24},
+                      'ab2': {'group': 9 / 24, 'mean_group': 9 / 24},
+                      'ab3': {'group': 9 / 24, 'mean_group': 9 / 24},
+                      'ab4': {'group': 9 / 24, 'mean_group': 9 / 24},
+                      'ab5': {'group': 9 / 24, 'mean_group': 9 / 24},
+                      'ab6': {'group': 9 / 24, 'mean_group': 9 / 24},
+                      'ab7': {'group': 9 / 24, 'mean_group': 9 / 24},
+                      'ab8': {'group': 9 / 24, 'mean_group': 9 / 24},
+                      'ab9': {'group': 9 / 24, 'mean_group': 9 / 24},
+                  }},
         '194-b': {'video': {'data': 'data1'},
                   'user': {'data': 'data1', 'rule': 'rule2'},
-                  'threshold': {'group': 5/6, 'mean_group': 5/6}},
+                  'threshold': {
+                      'ab0': {'group': 5/6, 'mean_group': 5/6},
+                      'ab1': {'group': 5/6, 'mean_group': 5/6},
+                      'ab2': {'group': 5/6, 'mean_group': 5/6},
+                      'ab3': {'group': 5/6, 'mean_group': 5/6},
+                      'ab4': {'group': 5/6, 'mean_group': 5/6},
+                      'ab5': {'group': 5/6, 'mean_group': 5/6},
+                      'ab6': {'group': 5/6, 'mean_group': 5/6},
+                      'ab7': {'group': 5/6, 'mean_group': 5/6},
+                      'ab8': {'group': 5/6, 'mean_group': 5/6},
+                      'ab9': {'group': 5/6, 'mean_group': 5/6},
+                  }},
         '194-c': {'video': {'data': 'data2'},
                   'user': {'data': 'data2', 'rule': 'rule1'},
-                  'threshold': {'group': 0.6667, 'mean_group': 0.6667}},  # 本端数据
+                  'threshold': {
+                      'ab0': {'group': 0.6667, 'mean_group': 0.6667},
+                      'ab1': {'group': 0.6667, 'mean_group': 0.6667},
+                      'ab2': {'group': 0.6667, 'mean_group': 0.6667},
+                      'ab3': {'group': 0.6667, 'mean_group': 0.6667},
+                      'ab4': {'group': 0.6667, 'mean_group': 0.6667},
+                      'ab5': {'group': 0.6667, 'mean_group': 0.6667},
+                      'ab6': {'group': 0.6667, 'mean_group': 0.6667},
+                      'ab7': {'group': 0.6667, 'mean_group': 0.6667},
+                      'ab8': {'group': 0.6667, 'mean_group': 0.6667},
+                      'ab9': {'group': 0.6667, 'mean_group': 0.6667},
+                  }},  # 本端数据
         '194-d': {'video': {'data': 'data2'},
                   'user': {'data': 'data2', 'rule': 'rule2'},
-                  'threshold': {'group': 0.6771, 'mean_group': 0.6771}},  # 本端数据 + 优化1
+                  'threshold': {
+                      'ab0': {'group': 0.6771, 'mean_group': 0.6771},
+                      'ab1': {'group': 0.6771, 'mean_group': 0.6771},
+                      'ab2': {'group': 0.6771, 'mean_group': 0.6771},
+                      'ab3': {'group': 0.6771, 'mean_group': 0.6771},
+                      'ab4': {'group': 0.6771, 'mean_group': 0.6771},
+                      'ab5': {'group': 0.6771, 'mean_group': 0.6771},
+                      'ab6': {'group': 0.6771, 'mean_group': 0.6771},
+                      'ab7': {'group': 0.6771, 'mean_group': 0.6771},
+                      'ab8': {'group': 0.6771, 'mean_group': 0.6771},
+                      'ab9': {'group': 0.6771, 'mean_group': 0.6771},
+                  }},  # 本端数据 + 优化1
         # 内容精选
         '195-a': {'video': {'data': 'data1'},
                   'user': {'data': 'data1', 'rule': 'rule1'},
-                  'threshold': {'group': 11 / 24, 'mean_group': 11 / 24}},
+                  'threshold': {
+                      'ab0': {'group': 11 / 24, 'mean_group': 11 / 24},
+                      'ab1': {'group': 11 / 24, 'mean_group': 11 / 24},
+                      'ab2': {'group': 11 / 24, 'mean_group': 11 / 24},
+                      'ab3': {'group': 11 / 24, 'mean_group': 11 / 24},
+                      'ab4': {'group': 11 / 24, 'mean_group': 11 / 24},
+                      'ab5': {'group': 11 / 24, 'mean_group': 11 / 24},
+                      'ab6': {'group': 11 / 24, 'mean_group': 11 / 24},
+                      'ab7': {'group': 11 / 24, 'mean_group': 11 / 24},
+                      'ab8': {'group': 11 / 24, 'mean_group': 11 / 24},
+                      'ab9': {'group': 11 / 24, 'mean_group': 11 / 24},
+                  }},
         '195-b': {'video': {'data': 'data1'},
                   'user': {'data': 'data1', 'rule': 'rule2'},
-                  'threshold': {'group': 23 / 48, 'mean_group': 23 / 48}},
+                  'threshold': {
+                      'ab0': {'group': 23 / 48, 'mean_group': 23 / 48},
+                      'ab1': {'group': 23 / 48, 'mean_group': 23 / 48},
+                      'ab2': {'group': 23 / 48, 'mean_group': 23 / 48},
+                      'ab3': {'group': 23 / 48, 'mean_group': 23 / 48},
+                      'ab4': {'group': 23 / 48, 'mean_group': 23 / 48},
+                      'ab5': {'group': 23 / 48, 'mean_group': 23 / 48},
+                      'ab6': {'group': 23 / 48, 'mean_group': 23 / 48},
+                      'ab7': {'group': 23 / 48, 'mean_group': 23 / 48},
+                      'ab8': {'group': 23 / 48, 'mean_group': 23 / 48},
+                      'ab9': {'group': 23 / 48, 'mean_group': 23 / 48},
+                  }},
         '195-c': {'video': {'data': 'data3'},
                   'user': {'data': 'data3', 'rule': 'rule1'},
-                  'threshold': {'group': 1 / 2, 'mean_group': 1 / 2}},  # 本端数据
+                  'threshold': {
+                      'ab0': {'group': 1 / 2, 'mean_group': 1 / 2},
+                      'ab1': {'group': 1 / 2, 'mean_group': 1 / 2},
+                      'ab2': {'group': 1 / 2, 'mean_group': 1 / 2},
+                      'ab3': {'group': 1 / 2, 'mean_group': 1 / 2},
+                      'ab4': {'group': 1 / 2, 'mean_group': 1 / 2},
+                      'ab5': {'group': 1 / 2, 'mean_group': 1 / 2},
+                      'ab6': {'group': 1 / 2, 'mean_group': 1 / 2},
+                      'ab7': {'group': 1 / 2, 'mean_group': 1 / 2},
+                      'ab8': {'group': 1 / 2, 'mean_group': 1 / 2},
+                      'ab9': {'group': 1 / 2, 'mean_group': 1 / 2},
+                  }},  # 本端数据
         # 票圈短视频
         '196-a': {'video': {'data': 'data1'},
                   'user': {'data': 'data1', 'rule': 'rule1'},
-                  'threshold': {'group': 1 / 2, 'mean_group': 1 / 2}},
+                  'threshold': {
+                      'ab0': {'group': 1 / 2, 'mean_group': 1 / 2},
+                      'ab1': {'group': 1 / 2, 'mean_group': 1 / 2},
+                      'ab2': {'group': 1 / 2, 'mean_group': 1 / 2},
+                      'ab3': {'group': 1 / 2, 'mean_group': 1 / 2},
+                      'ab4': {'group': 1 / 2, 'mean_group': 1 / 2},
+                      'ab5': {'group': 1 / 2, 'mean_group': 1 / 2},
+                      'ab6': {'group': 1 / 2, 'mean_group': 1 / 2},
+                      'ab7': {'group': 1 / 2, 'mean_group': 1 / 2},
+                      'ab8': {'group': 1 / 2, 'mean_group': 1 / 2},
+                      'ab9': {'group': 1 / 2, 'mean_group': 1 / 2},
+                  }},
         '196-b': {'video': {'data': 'data4'},
                   'user': {'data': 'data4', 'rule': 'rule1'},
-                  'threshold': {'group': 23 / 48, 'mean_group': 23 / 48}},
+                  'threshold': {
+                      'ab0': {'group': 23 / 48, 'mean_group': 23 / 48},
+                      'ab1': {'group': 23 / 48, 'mean_group': 23 / 48},
+                      'ab2': {'group': 23 / 48, 'mean_group': 23 / 48},
+                      'ab3': {'group': 23 / 48, 'mean_group': 23 / 48},
+                      'ab4': {'group': 23 / 48, 'mean_group': 23 / 48},
+                      'ab5': {'group': 23 / 48, 'mean_group': 23 / 48},
+                      'ab6': {'group': 23 / 48, 'mean_group': 23 / 48},
+                      'ab7': {'group': 23 / 48, 'mean_group': 23 / 48},
+                      'ab8': {'group': 23 / 48, 'mean_group': 23 / 48},
+                      'ab9': {'group': 23 / 48, 'mean_group': 23 / 48},
+                  }},
         '196-c': {'video': {'data': 'data4'},
                   'user': {'data': 'data4', 'rule': 'rule3'},
-                  'threshold': {'group': 1 / 2, 'mean_group': 1 / 2}},
+                  'threshold': {
+                      'ab0': {'group': 1 / 2, 'mean_group': 1 / 2},
+                      'ab1': {'group': 1 / 2, 'mean_group': 1 / 2},
+                      'ab2': {'group': 1 / 2, 'mean_group': 1 / 2},
+                      'ab3': {'group': 1 / 2, 'mean_group': 1 / 2},
+                      'ab4': {'group': 1 / 2, 'mean_group': 1 / 2},
+                      'ab5': {'group': 1 / 2, 'mean_group': 1 / 2},
+                      'ab6': {'group': 1 / 2, 'mean_group': 1 / 2},
+                      'ab7': {'group': 1 / 2, 'mean_group': 1 / 2},
+                      'ab8': {'group': 1 / 2, 'mean_group': 1 / 2},
+                      'ab9': {'group': 1 / 2, 'mean_group': 1 / 2},
+                  }},
         # 老好看视频
         '197-a': {'video': {'data': 'data1'},
                   'user': {'data': 'data1', 'rule': 'rule1'},
-                  'threshold': {'group': 25 / 48, 'mean_group': 25 / 48}},
+                  'threshold': {
+                      'ab0': {'group': 25 / 48, 'mean_group': 25 / 48},
+                      'ab1': {'group': 25 / 48, 'mean_group': 25 / 48},
+                      'ab2': {'group': 25 / 48, 'mean_group': 25 / 48},
+                      'ab3': {'group': 25 / 48, 'mean_group': 25 / 48},
+                      'ab4': {'group': 25 / 48, 'mean_group': 25 / 48},
+                      'ab5': {'group': 25 / 48, 'mean_group': 25 / 48},
+                      'ab6': {'group': 25 / 48, 'mean_group': 25 / 48},
+                      'ab7': {'group': 25 / 48, 'mean_group': 25 / 48},
+                      'ab8': {'group': 25 / 48, 'mean_group': 25 / 48},
+                      'ab9': {'group': 25 / 48, 'mean_group': 25 / 48},
+                  }},
         '197-b': {'video': {'data': 'data1'},
                   'user': {'data': 'data1', 'rule': 'rule2'},
-                  'threshold': {'group': 25 / 48, 'mean_group': 25 / 48}},
+                  'threshold': {
+                      'ab0': {'group': 25 / 48, 'mean_group': 25 / 48},
+                      'ab1': {'group': 25 / 48, 'mean_group': 25 / 48},
+                      'ab2': {'group': 25 / 48, 'mean_group': 25 / 48},
+                      'ab3': {'group': 25 / 48, 'mean_group': 25 / 48},
+                      'ab4': {'group': 25 / 48, 'mean_group': 25 / 48},
+                      'ab5': {'group': 25 / 48, 'mean_group': 25 / 48},
+                      'ab6': {'group': 25 / 48, 'mean_group': 25 / 48},
+                      'ab7': {'group': 25 / 48, 'mean_group': 25 / 48},
+                      'ab8': {'group': 25 / 48, 'mean_group': 25 / 48},
+                      'ab9': {'group': 25 / 48, 'mean_group': 25 / 48},
+                  }},
         # 票圈最惊奇
         '198-a': {'video': {'data': 'data1'},
                   'user': {'data': 'data1', 'rule': 'rule1'},
-                  'threshold': {'group': 7 / 18, 'mean_group': 7 / 18}},
+                  'threshold': {
+                      'ab0': {'group': 7 / 18, 'mean_group': 7 / 18},
+                      'ab1': {'group': 7 / 18, 'mean_group': 7 / 18},
+                      'ab2': {'group': 7 / 18, 'mean_group': 7 / 18},
+                      'ab3': {'group': 7 / 18, 'mean_group': 7 / 18},
+                      'ab4': {'group': 7 / 18, 'mean_group': 7 / 18},
+                      'ab5': {'group': 7 / 18, 'mean_group': 7 / 18},
+                      'ab6': {'group': 7 / 18, 'mean_group': 7 / 18},
+                      'ab7': {'group': 7 / 18, 'mean_group': 7 / 18},
+                      'ab8': {'group': 7 / 18, 'mean_group': 7 / 18},
+                      'ab9': {'group': 7 / 18, 'mean_group': 7 / 18},
+                  }},
         '198-b': {'video': {'data': 'data1'},
                   'user': {'data': 'data1', 'rule': 'rule1'},
-                  'threshold': {'group': 7 / 18, 'mean_group': 7 / 18}},
+                  'threshold': {
+                      'ab0': {'group': 7 / 18, 'mean_group': 7 / 18},
+                      'ab1': {'group': 7 / 18, 'mean_group': 7 / 18},
+                      'ab2': {'group': 7 / 18, 'mean_group': 7 / 18},
+                      'ab3': {'group': 7 / 18, 'mean_group': 7 / 18},
+                      'ab4': {'group': 7 / 18, 'mean_group': 7 / 18},
+                      'ab5': {'group': 7 / 18, 'mean_group': 7 / 18},
+                      'ab6': {'group': 7 / 18, 'mean_group': 7 / 18},
+                      'ab7': {'group': 7 / 18, 'mean_group': 7 / 18},
+                      'ab8': {'group': 7 / 18, 'mean_group': 7 / 18},
+                      'ab9': {'group': 7 / 18, 'mean_group': 7 / 18},
+                  }},
     }
 
     # 广告模型abtest分组配置
@@ -907,7 +1127,7 @@ class BaseConfig(object):
     KEY_NAME_PREFIX_AD_VIDEO = 'ad:video:predict:share:rate:'
     # 用户分组结果存放 redis key 前缀,完整格式:mid:group:{class_key}:{mid}
     KEY_NAME_PREFIX_MID_GROUP = 'mid:group:'
-    # 广告推荐阈值结果存放 redis key 前缀,完整格式:ad:threshold:{abtestId}:{abtestConfigTag}:{group}
+    # 广告推荐阈值结果存放 redis key 前缀,完整格式:ad:threshold:{abtestId}:{abtestConfigTag}:{abtestGroup}:{group}
     KEY_NAME_PREFIX_AD_THRESHOLD = 'ad:threshold:'
     # 广告推荐阈值计算记录存放 redis key,完整格式:ad:threshold:record
     KEY_NAME_PREFIX_AD_THRESHOLD_RECORD = 'ad:threshold:record'