数据处理与统计分析全解析
1. 日期与货币格式处理
1.1 日期格式统一
在处理包含不同日期格式(如MMDDYY、DDMMYY、YYMMDD)的数据集时,将这些不同格式转换为统一的日期格式能确保数据的一致性。
1.2 货币格式转换
不同国家的货币格式存在差异,“,”和“.”在不同语言中的含义相反。例如,在美国1,124.78表示“一千一百二十四点七八”,而在欧洲1.124,78有相同的含义。当需要合并包含不同货币格式的数据集时,可能需要将所有不同的货币格式转换为统一的格式。同时,要考虑到货币汇率每天都会波动,这可能会影响税收、滞纳金等的计算。
2. 缺失数据处理
处理缺失数据的方法取决于具体的数据集,以下是一些处理缺失数据的方法:
- 手动方法 :
- 用均值/中位数/众数替换缺失数据。
- 推断(“插补”)缺失数据的值。
- 删除包含缺失数据的行。
- 算法方法 :
- 隔离森林(基于树的算法)。
- 最小协方差行列式。
- 局部异常因子。
- 一类支持向量机。
一般来说,用零替换缺失的数值是一个冒险的选择。对于具有数值的特征,用平均值替换缺失值比用零更好(除非平均值为零),也可以考虑使用中位数。对于分类数据,可以考虑使用众数来替换缺失值。如果不确定能否插补出“合理”的值,可以考虑删除包含缺失值的行,然后分别用插补值和删除行后的数据训练模型。
如果删除包含缺失值的行后,得到的数据集过小,可以考虑使用合成少数过采样技术(SMOTE)来生成合成数据。
3. 异常值与离群点
3.1 定义
- 离群点 :是指超出“正常”值范围的异常数据值。例如,人的身高通常在30厘米到230厘米之间,身高为5厘米或500厘米的数据点就是离群点。这些离群点值不太可能导致重大的财务或身体损失,但可能会对训练模型的准确性产生不利影响。
- 异常值 :也超出了“正常”值的范围,通常比离群点更具问题性,可能会产生更“严重”的后果。例如,一个住在加利福尼亚州的人突然在纽约进行信用卡消费,如果这个人正在纽约度假或出差,那么这次消费就是一个离群点;但如果这个人在消费时还在加利福尼亚州,那么这很可能是信用卡欺诈,属于异常值。
3.2 处理方法
目前没有简单的方法来决定如何处理数据集中的异常值和离群点。可以删除包含离群点的行,但这样做可能会使数据集和训练模型失去有价值的信息;也可以尝试修改数据值,但这可能会导致训练模型的推断错误。还可以用包含异常值和离群点的数据集训练一个模型,再用去除异常值和离群点的数据集训练一个模型,比较两个结果,看能否得出关于异常值和离群点的有意义的结论。
3.3 检测技术
以下是一些检测离群点的技术:
| 技术名称 | 描述 | 链接 |
| ---- | ---- | ---- |
| 修剪 | 去除特征值处于上5%或下5%范围的行 | - |
| Winsorizing | 将前5%范围的值设置为第95百分位数的最大值,将后5%范围的值设置为第5百分位数的最小值 | - |
| 最小协方差行列式 | 基于协方差的技术 | https://scikit-learn.org/stable/modules/outlier_detection.html |
| 局部异常因子(LOF) | 通过kNN(k最近邻)算法计算局部异常分数的无监督技术 | https://scikit-learn.org/stable/modules/generated/Sklearn.neighbors.LocalOutlierFactor.html |
| Huber和Ridge类 | 属于Sklearn的一部分,Huber误差对离群点不太敏感 | https://scikit-learn.org/stable/auto_examples/linear_model/plot_huber_vs_ridge.html |
| Theil - Sen估计器和RANSAC | 对离群点“鲁棒” | https://scikit-learn.org/stable/auto_examples/linear_model/plot_theilsen.html |
还有一些关于离群点检测的算法可以参考: https://www.kdnuggets.com/2018/12/four-techniques-outlier-detection.html 。另外,还有“局部”离群点的情况,例如使用kMeans(或其他聚类算法)时,某个值相对于某个聚类是离群点。还可以探索开源Python工具包PyOD进行多变量数据的离群点检测,其主页为: https://pyod.readthedocs.io/en/latest/ 。
4. 缺失数据分类
Donald Rubin提出了一种基于缺失数据是否由随机因素导致的分类系统,缺失数据可分为以下几类:
- MCAR(完全随机缺失) :缺失数据是由与数据无关的因素导致的。
- MAR(随机缺失) :在定义的数据组内,缺失数据的发生概率相等。
- MNAR(非随机缺失) :指除了MCAR和MAR之外,由于未知原因导致的数据缺失。
更多关于该分类系统的信息可参考: https://academic.oup.com/biomet/article-abstract/63/3/581/270932?redirectedFrom=fulltext 。
5. 数据漂移
严格来说,数据漂移与缺失数据没有直接关系,但在处理缺失数据问题之前,确保数据有意义很重要。数据的价值基于其准确性、相关性和时效性。数据漂移指的是随着时间推移,数据变得不那么相关(有时称为陈旧数据),这可能是由于数据分布随时间发生了变化。例如,2010年的在线购买模式可能不如2020年的数据相关。有两种技术可以帮助检测数据漂移,即域分类器和黑盒偏移检测器,相关讨论可参考: https://blog.dataiku.com/towards-reliable-mlops-with-drift-detectors 。
6. 不平衡分类
不平衡分类涉及类别不平衡的数据集。例如,假设A类有99%的数据,B类有1%的数据。传统的分类算法在处理这类不平衡数据集时效果不佳。以下是一些处理不平衡数据集的常用技术:
- 随机重采样 :重新平衡类别分布。
- 随机过采样 :复制少数类中的数据。
- 随机欠采样 :从多数类中删除示例。
- SMOTE(合成少数过采样技术) 。
6.1 欠采样和过采样
6.1.1 欠采样
欠采样的目的是平衡类别分布倾斜的分类数据集。随机欠采样是从多数类中随机选择示例并从训练数据集中删除,从而减少数据集中的不平衡。但对于99%/1%比例的两类数据集,随机欠采样效果不佳,且可能会丢失对模型有用的信息。
随机欠采样的步骤如下:
1. 从多数类中随机移除样本。
2. 可以有放回或无放回地执行。
3. 减轻数据集中的不平衡。
4. 可能会增加分类器的方差。
5. 可能会丢弃有用或重要的样本。
6.1.2 过采样
随机过采样是从少数类中随机选择(并替换)示例,以减少训练数据集中的类别不平衡。随机重采样将训练数据集转换为新的数据集,对不平衡分类问题非常有效。
过采样的方法有:
- 复制少数类中的示例,可平衡分布但无新信息。
- 合成少数类的新示例,是一种表格数据的数据增强方法,效果较好。
还可以使用Python包imbalanced - learn,它为存在类别不平衡的数据集提供了各种重采样技术,更多细节可参考: https://github.com/scikit-learn-contrib/imbalanced-learn 。
6.2 重采样的局限性
处理不平衡数据集的许多技术通常是为少数类生成更多样本(如SMOTE)或减少从多数类中选择的样本数量。但有些数据集由于其数据性质本身就是不平衡的,例如包含癌症、糖尿病等危及生命疾病患者的数据集,患者数量远少于健康人;包含信用卡欺诈的数据集,欺诈比例也非常低。
过采样少数类可能会导致过拟合,欠采样多数类可能会导致欠拟合。而且不同的机器学习算法对不平衡数据集的敏感度不同,例如逻辑回归比决策树对类别不平衡的敏感度低,而集成模型更不易过拟合。
6.3 SMOTE算法
SMOTE(合成少数过采样技术)是一种在使用分类算法之前为数据集合成新样本的数据增强技术。它最初基于kNN算法开发,基于线性插值,步骤如下:
1. 选择特征空间中相近的样本。
2. 在特征空间中连接这些样本。
3. 在连线上选取新样本。
更详细的SMOTE算法步骤:
1. 从少数类中随机选择一个样本“a”。
2. 找到该示例的k个最近邻。
3. 从最近邻中随机选择一个邻居“b”。
4. 创建连接“a”和“b”的线L。
5. 在线L上随机选择一个或多个点“c”。
必要时,可以对其他(k - 1)个最近邻重复此过程,以使合成值在最近邻中分布更均匀。
6.4 SMOTE扩展
最初的SMOTE算法基于kNN分类算法,有多种扩展方式,如用SVM替换kNN。SMOTE扩展算法包括:
- 边界SMOTE(kNN)
- 边界SMOTE(SVM)
- 自适应合成采样(ADASYN)
- DBSMOTE
更多关于这些算法的详细信息可通过互联网搜索或访问: https://en.wikipedia.org/wiki/Oversampling_and_undersampling_in_data_analysis 。
7. 分类器分析
7.1 LIME
LIME是局部可解释模型无关解释的缩写,是一种可用于机器学习模型的模型无关技术。其原理是对数据样本进行小的随机更改,观察预测的变化。就像食品检查员对易腐食品进行抽样检查一样,LIME对输入数据的随机位置进行小的更改,然后分析相关输出值的变化。
使用LIME时需要注意:
1. 输入值的实际更改是特定于模型的。
2. 该技术适用于可解释的输入,如机器学习分类器(如树和随机森林)和NLP技术(如词袋模型),不适用于“密集”数据(如词嵌入)。也可以用涉及可解释数据的另一个模型替换原模型,但需要评估其与原模型的近似准确性。
7.2 ANOVA
ANOVA是方差分析的缩写,用于分析从总体中抽取的样本的均值差异,可检验多个均值是否相等。更重要的是,它可以帮助减少I型(误报)错误和II型(漏报)错误。
ANOVA适用于实验设计和假设检验,在各种情况下都能产生有意义的结果。例如,当数据集包含一个可以划分为几个“合理”同质组的特征时,可以分析每个组的方差并进行比较,以确定给定特征值的不同方差来源。更多关于ANOVA的信息可参考: https://en.wikipedia.org/wiki/Analysis_of_variance 。
8. 概率相关概念
8.1 概率
事件的概率是指预期该事件发生的频率,通常表示为区间[0,1]内的实数,也可以表示为分数,如1/2。事件的可能性是概率以百分比表示,例如概率0.75相当于可能性75%。事件发生的赔率是事件E发生的概率e除以事件E不发生的概率(1 - e)。例如,如果e等于0.75,则1 - e等于0.25,事件E发生的赔率为0.75/0.25 = 3,赔率表示为“m比n”的形式,即“3比1”。如果第一个数字小于第二个数字,则赔率不利于事件的发生。如果赔率是分数或带分数,则表示为两个整数的比率,例如赔率为1.25,即5/4,赔率为“5比4”。
当处理具有多个结果的事件时,结果的概率计算为:p(结果) = 结果发生的次数/总结果数。例如,抛一枚均匀硬币,正面H或反面T的概率相等,p(H) = 1/2,p(T) = 1/2,与结果{H, T}相关的概率集合为P = {1/2, 1/2}。
8.2 有放回和无放回实验
有些实验涉及有放回抽样,有些涉及无放回抽样。例如,一个瓮中有10个红球和10个绿球,随机选择一个球是红球的概率是10/(10 + 10) = 1/2。如果有放回地选择球,每次选择后球都放回瓮中,那么第二次选择红球的概率是1/2 * 1/2 = 1/4,且任何事件的概率与所有先前事件无关。如果无放回地选择球,第二次选择红球的概率是10/20 * 9/19。像纸牌游戏就是无放回抽样的例子。
9. 数据处理与分析流程总结
9.1 数据预处理流程
为了更清晰地展示数据预处理的步骤,我们可以用 mermaid 流程图来呈现:
graph LR
A[原始数据集] --> B{检查日期格式}
B -- 不同格式 --> C[统一日期格式]
B -- 相同格式 --> D{检查货币格式}
C --> D
D -- 不同格式 --> E[统一货币格式]
D -- 相同格式 --> F{检查缺失数据}
E --> F
F -- 有缺失数据 --> G[处理缺失数据]
F -- 无缺失数据 --> H{检测异常值和离群点}
G --> H
H -- 有异常值和离群点 --> I[处理异常值和离群点]
H -- 无异常值和离群点 --> J{检查数据平衡}
I --> J
J -- 不平衡 --> K[处理不平衡分类]
J -- 平衡 --> L[数据预处理完成]
K --> L
9.2 处理缺失数据的选择
处理缺失数据时,我们可以根据不同情况进行选择,以下是一个简单的决策表格:
| 情况 | 处理方法 |
| ---- | ---- |
| 数值特征,平均值不为零 | 用平均值替换缺失值 |
| 数值特征,平均值为零 | 考虑用中位数替换缺失值 |
| 分类数据 | 用众数替换缺失值 |
| 不确定插补值合理性 | 删除包含缺失值的行,分别训练模型 |
| 数据集过小 | 使用 SMOTE 生成合成数据 |
9.3 异常值和离群点处理决策
对于异常值和离群点的处理,也有不同的决策方式,如下表所示:
| 处理方式 | 优点 | 缺点 |
| ---- | ---- | ---- |
| 删除包含离群点的行 | 简单直接 | 可能丢失有价值信息 |
| 修改数据值 | 保留数据量 | 可能导致模型推断错误 |
| 分别训练模型比较结果 | 全面评估影响 | 计算成本高 |
10. 概率在实际应用中的体现
10.1 风险评估
在金融领域,概率可以用于风险评估。例如,银行在评估贷款风险时,会根据历史数据计算借款人违约的概率。假设根据大量数据统计,某类借款人违约的概率为 0.1(即 10%),那么银行在决定是否发放贷款以及贷款额度时,就会参考这个概率。如果违约概率过高,银行可能会拒绝贷款或者提高贷款利率来弥补可能的损失。
10.2 质量控制
在制造业中,概率可用于质量控制。比如生产线上生产某种零件,根据以往经验,零件出现次品的概率为 0.05(即 5%)。为了保证产品质量,企业可以通过抽样检测的方式,利用概率知识来判断整批产品的质量情况。如果抽样中次品的比例明显高于 5%,则需要对生产线进行检查和调整。
10.3 预测分析
在市场营销中,概率可以用于预测客户的购买行为。假设通过对客户数据的分析,发现某类客户购买某种产品的概率为 0.3(即 30%),企业可以根据这个概率来制定营销策略,如针对这类客户进行精准营销,提高销售转化率。
11. 总结
本文全面介绍了数据处理与统计分析的多个方面,包括日期与货币格式处理、缺失数据处理、异常值与离群点检测和处理、数据漂移、不平衡分类以及分类器分析等内容,同时详细阐述了概率相关的概念及其在实际应用中的体现。
在数据处理过程中,我们需要根据不同的数据情况选择合适的处理方法,以确保数据的质量和模型的准确性。对于缺失数据,要综合考虑特征类型和数据量等因素来选择替换值或删除行;对于异常值和离群点,要谨慎处理,避免丢失重要信息或导致模型推断错误。在处理不平衡分类问题时,要认识到不同方法的优缺点,合理运用欠采样、过采样和 SMOTE 等技术。
概率作为统计学的重要概念,在金融、制造、营销等多个领域都有广泛的应用。通过对事件发生概率的计算和分析,我们可以进行风险评估、质量控制和预测分析等,为决策提供有力的支持。
希望本文能帮助读者更好地理解数据处理与统计分析的相关知识,在实际工作中能够灵活运用这些方法和技术,提高数据处理和分析的能力。
超级会员免费看

被折叠的 条评论
为什么被折叠?



