Loading...

vastorbit.machine_learning.metrics.diagnostic_odds_ratio

vastorbit.machine_learning.metrics.diagnostic_odds_ratio(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 Diagnostic odds ratio.

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 diagnostic_odds_ratio

Now we can conveniently calculate the score:

diagnostic_odds_ratio(
    y_true  = "y_true",
    y_score = "y_pred",
    input_relation = data,
)

Note

For multi-class classification, we can select the average method for averaging from the following options: - binary - micro - macro - scores - weighted

It is also possible to directly compute the score from the VastFrame:

data.score(
    y_true  = "y_true",
    y_score = "y_pred",
    metric  = "diagnostic_odds_ratio",
)

Note

vastorbit uses simple SQL queries to compute various metrics. You can use the set_option() function with the sql_on parameter to enable SQL generation and examine the generated queries.

See also

VastFrame.score() : Computes the input ML metric.