當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。