一、实验内容

1.题目介绍

本题来源于 2021 iFLYTEK A.I. 开发者大赛-广告点击率预估挑战赛。广告点击率预估是在线广告交易的核心环节之一,如果说一家公司想知道 CTR(点击率),以确定将他们的钱花在数字广告上是否值得。点击率高表示对该特定广告系列更感兴趣,点击率低可能表明广告可能不那么相关。高点击率表明更多人点击了网站,这有利于在谷歌、必应等在线平台上以更少的钱获得更好的广告位置。

2.数据集介绍

数据集为“广告点击率预估.csv”,其中包含 13 个特征字段,6 天的数据。共计 39 万多条。

特征字段字段描述
id用户行为id,唯一表示,无重复
date行为时间,精确到秒
user_id

用户 id

product

产品
campaign_id活动 id
webpage_id网页 id
product_category_id产品类型 id
user_group_id用户所属群组 id
gender性别
age_level年龄等级

user_depth

用户价值深度
var_1匿名特征

isClick

是否点击,1 为点击,0 为未点击

3.设计要求

① 对于提供的数据集需要进行数据清洗,如缺失值填充,异常值处理等。

② 数据分析时需要进行可视化操作,如数据的分布,相关性分析等。

③ 利用至少三种机器学习或深度学习算法进行预测。

④ 不可将所有数据作为训练集进行模型训练,对于给定数据集需要划分出至少 75%的数据作为训练集。

⑤ 引入 AUC 的值评判模型的好坏。该问题的算法得分计算公式为:算法得分=AUC*100。

⑥ 使用 Mysql 存储训练集数据,并以此设计界面连接数据库,实现数据的增删查改。

⑦ 设计判断按钮,利用训练好的模型对数据库中查询到的数据进行预测并输出结果到设计好的界面上。该功能还需满足以下要求:待预测数据的条数可以为任意条,预测结果除了展示在界面上外,还需提供保存功能,将其以文件形式保存在本地磁盘上。

⑧ 设计数据统计图表展示区域,用于展示当前数据库中所有数据的分布情况。

二、实验步骤

1.数据预处理

1、总数据是391825条,可以对发现的15485条含空缺值的数据直接进行删除

2、异常值处理

查看id列的唯一值个数

3、重复值处理

对重复数据进行删除:

4、查看除isClick列外的重复行,即同一用户所有特征值都相同,不可能同时作出既点击又不点击的行为,要对其进行删除

5、特征列处理

将date列转换为datetime类型,并提取出其中的hour添加为新的一列,删除原来的date列:

6、对性别字符串进行转换,转换为0,1,方便后续数据建模

2.数据可视化

(1)数据分布分析

①性别分布  

可以看出,男女比例不平衡,男性的数量远高于女性。

②年龄分布

年龄分布,2、3、4类别的年龄人数较多,其他类别的年龄人数较少。

③点击分布

可以看出,被点击的次数远小于没有点击的次数,样本不平衡。

(2)相关性分析

绘制相关性矩阵的热力图:

由相关性矩阵看出,性别与用户所属群组,年龄等级与用户所属群组,产品类型与活动,产品类型与网页,产品与活动和网页,相关性较大;是否点击与单个特征都关系不大。

(3)各特征与目标变量(isClick)的关系

①活动id与是否点击:

使用groupby函数分类别统计campaign_id与isClick的数量关系

绘制堆积柱状图

可以看出,不同活动与是否点击有区别,活动0和活动2不点击的次数较多,活动1,4,5,6,7,8,9的区别不大,不点击和点击的次数都差不多。

②网页id与是否点击

利用上述同样方法统计两个特征的数量关系并绘制堆积柱形图

可以看出,不同网页与是否点击广告有一定关系,网页0和2的不点击次数最多,其他网页的不点击次数都差不多,且都较低。

③产品与是否点击

可以看出,不同产品与是否点击广告有一定关系,数量参差不齐。

④用户组别与是否点击

可以看出,不同用户群组与是否点击广告有一定关系,用户群组2,3不点击的最多,其他群组较少。

⑤性别与是否点击

可以看出,男性数量较多,所有点击和不点击的次数都要更多,但男女对应的点击率占比都差不多。

3.模型训练

划分特征向量和目标值

对数据集进行SMOTE采样,解决数据不平衡问题

划分训练集和测试集

①Bagging分类器

②AdaBoost分类器

③逻辑回归

④随机森林

⑤梯度提升树

模型对比:

模型准确率AUC
Bagging分类器0.9396.3
AdaBoost分类器0.9358.8
逻辑回归0.5053.8
随机森林0.9295.4
梯度提升树0.8491.0

Bagging分类器得到的效果最好。

4.界面设计

所用工具:pyqt5

构成部分:登录界面、注册界面、找回密码界面、导入数据界面、增删查改界面、可视化展示界面、预测实现界面。

(由于这部分是项目成员所写,且代码量较大,并不进行详细展示)

登录界面:

 注册界面

主界面:

信息查询:

信息增加:

信息删除:

信息修改:

可视化分布展示:

预测与保存:

三、总结

        通过对广告点击率数据集的分析,发现点击率在7%左右,数据分布不太平衡,在每个属性的不同类别中,均有用户会点击广告,可以根据一些相关性较高的属性进行修改广告投放的策略。在进行数据预测的过程中,由于数据的比例相差较大,选择SMOTE采样,再进行模型的搭建,其中一些模型的效果较好,如随机森林模型、Bagging分类器,而逻辑回归模型的效果欠缺一些,根据效果较好的模型进行对其他数据进行预测,通过预测来判断是否公司值得继续投入广告。

        在界面上实现了数据库的增删查改功能,以及可以将查询的数据使用模型进行预测并保存到本地磁盘上,也可进行数据的可视化查看。

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐