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.
Примеры
>>> 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