这篇文章的初衷是针对科大讯飞2021丨广告点击率预估挑战赛 Top1方案(附完整代码)_Jack_Yang的博客-优快云博客进行补充。
博客的信息量很少,对任务背景的介绍也不太对,说实话令人费解。我想的是能不能写份博客视为补充,更加严谨,也是这份博客的缘由。
比赛是讯飞的比赛 2021 iFLYTEK A.I.开发者大赛-讯飞开放平台。大赛已经结束,博主也没能拿到数据,很遗憾只能介绍结合大赛数据格式、代码说明算法设计的思维。
1. 任务背景
广告点击率预估是在线广告交易的核心环节之一,如果说一家公司想知道 CTR(点击率),以确定将他们的钱花在数字广告上是否值得。点击率高表示对该特定广告系列更感兴趣,点击率低可能表明广告可能不那么相关。高点击率表明更多人点击了网站,这有利于在谷歌、必应等在线平台上以更少的钱获得更好的广告位置。
平台展示给用户特定的广告,用户存在点击与不点击两种行为。给定某平台实际广告业务中的用户行为数据,共包含13个用户相关的字段,其中isClick字段表明用户是否会点击广告。
任务目标是通过训练集训练模型,来预测测试集中isClick字段的概率结果,即用户点击平台所推荐广告的概率,以此为依据,表示用户对特定广告感兴趣的程度。
2.数据说明
2.1 数据格式
赛题数据由训练集和测试集组成,包含13个特征字段,6天的数据。其中39万多条作为训练集(7月2-6日),7万多条作为测试集(7月7日),同时会对部分字段信息进行脱敏。

训练集:完整字段的数据(gender中有空NULL,date是排序好的行为时间(一般时序数据都要根据时间排序为timestep,便于diff))
测试集:预测是否点击isClick。
2.2 数据探索
userid的分布是有偏的
import seaborn as sns from tqdm import tqdm from sklearn.model_selection import KFold import lightgbm as lgbm sns.distplot(df_tr_te['user_id'].value_counts())
user_group_i的分布主要集中在1,2,3,4,5。
df_tr_te['user_group_id'].value_counts().plot(kind='bar')
day每天的数据是类似的(day是2~7,这里只给出了6天的数据)df_tr_te['day'].value_counts().plot(kind = 'bar')
isClick标签分布有些不平衡;
df_tr['isClick'].value_counts().plot(kind = 'bar')
每一天用户的点击率会有些许差异,但大致都在0.06-0.075之间。
df_tr_te.loc[df_tr_te['isClick']!=-1].groupby('day')['isClick'].mean().plot()

本文详细介绍了2021年科大讯飞广告点击率预估挑战赛的背景、数据探索与特征工程,包括用户行为分析、时间序列处理、活动业务权重构建等,旨在提供竞赛策略参考和代码示例。





最低0.47元/天 解锁文章
4890

被折叠的 条评论
为什么被折叠?



