一、问题现象与成因分析
在使用imbalanced-learn库的RepeatedEditedNearestNeighbours(RENN)方法时,开发者常遇到样本边界模糊导致的分类器性能下降问题。具体表现为:
- 迭代过程中误删边界样本
- 少数类样本被过度清理
- 决策边界出现锯齿状波动
根本原因在于:
- K近邻选择不合理导致邻域判定偏差
- 原始数据分布存在高维稀疏性
- 重复编辑过程中的误差累积效应
二、核心解决方案
1. 动态调整邻域大小
from imblearn.under_sampling import RepeatedEditedNearestNeighbours
renn = RepeatedEditedNearestNeighbours(
n_neighbors=[5,7,9], # 渐进式增加邻域
max_iter=10,
kind_sel='mode'
)
2. 引入距离加权机制
| 参数 | 推荐值 | 作用 |
|---|---|---|
| weights | distance | 降低边界样本误删率 |
| metric | mahalanobis | 考虑特征相关性 |
三、进阶优化策略
3. 特征空间变换预处理
- 使用t-SNE降维可视化边界
- 应用核函数映射到高维空间
4. 集成学习方法
"结合RENN与SMOTEENN的混合采样策略,在UCI数据集上可将F1-score提升12.6%"
四、性能评估指标
建议监控以下指标:
- 边界样本保留率(BSR)
- 几何均值(G-mean)
- 类别重叠指数(OI)