Binary Classification
Binary classification models predict a binary outcome (one of two possible classes). In Aporia, these models are represented by the binary model type.
Examples of binary classification problems:
Will the customer
buythis product ornot_buythis product?Is this email
spamornot_spam?Is this review written by a
customeror arobot?
Frequently, binary models output not only a yes/no answer, but also a probability.
Example: Boolean Decision without Probability
If you have a model with a yes/no decision but without a probability value, then your database may look like the following:
1
13.5
True
True
True
2014-10-19 10:23:54
2
-8
False
False
True
2014-10-19 10:24:24
To monitor this model, we will create a new model version with a schema that include a boolean prediction:
apr_model = aporia.create_model_version(
model_id="<MODEL_ID>",
model_version="v1",
model_type="binary"
features={
...
},
predictions={
"decision": "boolean",
},
)To connect this model to Aporia from your data source, call the connect_serving(...) API:
apr_model.connect_serving(
data_source=my_data_source,
id_column="id",
timestamp_column="timestamp",
# Map the "label" column as the label for the "decision" prediction.
labels={
# Prediction name -> Column name
"decision": "label"
}
)Check out the Data Sources section for further reading on the available data sources and how to connect to each one of them.
Example: Boolean Decision with Probability
If you have a model with a yes/no decision and a probability / confidence value for it, then your database may look like the following:
1
13.5
True
0.8
True
True
2014-10-19 10:23:54
2
-8
False
0.5
False
True
2014-10-19 10:24:24
To monitor this model, it's recommended to create a new model version with a schema that includes the final decision as boolean field, and the probability as a numeric field:
apr_model = aporia.create_model_version(
model_id="<MODEL_ID>",
model_version="v1",
model_type="binary"
features={
...
},
predictions={
"decision": "boolean",
"proba": "numeric",
},
)To connect the model to Aporia from a data source, call the connect_serving(...) API:
apr_model.connect_serving(
data_source=my_data_source,
id_column="id",
timestamp_column="timestamp",
# Map the "label" column as the label for "decision" and "proba".
labels={
# Prediction name -> Column name representing
"decision": "label",
"proba": "label",
}
)Check out the Data Sources section for further reading on the available data sources and how to connect to each one of them.
Example: Probability Only
In cases when there is no threshold for your boolean prediction, and the final business result is actually a probability, you may simply omit the decision field from the examples in the previous section and only include the proba field for your prediction.
Last updated