为何随机欠采样处理类别不平衡后,随机森林语义分割性能下降?
随机欠采样丢失了关键特征样本
你最初的20%随机像素子集,是从全量数据中无差别抽取的,保留了各类别里的代表性样本——包括少数类的核心识别像素,以及多数类中那些能帮模型区分边界、复杂场景的像素。而RandomUnderSampler是对多数类做随机下采样,大概率会删掉多数类里那些非“典型”但对区分度至关重要的样本(比如和少数类接壤的边界像素、特殊纹理的多数类像素)。虽然最终训练集规模相近,但欠采样后的样本信息密度远低于初始随机子集,模型学不到足够的区分性特征,自然泛化能力下降。语义分割的空间关联性被破坏
语义分割任务中,像素的空间上下文(相邻像素、区域结构)是模型判断类别的关键信息。你初始的20%随机子集如果是保留图像空间结构的采样(比如按图像块或整图抽选),模型还能学到区域特征;但RandomUnderSampler是对孤立的像素样本做下采样,直接打破了像素间的空间关联——模型只能看到零散的像素特征,无法学习到连续的区域模式,这对依赖区域完整性的IoU指标打击尤其大,同时也会拉低各类别的分类准确率。训练分布与测试分布严重不匹配
初始的20%子集和测试集的类别分布一致(都是真实的不平衡分布),模型学到的决策边界适配真实场景;而欠采样后的数据集是强制均衡的分布,和测试集的真实分布差异极大。随机森林的树分裂逻辑基于训练数据的特征分布,在均衡数据上学到的边界,放到真实不平衡的测试集上,会对多数类的预测出现大量错误,同时少数类的预测也因为丢失了多数类的参考样本而准确率下降,最终导致IoU和平衡准确率双降。多数类的特征多样性被削弱
欠采样直接砍掉了多数类的大量样本,剩下的多数类样本可能只是最“普通”的那部分,特征多样性大幅降低。模型对多数类的泛化能力严重不足,而测试集中的多数类包含各种复杂场景,模型无法正确识别,这也是IoU(多数类区域占比高,IoU受其影响大)和平衡准确率下降的核心原因之一。
内容的提问来源于stack exchange,提问作者Droidux

