// the find
wepe/PPD_RiskControlCompetition
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.