Spec-Zone.ru › scikit-learn

fbeta_score

sklearn.metrics.fbeta_score(y_true, y_pred, *, beta, labels=None, pos_label=1, average='binary', sample_weight=None, zero_division='warn')[source]

Вычисление F-бета-меры.

F-бета-мера — взвешенное гармоническое среднее точности и полноты, достигающее оптимального значения 1 и наихудшего — 0.

Параметр beta представляет собой отношение важности полноты к важности точности. beta > 1 придаёт больше веса полноте, а beta < 1 — точности. Например, beta = 2 делает полноту в два раза важнее точности, а beta = 0.5 — наоборот. Асимптотически, beta -> +inf учитывает только полноту, а beta -> 0 — только точность.

Формула для F-бета-меры:

\[F_\beta = \frac{(1 + \beta^2) \text{tp}} {(1 + \beta^2) \text{tp} + \text{fp} + \beta^2 \text{fn}}\]

Где \(\text{tp}\) — число истинно положительных, \(\text{fp}\) — число ложноположительных, а \(\text{fn}\) — число ложноотрицательных.

Поддержка за пределами термина:binary достигается путём обработки данных многоклассовой и многомечевой как набор бинарных задач, по одной для каждого метки. В случае бинарной задачи, установка average='binary' вернёт F-бета-меру для pos_label. Если average не 'binary', pos_label игнорируется и вычисляется F-бета-мера для обоих классов, затем усредняется или возвращаются оба значения (когда average=None). Аналогично, для многоклассовых и многомечевых целей, F-бета-мера для всех labels возвращается или усредняется в зависимости от параметра average. Используйте labels для указания набора меток, для которых необходимо рассчитать F-бета-меру.

Подробнее см. в Руководстве пользователя.

Параметры:
y_trueОдномерный массив-подобный объект или индикаторный массив/разреженная матрица меток

Целевые значения истинности (правильные) целевых значений.

y_predОдномерный массив-подобный объект или индикаторный массив/разреженная матрица меток

Оценённые целевые значения, возвращаемые классификатором.

betaЧисловой тип

Определяет вес полноты в совокупном показателе.

labelsмассив-подобный, по умолчанию = None

Набор меток для включения при average != 'binary', и их порядок, если average is None. Метки, присутствующие в данных, могут быть исключены, например, в многоклассовой классификации для исключения «отрицательного класса». Метки, отсутствующие в данных, могут быть включены и будут «присвоены» 0 образцов. Для многомечевых целей метки являются индексами столбцов. По умолчанию используются все метки в данных y_true и y_pred в отсортированном порядке.

Изменено в версии 0.17: Параметр labels улучшен для многоклассовой задачи.

pos_labelцелое число, число с плавающей запятой, логическое значение или строка, по умолчанию = 1

Класс, который необходимо отчёт, если average='binary' и данные бинарные, в противном случае этот параметр игнорируется. Для многоклассовых или многомечевых целей установите labels=[pos_label] и average != 'binary' для отчёта метрик только для одной метки.

average{'micro', 'macro', 'samples', 'weighted', 'binary'} или None, по умолчанию = 'binary'

Этот параметр необходим для многоклассовых/многомечевых целей. Если None, метрики для каждого класса возвращаются. В противном случае это определяет тип усреднения, выполняемого над данными:

'binary':

Возвращаются результаты только для класса, указанного в pos_label. Это применимо только если целевые (y_{true,pred}) бинарные.

'micro':

Вычисление метрик глобально путём подсчёта общего количества истинноположительных, ложноотрицательных и ложноположительных.

'macro':

Вычисление метрик для каждой метки и нахождение их невзвешенного среднего значения. Это не учитывает дисбаланс меток.

'weighted':

Вычисление метрик для каждой метки и нахождение их среднего значения, взвешенного по поддержке (количество истинных экземпляров для каждой метки). Это изменяет «макро» для учёта дисбаланса меток; это может привести к F-мере, которая не находится между точностью и полнотой.

'samples':

Вычисление метрик для каждого экземпляра и нахождение их среднего значения (имеет смысл только для многомечевой классификации, где это отличается от accuracy_score).

sample_weightмассив-подобный размера (n_samples,), по умолчанию = None

Веса выборки.

zero_division{“warn”, 0.0, 1.0, np.nan}, по умолчанию = “warn”

Устанавливает значение для возврата при делении на ноль, т. е. когда все предсказания и метки отрицательные.

Замечания:

  • Если установлено «warn», это работает так же, как 0, но также выводится предупреждение.
  • Если установлено np.nan, такие значения будут исключены из среднего.

Добавлен в версии 1.3: np.nan вариант был добавлен.

Возвращаемое значение:
fbeta_scoreЧисловой тип (если average не None) или массив чисел, shape = [n_unique_labels]

F-бета-мера положительного класса в бинарной классификации или взвешенное среднее F-бета-меры каждого класса для многоклассовой задачи.

См. также

precision_recall_fscore_support

Вычисление точности, полноты, F-меры и поддержки.

multilabel_confusion_matrix

Вычисление матрицы неточностей для каждого класса или образца.

Примечания

Когда true positive + false positive + false negative == 0, f-мера возвращает 0.0 и генерирует UndefinedMetricWarning. Это поведение можно изменить, установив zero_division.

Ссылки

[1]

R. Baeza-Yates and B. Ribeiro-Neto (2011). Modern Information Retrieval. Addison Wesley, pp. 327-328.

[2]

Статья в Википедии о F1-мере.

Примеры

>>> import numpy as np
>>> from sklearn.metrics import fbeta_score
>>> y_true = [0, 1, 2, 0, 1, 2]
>>> y_pred = [0, 2, 1, 0, 0, 1]
>>> fbeta_score(y_true, y_pred, average='macro', beta=0.5)
0.23...
>>> fbeta_score(y_true, y_pred, average='micro', beta=0.5)
0.33...
>>> fbeta_score(y_true, y_pred, average='weighted', beta=0.5)
0.23...
>>> fbeta_score(y_true, y_pred, average=None, beta=0.5)
array([0.71..., 0.        , 0.        ])
>>> y_pred_empty = [0, 0, 0, 0, 0, 0]
>>> fbeta_score(y_true, y_pred_empty,
...             average="macro", zero_division=np.nan, beta=0.5)
0.12...

© 2007–2025 The scikit-learn developers
Licensed under the 3-clause BSD License.
https://scikit-learn.org/1.6/modules/generated/sklearn.metrics.fbeta_score.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API