17.3.6 Classification Versus Regression on Supervised EdgeWise Models
When predicting a property, the loss function defines if the model will perform classification tasks or regression tasks.
For classification tasks, the Supervised EdgeWise model will infer
labels. Even if this property is a number, the model will assign one label for each
value found and classify on it. The possible losses for classification tasks are
softmax cross entropy
, sigmoid cross entropy
,
and DevNet loss
.
For regression tasks, the Supervised EdgeWise model will infer values
for the property. The loss for regression tasks is the MSE
loss.
It is possible to select different loss functions for the supervised model by
providing a LossFunction
object.
opg4j> import oracle.pgx.config.mllib.loss.LossFunctions;
opg4j> var model = analyst.supervisedEdgeWiseModelBuilder().
setVertexInputPropertyNames("vertex_features").
setEdgeInputPropertyNames("edge_features").
setEdgeTargetPropertyName("labels").
setLossFunction(LossFunctions.MSE_LOSS).
build()
import oracle.pgx.config.mllib.loss.LossFunctions;
SupervisedEdgeWiseModel model = analyst.supervisedEdgeWiseModelBuilder()
.setVertexInputPropertyNames("vertex_features")
.setEdgeInputPropertyNames("edge_features")
.setEdgeTargetPropertyName("labels")
.setLossFunction(LossFunctions.MSE_LOSS)
.build();
from pypgx.api.mllib import MSELoss
params = dict(edge_target_property_name="labels",
vertex_input_property_names=["vertex_features"],
edge_input_property_names=["edge_features"],
loss_fn=MSELoss())
model = analyst.supervised_edgewise_builder(**params)