当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python sklearn hinge_loss用法及代码示例


本文简要介绍python语言中 sklearn.metrics.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 中,或者提供包含所有标签的可选标签参数。多标签边距根据Crammer-Singer的方法计算。与二元情况一样,累积铰链损失是分类器所犯错误数量的上限。

在用户指南中阅读更多信息。

参数

y_true形状数组 (n_samples,)

真正的目标,由两个值的整数组成。正标签必须大于负标签。

pred_decision形状数组 (n_samples,) 或 (n_samples, n_classes)

预测的决策,由decision_function(浮点数)输出。

labels类似数组,默认=无

包含问题的所有标签。用于多类铰链损失。

sample_weight形状类似数组 (n_samples,),默认=None

样本权重。

返回

loss浮点数

参考

1

Wikipedia entry on the Hinge loss

2

科比·克拉默,约拉姆·辛格。关于基于多类核的向量机的算法实现。机器学习研究杂志 2,(2001),265-292。

3

多类铰链损失模型的 L1 和 L2 正则化 作者:Robert C. Moore、John DeNero.

例子

>>> 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...

相关用法


注:本文由纯净天空筛选整理自scikit-learn.org大神的英文原创作品 sklearn.metrics.hinge_loss。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。