hinge_loss
- sklearn.metrics.hinge_loss(y_true, pred_decision, *, labels=None, sample_weight=None)[source]
-
Средняя потеря хинге (нерегуляризованная).
В случае бинарной классификации, предполагая, что метки в y_true закодированы с помощью +1 и -1, когда происходит ошибка прогноза,
margin = y_true * pred_decisionвсегда отрицательна (поскольку знаки не совпадают), подразумевая, что1 - marginвсегда больше 1. Таким образом, кумулятивная потеря хинге является верхней границей числа ошибок, допущенных классификатором.В случае многоклассовой классификации функция ожидает, что либо все метки включены в y_true, либо в качестве необязательного аргумента labels предоставлены все метки. Многомерное пороговое значение вычисляется по методу Краммера-Зингера. Как и в бинарном случае, кумулятивная потеря хинге является верхней границей числа ошибок, допущенных классификатором.
Подробнее см. в Руководстве пользователя.
- Параметры:
-
- y_trueмассив-подобный формы (n_samples,)
-
Истинные значения, состоящие из целых чисел двух значений. Положительная метка должна быть больше отрицательной.
- pred_decisionмассив-подобный формы (n_samples,) или (n_samples, n_classes)
-
Предсказанные решения, полученные на выходе из decision_function (вещественные числа).
- labelsмассив-подобный, по умолчанию=None
-
Содержит все метки для задачи. Используется в многоклассовой потере хинге.
- sample_weightмассив-подобный формы (n_samples,), по умолчанию=None
-
Веса выборок.
- Возвращаемое значение:
-
- lossfloat
-
Средняя потеря хинге.
Ссылки
[2]Koby Crammer, Yoram Singer. On the Algorithmic Implementation of Multiclass Kernel-based Vector Machines. Journal of Machine Learning Research 2, (2001), 265-292.
Примеры
>>> 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) np.float64(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) np.float64(0.56...)
Примеры галереи
© 2007–2025 The scikit-learn developers
Licensed under the 3-clause BSD License.
https://scikit-learn.org/1.6/modules/generated/sklearn.metrics.hinge_loss.html