diff --git a/Project.toml b/Project.toml index 8dac6decf..198a31ab9 100644 --- a/Project.toml +++ b/Project.toml @@ -1,7 +1,7 @@ name = "MLJ" uuid = "add582a8-e3ab-11e8-2d5e-e98b27df1bc7" authors = ["Anthony D. Blaom "] -version = "0.20.6" +version = "0.20.7" [deps] CategoricalArrays = "324d7699-5711-5eae-9e2f-1d82baa6b597" @@ -32,9 +32,9 @@ Tables = "bd369af6-aec1-5ad0-b16a-f7cc5008161c" CategoricalArrays = "0.8,0.9, 0.10" ComputationalResources = "0.3" Distributions = "0.21,0.22,0.23, 0.24, 0.25" -FeatureSelection = "0.1.1" +FeatureSelection = "0.2" MLJBalancing = "0.1" -MLJBase = "1" +MLJBase = "1.5" MLJEnsembles = "0.4" MLJFlow = "0.5" MLJIteration = "0.6" diff --git a/docs/ModelDescriptors.toml b/docs/ModelDescriptors.toml index 95caa68cc..4865da222 100644 --- a/docs/ModelDescriptors.toml +++ b/docs/ModelDescriptors.toml @@ -154,6 +154,7 @@ MultitargetNeuralNetworkRegressor_BetaML = ["regression", "neural_networks"] MultitargetNeuralNetworkRegressor_MLJFlux = ["regression", "iterative_models", "neural_networks"] MultitargetRidgeRegressor_MultivariateStats = ["regression"] MultitargetSRRegressor_SymbolicRegression = ["regression"] +NeuralNetworkBinaryClassifier_MLJFlux = ["classification", "neural_networks"] NeuralNetworkClassifier_BetaML = ["classification", "neural_networks"] NeuralNetworkClassifier_MLJFlux = ["classification", "iterative_models", "neural_networks"] NeuralNetworkRegressor_BetaML = ["regression", "neural_networks"] diff --git a/docs/make.jl b/docs/make.jl index bd93dca68..d9bf0c738 100755 --- a/docs/make.jl +++ b/docs/make.jl @@ -67,10 +67,11 @@ pages = [ "Generating Synthetic Data" => "generating_synthetic_data.md", "OpenML Integration" => "openml_integration.md", ], - "Model Basics" => [ + "Models" => [ "Model Search" => "model_search.md", "Loading Model Code" => "loading_model_code.md", "Transformers and Other Unsupervised models" => "transformers.md", + "Feature Selection" => "feature_selection.md", "List of Supported Models" => "list_of_supported_models.md", ], "Meta-algorithms" => [ diff --git a/docs/src/feature_selection.md b/docs/src/feature_selection.md new file mode 100644 index 000000000..dcb86eb8d --- /dev/null +++ b/docs/src/feature_selection.md @@ -0,0 +1,13 @@ +# Feature Selection + +For more on feature selection tools, refer to the [FeatureSelection.jl](https://juliaai.github.io/FeatureSelection.jl/dev/) documentation. + +- [`FeatureSelector`](@ref) +- [`RecursiveFeatureElimination`](@ref) + +## Reference + +```@docs +FeatureSelector +RecursiveFeatureElimination +``` diff --git a/docs/src/model_search.md b/docs/src/model_search.md index b6e344fa7..2f5becaaf 100644 --- a/docs/src/model_search.md +++ b/docs/src/model_search.md @@ -1,11 +1,10 @@ # [Model Search](@id model_search) -MLJ has a model registry, allowing the user to search models and their -properties, without loading all the packages containing model code. In -turn, this allows one to efficiently find all models solving a given -machine learning task. The task itself is specified with the help of -the `matching` method, and the search executed with the `models` -methods, as detailed below. +In addition to perusing the [Model Browser](@ref), one can programatically search MLJ's +Model Registry, without actually loading all the packages providing model code. This +allows you to efficiently find all models solving a given machine learning task. The task +itself is specified with the help of the `matching` method, and the search executed with +the `models` methods, as detailed below. For commonly encountered problems with model search, see also [Preparing Data](@ref). diff --git a/docs/src/transformers.md b/docs/src/transformers.md index 8428db1df..9703041f6 100644 --- a/docs/src/transformers.md +++ b/docs/src/transformers.md @@ -24,18 +24,16 @@ that learn a probability distribution](@ref) for an example. ## Built-in transformers -```@docs -MLJModels.Standardizer -MLJModels.OneHotEncoder -MLJModels.ContinuousEncoder -MLJModels.FillImputer -MLJModels.UnivariateFillImputer -FeatureSelection.FeatureSelector -MLJModels.UnivariateBoxCoxTransformer -MLJModels.UnivariateDiscretizer -MLJModels.UnivariateTimeTypeToContinuous -``` - +- [`Standardizer`](@ref) +- [`OneHotEncoder`](@ref) +- [`ContinuousEncoder`](@ref) +- [`FillImputer`](@ref) +- [`UnivariateFillImputer`](@ref) +- [`UnivariateBoxCoxTransformer`](@ref) +- [`InteractionTransformer`](@ref) +- [`UnivariateDiscretizer`](@ref) +- [`UnivariateTimeTypeToContinuous`](@ref) +- [`FeatureSelector`](@ref). ## Static transformers @@ -231,3 +229,17 @@ compare[51:58] ```@example predtrans compare[101:108] ``` + +## Reference + +```@docs +MLJModels.Standardizer +MLJModels.OneHotEncoder +MLJModels.ContinuousEncoder +MLJModels.FillImputer +MLJModels.UnivariateFillImputer +MLJModels.UnivariateBoxCoxTransformer +MLJModels.InteractionTransformer +MLJModels.UnivariateDiscretizer +MLJModels.UnivariateTimeTypeToContinuous +``` diff --git a/docs/src/working_with_categorical_data.md b/docs/src/working_with_categorical_data.md index f1506f2f5..c6997252d 100644 --- a/docs/src/working_with_categorical_data.md +++ b/docs/src/working_with_categorical_data.md @@ -345,3 +345,9 @@ d_vec = UnivariateFinite(["no", "yes"], yes_probs, augment=true, pool=v) ``` For more options, see [`UnivariateFinite`](@ref). + +## Reference + +```@docs +UnivariateFinite +``` diff --git a/src/MLJ.jl b/src/MLJ.jl index ccdb4c7f9..85805f277 100644 --- a/src/MLJ.jl +++ b/src/MLJ.jl @@ -146,7 +146,7 @@ export nrows, color_off, color_on, @pipeline, Stack, Pipeline, TransformedTargetModel, ResamplingStrategy, Holdout, CV, TimeSeriesCV, StratifiedCV, evaluate!, Resampler, iterator, PerformanceEvaluation, - default_resource, pretty, + default_resource, default_logger, pretty, make_blobs, make_moons, make_circles, make_regression, fit_only!, return!, int, decoder, default_scitype_check_level, diff --git a/test/integration.jl b/test/integration.jl index d1413ea77..06102a677 100644 --- a/test/integration.jl +++ b/test/integration.jl @@ -155,7 +155,11 @@ PATHOLOGIES = filter(MODELS) do model # too slow to train! (model.name == "LOCIDetector" && model.package_name == "OutlierDetectionPython") || # TO REDUCE TESTING TIME - model.package_name == "MLJScikitLearnInterface" + model.package_name == "MLJScikitLearnInterface" || + # can be removed after resolution of + # https://github.com/JuliaAI/FeatureSelection.jl/issues/15 + # and a Model Registry update + model.name == "RecursiveFeatureElimination" end WITHOUT_DATASETS = vcat(WITHOUT_DATASETS, PATHOLOGIES)