17.5 处理不均衡的分类
问题描述
用不均衡的分类数据训练一个SVC。
解决方案
使用class_weight来增加对数据量少的类别分错类后的惩罚:
讨论
在支持向量机中,C是一个超参数,它决定着一个观察值被分错类后的惩罚。在支持向量机中处理分类数据不均衡的一个方法是,对不同的分类使用不同的权重C:
这里C是对错误分类的惩罚,wj跟分类j出现的概率反相关,Cj是分类j的C值。这背后大概的思路就是,增加对数据少的类别分错类时的惩罚,来防止模型被数据多的分类所“占据”。
在scikit-learn中使用SVC时,可以设置class_weight='balanced’自动为Cj取值。balanced参数值自动为分类设置不同的权重:
这里wj是分类j的权重,n是观察值的数量,nj是分类j的观察值的数量,k是分类的数量。
本书评论