MaxnetBinaryClassifier

MaxnetBinaryClassifier

A model type for constructing a Maxnet, based on Maxnet.jl, and implementing the MLJ model interface.

From MLJ, the type can be imported using

MaxnetBinaryClassifier = @load MaxnetBinaryClassifier pkg=Maxnet

Do model = MaxnetBinaryClassifier() to construct an instance with default hyper-parameters. Provide keyword arguments to override hyper-parameter defaults, as in MaxnetBinaryClassifier(features=...).

Training data

In MLJ or MLJBase, bind an instance model to data with

mach = machine(model, X, y)

where

  • X: any table of input features (eg, a DataFrame) whose columns each have one of the following element scitypes: Continuous or <:Multiclass. Check scitypes with schema(X).
  • y: is the target, which can be any AbstractVector whose element scitype is <:Binary. The first class should refer to background values, and the second class to presence values.

Hyper-parameters

  • features: Specifies which features classes to use in the model, e.g. "lqh" for linear, quadratic and hinge features. See also Maxnet.maxnet
  • regularization_multiplier = 1.0: 'Adjust how tight the model will fit. Increasing this will reduce overfitting.
  • regularization_function: A function to compute the regularization of each feature class. Defaults to Maxnet.default_regularization
  • addsamplestobackground = true: Controls wether to add presence values to the background.
  • n_knots = 50: The number of knots used for Threshold and Hinge features. A higher number gives more flexibility for these features.
  • weight_factor = 100.0: A Float64 value to adjust the weight of the background samples.
  • link = Maxnet.CloglogLink(): The link function to use when predicting. See Maxnet.predict
  • clamp = false: Clamp values passed to MLJBase.predict to the range the model was trained on.

Operations

  • predict(mach, Xnew): return predictions of the target given features Xnew having the same scitype as X above. Predictions are probabilistic and can be interpreted as the probability of presence.

Fitted Parameters

The fields of fitted_params(mach) are:

  • fitresult: A Tuple where the first entry is the Maxnet.MaxnetModel returned by the Maxnet algorithm and the second the entry is the classes of y

Report

The fields of report(mach) are:

  • selected_variables: A Vector of Symbols of the variables that were selected.
  • selected_features: A Vector of Maxnet.ModelMatrixColumn with the features that were selected.
  • complexity: the number of selected features in the model.

Example

using MLJBase, Maxnet
p_a, env = Maxnet.bradypus()
y = coerce(p_a, Binary)
X = coerce(env, Count => Continuous)

mach = machine(MaxnetBinaryClassifier(features = "lqp"), X, y)
fit!(mach)
yhat = MLJBase.predict(mach, env)