Criteo/Kaggle Competition of CTR prediction
Java Python Shell
Latest commit 6507f19 Oct 7, 2014 @songgc change format
Failed to load latest commit information.
data add files Oct 7, 2014
display-ad-java change format Oct 7, 2014
scripts add files Oct 7, 2014
work add files Oct 7, 2014
.gitignore add files Oct 7, 2014
LICENSE Initial commit Oct 5, 2014 Update Oct 7, 2014 add files Oct 7, 2014

Display Advertising Challenge


This is the code was written for the Kaggle Criteo Competition of CTR prediction.

Since the data are highly sparse, the basic methodology is to use logistic regression with appropriate quadratic/polynomial feature generation and regularization to make sophisticated and over-fitting-tractable models. Vowpal Wabbit is the major machine learning software used for this project. Since the data size is challenging in terms of my personal workstation (a single quad-core CPU), the techniques of feature selection and model training are selected based on the trade off between performance and CPU/RAM resource limit.

Dependencies and requirements

Please note that the code was written for my personal learning and practice in new features of Java 8 and Python 3.4 in Ubuntu 14.04. The code cannot be run in early versions of these two languages or other OSs. Compatibility is not considered here.

  • Java 8
  • Python 3.4
  • Maven 3
  • Redis 2.8
  • Pandas 0.14
  • Vowpal Wabbit 7.7
  • Java-based open source projects: (Maven will install them automatically)
    • guava 17.0
    • jedis 2.5.1
    • commons-lang3 3.3.2

How to run

  • Copy train and test data file (train.csv, test.csv) to data folder
  • Compile the Java code by
$ cd display-ad-java
$ mvn package # or mvn install
  • Make sure a redis instance running at localhost:6379
  • Set the path of binary vw (VW_BIN) in, such as
export VW_BIN=/path/to/vw/binary
  • Finally,
$ cd work
$ ../