Learning Non-Parametric Models with Guarantees: A Smooth Lipschitz Regression Approach