Closed alex-s-gardner closed 10 months ago
I think this stuff tends to depend on what/how you use MLJLM for.
Looping in @jbrea in since he's the one who introduced the change and had a good rationale for it (I think there's an issue where this stuff is discussed I'll try to find it)
Yeah here's a previous discussion: https://github.com/JuliaAI/MLJLinearModels.jl/issues/124
@tlienart thanks for the link to the previous discussion. To me it seems likely a smaller value for lambda
probably should have been set as the default. New users, if moving quickly, will assume that several of the models will give very bad predictions given the defaults. I realize that each use case is different but It seems to me that a lambda
would be used in the minority of use cases.
Isn't that what the end of the discussion and the relevant commit did?
In any case if you look at scikit learn for instance, which is one of the reference implementation out there, they use scaling and they use an L2 with a nontrivial lambda by default for logreg for instance.
I personally don't have a strong opinion on this, to me it's a matter of having correct docs and potentially guiding the user in what they should do (eg HP tuning) ; if you feel that the docs were unclear please consider opening a PR for it.
I think expanding the docs with examples of the different regression options would be a good idea. I'll open a new issue for this with the hopes of supplying a PR soon.
Just sinking my teeth into MLLinearModels and I see that
scale_penalty_with_samples = true
is the default. Playing around with a number of toy datasets it seems that scale_penalty_with_samples = true does not produce intuitive results whilescale_penalty_with_samples = false
does, e.g.:Given this, should
scale_penalty_with_samples = false
be made the default or is there a logical reason that it is not?