class_likelihood_ratios
- sklearn.metrics.class_likelihood_ratios(y_true, y_pred, *, labels=None, sample_weight=None, replace_undefined_by=nan)[исходный код]
-
Вычисляет положительное и отрицательное отношения правдоподобия для бинарной классификации.
Положительное отношение правдоподобия — это
LR+ = sensitivity / (1 - specificity), где чувствительность, или полнота, равна отношениюtp / (tp + fn), а специфичность —tn / (tn + fp). Отрицательное отношение правдоподобия — этоLR- = (1 - sensitivity) / specificity. Здесьtp— число истинно положительных результатов,fp— число ложноположительных результатов,tn— число истинно отрицательных результатов, аfn— число ложноотрицательных результатов. Оба отношения правдоподобия классов можно использовать для вычисления апостериорных вероятностей при заданной априорной вероятности.LR+принимает значения от 1.0 до бесконечности. ЗначениеLR+, равное 1.0, означает, что вероятность предсказать положительный класс одинакова для образцов, принадлежащих к любому из классов; следовательно, тест бесполезен. Чем большеLR+, тем вероятнее, что положительное предсказание окажется истинно положительным по сравнению с априорной вероятностью. ЗначениеLR+меньше 1.0 недопустимо, поскольку оно означало бы, что шансы на то, что образец является истинно положительным, уменьшаются относительно априорных шансов.LR-принимает значения от 0.0 до 1.0. Чем ближе оно к 0.0, тем ниже вероятность того, что данный образец окажется ложноотрицательным. ЗначениеLR-, равное 1.0, означает, что тест бесполезен, поскольку шансы наличия заболевания после теста не изменились. ЗначениеLR-больше 1.0 делает классификатор непригодным, поскольку указывает на увеличение шансов принадлежности образца к положительному классу после его классификации как отрицательного. Это происходит, когда классификатор систематически предсказывает метку, противоположную истинной.Типичное применение в медицине — определение положительного/отрицательного класса по наличию/отсутствию заболевания соответственно; классификатор при этом является диагностическим тестом; априорной вероятностью наличия заболевания у человека может быть распространённость этого заболевания (доля представителей определённой популяции, страдающих данным заболеванием); апостериорными вероятностями будет вероятность того, что заболевание действительно присутствует, при положительном результате теста.
Подробнее см. в руководстве пользователя.
- Параметры:
-
- y_trueмассивоподобная структура размерности 1 или массив индикаторов меток / разреженная матрица
-
Истинные (правильные) целевые значения. Разреженная матрица поддерживается только в том случае, если цели относятся к типу многометочных.
- y_predмассивоподобная структура размерности 1 или массив индикаторов меток / разреженная матрица
-
Оценённые целевые значения, возвращённые классификатором. Разреженная матрица поддерживается только в том случае, если цели относятся к типу многометочных.
- labelsмассивоподобная структура, по умолчанию None
-
Список меток для индексирования матрицы. Его можно использовать, чтобы выбрать положительный и отрицательный классы в порядке
labels=[negative_class, positive_class]. ЕслиNoneне задан, используются метки, встречающиеся хотя бы один раз вy_trueилиy_pred, в отсортированном порядке. - sample_weightмассивоподобная структура формы (n_samples,), по умолчанию None
-
Веса образцов.
- replace_undefined_bynp.nan, 1.0 или dict, по умолчанию np.nan
-
Задаёт возвращаемые значения LR+ и LR- при делении на ноль. Возможны следующие значения:
-
np.nanдля возвратаnp.nanдля обоихLR+иLR- -
1.0для возврата наихудших возможных оценок:{"LR+": 1.0, "LR-": 1.0} - словарь формата
{"LR+": value_1, "LR-": value_2}, значения которого могут быть неотрицательными числами с плавающей точкой,np.infилиnp.nanв диапазоне отношений правдоподобия. Например,{"LR+": 1.0, "LR-": 1.0}можно использовать для возврата наихудших оценок, указывающих на бесполезность модели, а{"LR+": np.inf, "LR-": 0.0}— для возврата наилучших оценок, указывающих на полезность модели.
Если происходит деление на ноль, заданным значением заменяется только соответствующая метрика; другая метрика вычисляется как обычно.
Добавлено в версии 1.7.
-
- Возвращает:
-
- (positive_likelihood_ratio, negative_likelihood_ratio)кортеж чисел с плавающей точкой
-
Кортеж из двух чисел с плавающей точкой: первое содержит положительное отношение правдоподобия (LR+), второе — отрицательное отношение правдоподобия (LR-).
- Предупреждения:
-
- Вызывает
UndefinedMetricWarning, когдаy_trueи -
y_predприводят к следующим условиям: -
- Число ложноположительных результатов равно 0: положительное отношение правдоподобия не определено.
- Число истинно отрицательных результатов равно 0: отрицательное отношение правдоподобия не определено.
- Сумма числа истинно положительных и ложноотрицательных результатов равна 0 (в
y_trueнет образцов положительного класса): оба отношения правдоподобия не определены.
В первых двух случаях неопределённую метрику можно задать с помощью параметра
replace_undefined_by.
- Вызывает
Ссылки
Примеры
>>> import numpy as np >>> from sklearn.metrics import class_likelihood_ratios >>> class_likelihood_ratios([0, 1, 0, 1, 0], [1, 1, 0, 0, 0]) (1.5, 0.75) >>> y_true = np.array(["non-cat", "cat", "non-cat", "cat", "non-cat"]) >>> y_pred = np.array(["cat", "cat", "non-cat", "non-cat", "non-cat"]) >>> class_likelihood_ratios(y_true, y_pred) (1.33, 0.66) >>> y_true = np.array(["non-zebra", "zebra", "non-zebra", "zebra", "non-zebra"]) >>> y_pred = np.array(["zebra", "zebra", "non-zebra", "non-zebra", "non-zebra"]) >>> class_likelihood_ratios(y_true, y_pred) (1.5, 0.75)
Чтобы избежать неоднозначности, используйте обозначения
labels=[negative_class, positive_class]>>> y_true = np.array(["non-cat", "cat", "non-cat", "cat", "non-cat"]) >>> y_pred = np.array(["cat", "cat", "non-cat", "non-cat", "non-cat"]) >>> class_likelihood_ratios(y_true, y_pred, labels=["non-cat", "cat"]) (1.5, 0.75)
Примеры в галерее
© 2007–2026 The scikit-learn developers
Licensed under the 3-clause BSD License.
https://scikit-learn.org/1.9/modules/generated/sklearn.metrics.class_likelihood_ratios.html