簡體   English   中英

不平衡 CNN 上的類權重

[英]Class weights on imbalanced CNN

我正在嘗試對屬於 4 個類別的一組 X 射線圖像實施簡單的 CNN 分類。 數據集如下所示:

                                           img              A   B   C   D
   1    [[[0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], ...   0   0   0   1
   2    [[[0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], ...   0   0   0   1
   3    [[[0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], ...   0   0   1   0
   4    [[[0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], ...   0   0   0   1 

A-80 B-300 C-70 D-150

我如何繼續在這些設置中應用類權重?

類權重是一個字典,用於補償數據集中的不平衡。 例如,如果你有一個包含 1000 張狗圖像和 100 張貓圖像的數據集,你的分類器就會偏向於狗類。 如果它每次都預測狗,那么它在 90% 的時間里都是正確的。 為了補償不平衡,class_weights 字典使您可以在計算損失時對貓的樣本進行加權,其權重是狗的 10 倍。 一種方法是使用 sklearn 中的 class_weight 方法,如下所示

from sklearn.utils import class_weight
import numpy as np

class_weights = class_weight.compute_class_weight(
               'balanced',
                np.unique(train_generator.classes), 
                train_generator.classes) 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM