分箱合并的标准

本文介绍了一种数据处理方法,通过将具有零不良率的数据与最小非零不良率的数据合并,实现数据的有效重组。该方法首先对数据按不良率进行排序,然后通过一系列操作将特定条件下的数据进行组合,并为每组数据创建分类标签。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数据如下图所示,当bad_rate为0时,与最小的非0的bad_rate行合并。即home_ownership 取NONE和取MORTGAGE的情况。

 

regroup = regroup.sort_values(by='bad_rate',ascending=False)# 先进行排序
regroup.index = range(regroup.shape[0])#重新调整序号。这个方法有意思,免去index_reset.
col_regroup = [[i] for i in regroup['home_ownership']] # 每个取值
del_index = []
for i in range(regroup.shape[0]-1):
    col_regroup[i+1] = col_regroup[i] + col_regroup[i+1]
    del_index.append(i)
    if regroup['bad_rate'][i+1] > 0:
       break
    col_regroup2 = [col_regroup[i] for i in range(len(col_regroup)) if i not in del_index]
 newGroup = {}
 for i in range(len(col_regroup2)):
     for g2 in col_regroup2[i]:
        newGroup[g2] = 'Bin '+str(i) #为每个组分类创造条件
 merge_bin_dict['home_ownership'] = newGroup
 newVar = 'home_ownership' + '_Bin'
 trainData[newVar] = trainData[col].map(newGroup)# 注意这种方式
 var_bin_list.append(newVar)

 

数据分箱(Binning)或离散化(Discretization)是一种将连续变量划分为若干区间(bin)的技术,广泛应用于信用评分、风险评估、机器学习特征工程等领域。以下是对数量和评分进行分箱处理的常见方法及技术说明。 ### 一、常见的数据分箱方法 #### 1. 等宽分箱(Equal Width Binning) 等宽分箱将数据范围均匀划分为若干个区间。例如,若工资范围是0到20000,将其分为5个宽度相等的区间,每个区间的跨度为4000。这种方法简单易行,但对异常值敏感,可能导致某些区间样本数过少[^2]。 ```python import pandas as pd data = [1000, 3000, 5000, 7000, 9000, 12000, 15000, 18000] binned_data = pd.cut(data, bins=5) print(binned_data) ``` #### 2. 等频分箱(Equal Frequency Binning) 等频分箱确保每个区间包含大致相同数量的样本。该方法能更好地反映数据分布,尤其适用于偏态分布的数据。但缺点是边界不易解释,且需要先排序数据[^2]。 ```python binned_data = pd.qcut(data, q=5) print(binned_data) ``` #### 3. 卡方分箱(Chi-Merge) 卡方分箱是一种基于统计显著性检验的自动分箱方法,常用于分类问题中的特征离散化。它通过合并相邻区间,使得合并后的区间在目标变量上的分布差异不显著(即卡方值小于阈值)。此方法适合二分类任务,能提升模型稳定性[^3]。 #### 4. 基于业务逻辑的手动分箱 在金融风控、信用评分等场景中,通常根据业务经验或行业标准手动设定分箱边界。例如,对于客户年龄可划分为:`<25`, `25-35`, `35-45`, `45-60`, `>60`。这种方式更具解释性,便于与业务部门沟通[^4]。 #### 5. 基于模型的分箱(如决策树分箱) 使用决策树算法(如CART)对连续变量进行最优划分。XGBoost、LightGBM等集成树模型本身具备自动分箱的能力,因此在这些模型中通常不需要额外进行离散化处理。但在构建评分卡模型时,仍推荐使用此类方法生成稳定、可解释的分箱规则[^3]。 --- ### 二、数量分箱与评分分箱的应用建议 #### 数量分箱 适用于数值型变量,如收入、年龄、交易金额等。建议结合数据分布情况选择等宽或等频方式,或根据业务需求进行自定义分箱。例如: - 收入分箱:`<3000`, `3000-5000`, `5000-8000`, `8000-12000`, `>12000`[^4] - 年龄分箱:`<20`, `20-30`, `30-40`, `40-50`, `>50` #### 评分分箱 评分通常是一个经过标准处理的指标,如信用评分、行为评分等。评分分箱应保证每个区间内评分对应的违约率(Bad Rate)有明显区分,从而增强模型的判别能力。常用做法包括: - 根据评分的历史分布进行五分位或十分位划分 - 结合好坏样本比例调整分箱边界,确保单调性 - 使用WOE(Weight of Evidence)编码进行变换后建模 --- ### 三、注意事项 - **信息损失**:分箱会丢失部分原始数据细节,需权衡可解释性与精度之间的关系 - **边界稳定性**:分箱边界应尽量稳定,避免因小幅度变化导致分组变动,影响模型输出一致性[^4] - **适用性**:并非所有模型都要求分箱,如集成树模型(XGBoost、LightGBM)天然支持连续特征 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值