- 数据预处理主要分为:数据清洗、数据补全、数据转换、数据压缩、数据统计
- 数据预处理是数学建模数据题型的必备操作,即使数据问题不大也要进行基本的预处理
- 专业的数据预处理涉及专业的机器学习,数学建模要求没那么高
一、数据清洗
重复数据 :删除
异常数据 : 识别并删除(如果量大还需要填充补全)
-
正态分布**$3σ$原则:**
适合适用总体符合正态分布的数据,不适合符合其他分布的数据
-
箱型图法:
计算上下四分位数(R1 和 R3)及四分位距(IQR = R3 - R1)。
定义正常值范围为 [R1 - 1.5 * IQR, R3 + 1.5 * IQR],超出该范围的数值视为异常值。
-
对于非数值型数据:不合理的数据也删除
比如 2023C 题 235 删除了滞销打折销售的蔬菜数据
数据过少:删除
-
数据缺失严重;对分析问题作用不大的数据:
比如 2023C 题 228 删除了销售数据少的某几个蔬菜品类
二、数据补全
-
均值、众数、正态分布插补:
定量数据:身高、年龄等数据,数量少则用整体的均值来补缺失,数量多则按照正态分布填充
定性数据:性别、文化程度;某些事件调查的满意度,用众数补缺失
-
分段三次 Hermite 插值多项式 (PCHIP)或三次样条插值法:
适用数据大量连续的实数型数值数据 -
移动平均插值:(多用于时间序列)
基本思想:通过对序列中一组相邻点的平均值,以得出当前点的估计值
步骤:
-
窗口设置:选择合适的窗口大小L。
-
计算移动平均:
-
对于序列中的每个点 yj,计算其移动平均值Sj:
S_j = \frac{1}{L} \sum_{i=j-(L-1)/2}^{j+(L-1)/2} y_i -
注意处理边界情况,可能需选择相邻的可用数据进行计算
-
-
三、数据转换
格式转换:非数值型数据转换为数值型数据
-
类别数据编码:转换为 One-Hot 编码或 label 编码
比如 2023C 题 228 将分类变量进行编码
这两个编码有点复杂,没学懂有什么用还是慎重使用,不然代码里要露馅
One-Hot 编码:
对于变量
Color
可能的值有Red
、Green
和Blue
,则编码为:Color_Red Color_Green Color_Blue 1 0 0 (代表 Red) 0 1 0 (代表 Green) 0 0 1 (代表 Blue)
label 编码:
对于变量
Color
可能的值有Red
、Green
和Blue
,则编码为:-
Red → 0
-
Green → 1
-
Blue → 2
-
-
图像数据转换:将图像转化为像素矩阵
-
文本数据向量化:词频向量化、Word Embedding(语义向量)
数值转换:
-
标准化:有很多种标准化方式
Z-score 标准化:Z=(X−μ)/σ
**Min-Max 标准化:**X′=(X−Xmin)/(Xmax−Xmin)
-
归一化
-
正向化
-
对数变换(数据峰右偏用对数)、指数变换(数据峰左偏用指数):可以处理数据分布偏斜的情况 Box-Cox 转换
四、数据压缩(突出特征)
-
数据聚合:比如 2023 年 C 题将销售记录按照日、月、年聚合
-
数据聚类:详见聚类分析
-
数据降维:(都还不懂 )
主成分分析(PCA)
线性判别分析(LDA)
TSNE 降维模型(可视化好)
UMAP 降维模型(降维算法高级)
专业机器学习:
五、数据统计(统计与特征分析)
-
描述性统计分析:提供数据的基本特征(相关性系数清风讲过)
-
推断性统计分析:对总体进行推断,使用假设检验、置信区间等。
-
相关性分析
-
回归分析
-
**方差分析(ANOVA)** (还不懂)
例子均来自国赛 2023C 题 228:
补充:
2024 国赛数学建模全流程,从数据预处理到模型评估 (qq.com)
Box-Cox 转换也是用来把数据变得更正态的
过采样(Over-sampling)技术
1. 过采样的目的
过采样的主要目标是通过增加少数类样本的数量来平衡数据集,尤其是在处理不平衡分类问题时。少数类样本通常难以被模型有效学习,因此需要通过过采样技术来增强其代表性。
2. SMOTE 的核心步骤
SMOTE 是一种常用的过采样方法,其核心步骤如下:
- 选择样本:从少数类样本中随机选择一个样本 ( x )。
- 找到最近邻样本:在少数类样本中找到 ( k ) 个最近邻样本 ( x_{neighbor} )。
- 生成新样本:在原样本 ( x ) 和一个最近邻样本 ( x_{neighbor} ) 之间生成一个新样本 ( x_{new} ),其计算公式为:
[
x_{new} = x + \lambda \times (x_{neighbor} - x)
]
其中 ( \lambda ) 是一个在 0 到 1 之间的随机数。3. 优点
- 增加样本数量:通过增加少数类样本的数量,提高分类模型对少数类的识别能力。
- 多样性:使用 SMOTE 生成的新样本更具多样性,减少了过拟合的风险。
4. 缺点
- 引入噪声样本:可能会引入噪声样本,导致模型性能下降。
- 过拟合问题:简单复制方法可能会导致少数类的过拟合问题。
5. 适用场景
- 不平衡分类问题:特别适用于处理不平衡分类问题,如欺诈检测、医疗诊断等。
总结
过采样,尤其是 SMOTE 方法,是处理不平衡数据集的重要技术。通过生成新的少数类样本,可以提高模型的性能,但也需要注意可能引入的噪声和过拟合问题。
降采样(Under-sampling)技术详解
降采样是一种处理不平衡数据集的技术,旨在通过减少多数类样本的数量来平衡数据集,从而提高分类器对少数类的识别能力。以下是对降采样技术的详细解释,包括其核心步骤、优缺点和适用场景。
1. 核心步骤
计算样本数量:
- 假设多数类样本数量为 ( N_{\text{majority}} ),少数类样本数量为 ( N_{\text{minority}} )。
随机采样:
- 从多数类样本中随机选择与少数类样本数量相同的样本,即选择 ( N_{\text{minority}} ) 个样本。这种方法简单易行,但可能会丢失一些重要的信息。
2. 优点
降低不平衡性:
- 通过减少多数类样本的数量,降低数据集的不平衡性,从而提高分类器对少数类的识别能力。
减少计算开销:
- 降低数据集的规模,减少计算资源的消耗,适合大规模数据集的处理。
3. 缺点
信息损失:
- 随机删除多数类样本可能会导致丢失关键信息,影响模型的整体性能。
适用性限制:
- 仅适用于多数类样本数量远大于少数类样本数量的情况。如果多数类样本数量较少,降采样可能会导致数据不足。
4. 适用场景
不平衡分类问题:
- 特别适用于类别严重不平衡的数据集,如垃圾邮件检测、欺诈检测等场景。
大规模数据集:
- 在处理大规模数据集时,降采样可以有效减少计算负担。
总结
降采样是一种有效的处理不平衡数据集的方法,通过减少多数类样本的数量来提高分类器对少数类的识别能力。然而,使用降采样时需要谨慎,以避免丢失重要信息和影响模型性能。在实际应用中,降采样可以与其他技术(如过采样、集成学习等)结合使用,以获得更好的效果。
特征选择(Feature Selection)详解
特征选择是数据预处理中的一个重要步骤,旨在从高维数据集中选择出最具代表性的特征,以提高模型的性能和可解释性。以下是对特征选择的详细分析,包括其核心公式、优缺点和适用场景。
1. 核心公式
特征选择的核心在于评估每个特征与目标变量之间的关系。以卡方检验为例,其核心公式为:
[
\chi2 = \sum \frac{(O_i - E_i)2}{E_i}
]
- (O_i) :观察值,表示实际观测到的频数。
- (E_i) :期望值,表示在假设下预期的频数。
通过计算卡方统计量,可以评估特征与目标变量之间的独立性。特征选择的步骤如下:
- 计算卡方统计量:对每个特征 (X_i) 与目标变量 (y) 之间的关系进行评估。
- 选择特征:选择卡方统计量最大的前 (k) 个特征。
2. 优点
- 减少特征数量:通过选择最重要的特征,减少特征数量,降低模型复杂度,防止过拟合。
- 提高模型性能:去除冗余和无关特征,可以提高模型的泛化能力和解释性。
3. 缺点
- 信息损失:在特征选择过程中,可能会丢失一些有用的信息,影响模型的性能。
- 选择方法依赖性:不同的特征选择方法可能会导致不同的特征集,因此需要根据具体情况选择合适的方法。
4. 适用场景
- 高维数据集:特征选择特别适用于高维数据集,如文本分类、基因表达数据分析等。
- 模型解释性要求高的场景:在需要对模型进行解释的情况下,特征选择可以帮助识别重要特征。
总结
特征选择是数据预处理中的关键步骤,通过选择最具代表性的特征,可以提高模型的性能和可解释性。尽管特征选择有其优缺点,但在高维数据集和需要模型解释性的场景中,它仍然是一个不可或缺的技术。选择合适的特征选择方法和策略,将有助于构建更有效的机器学习模型。
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于