class_weight和sample_weight
1、在SVC中对于不平衡数据可以调节svcl类中的参数class_weight和fit接口中的参数sample_weight
如果只设置class_weight,那么参数C变为:class_weight[i]*C 。
如果同时调节class_weight和sample_weight,那么参数C变为:class_weight[i] * sample_weight[i] * C。
2、准确率失去作用的原因:
从准确率的角度来说,不做样本平衡时的准确率反而更高,做了样本平衡的准确率反而下降了,这是因为做了样本平衡后,为了要更多的捕捉出少数类,模型误伤了许多多数类样本,而多数类样本被分错的样本数量大于少数类被分类正确的样本数量,使得模型整体的精确性下降。
3、如果要追求整体的accuracy,那么不要设置class_weight和sample_weight。
如果要追求的是捕捉少数类(因为少数类被判错的代价是巨大的),那么就要使用class_weight和sample_weight。
混淆矩阵
1、在混淆矩阵中,我们将少数类认为正例,多数类人为是反例。

1、准确率:acc = (a+d) / (a+b+c+d)
2、精确度:preision = a / (a+c)
预测的少数类中有多少是被分类正确。
3、敏感度:recall= a / (a+b)
实际的少数类有多少被预测出来了
recall越高,预测出的少数类越多。
4、特异度:specificity = d /(c+d)
实际的多数类中,有多少被预测正确了。
5、假正率:FPR = c / (c+d)
将多数类判断错误的的能力。样本平衡后,FPR会下降,因为有
SVM处理不平衡数据:class_weight、sample_weight与ROC分析

本文介绍了SVM在处理不平衡数据时如何使用class_weight和sample_weight参数,以及它们对模型准确率的影响。讨论了混淆矩阵的各项指标,包括精确度、召回率和特异度,并探讨了ROC曲线和AUC面积在评估模型性能中的作用。最后,阐述了如何确定ROC曲线上的最佳阈值以优化模型表现。
最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



