|
@@ -194,7 +194,7 @@ def update_videos_data_new(project, table, dt, update_params, top10_abnormal_vid
|
|
|
|
|
|
|
|
|
def predict_video_out_rate(video_initial_df, dt, data_key, data_param, top10_abnormal_videos):
|
|
|
- """预估视频有广告时被直接跳出的概率"""
|
|
|
+ """预估视频有广告时不被直接跳出的概率"""
|
|
|
# 获取对应的视频特征
|
|
|
video_df = video_initial_df.copy()
|
|
|
video_df['apptype'] = video_df['apptype'].astype(int)
|
|
@@ -216,18 +216,25 @@ def predict_video_out_rate(video_initial_df, dt, data_key, data_param, top10_abn
|
|
|
# print(len(video_df))
|
|
|
# 计算视频有广告时被直接跳出的概率
|
|
|
video_df = video_df[video_df['adrate'] != 0]
|
|
|
+ video_df = video_df[video_df['adrate_out'] != 0]
|
|
|
video_df['video_ad_out_rate'] = \
|
|
|
video_df['adrate_out'] * video_df['outrate'] / video_df['adrate']
|
|
|
video_df['video_ad_out_rate'].fillna(0, inplace=True)
|
|
|
+ # 计算视频有广告时不被直接跳出的概率
|
|
|
+ video_df['video_ad_no_out_rate'] = 1 - video_df['video_ad_out_rate']
|
|
|
+ # print(len(video_df))
|
|
|
+ # video_df = video_df[video_df['video_ad_no_out_rate'] != 0]
|
|
|
# log_.info(f"video_df: {video_df}")
|
|
|
- video_df = video_df[video_df['video_ad_out_rate'] != 0]
|
|
|
log_.info(f"video_df filtered 0 length: {len(video_df)}")
|
|
|
+ # video_df = video_df[video_df['video_ad_no_out_rate'] != 1]
|
|
|
+ # log_.info(f"video_df: {video_df}")
|
|
|
+ # log_.info(f"video_df filtered 0 length: {len(video_df)}")
|
|
|
# 结果写入redis
|
|
|
key_name = f"{config_.KEY_NAME_PREFIX_AD_VIDEO}{data_key}:{dt}"
|
|
|
redis_data = {}
|
|
|
for index, item in video_df.iterrows():
|
|
|
- redis_data[int(item['videoid'])] = item['video_ad_out_rate']
|
|
|
- group_ad_out_rate_mean = video_df['video_ad_out_rate'].mean()
|
|
|
+ redis_data[int(item['videoid'])] = item['video_ad_no_out_rate']
|
|
|
+ group_ad_out_rate_mean = video_df['video_ad_no_out_rate'].mean()
|
|
|
redis_data[-1] = group_ad_out_rate_mean
|
|
|
# 异常视频给定值:mean/3
|
|
|
if top10_abnormal_video_ids is not None:
|
|
@@ -239,7 +246,7 @@ def predict_video_out_rate(video_initial_df, dt, data_key, data_param, top10_abn
|
|
|
log_.info(f"redis_data count: {len(redis_data)}")
|
|
|
if len(redis_data) > 0:
|
|
|
redis_helper = RedisHelper()
|
|
|
- redis_helper.add_data_with_zset(key_name=key_name, data=redis_data, expire_time=2 * 24 * 3600)
|
|
|
+ # redis_helper.add_data_with_zset(key_name=key_name, data=redis_data, expire_time=2 * 24 * 3600)
|
|
|
return video_df
|
|
|
|
|
|
|
|
@@ -264,14 +271,16 @@ def timer_check(dt, video_key, video_params, top10_abnormal_videos):
|
|
|
log_.info(f"ad video data count = {data_count}")
|
|
|
# 数据准备好,进行更新
|
|
|
if video_key == 'videos_data_alladtype':
|
|
|
- update_videos_data_new(project=project, table=table, dt=dt, update_params=video_params,
|
|
|
- top10_abnormal_videos=top10_abnormal_videos)
|
|
|
+ # update_videos_data_new(project=project, table=table, dt=dt, update_params=video_params,
|
|
|
+ # top10_abnormal_videos=top10_abnormal_videos)
|
|
|
+ pass
|
|
|
elif video_key == 'videos_data_with_out_alladtype':
|
|
|
update_videos_data_with_out(project=project, table=table, dt=dt, update_params=video_params,
|
|
|
top10_abnormal_videos=top10_abnormal_videos)
|
|
|
else:
|
|
|
- update_videos_data(project=project, table=table, dt=dt, update_params=video_params,
|
|
|
- top10_abnormal_videos=top10_abnormal_videos)
|
|
|
+ # update_videos_data(project=project, table=table, dt=dt, update_params=video_params,
|
|
|
+ # top10_abnormal_videos=top10_abnormal_videos)
|
|
|
+ pass
|
|
|
log_.info(f"video_key = {video_key} ad video data update end!")
|
|
|
msg_list = [
|
|
|
f"env: rov-offline {config_.ENV_TEXT}",
|