Add transformer defined by R-style formula
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 30/100
- Issue type
- Feature
- Clarity
- Needs clarification
- Activity status
- Stale
- Tech stack
- julia
- Domain
- machine-learning
Research direction
Start by reading the StatsModels formula documentation and MLJ's Static transformer documentation, then inspect the related FeatureSelection.jl and MLJGLMInterface.jl issues. Clarify the one-sided formula behavior, table-to-table output, categorical encoding, and informative column names before defining completion criteria.
Written by the indexing model from the issue text.
Description
I think it would be useful (especially to R users) to have an MLJ formula-based transformer that can be inserted anywhere in an MLJ pipeline (or other composite model). Here "formula" means "one-side formula"; I don't think two-sided formulas make much sense in the MLJ context because the target and features are treated separately, like in sklearn.
StatsModels.@formula apparatus appears to provide most of what is needed here already - check out the docs. So this is hopefully just wrapping that.
This transformer would probably be a Static model with a one-sided StatsModels formula as parameter. Ideally, and for consistency, it would perform a table-to-table transformation, rather than a table-to-matrix transformation, which is what StatsModels does. This does cause problems for very-high cardinality categorical features (which get one-hot encoded when you apply StatsBase formula??) but does have the advantage that new columns would come with informative names for interpretation downstream of the transformer. Actually, it probably makes sense not to force one-hot encoding anyway, as not all supervised models need this and we already have transformers to do one-hot encoding which generate the new column names.
I recall slack discussions with @kleinschmidt about this (now lost to the ether). Perhaps he would care to chime in.
See also https://github.com/JuliaAI/FeatureSelection.jl/issues/29 and https://github.com/JuliaAI/MLJGLMInterface.jl/issues/13
- Dominant language
- Julia
- Stars
- 1
- Forks
- 2
- Avg merge
- 9d 22h
- Merged PRs (30d)
- 2
Getting set up
This project ships no dev container, Dockerfile or contributing guide, so setting up is up to you: start from its README, and see our first-contribution guide for the general steps.
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from JuliaAI/MLJTransforms.jl
-
Difficulty 2/5 1-3 hours Newbie friendliness 65/100
JuliaAI/MLJTransforms.jl#85 ·
-
Difficulty 3/5 Half a day Newbie friendliness 42/100
JuliaAI/MLJTransforms.jl#87 ·
-
Add a `Transformer` wrapper for models that supervised that transformMay be free again @ablaom claimed this 200 days ago, and no pull request is open. Openenhancement
JuliaAI/MLJTransforms.jl#52 · 3 comments · 1 assignee ·
-
Difficulty 4/5 3-5 days Newbie friendliness 35/100
JuliaAI/MLJTransforms.jl#39 · 1 comment ·
-
Difficulty 4/5 3-5 days Newbie friendliness 35/100
JuliaAI/MLJTransforms.jl#21 · 13 comments ·
All issues in JuliaAI/MLJTransforms.jl
Similar issues
-
code-review
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
JuliaNLSolvers/Optim.jl#1296 ·
-
OptimizationCUTEst jobs fail: gfortran not installed on the runnerPossibly taken @ChrisRackauckas-Claude claimed this today. Open
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
SciML/SciMLBenchmarks.jl#1946 · 1 comment ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
JuliaSmoothOptimizers/NCL.jl#101 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 69/100