keras中模型訓(xùn)練class_weight,sample_weight區(qū)別說(shuō)明
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:字典,將不同的類(lèi)別映射為不同的權(quán)值,該參數(shù)用來(lái)在訓(xùn)練過(guò)程中調(diào)整損失函數(shù)(只能用于訓(xùn)練)。該參數(shù)在處理非平衡的訓(xùn)練數(shù)據(jù)(某些類(lèi)的訓(xùn)練樣本數(shù)很少)時(shí),可以使得損失函數(shù)對(duì)樣本數(shù)不足的數(shù)據(jù)更加關(guān)注。
sample_weight:權(quán)值的numpy array,用于在訓(xùn)練時(shí)調(diào)整損失函數(shù)(僅用于訓(xùn)練)??梢詡鬟f一個(gè)1D的與樣本等長(zhǎng)的向量用于對(duì)樣本進(jìn)行1對(duì)1的加權(quán),或者在面對(duì)時(shí)序數(shù)據(jù)時(shí),傳遞一個(gè)的形式為(samples,sequence_length)的矩陣來(lái)為每個(gè)時(shí)間步上的樣本賦不同的權(quán)。這種情況下請(qǐng)確定在編譯模型時(shí)添加了sample_weight_mode='temporal'。
class_weight---主要針對(duì)的上數(shù)據(jù)不均衡問(wèn)題,比如:異常檢測(cè)的二項(xiàng)分類(lèi)問(wèn)題,異常數(shù)據(jù)僅占1%,正常數(shù)據(jù)占99%; 此時(shí)就要設(shè)置不同類(lèi)對(duì)loss的影響。
sample_weigh---主要解決的是樣本質(zhì)量不同的問(wèn)題,比如前1000個(gè)樣本的可信度,那么它的權(quán)重就要高,后1000個(gè)樣本可能有錯(cuò)、不可信,那么權(quán)重就要調(diào)低。
補(bǔ)充知識(shí):Keras 中數(shù)據(jù)不均衡時(shí),metrics,class_weight的設(shè)置方法
當(dāng)數(shù)據(jù)處理不均衡時(shí),比如處理癌癥訓(xùn)練問(wèn)題,有病樣本很少,參考:
http://www.deepideas.net/unbalanced-classes-machine-learning/
主要從兩個(gè)方面著手:
一、loss函數(shù)的權(quán)重問(wèn)題
訓(xùn)練時(shí),設(shè)置的權(quán)重:
class_weight={ 1: n_non_cancer_samples / n_cancer_samples * t }
二、編譯時(shí)設(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ū)別說(shuō)明就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
利用Seaborn繪制20個(gè)精美的pairplot圖
本文記錄的使用seaborn繪制pairplot圖,主要是用來(lái)顯示兩兩變量之間的關(guān)系(線(xiàn)性或非線(xiàn)性,有無(wú)較為明顯的相關(guān)關(guān)系等),感興趣的可以了解一下2022-07-07Python3爬蟲(chóng)里關(guān)于代理的設(shè)置總結(jié)
在本篇文章里小編給大家整理的是一篇關(guān)于Python3爬蟲(chóng)里關(guān)于代理的設(shè)置總結(jié),需要的朋友們可以參考下。2020-07-07flask的orm框架SQLAlchemy查詢(xún)實(shí)現(xiàn)解析
這篇文章主要介紹了flask的orm框架SQLAlchemy查詢(xún)實(shí)現(xiàn)解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-12-12Python使用keras和tensorflow遇到的問(wèn)題及解決
這篇文章主要介紹了Python使用keras和tensorflow遇到的問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-03-03python爬取代理IP并進(jìn)行有效的IP測(cè)試實(shí)現(xiàn)
這篇文章主要介紹了python爬取代理IP并進(jìn)行有效的IP測(cè)試實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-10-10利用Python實(shí)現(xiàn)眨眼計(jì)數(shù)器的示例代碼
這篇文章主要介紹了如何使用Python語(yǔ)言實(shí)現(xiàn)對(duì)視頻中的人物的眨眼進(jìn)行計(jì)數(shù)并描繪在圖表中,文中的實(shí)現(xiàn)步驟講解詳細(xì),感興趣的可以動(dòng)手試一試2022-02-02