电商网站CTR预估实战

数据准备

KASANDR Data Set

Abstract: KASANDR is a novel, publicly available collection for recommendation systems that records the behavior of customers of the European leader in e-Commerce advertising, Kelkoo.

Download: Data FolderData Set Description

Data Set Characteristics:MultivariateNumber of Instances:17764280Area:Life
Attribute Characteristics:IntegerNumber of Attributes:2158859Date Donated2017-05-16
Associated Tasks:Causal-DiscoveryMissing Values?N/ANumber of Web Hits:16420

Data Set Information:

We created this data by sampling and processing the www.kelkoo.com logs. The data records offers which were clicked (or shown) to the users of the www.kelkoo.com (and partners) in Germany as well as meta-information of these users and offers and the objective is to predict if a given user will click on a given offer.

Attribute Information:

userid offerid countrycode category merchant utcdate implicit-feedback

  1. csv (3,14 GB)
  • Instances: 15,844,718
  • Attributes: 2,299,713
  • userid: Categorical, 291,485
  • offerid: Categorical, 2,158,859
  • countrycode: Categorical, 1 (de – Germany)
  • category: Integer, 271
  • merchant: Integer, 703
  • utcdate: Timestamp, 2016-06-01 02:00:17.0 to 2016-06-14 23:52:51.0
  • implicit feedback (click): Binary, 0 or 1
  1. csv (381,3 MB)
  • Instances: 1,919,562
  • Attributes: 2,299,713
  • userid: Categorical, 278,293
  • offerid: Categorical, 380,803
  • countrycode: Categorical, 1
  • category: Integer, 267
  • merchant: Integer, 738
  • utcdate: Timestamp, 2016-06-14 23:52:51.0 to 2016-07-01 01:59:36.0
  • implicit feedback (click): Binary, 0 or 1

Relevant Papers:

Sumit Sidana, Charlotte Laclau, Massih-Reza Amini, Gilles Vandelle, and Andre Bois-Crettez. ‘KASANDR: A Large-Scale Dataset with Implicit Feedback for Recommendation’, SIGIR 2017.

数据说明

KASANDR 这个单词,其实是 Kelkoo Large Scale June Data for Recommendation的缩写,就是来源于Kelkoo这个电商网站的用户浏览记录。

数据处理

预览数据

查看数据,了解大致情况:

相关字段含义为:

字段猜测的含义
userid用户的唯一标签
offerid商品的唯一标签
countrycode国家代码,由于全是Germany,所以没有什么用
category商品分类
merchant供应商/商家
utcdate行为交互时间
rating隐性行为反馈的值,0或1

特征准备

1、字符串特征做下encoding

2、基于现有特征基础上增加一些聚合特征

商品热度:

offerid_timesofferid 出现次数
category_timescategory出现次数
merchant_timesmerchant出现次数

考虑到数字比较大,可以再使用前先进行规格化

历史记录:

pre_category用户产生这条记录前,产生过相同category的浏览次数
pre_merchant用户产生这条记录前,产生过相同merchant的浏览次数
pre_offerid用户产生这条记录前,产生过相同offerid的浏览次数

3、去除不需要使用的特征

模型训练

这里使用3种方法的click预测效果,分别是LightGBMFM和FFM

LightGBM

代码示例:

输出结果:

FM

这里使用的是基于Keras的Keras的FM模型,网络结构图如下:

由于安装的版本不一致,这里暂未测试。

FFM

由于libffm在Windows遇到问题,所以以下代码只能在Linux环境下运行。我这里使用的是Windows Linux子系统,安装的包:https://github.com/alexeygrigorev/libffm-python

参考链接:

微信支付标点符 wechat qrcode
支付宝标点符 alipay qrcode

Python检验数据是否正态分布

判断数据是否符合正态分布,比如使用3-sigma判断数据异常前,首先需要确定的是数据是否符合正态分布。今天一起

数据探索Pandas-Profiling与Dataprep.…

在使用数据前,我们首先要做的事观察数据,包括查看数据的类型、数据的范围、数据的分布等。Pandas-Profi

开源指标可视化工具Graphite

Graphite 是处理可视化和指标数据的优秀开源工具。它有强大的查询 API 和相当丰富的插件功能设置。事实

发表评论

电子邮件地址不会被公开。 必填项已用*标注