44、数据处理与统计分析全解析

数据处理与统计分析全解析

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 等技术。

概率作为统计学的重要概念,在金融、制造、营销等多个领域都有广泛的应用。通过对事件发生概率的计算和分析,我们可以进行风险评估、质量控制和预测分析等,为决策提供有力的支持。

希望本文能帮助读者更好地理解数据处理与统计分析的相关知识,在实际工作中能够灵活运用这些方法和技术,提高数据处理和分析的能力。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值