資料集:不平衡資料集

假設某個資料集內含以下類別標籤的值: 正面負數。在已平衡的資料集中,正向的數量 和排除標籤大約相同。但是,如果其中一個標籤比較常見 那麼資料集 不平衡。 在不平衡的資料集中,主要標籤稱為 主要類別; 較不常見的標籤稱為 少數類別

下表列出一般可接受的名稱和範圍 不同程度的不平衡:

屬於少數類別的資料百分比 不平衡的度數
資料集的 20-40% 溫和
資料集的 1-20%
小於資料集的 1% 極端

比如,假設有一個病毒偵測資料集 代表資料集的 0.5%,而多數類別則代表 99.5%。 像這樣非常不平衡的資料集在醫學領域很常見,因為 大多數科目不會有病毒。

圖 5. 內含兩條長條的長條圖。1 個酒吧約有 200 個節目
            負面類別;另一長條顯示 1 個正類
圖 5. 資料集的平衡程度極低。

 

不平衡的資料集有時會缺少少數少數類別 才能正確訓練模型 也就是說,正面標籤太少,模型幾乎只會在 排除標籤,對正面標籤不夠瞭解例如: 如果批量為 50,許多批次就不會包含正標籤。

通常,尤其是對於輕微的不平衡和中等的平衡 容錯則沒有問題因此,建議您先試用 對原始資料集的內容進行訓練如果模型的成效良好,就大功告成了。 如果不是,則至少較不理想的模型可提供 日後實驗的基準。 之後,您可以嘗試下列技巧來解決問題 完全是平衡資料集所造成

降低取樣和加權

處理不平衡資料集的其中一種方法是減少取樣並增加 多數類別。這兩個新字詞的定義如下:

  • 降低取樣 (在這種情況下) 意即對多數類別的訓練來說並不成比例 範例。
  • 向上權重是指將 計算樣本權重時,請將該權重等因素相加 並採向下取樣。

步驟 1:將主要類別向下取樣。請考慮 這個病毒資料集每 200 個負數的比率為 1 標籤降低取樣率 設為 20 可讓餘額增加 1 至 10 個負數 (10%)。雖然 產生的訓練集仍中等,但 正好比原本的極度不平衡 比例 (0.5%)。

圖 6. 內含兩條長條的長條圖。一個長條顯示 20 個負值
            類別;另一長條顯示 1 個正類
圖 6. 降低取樣率。

 

步驟 2:提高向下取樣類別的權重:新增範例 對應至向下取樣類別將係數降低為 20 後 範例權重應為 20。(沒錯,這可能看似出人意料,但 稍後會再說明原因)。

圖 7. 降低取樣和增加權重的兩個步驟圖表。
            步驟 1:降低取樣功能會從多數
            類別步驟 2:增加權重會將權重加到取樣後的資料
            範例。
圖 7. 加深。

 

「weight」一詞不是模型參數 (例如 w1 或 w2)。這裡的 weight 是指 範例權重:提高個別範例的重要性 儲存權重權重 10 表示模型會將該範例視為 運算損失的 10 倍很重要 (例如運算損失) 權重 1。

weight 應與您用於縮減的因數相同:

\[\text{ \{example weight\} = \{original example weight\} × \{downsampling factor\} }\]

降低取樣後,新增範例權重看起來似乎不是問題。畢竟,各位 想讓模型改進少數類別 多數類別?事實上,大多數類別的權重會降低 預測偏誤。也就是說 反過取樣後的權重反而會降低 模型預測結果和資料集標籤平均值。

重新平衡比率

為了重新平衡資料集,您應縮減多少樣本並增加權重? 如要找出答案 建議您嘗試重新平衡比率 就像實驗其他委刊項一樣 「超參數」。 儘管如此,答案最終取決於下列因素:

  • 批量
  • 不平衡比率
  • 訓練集內的樣本數量

理想情況下,每個批次應包含多個少數類別範例。 如果批次作業中的少數類別數量不足,訓練成效就會相當差。 批量應大於不平衡比率的倍數。 舉例來說,如果不平衡比率為 100:1,則批量應 最低為 500。

練習:隨堂測驗

請考慮以下狀況:

  • 批量為 128。
  • 不平衡比率為 100:1。
  • 訓練集包含 10 億個範例。
以下敘述何者正確?
將批量提高為 1,024 模型
批量為 1,024 時,每個批次平均約為 10 少數類別樣本,應足以用於訓練。 如未進行降低取樣,訓練集將繼續包含 以及數十億個例子
將取樣率降低 (並增加權重) 20:1,同時維持批次大小 第 128 步會改善產生的模型
每批次平均大約 9 個少數類別樣本, 足以訓練模型降低取樣效率可有效降低 訓練集中的樣本數從 10 億至 4,000 萬。
請放心,
大部分的批次作業所含的少數類別不足,無法訓練有用的少數資料 模型