소스 검색

add recommend abtest

liqian 1 년 전
부모
커밋
1f4d38fa57
2개의 변경된 파일32개의 추가작업 그리고 1개의 파일을 삭제
  1. 13 0
      config.py
  2. 19 1
      region_rule_rank_h.py

+ 13 - 0
config.py

@@ -397,6 +397,19 @@ class BaseConfig(object):
             # 其余表与地域小时级表,不做去重,召回在线去重
             'rule19': {'view_type': 'video-show-region', 'platform_return_rate': 0.001,
                        'region_24h_rule_key': 'rule4', '24h_rule_key': 'rule4', 'merge_func': 2, 'dup_remove': False},
+            # 分值计算公式 增加h-2分享当前小时回流数据、h-3分享当前小时回流数据特征
+            # score = k2 * sharerate * (backrate * LOG(lastonehour_return+1) + backrate_2 * LOG(lasttwohour_return+1) + backrate_3 * LOG(lastthreehour_return+1))
+            'rule20': {'view_type': 'video-show-region', 'platform_return_rate': 0.001, 'region_24h_rule_key': 'rule2',
+                       '24h_rule_key': 'rule3', 'score_func': 'add_backrate*log(return+1)'},
+            # 分值计算公式 增加[h-3,h-2]之间的回流留存特征
+            # score = k2 * sharerate * backrate * LOG(lastonehour_return+1) * 前两小时回流留存
+            'rule21': {'view_type': 'video-show-region', 'platform_return_rate': 0.001, 'region_24h_rule_key': 'rule2',
+                       '24h_rule_key': 'rule3', 'score_func': 'multiply_return_retention'},
+            # 分值计算公式 增加h-2分享当前小时回流/h-2分享、h-3分享当前小时回流/h-3分享 特征
+            # score = k2 * sharerate * (backrate + backrate * backrate_2 * backrate_3) * LOG(lastonehour_return+1)
+            'rule22': {'view_type': 'video-show-region', 'platform_return_rate': 0.001, 'region_24h_rule_key': 'rule2',
+                       '24h_rule_key': 'rule3', 'score_func': 'update_backrate'},
+
         },
         'data_params': DATA_PARAMS,
         'params_list': [

+ 19 - 1
region_rule_rank_h.py

@@ -45,6 +45,12 @@ features = [
     'platform_return',
     'lastonehour_show',  # 不区分地域
     'lastonehour_show_region',  # 地域分组
+    'lasttwohour_share',  # h-2小时分享人数
+    'lasttwohour_return',  # h-2分享,过去1小时回流人数
+    '上二小时分享上二小时当小时回流',  # h-2分享,h-2回流人数
+    'lastthreehour_share',  # h-3小时分享人数
+    'lastthreehour_return',  # h-3分享,过去1小时回流人数
+    '上三小时分享上三小时当小时回流',  # h-3分享,h-3回流人数
 ]
 
 
@@ -125,7 +131,7 @@ def get_feature_data(project, table, now_date):
     return feature_df
 
 
-def cal_score(df, param):
+def cal_score_initial(df, param):
     """
     计算score
     :param df: 特征数据
@@ -166,6 +172,18 @@ def cal_score(df, param):
     return df
 
 
+def cal_score(df, param):
+    if param.get('score_func', None) == 'add_backrate*log(return+1)':
+        pass
+    elif param.get('score_func', None) == 'multiply_return_retention':
+        pass
+    elif param.get('score_func', None) == 'update_backrate':
+        pass
+    else:
+        df = cal_score_initial(df=df, param=param)
+    return df
+
+
 def add_func1(initial_df, pre_h_df):
     """当前小时级数据与前几个小时数据合并"""
     score_list = initial_df['score'].to_list()