sklearn 損失函式

2021-08-21 16:07:42 字數 2847 閱讀 9427

各種損失函式

損失函式或代價函式來度量給定的模型(一次)**不一致的程度

損失函式的一般形式:

風險函式:度量平均意義下模型**結果的好壞

損失函式分類:

zero-one loss,square loss,hinge loss,logistic loss,log loss或cross-entropy loss,hamming_loss

分類器中常用的損失函式:

該函式計算nsamples個樣本上的0-1分類損失(l0-1)的和或者平均值。預設情況下,返回的是所以樣本上的損失的平均損失,把引數normalize設定為false,就可以返回損失值和

在多標籤分類問題中,如果**的標籤子集和真實的標籤子集嚴格匹配,zero_one_loss函式給出得分為1,如果沒有任何的誤差,得分為0

from sklearn.metrics import zero_one_loss

import numpy as np

#二分類問題

y_pred=[1,2,3,4]

y_true=[2,2,3,4]

print(zero_one_loss(y_true,y_pred))

print(zero_one_loss(y_true,y_pred,normalize=false))

#多分類標籤問題

print(zero_one_loss(np.array([[0,1],[1,1]]),np.ones((2,2))))

print(zero_one_loss(np.array([[0,1],[1,1]]),np.ones((2,2)),normalize=false))

#結果:

#0.25

#1#0.5

#1

hinge loss該損失函式通常被用於最大間隔分類器,比如假定類標籤+1和-1,y:是真正的類標籤,w是decision_function輸出的**到的決策,這樣,hinge loss 的定義如下:

如果標籤個數多於2個,hinge_loss函式依據如下方法計算:如果y_w是對真是類標籤的**,並且y_t是對所有其他類標籤的**裡邊的最大值,multiclass hinge loss定義如下:

下面的**展示了用hinge_loss函式度量svm分類器在二元分類問題中的使用方法:

from sklearn import svm

from sklearn.metrics import hinge_loss

x=[[0],[1]]

y=[-1,1]

est=svm.linearsvc(random_state=0)

print(est.fit(x,y))

pred_decision=est.decision_function([[-2],[3],[0.5]])

print(pred_decision)

print(hinge_loss([-1,1,1],pred_decision))

#結果#linearsvc(c=1.0, class_weight=none, dual=true, fit_intercept=true,

intercept_scaling=1, loss='squared_hinge', max_iter=1000,

multi_class='ovr', penalty='l2', random_state=0, tol=0.0001,

verbose=0)

#[-2.18177262 2.36361684 0.09092211]

#0.303025963688

log loss(對數損失)或者cross-entropy loss(交叉熵損失)在二分類時,真是標籤集合為,而分類器**得到的概率分布為p=pr(y=1)

每乙個樣本的對數損失就是在給定真是樣本標籤的條件下,分類器的負對數思然函式,如下所示:

當某個樣本的真實標籤y=1時,loss=-log(p),所以分類器的**概率p=pr(y=1)的概率越大,則損失越小;如果p=pr(y=1)的概率越小,則分類損失就越大,對於真是標籤y=0,loss=-log(1-p),所以分類器的**概率p=pr(y=1)的概率越大,則損失越大

多分類跟這個類似,不在重複

#log loss

from sklearn.metrics import log_loss

y_true=[0,0,1,1]

y_pred=[[0.9,0.1],[0.8,0.2],[0.3,0.7],[0.01,0.99]]

print(log_loss(y_true,y_pred))

#0.173807336691

hamming loss,計算兩個樣本集合之間的平均漢明距離

#hamming_loss

from sklearn.metrics import hamming_loss

y_pred=[1,2,3,4]

y_true=[2,2,3,4]

print(hamming_loss(y_true,y_pred))

#0.25

sklearn 分類器評估指標,損失函式

分類器評估指標 1.精確率 accuracy score函式計算分類準確率 返回被正確分類的樣本比例或者數量 當多標籤分類任務中,該函式返回子集的準確率,對於給定的樣本,如果 得到的標籤集合與該樣本真正的標籤集合吻合,那麼subset accuracy 1否則為零 import numpy as n...

損失函式 損失函式 Hinge

本文討論hinge損失函式,該函式是機器學習中常用的損失函式之一。在機器學習中,hinge loss是一種損失函式,它通常用於 maximum margin 的分類任務中,如支援向量機。數學表示式為 其中 表示 輸出,通常都是軟結果 就是說輸出不是0,1這種,可能是0.87。表示正確的類別。其函式影...

常見損失函式 損失函式選擇方法

神經網路的學習通過某個指標表示現在的狀態,然後以這個指標為基準,尋找最優權重引數,這個指標就是損失函式 loss function 如上介紹,神經網路損失函式 loss function 也叫目標函式 objective function 的作用 衡量神經網路的輸出與預期值之間的距離,以便控制 調節...