Releases: JuliaAI/MLJ.jl
v0.18.0
MLJ v0.18.0
This release supports changes appearing in the upstream package releases
listed below (click on package for detailed release notes).
The principal change, which is breaking, is how model
serialization works. The previous MLJ.save
method still works, but
you can only save to Julia JLS files, and the format is
new and not backwards compatible. A new workflow allows for
serialization using any generic serializer; serialization now plays
nicely with model composition and model wrappers, such as TunedModel
and EnsembleModel
(even with non-Julia atomic models),
and training data will not be inadvertently serialized.
Refer to this manual page details.
The package MLJSerialization has been dropped as a dependency as
serialization functionality has moved to MLJBase.
Closed issues:
- Use of
ScientificTypes
andCategoricalArrays
in native model (#907) - Broken tutorial link (#917)
- For a 0.18 release (#920)
Merged pull requests:
v0.17.3
v0.17.2
MLJ v0.17.2
Closed issues:
- Discussion: Outlier Detection API in MLJ (#780)
- Is MLJ ready for Julia 1.7? (#869)
- Documentation of 'Common MLJ Workflows' shows wrong
partition
syntax (#894) - [Discussion] Review model documentation strings (#898)
- Update list of models in docs for MLJText model change (#900)
- Proposal for new
Model
docstrings standard (#901)
Merged pull requests:
- Documentation fix. No new release (#895) (@ablaom)
- Explain outlier detection models (#896) (@davnn)
- Update list_of_supported_models.md (#897) (@zsz00)
- Remove binder notebook from readme and documentation (#902) (@ablaom)
- BagOfWordsTransformer -> CountTransformer in List of Models (#903) (@ablaom)
- A number of documentation updates. No new release. (#904) (@ablaom)
- Tweak docs for nodes (#905) (@ablaom)
- Export
UnivariateFillImputer
(#909) (@ablaom) - For a 0.17.2 release (#910) (@ablaom)
v0.17.1
MLJ v0.17.1
- Programatically export all measure types, aliases and instances, which catches a few previously missed cases (#892)
- Programatically export almost all model and measure traits (#892)
- Bump MLJBase requirement to ensure built-in measure instances (eg
log_loss
) have doc-strings.
Closed issues:
- Extend model serialization to composite models with a components needing specialised serialization (#678)
- New measures
RSquared
and aliasesrsq
,rsquared
need exporting (#880) - Re-export all traits. (#888)
- What does MLJ.save really save? (#889)
- Programmatically re-export measures and their aliases from MLJBase (#890)
Merged pull requests:
- Fix typos in Getting Started (#881) (@takuti)
- Typos in docs. No new release. (#882) (@ablaom)
- Fix MLJFlux.jl project URL (#883) (@i-aki-y)
- Broken link fixes in docs. No new release. (#884) (@ablaom)
- Update examples/lightning_tour/ for MLJ 0.17 (#886) (@ablaom)
- Added recent measures to src/MLJ.jl (#887) (@sayantan1410)
- Clean up export of measure-related methods (#892) (@ablaom)
- For a 0.17.1 release (#893) (@ablaom)
v0.17.0
MLJ v0.17.0
Bumps the versions of the following dependencies:
Following are the changes relevant to most users. Developers and advanced users can refer to the release notes linked above for a complete list.
-
(breaking)
schema(X)
no longer includes thenrows
property. Usenrows(X)
instead (JuliaAI/MLJBase.jl#698) -
(mildly breaking)
unpack(table, p1, p2, ...)
now includes an extra component in its return value, namely a table with all columns not selected by any of the predicatesp1, p2, ...
Frequently, users' existing code will safely ignore the extra component (JuliaAI/MLJBase.jl#691) -
(breaking) Change syntax
EnsembleModel(atom=...)
toEnsembleModel(model=...)
for consistency with other MLJ model wrappers (eg,TunedModel
) but additionally allow passing model as non-keyword argument, as inEnsembleModel(my_tree, ...)
. -
(breaking) The default
scale
for unboundedNumericRange
s is changed from:log
to:log10
(JuliaAI/MLJBase.jl#677). -
(breaking) Remove deprecated code for exporting learning networks by hand (JuliaAI/MLJBase.jl#643), which should instead be achieved using
return!
method (docs). -
(mildly breaking) The
range(model, :hyperparameter, ...)
constructor now tries to infer type information for the range from the correspondingmodel
struct field type for:hyperparameter
, rather than from the type of the current value (JuliaAI/MLJBase.jl#666) -
(breaking) Dissallow previously deprecated use of
wrapped_model=...
inBinaryThresholdPredictor
. Correct syntax isBinaryThresholdPredictor(model=...)
orBinaryThresholdPredictor(model, ...)
(https://github.com/JuliaAI/MLJModels.jl/421) -
(enhancement) Add a new
Pipeline
type for constructing pipelines without macros. Pipelines are to be constructed using the syntaxmodel1 |> model2 |> ...
or with the constructorPipeline
which exposes more options. The@pipeline
macro is deprecated (JuliaAI/MLJBase.jl#664) -
(enhancement) Add the metamodel
TransformedTargetModel
for wrapping supervised models in transformations of the target variable, which can be learned transformations (eg, standardisation). Previously this functionality was available as part of@pipeline
(JuliaAI/MLJBase.jl#678) -
(enhancement) The
partition
function can now be called with a tuple of data arguments, for "synchronised" partitioning, but this requires specifyingmulti=true
(because some tables are tuples) as in(Xtrain, ytrain), (Xtest, ytest) = partition((X, y), 0.6, rng=123, multi=true)
(JuliaAI/MLJBase.jl#696) -
(enhancement) Create a way to include the state, after training, of arbitrary nodes of a learning network, in the report of a model created by exporting the learning network (JuliaAI/MLJBase.jl#644)
-
(new models) Add the following new models to the registry from MLJText.jl:
BM25Transformer
,BagOfWordsTransformer
(https://github.com/JuliaAI/MLJModels.jl/419) -
(enhancement) Implement the Tables.jl interface for objects returned by
schema
(JuliaAI/ScientificTypes.jl#174)
Closed issues:
- Add facility to quickly define a model stack with meta-learner (#76)
- Bug in MultinomialNBClassifier (#97)
- Add docs for 'pipe' syntax (#231)
- Use alphabetical ordering for ambiguous provider package (#257)
- FAQ for Julia Meetup 22.10.2019 (#286)
- More arrows (#307)
- Support for class weights (and interpretation) (#328)
- Visualizing hyperparameter tuning results for arbitrary numbers of parameters (#416)
- Check number of levels of y_train before calling fit (#542)
- @load_MNIST (#584)
- Programmatic creation of pipelines (#594)
- Unable to retrieve machine in Mac which is saved from Windows (#840)
- Broken Link (#858)
- Problems with compilation failure due to "ArrayLikeVariate not defined" (#863)
- @pipeline throws
LoadError
/UndefVarError
in Pluto notebook (#865) - transformations like in R with formulas
y ~ a + a * b + b^3
. (#867) - Loading a Flux model into a MLJ machine (#870)
- Stratified CV not working - LoadError: MethodError: no method matching iterate(::CategoricalValue{String, UInt32}) (#871)
- Add new MLJText models to list of models (#872)
- Add doc-string for
PerformanceEvaluation
to manual (#873) - Add entry to manual explaining new interface point for exported learning networks. (#875)
Merged pull requests:
v0.16.11
v0.16.10
MLJ v0.16.10
Closed issues:
Merged pull requests:
v0.16.9
MLJ v0.16.9
Closed issues:
- Document the
Explicit
tuning strategy (#822) - Add TSVD transformer to list of models (#824)
- Remove
@234
business from display of MLJ objects? (#842) - Inconsistent output type for different clustering models (#846)
Merged pull requests:
- Documentation fix. No new release (#837) (@ablaom)
- More documentation fixes. No new release (#838) (@ablaom)
- Use
isordered
instead of private CategoricalArray fields (#839) (@nalimilan) - Doc updates. No release (#843) (@ablaom)
- Add detection models to list of models in the documentation (#844) (@ablaom)
- Re export
TimeSeriesCV
and add to docs (#847) (@ablaom) - Typo (#848) (@ablaom)
- For a 0.16.9 release (#849) (@ablaom)
v0.16.8
MLJ v0.16.8
- (code re-organization) Suspend use of MLJOpenML.jl in favour of OpenML.jl, a non-breaking change (JuliaAI/MLJOpenML.jl#19 (comment))
Closed issues:
- Issue to tag new releases (#571)
- Migrate packages to JuliaAI (#765)
- export
training_losses
(#772) - Add link to support channel if an official channel exists (#773)
- Saving the out of sample Loss in iterated models (#793)
- Have
evaluate!
automatically run the right kinds of predictions for each metric (#795) - Update "Traits" section of "Adding models for general use" in the manual (#799)
- export
Stack
(#804) - "applicable method may be too new" error instantiating models loaded in function scope with
@load
(#809) - Following end-to-end tutorial on AMES but got error (#815)
- Test dependency related fail in CI (#817)
- MLJ: machine / evaluate! are random in unclear ways (#823)
- Document hyper-parameter access requirements to ensure compatibility with MLJTuning API (#827)
- r2 metrics (#830)
- Error MLJ in linux (#833)
Merged pull requests:
- To generate updated docs. No new release. (#819) (@ablaom)
- Add a code of conduct (#820) (@ablaom)
- Bump MLJOpenML compat and add new methods to manual (#821) (@ablaom)
- Document hyper-parameter access required for models (#828) (@ablaom)
- Update lightning tour (#831) (@ablaom)
- For a 0.16.8 release (#832) (@ablaom)
- Fix typo in documentation (#835) (@rikhuijzer)
- Document the
Explicit
tuning strategy (#836) (@rikhuijzer)
v0.16.7
MLJ v0.16.7
Closed issues:
Merged pull requests: