Santander Value Prediction Challenge: Open Solution

Join the chat at https://gitter.im/minerva-ml/open-solution-value-prediction license

This is an open solution to the Santander Value Prediction Challenge :smiley:

More competitions :sparkler:

Check collection of public projects :gift:, where you can find multiple Kaggle competitions with code, experiments and outputs.

Our goals

We are building entirely open solution to this competition. Specifically:

  1. Learning from the process - updates about new ideas, code and experiments is the best way to learn data science. Our activity is especially useful for people who wants to enter the competition, but lack appropriate experience.
  2. Encourage more Kagglers to start working on this competition.
  3. Deliver open source solution with no strings attached. Code is available on our GitHub repository :computer:. This solution should establish solid benchmark, as well as provide good base for your custom ideas and experiments. We care about clean code :smiley:
  4. We are opening our experiments as well: everybody can have live preview on our experiments, parameters, code, etc. Check: Santander-Value-Prediction-Challenge :chart_with_upwards_trend: and screens below.
LightGBM train and validation performance on folds :bar_chart: LightGBM experiment logged values :bar_chart:
train-validation-results-on-folds LightGBM-learning-curves

Disclaimer

In this open source solution you will find references to the neptune.ml. It is free platform for community Users, which we use daily to keep track of our experiments. Please note that using neptune.ml is not necessary to proceed with this solution. You may run it as plain Python script :wink:.

How to start?

Learn more about our solutions

  1. Check Kaggle discussion for most recent updates and comments.
  2. Read Wiki pages, where we describe solutions in more detail. Click on the tropical fish to get started :tropical_fish: or pick solution from the table below.
link to code name CV LB link to the description
solution 1 honey bee :honeybee: 1.39 1.43 LightGBM and 5fold CV
solution 2 beetle :beetle: 1.60 1.77 LightGBM on binarized dataset
solution 3 dromedary camel :dromedary_camel: 1.35 1.41 LightGBM with row aggregations
solution 4 whale :whale: 1.3416 1.41 LightGBM on dimension reduced dataset
solution 5 water buffalo :water_buffalo: 1.336 1.39 Exploring various dimension reduction techniques
solution 6 blowfish :blowfish: 1.333 1.38 bucketing row aggregations

Start experimenting with ready-to-use code

You can jump start your participation in the competition by using our starter pack. Installation instruction below will guide you through the setup.

Installation (fast track)

  1. Clone repository and install requirements (check requirements.txt)
  2. Register to the neptune.ml (if you wish to use it)
  3. Run experiment:

:trident:

neptune run --config neptune_random_search.yaml main.py train_evaluate_predict --pipeline_name SOME_NAME

:snake:

python main.py -- train_evaluate_predict --pipeline_name SOME_NAME

Installation (step by step)

  1. Clone this repository
    git clone https://github.com/minerva-ml/open-solution-value-prediction.git
  2. Install requirements in your Python3 environment
    pip3 install -r requirements.txt
  3. Register to the neptune.ml (if you wish to use it)
  4. Update data directories in the neptune.yaml configuration file
  5. Run experiment:

:trident:

neptune login
neptune run --config neptune_random_search.yaml main.py train_evaluate_predict --pipeline_name SOME_NAME

:snake:

python main.py -- train_evaluate_predict --pipeline_name SOME_NAME
  1. collect submit from experiment_directory specified in the neptune.yaml

Get involved

You are welcome to contribute your code and ideas to this open solution. To get started:

  1. Check competition project on GitHub to see what we are working on right now.
  2. Express your interest in particular task by writing comment in this task, or by creating new one with your fresh idea.
  3. We will get back to you quickly in order to start working together.
  4. Check CONTRIBUTING for some more information.

User support

There are several ways to seek help:

  1. Kaggle discussion is our primary way of communication.
  2. Read project's Wiki, where we publish descriptions about the code, pipelines and supporting tools such as neptune.ml.
  3. Submit an issue directly in this repo.