finds.dev← search

// the find

wepe/PPD_RiskControlCompetition

★ 345 · Java · updated Mar 2017

3rd Place Solution for PPD Risk Control Competition

A 2017 competition submission for a Chinese P2P lending risk control challenge (PPD), finishing 3rd place. It documents the team's full ML pipeline: feature engineering, sampling, model training (XGBoost, SVM, LR), and ensemble blending. Useful as a reference for credit risk ML workflows, not as production code.

The ensemble stage is well-structured — cal_mic.py computes inter-model correlation before blending, which is the right way to pick diverse base models rather than just stacking everything. The roughset-based parallel oversampling (MY0.java) is an unusual choice for class imbalance that you don't see often in competition writeups. Feature engineering is split across Java and Python in a way that suggests real thought about parallelism vs. iteration speed. A PDF solution writeup is included, which is rare and actually explains the reasoning behind decisions.

Nine years old and tied to a specific closed dataset — none of this runs without data you don't have access to. The Java/Python split makes the pipeline awkward to reproduce; there's no build file, no requirements.txt, no instructions for getting the Java pieces to compile. GraphLab (now Turi Create) was already a controversial dependency in 2017 and graphlab_xgboost.py is effectively dead code at this point. The README is entirely in Chinese with no English summary, which limits its reach considerably.

View on GitHub →

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →