Releases: JuliaAI/MLJ.jl
v0.14.1
MLJ v0.14.1
Closed issues:
XGBoostClassifier
can't be serialised. Add custom serialisation? (#512)- Problems deserialising pipeline models because of auto-generated type name (#649)
- Add warning about not mutating hyperparameters in model
fit
. (#654) - Add warning about consistency of categorical pools when supplying production data. (#663)
- Add conspicuous links to List of Supported Models (#672)
Merged pull requests:
- Documentation updates. No new release. (#664) (@ablaom)
- Update working_with_categorical_data.md (#665) (@bas-dirks)
- corrected typo (#666) (@OkonSamuel)
- CompatHelper: bump compat for "Distributions" to "0.24" (#667) (@github-actions[bot])
- Documentation improvements. No new release. (#669) (@ablaom)
- Doc tweaks. No release. (#670) (@ablaom)
- Update manual for new serialization API. No release (#671) (@ablaom)
- Fix to figure in paper. No release (#674) (@ablaom)
- For a 0.14.1 release (#675) (@ablaom)
v0.14.0
MLJ v0.14.0
Updates to MLJTuning to 0.5:
-
(enhancement) Add
selection_heuristic
option toTunedModel
instances (JuliaAI/MLJTuning.jl#75 #487). IntroduceNaiveSelection
strategy (the default, reproducing existing behaviour). -
(mildly breaking) Tweak the format of a
TunedModel
reportr
: Renamer.best_result
tor.best_history_entry
; and standardize the form ofr.history
across tuning strategies, making it a named tuple that always includes the keysmodel
,measure
,measurement
,per_fold
(plus strategy-specific keys).
Closed issues:
- Adopt and update XGBoost.jl wrappers (#116)
- Options to Select the "Best" Hyperparameter (#487)
- Correlated predictions for Probabilistic models (#552)
- MLJ_VERSION ci test fails on julia >=1.4 (#660)
Merged pull requests:
v0.13.0
MLJ v0.13.0
Updates requirements for MLJBase, MLJModels and MLJScientificTypes to enable new features and fix some bugs:
-
(enhancement) Add
fitted_params_per_fold
andreport_per_fold
properties to the object returned byevaluate
/evaluate!
to give user access to the outcomes of training for each train/test pair in resampling (#400, #616) -
(enhancement) Implement
logpdf
forUnivariateFinite
distributions (JuliaAI/MLJBase.jl#411) -
(bug fix and deprecation) Fix bug related to creating new composite models by hand in special case of non-model hyper-parameters (not an issue with
@pipeline
or@from_network
models). Introduce newreturn!
syntax for doing this and deprecate calling of learning network machines ( JuliaAI/MLJBase.jl#390, JuliaAI/MLJBase.jl#391, JuliaAI/MLJBase.jl#377) -
(breaking) Change the behavior of
evaluate
/evaluate!
so that weights are only passed to measures if explicitly passed using the key-word argumentweights=...
(JuliaAI/MLJBase.jl#405) -
(new model) Add
UnivariateTimeTypeToContinuous
model for converting assorted time data intoContinuous
data (JuliaAI/MLJModels.jl#295) -
(breaking) LDA models from MultivariateStats that take
UnivariateFinite
objects as a hyper-parameters to take dictionaries instead. Also change some default hyper-parameter values and improve thereport
(JuliaAI/MLJModels.jl#276) -
(enhancement) Improve efficiency of
FillImputer
model (JuliaAI/MLJModels.jl#292) -
(bug fix) Fix issue with syntax for loading models with a user-specified name (JuliaAI/MLJModels.jl#294)
-
(mildly breaking) Regard
Nothing
as a native scientific type and declarescitype(nothing) = Nothing
(old behaviour:scitype(nothing) = Unknown
(JuliaAI/ScientificTypes.jl#112)
Also updates the manual to reflect changes, and makes some improvements to the same. -
(breaking) Remove deprecated
@pipeline
syntax (JuliaAI/MLJBase.jl#350)
Closed issues:
- [docs] Document metadata_pkg, metadata_model and @mlj_model (#241)
- Improved docs for the data interface between MLJ and the world (#379)
- Document workaround for @mlj_model macro issues around negative defaults (#504)
- Document: can't use multithreading for python models (#525)
- In "Working with Categorical Data" part of docs, explain about
int
method. (#605) - Allow access to the outcomes of fitting models on each fold in resampling (#616)
- Errors when columns read from the CSV file have missing entries. (#622)
- On models that fit a distribution to some data. (#641)
- Meta-issue: Add the
JointProbabilistic <: Probabilistic
subtype (#642)
Merged pull requests:
v0.12.1
MLJ v0.12.1
Closed issues:
- Should some if any "classic" ML algorithms accepts matrix input in addition to table input? (#209)
- Dataset generation for model inspection (#214)
- Coerce fails when a column has type Vector{Missing} (#549)
- OpenML integration: Columns as Symbols (#579)
- Issue to generate new releases (#583)
- Something not right with the Binder project file? (#587)
- range(pipeEvoTreeClassifier, :(selector.features), values = cases): ArgumentError:
values
does not have an appropriate type. (#590) - fitted_params(LogisticModel): linear_binary_classifier = Any[] (#597)
- Problem fetching spawned @pipeline processes (#598)
- LogisticModel: pdf(ŷ[i], 1) does not work after the last release (#599)
- Improve error message for non-functions in @pipeline ... operation=... (#600)
- unable to use
predict_mode()
on machine associated with pipeline since MLJ 0.12.0 release (#601) - Unable to use functions predict(), predict_mode() (#602)
- In the latest version, how do we do range(pipeXGBoostRegressor, :(xgr.max_depth), lower=3, upper=10) ? (#603)
- Add section on creating synthetic data to the manual (#604)
- Documentation for adding models: Discourage fields with type Union{Nothing,T} where T<:Real (#606)
- ERROR: LoadError: BoundsError: pkg = DecisionTree (#607)
- Old @from_network syntax still in docs (#608)
- Can't use @load inside a package (#613)
- max_samples parameter for RamdomForestClassifier (#619)
- Ambiguous assignment in soft scope on Julia 1.5 and Julia 1.6 (#624)
- inverse_transform of a PCA (#625)
- potential bug in MLJBase.roc_curve (#630)
- MLJ 0.12.0 doesn't work with Julia 1.5.0 (Windows) (#631)
- Meta-issue: Add the
JointProbabilistic
supervised model type (#633)
Merged pull requests:
- links to mybinder.org added (#585) (@darenasc)
- Add binder links in readme and documentation (#586) (@ablaom)
- binder option (#589) (@darenasc)
- Sanitize filename of workflows_learning_curves.png to fix git checkouts on Windows (#595) (@Sh4pe)
- Binder with instantiate (#596) (@ablaom)
- Minor readme figure changes (not for new release) (#609) (@ablaom)
- Binder change. Not for new release (#610) (@ablaom)
- Binder again (#611) (@ablaom)
- Dump JIT demo from binder for now (only works in regular notebook) (#612) (@ablaom)
- paper.md edit . No release (#614) (@ablaom)
- switch to new @from_network synthax in docs (#615) (@OkonSamuel)
- Add arXiv version 1 of paper. No release (#617) (@ablaom)
- Update links to arXiv version 1 of paper. No release (#618) (@ablaom)
- Add links to JuliaCon 2020 workshop. No release. (#623) (@ablaom)
- Add Generating Synthetic Data section to manual (#626) (@ablaom)
- Manual updates. No new release. (#627) (@ablaom)
- fix readme links for manual. no release (#629) (@ablaom)
- corrected wrong method signatures in docs (#635) (@OkonSamuel)
- Doc fixes. No release. (#638) (@ablaom)
- Discourage Union types for fields (#639) (@ablaom)
- Doc fixes. No release (#640) (@ablaom)
- Create the "PullRequestBaseBranch" GitHub Action (#643) (@DilumAluthge)
- Install CompatHelper on this repository (#644) (@DilumAluthge)
- New GitHub action. No new release. (#645) (@ablaom)
- Export
JointProbabilistic
andpredict_joint
(#646) (@DilumAluthge) - For a 0.12.1 release (#647) (@ablaom)
v0.11.6
MLJ v0.11.6 (NOT LATEST RELEASE see 0.12 below)
Patch removing redundant files causing problems for Windows #591
Closed issues:
- Integrate flux models (#33)
- Conflict w Scikitlearn.jl (#502)
- Accessing nested machines is (still) awkward (#553)
- Standardization of multi-targets (#568)
- Add note at MLJ landing page that MLJ wraps a majority of sk-learn models (#573)
- OpenML integration: Columns as Symbols (#579)
- OpenML integration: Kmeans is not fitting (#580)
Merged pull requests:
- export
brier_score
(#572) (@OkonSamuel) - Add binder notebooks to the repo (#577) (@darenasc)
- Add MLJFlux to Model List, alphabetize model list (#578) (@azev77)
- For a 0.12.0 release (#581) (@ablaom)
- For a 0.12.0 release (#582) (@ablaom)
- links to mybinder.org added (#585) (@darenasc)
- Sanitize filename of workflows_learning_curves.png to fix git checkouts on Windows (#595) (@Sh4pe)
v0.12.0
MLJ v0.12.0
This release provides updates to breaking changes in MLJBase 0.14.0, and MLJModels 0.11.0 and MLJTuning 0.4.0. For a complete list of changes, closed issues and pull requests, refer to the linked release notes.
It also updates the MLJ documentation to reflect the new changes.
Summary
Main breaking changes:
-
Adds restrictions to acceleration options - nesting
distributed processes within multithread process is now disallowed. -
Adds more user-friendly interface for inspecting training reports and
fitted parameters of composite models. For example, ifcomposite = @pipeline OneHotEncoder KNNRegressor
andmach = machine(composite, X, y)
, then access the fitted parameters of the machine associated
withKNNRegressor
usingfitted_params(mach).knn_regressor
. -
The
@from_network
syntax has been changed to make it more
expressive. In particular, through the new concept of learning
network machines it is possible to export a learning network to a
composite type supporting multiple operations (e.g.,predict
and
transform
, as in clustering). See the
manual
for details. The old syntax is no longer supported.
Other enhancements of note:
-
Adds MLJFlux
models to the registry for incorporating neural network models. -
A more economic
@pipeline
syntax has been introduced. For example,
pipe = @pipeline OneHotEncoder PCA(maxoutdim=3)
defines model
pipe
with automatically generated field names and model type name. Target inverse
transformations now ooccur immediately after the supervised model in
a@pipeline
, instead of at the end, unlessinvert_last=true
. The old syntax is
available but deprecated. -
It is now possible to simulataneously load model code for models
having the same name but from different packages, when using@load
orload
. -
Removes the requirement to specify the
kind
of source node, as in
source(y, kind=:target)
. The role of source nodes in learning
networks is now inferred from the order in which they appear in
learning network machine constructors (see above).
Deprecations:
-
The old
@pipeline
syntax. -
The specification of
kind
when constructing a source node. -
The use of
fitresults()
when exporting learning networks "by
hand". See the manual for the new way to do this.
Closed issues:
- Integrate flux models (#33)
- Conflict w Scikitlearn.jl (#502)
- Accessing nested machines is (still) awkward (#553)
- Add note at MLJ landing page that MLJ wraps a majority of sk-learn models (#573)
- OpenML integration: Kmeans is not fitting (#580)
Merged pull requests:
v0.11.5
MLJ v0.11.5
Closed issues:
- computing
UnivariateFinite
matrix seems to be substantially slow (#511) - AMES tutorial doesn't work (UndefVarError) if ScikitLearn.jl or StatsBase.jl are loaded (#534)
- DimensionMismatch in evaluate() (#540)
- Hyperparameter tuning of KNN classifier (#543)
- Decision trees from ScikitLearn.jl not available (#545)
- Export supports_weights() and prediction_type() (#547)
- Testing for type of values in a range too restrictive (#548)
- SVC won't tune cost (#551)
- Implementation of Tversky Loss (#554)
- Fix broken MLJ logo in the manual (MLJ github pages) (#555)
- Add configuration options for RandomForestClassifier.n_subfeatures that depend on the data size (#557)
- Change DecisionTree.jl
n_subfeatures
default to -1 for random forest classifier and regressor (#558) - Tutorial link in Getting Started doesn't link to right spot (#560)
- Old documentation deployed on github pages (#561)
- Document how to load models without the @load macro (#562)
- Request for monte-carlo cross validation (#564)
- Loading SKLearn packages causes Julia to crash (#565)
Merged pull requests:
- typos (#541) (@ablaom)
- typo (#544) (@OkonSamuel)
- update tutorial link (#563) (@OkonSamuel)
- Update the documentation at /docs to reflect recent changes at MLJBase (#566) (@ablaom)
- Documentation update (not to trigger a new release) (#567) (@ablaom)
- For a 0.11.5 release - Bump [compat] MLJModels="^0.10" (#569) (@ablaom)
- For a 0.11.5 release (#570) (@ablaom)
v0.11.4
MLJ v0.11.4
Closed issues:
- Working with models with the same name from different packages (#446)
- Update readme: MLJModels does not need to be in user's env after MLJModels 0.9.10 (#520)
- More informative error for supplying model type instead of instance in range method (#521)
- Readme inconsistency (#524)
- Not loading to all workers: @Everywhere @load RandomForestClassifier pkg = DecisionTree (#527)
- Re-export mape and MAPE from MLJBase (#532)
Merged pull requests: