机器学习中的过采样和欠采样是什么意思?
2个回答
我理解是不同数据有不同定义,可分为空间/非空间数据。空间数据指空间上邻近的数据含有相关信息,可以用信号处理滤波的方法提取出这些相关信号,比如图像,声音。非空间数据指数据不是空间上的邻居,不能提取空间信息,比如身高,姓名,工作,收入等不相关信号。
对于空间信号,欠采样和过采样就是信号处理中的under-sample和over-sample。其中心思想是根据采样定理,数字信号能保存的最大频率是其采样频率的1/2。
- 欠采样是采样频率小于信号最大频率的2倍,会有频谱的叠加,产生混叠。
- 过采样是采样频率远大于信号最大频率的2倍,会增加计算量,在数字换模拟信号时,还会增加模拟噪声。
对于非空间信号,欠采样和过采样是对数据的down/sub-sample和up-sample,参考这里。其目的是调整数据量,或者做分类平衡(class balance)。
- 欠采样:只想用少量数据代表大量的原始数据。 比如k-means里用mean代表一簇数据。Random forest也可以认为是对数据点和特征做down-sample。
- 过采样:生成新数据或重复采样。比如SMOTE,bootstrap。
过采样和欠采样是处理非平衡分类问题时的常用手段。
拿二元分类为例,如果训练集中阳性样本有1000个,阴性样本有10万个,两者比例为1:100严重失衡。为了一些模型的性能考虑,我们需要进行一些处理使得两者的比例尽可能接近。
过采样:对少的一类进行重复选择,比如我们对1000个阳性样本进行有放回的抽样,抽5万次(当然其中有很多重复的样本),现在两类的比例就变成了1:2,比较平衡。
欠采样:对多的一类进行少量随机选择,比如我们对10万个阴性样本进行随机选择,抽中2000个(当然原样本中很多样本未被选中),现在两类的比例就变成了1:2,比较平衡。
SofaSofa数据科学社区DS面试题库 DS面经