摘要:缺失值比例法是一种机器学习特征选择技术,用于处理数据集中缺失值比例过高的特征。该方法通过计算各特征缺失比例并设定阈值,剔除高缺失值特征,从而优化模型性能。实施步骤包括计算缺失比例、设定阈值、剔除特征和模型训练。不同缺失比例区间(如<5%、5%-20%、20%-80%、>80%)需采取不同处理策略。该方法虽能节省计算资源、简化模型结构,但也可能导致信息丢失和选择偏差。实际应用中需注意区分缺失类型、避免数据泄露,并根据业务需求灵活调整阈值。
目录
机器学习 —— 缺失值比例法
缺失值比例法的核心原理
缺失值比例法的实施步骤
常见阈值划分与对应策略
示例
输出结果
关键注意事项
缺失值比例法的优势
缺失值比例法的劣势
机器学习 —— 缺失值比例法
缺失值比例法(Missing Values Ratio)是机器学习中一种特征选择技术,用于识别并剔除数据集中缺失值占比过高的特征。该技术通过减少模型训练所用的特征数量,避免缺失值导致的偏差问题,进而提升模型性能。
缺失值比例法的核心原理
计算数据集中每个特征的缺失值占比,剔除占比超过设定阈值的特征。这是因为缺失值占比高的特征对目标变量的预测价值较低,还可能给模型引入偏差。
缺失值比例法的实施步骤
- 计算数据集中每个特征的缺失值占比;
- 设定特征缺失值占比的阈值;
- 剔除缺失值占比超过阈值的特征;
- 使用剩余特征训练机器学习模型。
常见阈值划分与对应策略
| 缺失比例区间 | 推荐处理策略 | 适用场景说明 |
|---|---|---|
| < 5% | 直接删除缺失样本 | 样本量充足,缺失是随机的,删除后对数据分布影响极小 |
| 5% ~ 20% | 填充缺失值 | 样本量有限,缺失非完全随机;可根据特征类型选均值 / 中位数(数值型)、众数(分类型),或模型预测填充 |
| 20% ~ 80% | 将缺失作为新特征 + 填充 | 缺失可能隐含业务意义(如 “未填写” 本身是一种状态);新增二分类特征(0 = 无缺失,1 = 有缺失),再对原特征填充 |
| > 80% | 直接删除该特征 | 特征有效信息极少,保留会引入大量噪声,对模型无正向贡献 |
示例
以下是在 Python 中实现缺失值比例法的示例代码:
# 导入必要的库 import numpy as np # 加载糖尿病数据集 diabetes = np.genfromtxt(r'C:\Users\Leekha\Desktop\diabetes.csv', delimiter=',') # 定义预测变量(X)和目标变量(y) X = diabetes[:, :-1] y = diabetes[:, -1] # 计算每个特征的缺失值占比 missing_percentages = np.isnan(X).mean(axis=0) # 设定缺失值占比阈值 threshold = 0.5 # 找出缺失值占比超过阈值的特征索引 high_missing_indices = [i for i, percentage in enumerate(missing_percentages) if percentage > threshold] # 从数据集中剔除高缺失值特征 X_filtered = np.delete(X, high_missing_indices, axis=1) # 打印筛选后数据集的形状 print('筛选后数据集的形状:', X_filtered.shape)上述代码对糖尿病数据集执行缺失值比例法,剔除了缺失值占比超过阈值的特征。
输出结果
运行上述代码后,将得到以下输出:
筛选后数据集的形状: (769, 8)关键注意事项
- 区分缺失类型缺失值分为完全随机缺失(MCAR)、随机缺失(MAR)、非随机缺失(MNAR)。
- MCAR:缺失与特征、标签无关(如数据录入失误),可直接删样本;
- MNAR:缺失与特征本身相关(如低收入人群不愿填写收入),需优先将缺失作为新特征。
- 避免数据泄露填充操作(尤其是用统计量填充)必须在训练集上计算统计量,再用该统计量填充验证集和测试集,否则会引入数据泄露。
- 阈值灵活调整若某特征是核心业务特征(如信用评分模型中的 “逾期次数”),即使缺失比例达 30%,也不宜直接删除,可优先选择模型预测填充。
缺失值比例法的优势
- 节省计算资源:特征数量减少后,训练机器学习模型所需的计算资源随之降低;
- 提升模型性能:剔除高缺失值特征有助于改善机器学习模型的表现;
- 简化模型结构:特征数量更少,模型更易于解释和理解;
- 减少偏差:剔除高缺失值特征可降低模型中的偏差。
缺失值比例法的劣势
- 信息丢失:可能会剔除包含重要信息的特征,导致数据集中的信息损失;
- 影响非缺失数据:若被剔除的高缺失值特征对预测因变量至关重要,可能会对非缺失数据的利用产生负面影响;
- 影响因变量预测:若高缺失值特征是预测因变量的关键因素,剔除后可能会降低因变量的预测效果;
- 引入选择偏差:若剔除了对预测因变量有重要作用的特征,可能会给模型带来选择偏差。