處理不均勻數據 (Imbalanced Data)
什麼是不均勻數據,比如說,有一個數據集將資料分為 A 和 B 兩類,
A 資料佔數據集中的 90%,B 資料佔數據集中的 10%,
A 資料佔大多數,此種數據集稱之為不均勻的數據。
在神經網路中,不均勻的數據會造成最後預測的結果都傾向於多數方,
以上述的數據集為例,當訓練完畢後,不管你放入什麼新的數據到模型中,
預測結果一定為 A。
解決不均勻數據的方法
更換評估模型的方式
Accuracy 和 Cost 在不均勻的數據模型中就不那麼重要,
可以通過 Confusion Matrix 來計算 Precision & Recall,
再計算 F1 Score,此種方式能成功的區分不均勻數據。
重組數據
複製少數樣本或刪除多數樣本,使得各類別資料總數差不多。
使用其他機械學習演算法
神經網路通常對於不均勻的數據束手無策,可改用不受數據影響的機械學習演算法。
修改激活函數的門檻值
修改激活函數的門檻值,比如說,當你使用 softmax 當作最後分類的依據,
當 y > 0.5 為 A 類,y < 0.5 為 B 類,
以上述提到的不均勻數據為例,
A 資料佔數據集中的 90%,B 資料佔數據集中的 10%,
門檻值能提升到 0.9,當 y > 0.9 才為 A 類,y < 0.9 為 B 類。