f1_score
- sklearn.metrics.f1_score(y_true, y_pred, *, labels=None, pos_label=1, average='binary', sample_weight=None, zero_division='warn')[source]
-
Вычисление метрики F1, также известной как сбалансированная мера F или мера F.
Метрика F1 может быть интерпретирована как гармоническое среднее точности и полноты, где значение метрики F1 достигает наилучшего значения 1 и наихудшего 0. Вклад точности и полноты в метрику F1 одинаков. Формула для метрики F1:
\[\text{F1} = \frac{2 * \text{TP}}{2 * \text{TP} + \text{FP} + \text{FN}}\]Где \(\text{TP}\) - количество истинных положительных ответов, \(\text{FN}\) - количество ложных отрицательных ответов, и \(\text{FP}\) - количество ложных положительных ответов. По умолчанию F1 вычисляется как 0.0, если нет истинных положительных ответов, ложных отрицательных ответов или ложных положительных ответов.
Поддержка для целей, выходящих за рамки бинарных целей, достигается путем обработки многоклассовых и многомеченых данных как набора бинарных задач, по одной для каждого метки. В случае бинарной задачи, установка
average='binary'вернет метрику F1 дляpos_label. Еслиaverageне'binary',pos_labelигнорируется, и вычисляется метрика F1 для обеих классов, а затем усредняется или возвращаются оба значения (еслиaverage=None). Аналогично, для многоклассовых и многомеченых целей, метрика F1 для всехlabelsвозвращается или усредняется в зависимости от параметраaverage. Используйтеlabelsдля указания набора меток, для которых нужно вычислить метрику F1.Подробнее см. в Руководстве пользователя.
- Параметры:
-
- y_trueОдномерный массив-подобный объект или массив индикаторов меток / разреженная матрица
-
Истинные (корректные) значения целевых переменных.
- y_predОдномерный массив-подобный объект или массив индикаторов меток / разреженная матрица
-
Оцененные целевые значения, возвращаемые классификатором.
- labelsмассив-подобный объект, по умолчанию None
-
Набор меток, которые нужно включить при
average != 'binary', и их порядок, еслиaverage is None. Метки, присутствующие в данных, могут быть исключены, например, в многоклассовой классификации для исключения «отрицательного класса». Метки, отсутствующие в данных, могут быть включены и им будут «присвоены» 0 выборок. Для многомеченых целей метки являются индексами столбцов. По умолчанию используются все метки в данныхy_trueиy_predв отсортированном порядке.Изменено в версии 0.17: Параметр
labelsулучшен для многоклассовой задачи. - pos_labelint, float, bool или str, по умолчанию 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опция была добавлена.
- Возвращаемые значения:
-
- f1_scorefloat или массив float, форма = [n_unique_labels]
-
Метрика F1 положительного класса в бинарной классификации или взвешенное среднее метрик F1 каждого класса для многоклассовой задачи.
См. также
fbeta_score-
Вычисление метрики F-бета.
precision_recall_fscore_support-
Вычисление точности, полноты, метрики F и поддержки.
jaccard_score-
Вычисление коэффициента схожести Якобсена.
multilabel_confusion_matrix-
Вычисление матрицы неточностей для каждого класса или образца.
Примечания
Если
true positive + false positive + false negative == 0(т. е. класс полностью отсутствует как вy_true, так и вy_pred), то метрика f-мера не определена. В таких случаях по умолчанию f-мера будет равна 0,0, а также будет выведеноUndefinedMetricWarning. Это поведение можно изменить, установив параметрzero_division.Ссылки
Примеры
>>> import numpy as np >>> from sklearn.metrics import f1_score >>> y_true = [0, 1, 2, 0, 1, 2] >>> y_pred = [0, 2, 1, 0, 0, 1] >>> f1_score(y_true, y_pred, average='macro') 0.26... >>> f1_score(y_true, y_pred, average='micro') 0.33... >>> f1_score(y_true, y_pred, average='weighted') 0.26... >>> f1_score(y_true, y_pred, average=None) array([0.8, 0. , 0. ])
>>> # binary classification >>> y_true_empty = [0, 0, 0, 0, 0, 0] >>> y_pred_empty = [0, 0, 0, 0, 0, 0] >>> f1_score(y_true_empty, y_pred_empty) 0.0... >>> f1_score(y_true_empty, y_pred_empty, zero_division=1.0) 1.0... >>> f1_score(y_true_empty, y_pred_empty, zero_division=np.nan) nan...
>>> # multilabel classification >>> y_true = [[0, 0, 0], [1, 1, 1], [0, 1, 1]] >>> y_pred = [[0, 0, 0], [1, 1, 1], [1, 1, 0]] >>> f1_score(y_true, y_pred, average=None) array([0.66666667, 1. , 0.66666667])
Примеры из галереи
© 2007–2025 The scikit-learn developers
Licensed under the 3-clause BSD License.
https://scikit-learn.org/1.6/modules/generated/sklearn.metrics.f1_score.html