Spark学习——使用Spark做CTR预估

本文介绍了一个基于Spark进行点击率(CTR)预估的项目,涉及数据集处理、特征工程和Spark配置。数据集包括训练集和测试集,其中训练集用于模型训练,测试集用于评估。在数据预处理阶段,处理了缺失值和异常值,例如使用众数填充内容ID的缺失值。在Spark平台上,讨论了Hadoop和Spark的区别,以及Spark配置,如Executor的数量和资源分配。
摘要由CSDN通过智能技术生成

赛题信息背景

任务描述:基于用户对广告任务的历史行为和广告任务属性,选择合适的算法预测用户在特定上下文下对某个广告任务的点击概率。
尝试解决的问题:提高广告点击转化率预估的准确性
难点:广告任务相对可推用户数量非常少;有行为的广告任务较少,数据非常稀疏;广告任务在投放周期的不同阶段转化率差异较大;存在误点击噪音数据;有效特征识别困难

数据集 - 训练集很大,采用分割方式进行数据集查看

  • 训练集 [‘label’, ‘uId’, ‘adId’, ‘operTime’, ‘siteId’, ‘slotId’, ‘contentId’, ‘netType’]

    • 标签 用户ID 广告ID 操作时间 媒体ID 广告位ID 内容ID 网络类型
  • 测试集 [‘testId’, ‘uId’, ‘adId’, ‘operTime’, ‘siteId’, ‘slotId’, ‘contentId’, ‘netType’]

    • testId 用户ID 广告ID 操作时间 媒体ID 广告位ID 内容ID 网络类型
  • 用户信息表 user_info [‘uId’, ‘age’, ‘gender’, ‘city’, ‘province’, ‘phoneType’, ‘carrier’]

    • 用户年龄、性别、省份、城市、手机类型、运营商编号
  • 广告信息表 ad_info [‘adId’, ‘billId’, ‘primId’, ‘creativeType’, ‘intertype’, ‘spreadAppId’])

    • 广告ID 收费模式 所在APPID
  • 素材信息表 content_info [‘contentId’, ‘firstClass’, ‘secondClass’]

    • 内容ID 一级内容 二级内容

数据探索

  • 训练集没有缺失
  • 测试集 内容Id列有缺失 156个采用SimpleImputer 众数补全
  • 用户特征 carrier 3.8%缺失 city 0.27% age 0.16% gender 0.16% 众数补全
    • 都是类别特征(age已经分箱)用柱状图画出数据分布
  • 广告信息表 ad_info spreadAppId 缺失39%
  • 素材信息表 content_info secondClass,缺失58%

缺失值 异常值处理

缺失处理
(1) 直接剔除:结合变量重要性、缺失比例综合考量

(2) 忽略缺失:结合变量重要性、缺失比例综合考量

(3) 人工填补:业务能解释缺失,如使用次数为空,缺失代表没有使用过,置0

(4) 算法填补:采用回归、贝叶斯、判定树拟合缺失值

(5) 均值填补:使用属性的平均值填补缺失

  • 异常值处理

(1)(均值±3*标准差)替换极值,理论上99.73%的数据都在此范围

(2)(Q1-1.5IQR , Q3+1.5IQR)替换极值 IQR = Q3 - Q1是四分位距 Q3 75%位数 Q1 25%位数

根据测试集训练集的时间戳 选取合适的范围 可得训练集时间范围2019-03-26 — 2019-03-31清洗并保存

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值