"""Brier Loss""" import typing import numpy as np from h2oaicore.metrics import CustomScorer from sklearn.metrics import brier_score_loss from sklearn.preprocessing import LabelEncoder class MyBrierLoss(CustomScorer): _description = "Brier Score Loss" _binary = True _maximize = False _perfect_score = 0 _display_name = "BRIER" def score(self, actual: np.array, predicted: np.array, sample_weight: typing.Optional[np.array] = None, labels: typing.Optional[np.array] = None, **kwargs) -> float: lb = LabelEncoder() labels = lb.fit_transform(labels) actual = lb.transform(actual) return brier_score_loss(actual, predicted, sample_weight, pos_label=labels[1])