如何为logistic regression扩充样本量?基于现有数据生成新样本的方法咨询
实现需求的简便方法
核心思路
要让logistic回归拟合线向右倾斜,本质是强化**"x值越大,样本为true(绿色)的概率越高;x值越小,样本为false(红色)的概率越高"**的模式。以下是几种简便的实现方法:
带倾向性的重采样(最简单易操作)
无需复杂算法,直接对现有样本做加权重采样生成新样本:- 先统计现有样本的分布:定位x值较大区域的绿色样本、x值较小区域的红色样本
- 重采样时,提高上述两类样本的采样权重(比如给右侧绿色、左侧红色样本分配2-3倍于其他样本的权重),降低左侧绿色、右侧红色样本的采样权重
- 重复采样直到生成500个新样本,可选择与原样本合并后训练模型
定向生成带噪声的合成样本
若不想重复原样本,可基于现有样本的特征分布生成新样本:- 对右侧绿色样本的x、y特征,添加小幅度高斯噪声(例如代码实现:
x_new = x_original + np.random.normal(0, 0.1),y特征同理),批量生成新绿色样本 - 对左侧红色样本的x、y特征,同样添加小幅度高斯噪声,批量生成新红色样本
- 控制比例,让新增的500个样本中,右侧绿色+左侧红色样本占比不低于70%
- 对右侧绿色样本的x、y特征,添加小幅度高斯噪声(例如代码实现:
定制化SMOTE采样
若使用过采样工具,可调整SMOTE的采样区域:- 仅在右侧绿色样本的邻域内合成新的绿色样本,仅在左侧红色样本的邻域内合成新的红色样本
- 控制合成数量,让这两类合成样本占新增500个样本的大部分(多数机器学习库如
imblearn支持SMOTE的自定义采样范围)
注意事项
- 新样本需与原样本合并后训练模型,避免仅用新样本导致拟合偏差
- 高斯噪声的幅度不宜过大,防止生成的样本偏离原数据的分布逻辑
- 可先小批量测试(比如先生成100个样本),观察拟合线变化后再调整采样权重或生成比例
内容的提问来源于stack exchange,提问作者Dante van der Heijden
相关产品推荐
相关产品推荐

