版权声明:本文为博主辛苦码出来滴~,才疏学浅,如有不对尽请指正,未经博主允许不得转载。
本片博文主要是对机器学习的分类问题中存在的样本不均衡情况的处理说明,具体如下:
当对数据进行分类训练的时候,有时候会出现原始数据样本不均衡的情况,也就是正例与反例样本数量存在差异。此时为了能够更好的训练模型,需要对原始数据进行“过采样”或“下采样”来使得训练数据分布均衡。建议采用过采样
过采样:让正反例样本一样多,通常是对较少的数据进行数据生成,让其与较多的数据一样多。如可采用SMOTE样本生成策略生成数据,注意:生成数据仅对训练数据进行生成。
下采样:让正反例样本一样少,通常是对较多的数据进行随机采样,让其与较少的数据一样少。对于下采样来说,通常的模型训练方式是将下采样的数据进行交叉验证训练模型,注意:需用原始数据集的测试数据进行模型测试。
对于样本不均衡的数据来说,用精度来评估模型好坏是存在偏差的,因为它只反映了预测正确的结果如何,不能反映预测错误的情况,对于错误分类来说又分为过检和漏检。
例如:对于商品检测来说,如果我们的目的是检测次品(正例)的商品,那么此时的 过检 即本来是正品预测为次品,漏检 即本来是次品预测为正品。
预测为反例 | 预测为正例 | |
---|---|---|
反例(Negatiave) | TN | FP |
正例(Positive) | FN | TP |
如果预测结果全为正品,则准确率为99%,此时的准确率
不能有效的评估模型的好坏,因为它没有有效区分正品和次品,但是由于数据样本不均衡,正品的基数大,所以得到了较高的精度值。
因此对于样本不均衡的数据来说,需要用“召回率(Recall)”、“精确率(Precision)”和“综合评价指标(F-Mmeasure)”来评估模型:
召回率(Recall)的公式是
召回率(也称“查全率”)反映了正确被检索的(TP)占所有应该检索到的(TP+FN)的比例,值越大越说明没有漏检,查的比较全。
精确率(precision)的公式是
精确率(也称“查准率”)反映了正确被检索的(TP)占所有实际被检索到的(TP+FP)的比例,值越大越说明没有过检,查出的准确度较高。
综合评价指标(F-measure)的公式是
F-Measure综合反映了召回率和精确率。
对于反例>>正例时,下采样预测模型会存在以下问题:Recall值虽然达到标准,但容易出现过检的情况,即将正品预测为次品,FP值过大,精确率低。而对于过采样来说,虽然Recall值略低于下采样,但能够有效降低过检出现的次数,既保证了召回率又保证了精确率 因此,建议使用过采样来训练模型。
上述方法可用于疾病检测、欺诈检测、商品检测等领域,需要根据实际情况对召回率和精确率取折中策略。