分類偏移比例的分類資料集稱為「不平衡」。構成大部分資料集的類別稱為主要類別。組成較小者則屬於次要類別。
哪些不平衡?答案可能因輕微到極端而有所差異,如下表所示。
不平衡 | 比例類別 |
---|---|
溫和 | 資料集的 20-40% |
中 | 資料集的 1-20% |
極端 | 資料集小於 1% |
為什麼要尋找不平衡的資料?如果您的分類工作含有不平衡的資料集,您可能需要套用特定的取樣技術。
請參考以下偵測詐欺行為的模型。詐欺事件中,每出現 200 筆交易發生一次,因此在真實的調查中,約有 0.5% 的資料為正數。
為什麼會這樣呢?由於相對負數極少,因此訓練模型將大部分的時間用於排除例子,而非從正面樣本中學習。舉例來說,如果您的批次大小為 128,則許多批次將不會有正規範例,因此漸層所需的資訊較少。
如果有不平衡的資料集,請先嘗試對真實分佈情形進行訓練。如果模型能妥善運作且一般化,就表示大功告成! 如果不是,請嘗試以下的「降低取樣率」和「高權重技術」。
降低取樣與加權
處理不平衡資料的有效方法,就是降低取樣率並放大主要類別。首先,我們要定義兩個新字詞:
- 縮減 (在本範例中) 代表在絕大多數的類別範例中,比例不成比例的訓練。
- 「向上增加」是指在向下取樣類別中加入範例權重,等於向下取樣係數。
步驟 1:縮減大型類別。再次考慮詐欺資料集範例,1 到 200 個負數。將因數為 10 時進行調降,可讓餘額降為 1 到 20 負值 (5%)。雖然產生的訓練集仍「中度不平衡」,但正面與負數的比率優於比原始「極端不平衡」的比例 (0.5%)。
步驟 2:在降低取樣率的上移:最後一個步驟是將取樣的權重加入向下取樣類別。由於我們除以 10 的因數,因此取樣權重應為 10。
如果在模型參數中提及模型參數 (例如類神經網路中的連線),您可能會用來監聽「權重」一詞。我們可以討論「權重範例」,也就是在訓練期間更顯著計算個別範例。權重為 10 時,模型會將該樣本視為重要 (運算損失) 的 10 倍,就像權重 1 的範例一樣。
權重必須與您用於採樣取樣的因素相同:
\[\text{ \{example weight\} = \{original example weight\} × \{downsampling factor\} }\]
為什麼要減少取樣率和升級?
降低取樣率後,系統似乎看起來可能增加。我們試圖讓模型在次要類別上改進,為什麼 Google 的大多數模型會增加權重?最終的變更如下:
- 加快對話分類:在訓練期間,我們更頻繁地顯示次要類別,讓模型更快聚合。
- 磁碟空間:將多數類別合併為較小的權重較少的範例,以降低儲存這些項目的磁碟空間。透過這筆儲蓄可以增加次要類別的磁碟空間,讓我們就可以從該類別收集更多數量和更多示例。
- 校正:由於權重較高,我們的模型仍可校正,但系統仍會將輸出內容解讀為機率。