- 问题:
在做气泡检测项目时候,利用svm对训练集进行训练的时候,我的数据集存在这严重的不均衡现象,具体情况如下:
训练集数据情况:
正样本(有气泡):150 标签:+1
负样本(无气泡):800 标签:-1
负样本/正样本=800/150=5.3
测试集数据情况:
正样本(有气泡):53 标签:+1
负样本(无气泡):100 标签:-1
显然正负样本很不均衡,针对这种情况的解决方案就是设定惩罚项的权重,也就是调节svmtrain()
函数的参数-wi
,在这个项目中,因为负样本/正样本=800/150=5.3
也就是说label(-1)/label(+1)=5.3
,所以为了平衡这种样本数量的不均衡,设定惩罚项C的权重如下:
样本不均衡描述:label(-1)/label(+1)=5.3
权重设置描述:-w1=5, -w-1=1