vastorbit.machine_learning.metrics.critical_success_index¶
- vastorbit.machine_learning.metrics.critical_success_index(y_true: str, y_score: str, input_relation: Annotated[str | VastFrame, ''], average: Literal[None, 'binary', 'micro', 'macro', 'scores', 'weighted'] = None, labels: Annotated[list | ndarray, 'Array Like Structure'] | None = None, pos_label: Annotated[bool | float | str | timedelta | datetime, 'Python Scalar'] | None = None) float | list[float]¶
Computes the Critical Success Index.
- Parameters:
y_true (str) – Response column.
y_score (str) – Prediction.
input_relation (SQLRelation) – Relation used for scoring. This relation can be a view, table, or a customized relation (if an alias is used at the end of the relation). For example: (SELECT … FROM …) x
average (str, optional) –
The method used to compute the final score for multiclass-classification.
- binary:
considers one of the classes as positive and use the binary confusion matrix to compute the score.
- micro:
positive and negative values globally.
- macro:
average of the score of each class.
- score:
scores for all the classes.
- weighted :
weighted average of the score of each class.
- None:
accuracy.
If empty, the behaviour is similar to the ‘scores’ option.
labels (ArrayLike, optional) – List of the response column categories.
pos_label (PythonScalar, optional) – To compute the metric, one of the response column classes must be the positive class. The parameter ‘pos_label’ represents this class.
- Returns:
score.
- Return type:
float
Examples
We should first import vastorbit.
import vastorbit as vo
Let’s create a small dataset that has:
true value
predicted value
data = vo.VastFrame( { "y_true": [1, 1, 0, 0, 1], "y_pred": [1, 1, 1, 0, 1], }, )
Next, we import the metric:
from vastorbit.machine_learning.metrics import critical_success_index
Now we can conveniently calculate the score:
critical_success_index( y_true = "y_true", y_score = "y_pred", input_relation = data, )
Note
For multi-class classification, we can select the
averagemethod for averaging from the following options: - binary - micro - macro - scores - weightedIt is also possible to directly compute the score from the VastFrame:
data.score( y_true = "y_true", y_score = "y_pred", metric = "critical_success_index", )
Note
vastorbit uses simple SQL queries to compute various metrics. You can use the
set_option()function with thesql_onparameter to enable SQL generation and examine the generated queries.See also
VastFrame.score(): Computes the input ML metric.