Loading...

verticapy.machine_learning.metrics.informedness#

verticapy.machine_learning.metrics.informedness(y_true: str, y_score: str, input_relation: str | vDataFrame, average: Literal[None, 'binary', 'micro', 'macro', 'scores', 'weighted'] = None, labels: list | ndarray | None = None, pos_label: bool | float | str | timedelta | datetime | None = None) float | list[float]#

Computes the Informedness.

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#

float

score.

Examples#

We should first import verticapy.

import verticapy as vp

Let’s create a small dataset that has:

  • true value

  • predicted value

data = vp.vDataFrame(
    {
        "y_true": [1, 1, 0, 0, 1],
        "y_pred": [1, 1, 1, 0, 1],
    },
)

Next, we import the metric:

from verticapy.machine_learning.metrics import informedness

Now we can conveniently calculate the score:

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

Out[4]: [0.5, 0.5]

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 vDataFrame:

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

Out[5]: [0.5, 0.5]

Note

VerticaPy 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

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