資料集:不平衡資料集

假設某個資料集內含以下類別標籤的值: 正面負數。在平衡的資料集中,正面負面標籤的數量大致相同。不過,如果某個標籤比另一個標籤更常見,則資料集就會失衡。在資料集不平衡的情況下,主要標籤稱為多數類別;較少見的標籤則稱為少數類別

下表列出不同程度的失衡情形的一般名稱和範圍:

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

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

圖 5. 包含兩個長條的長條圖。一個長條顯示約 200 個負面類別,另一個長條則顯示 1 個正面類別。
圖 5. 資料集極度不平衡。

 

不平衡的資料集有時會缺少少數少數類別 才能正確訓練模型 也就是說,由於正面標籤太少,模型幾乎只會訓練負面標籤,無法充分瞭解正面標籤。舉例來說,如果批次大小為 50,許多批次都不會包含正面標籤。

通常,尤其是對於輕微的不平衡和中等的平衡 容錯則沒有問題因此,您應該先嘗試在原始資料集上進行訓練。如果模型的成效良好,就大功告成了。 如果沒有,至少次佳模型可為日後的實驗提供良好的基準值。接著,您可以嘗試下列技巧,解決資料集不平衡所造成的問題。

降低取樣和加權

處理不平衡資料集的方法之一,就是減少樣本數並提高多數類別的權重。以下是這兩個新詞彙的定義:

  • 下採樣 (在本例中) 是指針對大多數類別的示例,訓練不成比例的子集。
  • 向上權重是指將 計算樣本權重時,請將該權重等因素相加 並採向下取樣。

步驟 1:將主要類別向下取樣。請參考圖 5 所示的病毒資料集,其中每 200 個負面標籤就有 1 個正面標籤。將係數降低為 10,可讓餘額提升 1 至 20 負數 (5%)。雖然產生的訓練集仍略為失衡,但正例與負例的比率已遠優於原先極度失衡的比率 (0.5%)。

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

 

步驟 2:提高下採樣類別的權重:在下採樣類別中加入示例權重。經過 10 倍的下採樣後,範例權重應為 10。(雖然這似乎違反直覺,但我們稍後會說明原因)。

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

 

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

weight 應等於用於降樣時使用的因數:

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

降低取樣後,新增範例權重看起來似乎不是問題。畢竟您試圖讓模型改善少數類別,為何要提高多數類別的權重?事實上,提高多數類別的權重,往往會降低預測偏差。也就是說 反過取樣後的權重反而會降低 模型預測結果和資料集標籤平均值。

重新平衡比率

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

  • 批量
  • 失衡比率
  • 訓練集的範例數量

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

練習:檢查您的理解程度

請考慮以下狀況:

  • 這個訓練集含有超過 10 億個範例。
  • 批次大小為 128。
  • 不平衡比率為 100:1,因此訓練集會以以下方式劃分:
    • 約有 10 億個類別範例。
    • 約 1,000 萬個少數類別範例。
下列敘述何者正確?
將批次大小增加至 1,024 可改善產生的模型。
如果批次大小為 1,024,每個批次的平均少數類別樣本數約為 10 個,這應該有助於訓練出更優質的模型。
批次大小維持在 128,但降低取樣率 (並增加權重) 調整後產生的模型
採用降低取樣後,每 128 個批次的平均數值約為 21 少數類別樣本,應足以用於訓練 實用的模型請注意,降低取樣率會減少 當中有許多範例 大約有 6 千萬封
目前的超參數沒有問題。
批量為 128 時,每個批次平均約為 1 個少數差異 例如為了訓練有用的詞彙 模型