Convex Factorization Machines
API design for machine learning software: experiences from the scikit-learn project