Skip to content
This repository has been archived by the owner on May 12, 2019. It is now read-only.

Unified API for different ERM-based approaches #10

Open
jumutc opened this issue Oct 13, 2014 · 2 comments
Open

Unified API for different ERM-based approaches #10

jumutc opened this issue Oct 13, 2014 · 2 comments

Comments

@jumutc
Copy link
Contributor

jumutc commented Oct 13, 2014

We need a generic API suitable for different ERM-based approaches. Right now some signatures (for instance optimize method) are completely tailored towards only one hyperparameter λ. In general there should be enough abstraction in API to handle tons of existing approaches without unveiling the implementation details.

@BigCrunsh
Copy link
Contributor

Hey @jumutc. I agree that the API is probably not perfect and has to be adapted. However, I am a fan of starting with something simple and make it more complex as soon as it becomes necessary. Indeed having the hyperparameter(s) as an explicit argument in optimize is a needless limitation. The idea was to simplify tuning via crossvalidation and grid search (see, e.g., https://github.com/JuliaStats/MLBase.jl/). Conceptually, I would argue that the hyperparameter belongs to the regularizer and should thus be a part of the method RegERM:

function optimize(method::RegERM; optimizer::Symbol=:l_bfgs)

Does that help? Do you have any other suggestions? I think it would be helpful, if you give some specific examples that are not captured by the current API to see which abstraction is missing.

@jumutc
Copy link
Contributor Author

jumutc commented Dec 5, 2014

Hey @BigCrunsh ... One major thing to be considered (from my perspective) is how we can elaborate the easiest way to use such method-dependant interfaces and models for non-ML practitioner!? If one has to take care of cross-validation and fine-tuning of these hyperparameters it makes a package much harder to start with! Maybe we can couple RegERMs.jl with MLBase.jl somehow and alleviate practical usage of the first one?

P.S. Interface that you suggested is perfectly fine, but the instantiation of such RegERM method might be a trouble as I already mention above!

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants