一、介绍

♦通过用户前四个月(04.15~08.15)的用户行为预测用户第五个月(08.15~09.15)将会购买的品牌。用户共有四种行为(type)分别是:点击(0)、购买(1)、购物车(2)、收藏(3)。
数据原始内容如下:

比赛评价方式按照F1排名,F1=2×P×R/(P+R)其中,P是准确率为命中的数量除以用户的预测数,R是召回率为命中的数量除以真实的购买数。采用F1评分,在正负样本数不平衡的系统中代替正确率作为系统的评价指标。

二、方法介绍与特征选择

♦逻辑回归随机森林。首先,在使用逻辑回归时,需要对特征进行零均值处理,使每一维特征均在一定的范围内,随机森林虽然对所选特征有更好的鲁棒性,但将每一维特征规范化为近似服从正太分布时往往会有更好的分类效果。其次,在特征数量上,两者适用范围从几维到几百维均可,一般在训练数据充足的情况下随机森林较逻辑回归有更好的结果,在训练数据较少时选择逻辑回归,还有,如果模型需要“自适应”或需要在使用过程中不断学习,则选择逻辑回归,因为随机森林模型一但确定就无法再进行修改,若预测新情况只能重新训练。注意,在实现大的模型方法前一定先用小规模数据进行测试,去分析理解问题;一定要划分训练集验证集测试集,一定要先在本地进行模型评估再考虑应用到大规模数据处理中。
特征选择,需要考虑的特征往往包括以下三点,用户品牌关系特征,用户特征,品牌特征。结合本次比赛,时间序列相关的推荐算法,如何将时间考虑进特征的选择是重点也是难点。现在思考如何对用户品牌关系建模,如果我们对所有的用户对品牌行为建一个模型,则该模型的含义是将所有的用户与品牌无差别的对待,即认为所有的用户具有相同的用户行为(如看过n次就会买,之前买过还会买,不考虑某些用户经常网购,有些用户则反之),所有的品牌产品具有相同的产品特性(不考虑产品的属性如高端耐用品,日常消耗品等)。换言之对用户品牌的无差别对待的结果是,当某用户U对某品牌B在T时间内点击数达到a,某买数达到b,收藏数达到c,购物车数达到d的概率超过P时则预测下个月用户U将购买品牌B。接下来将上面的UBTabcd具体化为训练用的特征。对T时间,在时间序列的推荐系统中,往往时间距离“现在”越接近,则准确率越高,又通过分析大赛提供的数据,周期性的每七天出现较高交易数,所以在时间的划分上采用距”现在”两天,七天,十四天,二十八天…作为时间的划分段。而对于abcd采用相应时间段的行为累计数。再考虑用户特征,品牌特征可按照相同的方式,划分天数,统计不同时间段的信息作为特征并将以上三部分特征进行组合(注:拼接时往往不能直接将特征A连接在特征B后)。通过添加用户特征与品牌特征,我们的模型最终想表达含义即:当具有某用户属性条件的用户U对具有某品牌属性的品牌B在T时间内点击数达到a,某买数达到b,收藏数达到c,购物车数达到d的概率超过P时则预测下个月用户U将购买品牌B。
♦需要注意的是,采用单纯的累计会导致不同特征间相关性较差,这也将影响模型效果。所以可以加入多项式特征如x*y,x2…等。其次,可以添加由其他方法计算得到的特征,如考虑时间衰退的方法为品牌、用户评分(基于用户点击的评分方法),用以评价该商品的近期热度,该用户的近期购买热度等。此外还可以考虑用户与用户之间的关系,品牌与品牌之间的关系。如以下情况,用户A与B均购买了X1X2X3…XnY产品,但A还购买了Z 产品,则B也可能购买Z产品;又如购买台灯时可能一并买个灯泡,或是经典的啤酒与尿布案例,即产品XY之间若具有很强的相关度则用户在购买X后,算法可以预测未来会购买Y,实现过程可参考PageRank实现过程。在计算以上特征的时候,简单的方法是使用MapReduce架构,设置Map阶段的Key值以及对应Key值的Value值,再于Reduce阶段进行收集合并。

三、数据过滤预处理

♦在机器学习系统的搭建过程中,往往将所有数据分成训练集,验证集与测试集,其中在调节模型参数模型时选择验证集,在评价模型时使用测试集。若训练数据较少,且正负样本数差距较大时,我们可以采用异常检测的方法,即对正常样本建模,评估每个样本属于正常的可能性,去掉异常的样本数。

四、模型融合

♦常用的方法有boosting方法,选择训练集的部分数据用于训练多个模型,最终结果选择多个模型的均值。如随机森林为多个决策树融合的结果。又如,在本次比赛中,可以先通过训练多个随机森林模型分别使用(或使用全部特征)UB特征,U特征,B特征得到预测概率P1P2P3,之后使用逻辑回归,做最后的分类。

A公司 推荐算法大赛 总结的更多相关文章

  1. 天池大数据周冠军分享|附移动推荐算法赛答辩会Top5选手PPT

    上周是淘宝穿衣搭配算法大赛开始评测后的第一周,周冠军是来自浙江大学的"FUC AUTH"队.他们在夺得本周冠军之后,还将自己的获胜经验分享给了大家,究竟有什么秘诀呢? 阿里巴巴天池 ...

  2. 首届全球RTB(实时竞价)广告DSP算法大赛

    首届全球RTB(实时竞价)广告DSP算法大赛 竞赛指南     RTB (Real Time Bidding, 实时竞价) 是近年来计算广告领域最激动人心的进展之一. 它增加了展示广告的透明度与效率, ...

  3. 智慧航空AI大赛-阿里云算法大赛总结 第一赛季总结

    [以前的文章]最后一公里极速配送 - 阿里云算法大赛总结 总结一下新的教训 1.由于都是NP难题,获得最优解用常规的方法非常困难,对于不是算法科班出身的人来说,首先应该到网络上寻找一下论文,是否有一些 ...

  4. Python推荐算法学习1

    1.闵可夫斯基距离 闵可夫斯基距离可以概括曼哈顿距离与欧几里得距离.  其中r越大,单个维度差值大小会对整体产生更大的影响.这个很好理解,假设当r=2时一个正方形对角线长度,永远是r=3时正方体对角线 ...

  5. (转) 基于MapReduce的ItemBase推荐算法的共现矩阵实现(一)

    转自:http://zengzhaozheng.blog.51cto.com/8219051/1557054 一.概述 这2个月为公司数据挖掘系统做一些根据用户标签情况对用户的相似度进行评估,其中涉及 ...

  6. HAWQ + MADlib 玩转数据挖掘之(四)——低秩矩阵分解实现推荐算法

    一.潜在因子(Latent Factor)推荐算法 本算法整理自知乎上的回答@nick lee.应用领域:"网易云音乐歌单个性化推荐"."豆瓣电台音乐推荐"等. ...

  7. 2018科大讯飞AI营销算法大赛全面来袭,等你来战!

    AI技术已成为推动营销迭代的重要驱动力.AI营销高速发展的同时,积累了海量的广告数据和用户数据.如何有效应用这些数据,是大数据技术落地营销领域的关键,也是检测智能营销平台竞争力的标准. 讯飞AI营销云 ...

  8. 2019腾讯广告算法大赛 Rank23

    由于官方审核代码,代码将在2019年6月28号后开源 写在前面 这次腾讯的第三届广告算法大赛,是我第一次参加,取得了初赛与复赛均为23名的成绩,毕竟我只是初打比赛不久的小白.我想在此分享下我的基本解题 ...

  9. 易观OLAP算法大赛结果揭晓,开源组黑马放大招!

    100+天激烈赛程,40+国内顶级技术豪门对决,历经研发内部测试.正式环境测试和易观数据正式环境跑benchmark三大阶段.10月28日,易观OLAP算法大赛优胜名单出炉! 40+技术门派比武 易观 ...

随机推荐

  1. linux数据库copy方法

    相信大多数程序员都会遇到数据库copy的问题,下面就总结几种常见的方法,针对有mysql基础的同学参考 方法一:利用sqlyog的copy database的功能,如图 这种最简单,速度比较慢: 方法 ...

  2. LArea 微信端 地址选择

    最近做到一个项目,微信端的商城需要地址选择功能 在百度上看了,采用LArea.js....下载实例,在移动端模拟器上运行是比较好的, 在微信上模拟后出现很多问题, 1,出现undefined 都定义正 ...

  3. MySQL巧用FIND_IN_SET和GROUP_CONCAT函数减少Java代码量

    数据库表简介:物品表 `id` int(11)  '物品id,唯一标识', `name` varchar(255) '物品名称', `level` int(11) '物品类别等级,礼品包为最高级1,类 ...

  4. 文本处理工具-AWK

    awk简介 awk功能与sed相似,都是用来进行文本处理的.awk可以自动地搜索输入文件,并把每一个输入行切分成字段.许多工作都是自动完成的,例如读取每个输入行.字段分割. awk工作原理 awk一次 ...

  5. 描述linux目录结构以及目录结构命名规定

    FHS全称(Filesystem Hierarchy Standard),中文意思是目录层次标准,是linux的目录规范标准. 详情点击查看 FHS定义了两层规范: 第一层:“/”目录下的各个目录应该 ...

  6. 还在使用pdf、word简历?简单五步实现github托管个人逼格简历

    写在前面: 什么是git.github? git 版本控制工具 github 通过git工具做的版本控制的项目托管平台 项目开发肯定不止一个程序猿,多个程序猿针对同一个文件进行代码读写操作时,是先保存 ...

  7. Cloudera Manager 安装 CDH5

    文档说明 本文是针对Linux CentOS6服务器与CDH5.15的安装手册. 关于CDH和ClouderaManager CDH(Cloudera's Distribution, includin ...

  8. python__基础 : 类的__new__方法与实现一个单例

    __new__ : 这个方法的作用主要是创建一个实例,在创建实例时首先会调用 __new__方法 ,然后调用__init__对实例进行初始化, 如果想修改 __new__ 这个方法,那么最后要 ret ...

  9. python之doctest的用法

    doctest是python自带的一个模块,你可以把它叫做“文档测试”(doctest)模块. doctest的使用有两种方式:一个是嵌入到python源中.另一个是放到一个独立文件. doctest ...

  10. elasticsearch 5.x 系列之七 基于索引别名的零停机升级服务

    一,写在前面的话,elasticsearch 建立索引时的Mapping 设置 建议你在设计索引的初期,就把索引的各个字段设计好,因为,elasticsearch 的各个字段,定义好类型后,就无法进行 ...