平衡資料

分類偏移比例的分類資料集稱為「不平衡」。構成大部分資料集的類別稱為主要類別。組成較小者則屬於次要類別

哪些不平衡?答案可能因輕微到極端而有所差異,如下表所示。

不平衡 比例類別
溫和 資料集的 20-40%
資料集的 1-20%
極端 資料集小於 1%

為什麼要尋找不平衡的資料?如果您的分類工作含有不平衡的資料集,您可能需要套用特定的取樣技術。

請參考以下偵測詐欺行為的模型。詐欺事件中,每出現 200 筆交易發生一次,因此在真實的調查中,約有 0.5% 的資料為正數。

包含兩個長條的長條圖。一個長條顯示約 200 筆負面交易,另一列則顯示 1 筆正面交易。

為什麼會這樣呢?由於相對負數極少,因此訓練模型將大部分的時間用於排除例子,而非從正面樣本中學習。舉例來說,如果您的批次大小為 128,則許多批次將不會有正規範例,因此漸層所需的資訊較少。

如果有不平衡的資料集,請先嘗試對真實分佈情形進行訓練。如果模型能妥善運作且一般化,就表示大功告成! 如果不是,請嘗試以下的「降低取樣率」和「高權重技術」。

降低取樣與加權

處理不平衡資料的有效方法,就是降低取樣率並放大主要類別。首先,我們要定義兩個新字詞:

  • 縮減 (在本範例中) 代表在絕大多數的類別範例中,比例不成比例的訓練。
  • 「向上增加」是指在向下取樣類別中加入範例權重,等於向下取樣係數。

步驟 1:縮減大型類別。再次考慮詐欺資料集範例,1 到 200 個負數。將因數為 10 時進行調降,可讓餘額降為 1 到 20 負值 (5%)。雖然產生的訓練集仍「中度不平衡」,但正面與負數的比率優於比原始「極端不平衡」的比例 (0.5%)。

包含兩個長條的長條圖。一個長條顯示 20 筆負面交易,另一列則顯示 1 筆正交易。

步驟 2:在降低取樣率的上移:最後一個步驟是將取樣的權重加入向下取樣類別。由於我們除以 10 的因數,因此取樣權重應為 10。

下取樣和加權使用的概念圖表。步驟 1:降低取樣,從代表大部分類別資料集的區塊中隨機選取範例。步驟 2 的權重,會對每個隨機選取的範例新增權重。

如果在模型參數中提及模型參數 (例如類神經網路中的連線),您可能會用來監聽「權重」一詞。我們可以討論「權重範例」,也就是在訓練期間更顯著計算個別範例。權重為 10 時,模型會將該樣本視為重要 (運算損失) 的 10 倍,就像權重 1 的範例一樣。

權重必須與您用於採樣取樣的因素相同:

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

為什麼要減少取樣率和升級?

降低取樣率後,系統似乎看起來可能增加。我們試圖讓模型在次要類別上改進,為什麼 Google 的大多數模型會增加權重?最終的變更如下:

  • 加快對話分類:在訓練期間,我們更頻繁地顯示次要類別,讓模型更快聚合。
  • 磁碟空間:將多數類別合併為較小的權重較少的範例,以降低儲存這些項目的磁碟空間。透過這筆儲蓄可以增加次要類別的磁碟空間,讓我們就可以從該類別收集更多數量和更多示例。
  • 校正:由於權重較高,我們的模型仍可校正,但系統仍會將輸出內容解讀為機率。