brier_score_loss
- sklearn.metrics.brier_score_loss(y_true, y_proba, *, sample_weight=None, pos_label=None, labels=None, scale_by_half='auto')[исходный код]
-
Вычисляет функцию потерь Brier score.
Чем меньше функция потерь Brier score, тем лучше, отсюда и название «потери». Brier score измеряет среднюю квадратичную разность между предсказанной вероятностью и фактическим результатом. Brier score является строго правильным правилом оценки.
Подробнее см. в руководстве пользователя.
- Параметры:
-
- y_trueмассивоподобный объект формы (n_samples,)
-
Истинные целевые значения.
- y_probaмассивоподобный объект формы (n_samples,) или (n_samples, n_classes)
-
Предсказанные вероятности. Если
y_proba.shape = (n_samples,), предполагается, что предоставленные вероятности относятся к положительному классу. Еслиy_proba.shape = (n_samples, n_classes), предполагается, что столбцы вy_probaсоответствуют меткам в алфавитном порядке, как это реализовано вLabelBinarizer. - sample_weightмассивоподобный объект формы (n_samples,), по умолчанию=None
-
Веса образцов.
- pos_labelint, float, bool или str, по умолчанию=None
-
Метка положительного класса, если
y_proba.shape = (n_samples,). Если не указана,pos_labelбудет определена следующим образом:- если
y_trueвходит в {-1, 1} или {0, 1}, по умолчаниюpos_labelравен 1; - иначе, если
y_trueсодержит строки, будет вызвана ошибка, и необходимо явно указатьpos_label; - в противном случае по умолчанию
pos_labelравен большей метке, то естьnp.unique(y_true)[-1].
- если
- labelsмассивоподобный объект формы (n_classes,), по умолчанию=None
-
Метки классов, если
y_proba.shape = (n_samples, n_classes). Если не указаны, метки будут определены на основеy_true.Добавлено в версии 1.7.
- scale_by_halfbool или «auto», по умолчанию=«auto»
-
Если True, масштабировать Brier score в 1/2, чтобы он находился в диапазоне [0, 1], а не [0, 2]. Значение по умолчанию «auto» масштабирует оценку до [0, 1] только для бинарной классификации (как принято), но сохраняет исходный диапазон [0, 2] для многоклассовой классификации.
Добавлено в версии 1.7.
- Возвращает:
-
- scorefloat
-
Функция потерь Brier score.
Примечания
Для \(N\) наблюдений, принадлежащих одному из \(C\) возможных классов, Brier score определяется следующим образом:
\[\frac{1}{N}\sum_{i=1}^{N}\sum_{c=1}^{C}(y_{ic} - \hat{p}_{ic})^{2}\]где \(y_{ic}\) равно 1, если наблюдение
iпринадлежит классуc, и 0 в противном случае, а \(\hat{p}_{ic}\) — предсказанная вероятность того, что наблюдениеiпринадлежит классуc. Таким образом, значения Brier score лежат в диапазоне \([0, 2]\).В задачах бинарной классификации Brier score обычно делят на два, после чего он лежит в диапазоне \([0, 1]\). Его также можно записать в следующем виде:
\[\frac{1}{N}\sum_{i=1}^{N}(y_{i} - \hat{p}_{i})^{2}\]где \(y_{i}\) — бинарная целевая переменная, а \(\hat{p}_{i}\) — предсказанная вероятность положительного класса.
Ссылки
Примеры
>>> import numpy as np >>> from sklearn.metrics import brier_score_loss >>> y_true = np.array([0, 1, 1, 0]) >>> y_true_categorical = np.array(["spam", "ham", "ham", "spam"]) >>> y_prob = np.array([0.1, 0.9, 0.8, 0.3]) >>> brier_score_loss(y_true, y_prob) 0.0375 >>> brier_score_loss(y_true, 1-y_prob, pos_label=0) 0.0375 >>> brier_score_loss(y_true_categorical, y_prob, pos_label="ham") 0.0375 >>> brier_score_loss(y_true, np.array(y_prob) > 0.5) 0.0 >>> brier_score_loss(y_true, y_prob, scale_by_half=False) 0.075 >>> brier_score_loss( ... ["eggs", "ham", "spam"], ... [[0.8, 0.1, 0.1], [0.2, 0.7, 0.1], [0.2, 0.2, 0.6]], ... labels=["eggs", "ham", "spam"] ... ) 0.146
Примеры в галерее
© 2007–2026 The scikit-learn developers
Licensed under the 3-clause BSD License.
https://scikit-learn.org/1.9/modules/generated/sklearn.metrics.brier_score_loss.html