步骤 | 子步骤 | 描述 | 常用方法 | 注意事项 |
---|---|---|---|---|
1. 数据收集 | - | 获取和收集数据集,用于后续分析和建模。 | 数据库查询、API调用、手动收集 | 确保数据来源可靠、数据质量高,数据量足够代表总体。 |
2. 数据清洗 | 缺失值处理 | 处理数据中的缺失值,以防止模型误差。 | - 删除缺失值 - 填补缺失值(平均值、中位数、众数、插值法、前后值填充、回归预测、K近邻等) | 根据缺失值比例和数据特点选择合适的方法,避免丢失过多数据。 |
重复值处理 | 删除数据中的重复记录,防止重复计算和模型训练偏差。 | 删除重复行或列 | 检查数据重复的原因,确保不会误删有意义的数据。 | |
异常值检测与处理 | 检测和处理数据中的异常值,防止模型被异常值误导。 | - 删除异常值 - 平滑处理 - 使用算法修正(如聚类算法或回归模型) | 结合业务背景判断异常值是否有意义,避免误删关键数据。 | |
3. 数据标准化与归一化 | 标准化(Standardization) | 将数据转换为零均值和单位方差的分布,适合假设数据符合正态分布的算法。 | z = x − μ σ z = \frac{x - \mu}{\sigma} z=σx−μ | 确保对所有特征一致地应用标准化,防止模型受特征尺度影响。 |
归一化(Normalization) | 将数据缩放到特定范围(通常是[0, 1]),适合对数据范围敏感的算法。 | x ′ = x − min ( x ) max ( x ) − min ( x ) x' = \frac{x - \min(x)}{\max(x) - \min(x)} x′=max(x)−min(x)x−min(x) | 注意选择适合的归一化范围,确保特征间比例合适。 | |
4. 数据转换 | 特征缩放 | 调整数据的尺度,使不同特征在同一个范围内,避免某些特征在模型中占据主导地位。 | 标准化、归一化 | 保证缩放后的数据仍然保持原有的相对大小和比例关系。 |
对数变换 | 对数变换用于将偏态分布的数据转换为接近正态分布,有助于减少数据的偏度。 | x ′ = log ( x + 1 ) x' = \log(x + 1) x′=log(x+1)(防止零值出现) | 适用于数据具有长尾分布的情况;注意处理非正值数据。 | |
Box-Cox变换 | 将数据变换为接近正态分布,适用于严格正值数据。 | x ′ = x λ − 1 λ x' = \frac{x^\lambda - 1}{\lambda} x′=λxλ−1(通常, λ \lambda λ 通过最大似然估计确定) | 只适用于严格正值数据,需事先对数据进行筛选。 | |
5. 特征工程 | 特征选择 | 从数据集中选择对模型训练最有用的特征,减少数据维度,提高模型性能。 | - 过滤法(相关系数、卡方检验等) - 包裹法(递归特征消除等) - 嵌入法(决策树、Lasso回归等) | 考虑选择与目标变量强相关的特征,避免高维度数据导致的计算复杂性和过拟合。 |
特征提取 | 提取有用的特征来增强数据的表示能力。 | 主成分分析(PCA)、独立成分分析(ICA)、特征重组(组合、聚合等) | 通过特征提取降低数据维度,提升模型效率;需注意保持原有信息不被过度损失。 | |
特征编码 | 对类别型数据进行编码,使其能用于模型训练。 | 独热编码(One-Hot Encoding)、标签编码(Label Encoding)、目标编码(Target Encoding) | 根据特征的重要性选择合适的编码方式,避免类别数量过多导致的维度膨胀(如独热编码)。 | |
6. 数据拆分 | 训练集/测试集划分 | 将数据集分为训练集和测试集,以验证模型的泛化能力。 | 随机划分、分层采样 | 确保测试集和训练集分布一致,避免模型偏差;常用80:20或70:30的划分比例。 |
交叉验证 | 将数据集划分为多个子集,多次训练和验证模型,以获得更可靠的模型性能评估。 | K折交叉验证(K-Fold Cross-Validation) | 确保每次验证的样本集不重复,提高模型评估的稳定性和可靠性。 | |
7. 数据平衡 | 类别平衡 | 平衡数据集中的类别分布,防止模型在类别不平衡的数据上出现偏差。 | 欠采样(Under-sampling)、过采样(Over-sampling)、SMOTE(合成少数类过采样) | 选择适合的平衡方法,避免数据丢失或过度合成导致的模型性能下降。 |
数据预处理
最新推荐文章于 2024-09-29 23:16:17 发布