逻辑回归中样本不平衡的解决方案

逻辑回归中样本不平衡的解决方案:

在逻辑回归中,如果数据不平衡会导致如下情况,分类效果差:


未加权的图


改进:对不同类型进行加权,公式如下:

l ( θ ∣ Y ) = ⟨ ∏ i = 1 n L g − 1 ( η i ∣ θ ) ⟩ W L ⟨ ∏ j = 1 n N L [ 1 − g − 1 ( η j ∣ θ ) ] ⟩ W N L l(\theta \mid \mathbf{Y})=\left\langle\prod_{i=1}^{n_{L}} g^{-1}\left(\eta_{i} \mid \theta\right)\right\rangle^{W_{L}}\left\langle\prod_{j=1}^{n_{NL}}\left[1-g^{-1}\left(\eta_{j} \mid \theta\right)\right]\right\rangle^{W_{NL}} l(θY)=i=1nLg1(ηiθ)WLj=1nNL[1g1(ηjθ)]WNL

其中 g − 1 ( η i ∣ θ ) g^{-1}\left(\eta_{i} \mid \theta\right) g1(ηiθ)为概率密度, W L W_{L} WL W N L W_{NL} WNL分别为不同类别的权重(权重设置按照具体情况而定)。

在sklearn.linear_model import LogisticRegression中即是设置class_weight参数,具体使用如下:
class_weight = {0: NL, 1: L},其中0和1为标签,NL和L为所设置的权重。


画图结果如下:
加权后的图
需要加权的情况:

第一种是误分类的代价很高。比如对合法用户和非法用户进行分类,将非法用户分类为合法用户的代价很高,我们宁愿将合法用户分类为非法用户,这时可以人工再甄别,但是却不愿将非法用户分类为合法用户。这时,我们可以适当提高非法用户的权重。

第二种是样本是高度失衡的,比如我们有合法用户和非法用户的二元样本数据10000条,里面合法用户有9995条,非法用户只有5条,如果我们不考虑权重,则我们可以将所有的测试集都预测为合法用户,这样预测准确率理论上有99.95%,但是却没有任何意义。这时,我们可以选择balanced,让类库自动提高非法用户样本的权重。

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值