当前位置:网站首页>【打卡】广告-信息流跨域ctr预估(待更新)
【打卡】广告-信息流跨域ctr预估(待更新)
2022-08-04 15:42:00 【YKbsmn】
赛题介绍
广告推荐主要基于用户对广告的历史曝光、点击等行为进行建模,如果只是使用广告域数据,用户行为数据稀疏,行为类型相对单一。而引入同一媒体的跨域数据,可以获得同一广告用户在其他域的行为数据,深度挖掘用户兴趣,丰富用户行为特征。引入其他媒体的广告用户行为数据,也能丰富用户和广告特征。
本赛题希望选手基于广告日志数据,用户基本信息和跨域数据优化广告ctr预估准确率。目标域为广告域,源域为信息流推荐域,通过获取用户在信息流域中曝光、点击信息流等行为数据,进行用户兴趣建模,帮助广告域CTR的精准预估。
Task1 比赛报名与尝试

报名比赛之后 -> 下载比赛数据
Baseline尝试
#安装相关依赖库 如果是windows系统,cmd命令框中输入pip安装,参考上述环境配置
#!pip install sklearn
#!pip install pandas
#---------------------------------------------------
#导入库
import pandas as pd
#----------------数据探索----------------
# 只使用目标域用户行为数据
train_ads = pd.read_csv('./train/train_data_ads.csv',
usecols=['log_id', 'label', 'user_id', 'age', 'gender', 'residence', 'device_name',
'device_size', 'net_type', 'task_id', 'adv_id', 'creat_type_cd'])
test_ads = pd.read_csv('./test/test_data_ads.csv',
usecols=['log_id', 'user_id', 'age', 'gender', 'residence', 'device_name',
'device_size', 'net_type', 'task_id', 'adv_id', 'creat_type_cd'])
# 数据集采样
train_ads = pd.concat([
train_ads[train_ads['label'] == 0].sample(70000),
train_ads[train_ads['label'] == 1].sample(10000),
])
#----------------模型训练----------------
# 加载训练逻辑回归模型
from sklearn.linear_model import LogisticRegression
clf = LogisticRegression()
clf.fit(
train_ads.drop(['log_id', 'label', 'user_id'], axis=1),
train_ads['label']
)
#----------------结果输出----------------
# 模型预测与生成结果文件
test_ads['pctr'] = clf.predict_proba(
test_ads.drop(['log_id', 'user_id'], axis=1),
)[:, 1]
test_ads[['log_id', 'pctr']].to_csv('submission.csv',index=None)提交结果为:

Task2 比赛数据分析
导入相关库
#安装相关依赖库 如果是windows系统,cmd命令框中输入pip安装,参考上述环境配置
#!pip install sklearn
#!pip install pandas
#!pip install catboost
# 如果有下载Anaconda,可以创建虚拟环境,然后输入:conda install -c https://conda.anaconda.org/conda-forge catboost
#---------------------------------------------------
#导入库
#----------------数据探索----------------
import pandas as pd
import numpy as np
import os
import gc
import matplotlib.pyplot as plt
from tqdm import *
#----------------核心模型----------------
from catboost import CatBoostClassifier
from sklearn.linear_model import SGDRegressor, LinearRegression, Ridge
#----------------交叉验证----------------
from sklearn.model_selection import StratifiedKFold, KFold
#----------------评估指标----------------
from sklearn.metrics import accuracy_score, f1_score, roc_auc_score, log_loss
#----------------忽略报警----------------
import warnings
warnings.filterwarnings('ignore')对目标域用户行为进行分析
- 对于训练集 和 测试集,用户重合的比例是多少?
train_data_ads = pd.read_csv('./train/train_data_ads.csv')
test_data_ads = pd.read_csv('./test/test_data_ads.csv')
train_id_ads = train_data_ads['user_id'].unique()
test_id_ads = test_data_ads['user_id'].unique()
len(train_id_ads), len(test_id_ads) # 在训练集和测试集中,去重的id个数![]()
#统计两个数组相同元素个数
#方法一:前面用户id已经去重了,但是这里不加set会报错
dup_id_len = len(set(train_id_ads) & set(test_id_ads))
dup_id_len
#方法二:
#duplicate_id = [x for x in train_id_ads if x in test_id_ads]
#dup_id_len = len(duplicate_id) ![]()
#对于训练集 和 测试集,用户重合的比例是多少?
ratio_dup_train = dup_id_len / len(train_id_ads)
ratio_dup_test = dup_id_len / len(test_id_ads)
ratio_dup_train, ratio_dup_test![]()
- 统计字段中有多少数值字段,多少非数值字段?
train_data_ads.dtypestest_data_ads.dtypes- 统计哪些用户属性(年龄、性别、手机设备等)与 标签相关性最强?
DataFrame.corr()函数使用说明如下:
DataFrame.corr(method='pearson', min_periods=1)
作用:
data.corr()表示了data中的两个变量之间的相关性,取值范围为[-1,1],取值接近-1,表示反相关,类似反比例函数,取值接近1,表正相关。
参数说明:
method:可选值为{‘pearson’, ‘kendall’, ‘spearman’}
pearson:Pearson相关系数来衡量两个数据集合是否在一条线上面,即针对线性数据的相关系数计算,针对非线性数据便会有误差。
kendall:用于反映分类变量相关性的指标,即针对无序序列的相关系数,非正太分布的数据。
spearman:非线性的,非正太分析的数据的相关系数。
min_periods:样本最少的数据量。
返回值:各类型之间的相关系数DataFrame表格。
train_data_ads.corr(method = 'kendall')['label']结果,排前三分别是:

对源域用户行为进行分析
源域用户行为与目标域用户行为训练集和测试集用户重合的比例分别是多少?- 统计字段中有多少数值字段,多少非数值字段?
边栏推荐
猜你喜欢
随机推荐
初学爬虫笔记(收集数据)
云存储硬核技术内幕——(12) 皮洛士惨胜罗马军团
面了三十个人,说说真实感受
IP报文头解析
西安纵横资讯×JNPF:适配中国企业特色,全面集成费用管控体系
What is the difference between member variable and local variable
Redis的主从复制和集群
分布式链路追踪Jaeger + 微服务Pig在Rainbond上的实践分享
JVM调优-GC基本原理和调优关键分析
(2022杭电多校五)C - Slipper (dijkstra+虚拟结点)
什么是 DevOps?看这一篇就够了!
06-总线
实战:10 种实现延迟任务的方法,附代码!
PHP 图片转PDF
张乐:研发效能的黄金三角及需求与敏捷协作领域的实践
Task Computing【动态规划_牛客】
保证通信的机制有哪些
面渣逆袭:MySQL六十六问,两万字+五十图详解
我说MySQL联合索引遵循最左前缀匹配原则,面试官让我回去等通知
吴恩达机器学习[12]-机器学习系统设计





![吴恩达机器学习[13]-支持向量机](/img/8c/87f1dd825bb998008d1532ff2899e2.png)



