Attributes of a fitted LinearRegressionModel.
Every accessor here is one name on the server's allowlist for
org.apache.spark.ml.regression.LinearRegressionModel — 7 of them — so tab completion
is that allowlist. The server refuses anything else with CONNECT_ML.ATTRIBUTE_NOT_ALLOWED;
these refuse a model of the wrong class before it gets that far, and name the module that
would have taken it.
Allowed by the server but not here: toString is Identifiable's, and tells you less than
the model's own uid; evaluate answers with a training summary, which has no struct yet.
Latu.ML.attribute/2 and Latu.ML.attribute/3 will send any of these names; it is what
comes back that has nowhere to go.
The allowlist is inherited rather than per class: this one is the union of
org.apache.spark.ml.PredictionModel,
org.apache.spark.ml.regression.LinearRegressionModel,
org.apache.spark.ml.util.HasTrainingSummary, org.apache.spark.ml.util.Identifiable.
Summary
Functions
The JVM class these accessors belong to.
Model coefficients.
Indicates whether a training summary exists for this model instance.
Model intercept.
Returns the number of features the model was trained on. If unknown, returns -1.
Predict label for the given features.
The value by which \|y - X'w\| is scaled down when loss is "huber", otherwise 1.0.
Gets summary of the model trained on the training set. An exception is thrown if no summary exists.
Functions
@spec class() :: String.t()
The JVM class these accessors belong to.
@spec coefficients(Latu.ML.Model.t()) :: {:ok, term()} | {:error, Latu.Error.t()}
Model coefficients.
An action: it reaches the server. A Vector or Matrix comes back as an Nx.Tensor, or a
Latu.ML.SparseVector where densifying would be this package's decision rather than yours.
@spec has_summary(Latu.ML.Model.t()) :: {:ok, term()} | {:error, Latu.Error.t()}
Indicates whether a training summary exists for this model instance.
An action: it reaches the server. A Vector or Matrix comes back as an Nx.Tensor, or a
Latu.ML.SparseVector where densifying would be this package's decision rather than yours.
@spec intercept(Latu.ML.Model.t()) :: {:ok, term()} | {:error, Latu.Error.t()}
Model intercept.
An action: it reaches the server. A Vector or Matrix comes back as an Nx.Tensor, or a
Latu.ML.SparseVector where densifying would be this package's decision rather than yours.
@spec num_features(Latu.ML.Model.t()) :: {:ok, term()} | {:error, Latu.Error.t()}
Returns the number of features the model was trained on. If unknown, returns -1.
An action: it reaches the server. A Vector or Matrix comes back as an Nx.Tensor, or a
Latu.ML.SparseVector where densifying would be this package's decision rather than yours.
@spec predict(Latu.ML.Model.t(), Nx.Tensor.t() | Latu.ML.SparseVector.t()) :: {:ok, term()} | {:error, Latu.Error.t()}
Predict label for the given features.
An action: it reaches the server. A Vector or Matrix comes back as an Nx.Tensor, or a
Latu.ML.SparseVector where densifying would be this package's decision rather than yours.
Arguments
value— a SparkVector: anNx.Tensoror aLatu.ML.SparseVector
@spec scale(Latu.ML.Model.t()) :: {:ok, term()} | {:error, Latu.Error.t()}
The value by which \|y - X'w\| is scaled down when loss is "huber", otherwise 1.0.
An action: it reaches the server. A Vector or Matrix comes back as an Nx.Tensor, or a
Latu.ML.SparseVector where densifying would be this package's decision rather than yours.
@spec summary(Latu.ML.Model.t()) :: Latu.ML.Summary.t()
Gets summary of the model trained on the training set. An exception is thrown if no summary exists.
A lazy builder: Spark reaches a summary through the model that owns it, so the reference is
composed here and nothing is sent. Latu.ML.summary/1 is the same thing without the class
check.