广告CVR一周总结

  基于某一次天池预测比赛项目,一周完成baseLine的体验总结。

  • 比赛要求:

    本次比赛以阿里电商广告为研究对象,提供了淘宝平台的海量真实交易数据,参赛选手通过人工智能技术构建预测模型预估用户的购买意向,即给定广告点击相关的用户(user)、广告商品(ad)、检索词(query)、上下文内容(context)、商店(shop)等信息的条件下预测广告产生购买行为的概率(pCVR),形式化定义为:pCVR=P(conversion=1 | query, user, ad, context, shop)。

    评估指标为:

      

  • 机器学习中的数据预处理

  在数据领域中,对数据进行可视化并进行分析对理解数据具有很好的帮助,非常重要。

  数据的预处理中,包含数据的清洗、转化和降维。详细参考https://www.cnblogs.com/charlotte77/p/5606926.html

  在真实的数据中,我们拿到的数据往往可能包含了大量的缺失值,可能包含大量的噪声,也可以因为人工等原因引入异常点离散点,需要我们对数据进行一波清洗操作。

  1. 对于比赛提供的原生数据与实际业务进行考虑并理解数据,可以对数据进行描述性统计分析,或者对数据进行可视化分析
  2. 缺失值处理:模型预测估计,特征统计值填补,特殊值(-1或NAN)代替,直接忽略不作处理,利用相似样本的均值,直接删除(如果缺失值所占比例不足3%删除样本;如果缺失值所占比例饿超95%且该特征实际意义不大,该特征直接删除)
  3. 异常值处理:通过统计分析法寻找异常点,然后进行删除、不处理、平均值代替或者视为缺失值
  4. 去重数据处理:对重复出现的数据进行丢弃   drop_duplicates
  5. 噪声数据处理:拟合数据

  针对实际数据进行数据转化

  1. 无量纲化:标准化(scale/StandardScaler)、归一化(MinMaxScaler)、正则化(normalizing)
  2. 信息冗余/二值化:将数值特征转化成布尔值的过程,阈值处理实现二值化
  3. 定量特征:对一些不连续离散特征数据进行标签化LabelEncoder(categorical),对有序离散特征数据进行OneHotEncoder(get_dummies, LR和深度学习涉及该环节,且该转化会使矩阵稀疏化)
  4. 缺失值:同上
  5. 信息利用率:由于实际数据并非严格的线性,特征之间可能存在互相关系,所以需要多项式特征得到特征的高阶交叉项(PolynomialFeatures)

  高维度数据增加模型的计算压力,且无关特征的干扰性强,故对数据进行降维(待研究。。。)

  1. PCA主成分分析法
  2. LI惩罚项的模型
  3. LDA线性判别分析法
  • 机器学习中的特征工程

  利用领域知识和现有数据,创造出新的特征,用于机器学习算法;可以手动(manual)或自动(automated)。神经网络的自动特征工程,常常不适用于现实中其他的复杂任务。同时,数据和特征工程决定了模型的上限,改进算法只不过是逼近这个上限而已。参考https://zhuanlan.zhihu.com/p/26444240?utm_source=weibo&utm_medium=social

  个人感觉以上的数据预处理其实也是特征工程的一部分,而这部分主要是对数据构建完成后的数据集特征进行处理。

  1. 处理已有类别特征-如颜色、性别、国籍、邮政编码等
    1. 离散无序特征:为分类值,采用one-hot编码实现特征数值化
    2. 对不连续离散或非数值(文本,字符)类别特征:LabelEncoder标号处理,根据情况再做one-hot编码
  2. 数值特征(可以连续可以离散,实数值)-如年龄、价格等(对数据进行单调转换,不会对决策树算法造成影响
    1. 标准化
    2. 连续数值特征离散化:根据实际模型应用情况可以对其进行阈值离散化
    3. 归一化
    4. 正则化
  3. 时间特征数据类型转化-如时间戳
    1. 针对时间戳提取相关的信息,如day、hour等等
  4. 特征选择-寻找最优特征子集。特征选择能剔除不相关(irrelevant)或冗余(redundant)的特征,从而达到减少特征个数,提高模型精确度,减少运行时间的目的。(参考西瓜书11章)
    1. 去除相关性不大的特征,相关性较高的优选选择
    2. 取值变化较小的特征放弃,方差为0,不发散
    3. 过滤法https://baijiahao.baidu.com/s?id=1582723859862488016&wfr=spider&for=pc:先通过pearson相关系数等方法选择最优特征方案再进行模型选择,fearture_selection.SelectKBest/SelectPercentile
    4. 包裹法:将特征选择作为特征子集搜索问题,通过模型评估特征子集筛选最优特征子集(典型算法:递归特征删除算法)
    5. 嵌入式:将特征选择算法作为组成部分嵌入到学习算法中(决策树中每次迭代需要对特征进行择优便是这种思想)
  5. 特征构造
    1. 数值特征的简单变换,加减乘除
    2. 类别特征和数值特征的组合:通过pandas的groupby操作对某一类别特征的某一数值特征求统计值,(该比赛中,可以对用户的当小时/当天点击广告数进行统计)
    3. 通过决策树创造新的特征,将决策树模型的输出叶子节点作为新的特征加入模型中。(具体模块包实现方法:apply()以及decision_path())
  • 模型选择

  本比赛的模型模块包,基于python的sklearn机器学习工具包

    https://www.jianshu.com/p/cd5a929bec33  Sklearn快速入门

    http://cwiki.apachecn.org/pages/viewpage.action?pageId=10030181 Sklearn0.18中文文档

    https://zhuanlan.zhihu.com/p/29053940?group_id=916424345212342272 常见计算广告点击率预估算法总结

    https://mp.weixin.qq.com/s?__biz=MzI4MDMwMDM3NA==&mid=2247485363&idx=2&sn=7515b0c84ba80b58d13019a9a4f5ba08&chksm=ebbbd98adccc509c34d8282ee2f093f02330269479974afd8c08df1f3bcd25094c64e4d3e40b&mpshare=1&scene=24&srcid=0223kmq4ugJSfDu6YouZEVmY#rd 十大传统机器学习算法的简单概念描述

    https://blog.csdn.net/july_sun/article/details/53088673 机器学习常见分类器比较

  本次比赛的模型选择,先以LR完成基本的base_line,再跑RF、GBDT、XGBoost、LightGBM模型。GBDT+LR、FM和深度学习模型未研究

  • LR模型
    1. 最简单的线性回归模型,但是其对正负样本的额平衡十分敏感,而该比赛项目中的交易样本与非交易样本的占比差很大
    2. 容易欠拟合
    3. 缺失值对模型的影响,需要进行处理
    4. 对特征值需要进行归一化或者标准化处理

  在该模型方案中,我们将训练集和测试集的特征相结合进行缺失值处理、数据转化、特征提取构造、类别标签编码和oneHot编码、标准化处理等,然后跑模型

  • RF随机森林模型-参考西瓜书第八章
    1. 对离群点非常敏感,缺失值对决策树模型的影响不大
    2. 过拟合
    3. 计算开销小。泛化能力强,
    4. 方差小,错误率低

  在该模型方案中,我们将训练集和测试集的特征相结合进行数据转化、特征提取构造、类别标签编码、标准化处理(可有可无,不影响整体)等,然后跑模型

  https://www.jianshu.com/p/005a4e6ac775   https://www.cnblogs.com/rocketfan/p/4324605.html(补)  GBDT的基本介绍

  https://blog.csdn.net/baoyan2015/article/details/56016169 随机森林、GBDT和LR的理解和对比

  http://blog.sina.com.cn/s/blog_7103b28a0102w6zr.html  GBDT和RF的比较

  https://www.cnblogs.com/DjangoBlog/p/6201663.html  GBDT调参干货

  • XGBoost模型
    1. 相对于GBDT,在损失函数的优化上在泰勒公式展开后多利用了二阶求导函数
    2. 加了剪枝处理
    3. 在目标函数中引入正则化,防止过拟合

  http://www.52cs.org/?p=429 陈天奇 XGBoost中文版原理介绍

  https://blog.csdn.net/sb19931201/article/details/52557382 XGBoost入门

  https://blog.csdn.net/qq_28031525/article/details/70207918 RF、GBDT和XGBoost的区别

  • LightGBM模型 
    1. 轻量级GBM梯度提升机
    2. 模型训练速度飞快,效率高
    3. 基于直方图的决策树算法
    4. 相对于XGBoost内存上优化

  https://blog.csdn.net/niaolianjiulin/article/details/76584785 LightGBM原理介绍

  http://www.360doc.com/content/18/0101/17/40769523_718161675.shtml GBDT、XGBoost和LightGBM介绍

  

 

 

  https://blog.csdn.net/snoopy_yuan/article/details/75808006 参考同类型比赛经验,移动推荐算法

  https://blog.csdn.net/weixin_37933986/article/details/68488339 机器学习常见损失函数

  https://blog.csdn.net/google19890102/article/details/50522945 损失函数

  https://www.lfd.uci.edu/~gohlke/pythonlibs/ 黑科技(里面包含很多python第三方库的下载资源)

  https://blog.csdn.net/losteng/article/details/78378958 GBDT+LR

  https://blog.csdn.net/lilyth_lilyth/article/details/48032119

  

 

转载于:https://www.cnblogs.com/zhenglz12/p/8646681.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值