hinge_loss
- sklearn.metrics.hinge_loss(y_true, pred_decision, *, labels=None, sample_weight=None)[исходный код]
-
Средняя шарнирная потеря (без регуляризации).
В случае бинарной классификации, если предположить, что метки в
y_trueзакодированы значениями +1 и -1, при ошибке предсказанияmargin = y_true * pred_decisionвсегда отрицательно (поскольку знаки противоположны), а значит,1 - marginвсегда больше 1. Поэтому суммарная шарнирная потеря является верхней границей числа ошибок, допущенных классификатором.В случае многоклассовой классификации функция ожидает, что все метки присутствуют в
y_trueлибо передан необязательный аргументlabels, содержащий все метки. Многоклассовый отступ вычисляется согласно методу Краммера — Сингера. Как и в бинарном случае, суммарная шарнирная потеря является верхней границей числа ошибок, допущенных классификатором.Подробнее см. в руководстве пользователя.
- Параметры:
-
- y_trueмассивоподобный объект формы (n_samples,)
-
Истинные целевые значения. Для бинарных данных они должны содержать только два уникальных значения, причём положительная метка должна быть больше отрицательной. Для многоклассовых данных должны присутствовать все метки либо они должны быть переданы через
labels. - pred_decisionмассивоподобный объект формы (n_samples,) или (n_samples, n_classes)
-
Предсказанные решения (числа с плавающей точкой), полученные в результате вызова decision_function.
- labelsмассивоподобный объект, по умолчанию=None
-
Содержит все метки для задачи. Используется для многоклассовой шарнирной потери.
- sample_weightмассивоподобный объект формы (n_samples,), по умолчанию=None
-
Веса объектов.
- Возвращает:
-
- lossчисло с плавающей точкой
-
Средняя шарнирная потеря.
Список литературы
Примеры
>>> from sklearn import svm >>> from sklearn.metrics import hinge_loss >>> X = [[0], [1]] >>> y = [-1, 1] >>> est = svm.LinearSVC(random_state=0) >>> est.fit(X, y) LinearSVC(random_state=0) >>> pred_decision = est.decision_function([[-2], [3], [0.5]]) >>> pred_decision array([-2.18, 2.36, 0.09]) >>> hinge_loss([-1, 1, 1], pred_decision) 0.30
В многоклассовом случае:
>>> import numpy as np >>> X = np.array([[0], [1], [2], [3]]) >>> Y = np.array([0, 1, 2, 3]) >>> labels = np.array([0, 1, 2, 3]) >>> est = svm.LinearSVC() >>> est.fit(X, Y) LinearSVC() >>> pred_decision = est.decision_function([[-1], [2], [3]]) >>> y_true = [0, 2, 3] >>> hinge_loss(y_true, pred_decision, labels=labels) 0.56
Примеры в галерее
© 2007–2026 The scikit-learn developers
Licensed under the 3-clause BSD License.
https://scikit-learn.org/1.9/modules/generated/sklearn.metrics.hinge_loss.html