keras中模型訓(xùn)練class_weight,sample_weight區(qū)別說明
keras 中fit(self, x=None, y=None, batch_size=None, epochs=1, verbose=1, callbacks=None, validation_split=0.0,
validation_data=None, shuffle=True, class_weight=None, sample_weight=None, initial_epoch=0,
steps_per_epoch=None, validation_steps=None)
官方文檔中:
class_weight:字典,將不同的類別映射為不同的權(quán)值,該參數(shù)用來在訓(xùn)練過程中調(diào)整損失函數(shù)(只能用于訓(xùn)練)。該參數(shù)在處理非平衡的訓(xùn)練數(shù)據(jù)(某些類的訓(xùn)練樣本數(shù)很少)時,可以使得損失函數(shù)對樣本數(shù)不足的數(shù)據(jù)更加關(guān)注。
sample_weight:權(quán)值的numpy array,用于在訓(xùn)練時調(diào)整損失函數(shù)(僅用于訓(xùn)練)??梢詡鬟f一個1D的與樣本等長的向量用于對樣本進行1對1的加權(quán),或者在面對時序數(shù)據(jù)時,傳遞一個的形式為(samples,sequence_length)的矩陣來為每個時間步上的樣本賦不同的權(quán)。這種情況下請確定在編譯模型時添加了sample_weight_mode='temporal'。
class_weight---主要針對的上數(shù)據(jù)不均衡問題,比如:異常檢測的二項分類問題,異常數(shù)據(jù)僅占1%,正常數(shù)據(jù)占99%; 此時就要設(shè)置不同類對loss的影響。
sample_weigh---主要解決的是樣本質(zhì)量不同的問題,比如前1000個樣本的可信度,那么它的權(quán)重就要高,后1000個樣本可能有錯、不可信,那么權(quán)重就要調(diào)低。
補充知識:Keras 中數(shù)據(jù)不均衡時,metrics,class_weight的設(shè)置方法
當數(shù)據(jù)處理不均衡時,比如處理癌癥訓(xùn)練問題,有病樣本很少,參考:
http://www.deepideas.net/unbalanced-classes-machine-learning/
主要從兩個方面著手:
一、loss函數(shù)的權(quán)重問題
訓(xùn)練時,設(shè)置的權(quán)重:
class_weight={
1: n_non_cancer_samples / n_cancer_samples * t
}
二、編譯時設(shè)置模型的metrics
def sensitivity(y_true, y_pred): true_positives = K.sum(K.round(K.clip(y_true * y_pred, 0, 1))) possible_positives = K.sum(K.round(K.clip(y_true, 0, 1))) return true_positives / (possible_positives + K.epsilon()) def specificity(y_true, y_pred): true_negatives = K.sum(K.round(K.clip((1-y_true) * (1-y_pred), 0, 1))) possible_negatives = K.sum(K.round(K.clip(1-y_true, 0, 1))) return true_negatives / (possible_negatives + K.epsilon()) model.compile( loss='binary_crossentropy', optimizer=RMSprop(0.001), metrics=[sensitivity, specificity] )
以上這篇keras中模型訓(xùn)練class_weight,sample_weight區(qū)別說明就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
python使用paramiko執(zhí)行服務(wù)器腳本并拿到實時結(jié)果
這篇文章主要介紹了python使用paramiko執(zhí)行服務(wù)器腳本并拿到實時結(jié)果,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-12-12
python for循環(huán)內(nèi)輸出和外輸出方式
這篇文章主要介紹了python for循環(huán)內(nèi)輸出和外輸出方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-03-03
pandas中的DataFrame按指定順序輸出所有列的方法
下面小編就為大家分享一篇pandas中的DataFrame按指定順序輸出所有列的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-04-04
Python DataFrame 設(shè)置輸出不顯示index(索引)值的方法
今天小編就為大家分享一篇Python DataFrame 設(shè)置輸出不顯示index(索引)值的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-06-06
Python生態(tài)圈圖像格式轉(zhuǎn)換問題(推薦)
在Python生態(tài)圈里,最常用的圖像庫是PIL——盡管已經(jīng)被后來的pillow取代,但因為pillow的API幾乎完全繼承了PIL,所以大家還是約定俗成地稱其為PIL。這篇文章主要介紹了Python生態(tài)圈圖像格式轉(zhuǎn)換問題,需要的朋友可以參考下2019-12-12

