机器学习中处理非平衡数据集的方法有多种,本文中聊聊处理非平衡数据集的方法。
采样之后的效果依赖于正负样本的比例,数据的特征以及分类器的特性。针对样本比较少的类别,可以通过随机复制该类别的样本来扩充样本,但是这种做法容易发生过拟合。
针对样本数比较少的类别,还可以采用另外一种方法,比如Synthetic Minority Over-sampling Technique (SMOTE),这种方法即为人工生成样本,针对样本数比较少的类别,可以对其中的样本最近邻的k个样本组合起来生成新的样本。但是SMOTE不能处理名词性特征,此时可以利用SMOTE-NC (Synthetic Minority Over-sampling Technique Nominal Continuous) 或 SMOTE-N (Synthetic Minority Over-sampling Technique Nominal)可以解决这种问题。还可以只对分界线处的样本进行过采样,比如borderline-SMOTE1 和borderline-SMOTE2。
针对样本数比较多的类别,一般采取的采样方法为random majority under-sampling (RUS),即随机丢弃样本数比较多的类别中的部分样本。显然,此时很容易丢失掉一些重要信息。one-sided selection (OSS)这种方法可以丢弃比较冗余的样本或者噪声点。
当然,过采样和欠采样这两种方法可以同时使用