数据清洗主要是对数据中的错误值、异常值、缺失值进行处理,还包括删除那些取值很多的类别型字段,或者取值一致性程度极高的字段
1.首先将数据导入excel中,方便对数据进行初步的审阅查看以及之后导入其它如SPSS等软件进行深入分析
2.对数据的定义进行明确,比如日期格式,数值的单位等,必要的时候进行格式转化
3.异常值的确定与处理
异常值的判断:一般依据题目中给出的限制条件和一些公认的限制进行初步判断
通过绘制箱线图可以观察是否存在离群值
异常值的处理:结合实际情况进行更改,造成异常值的原因有多种:包括人工失误,比如多输入了一位,或者小数点位置输入错误,就可以将数据还原,具体可以这样写:考虑到可能因为人工输入错误,将125岁改为12岁。
- 删除异常值
-
- 简单直接:直接将含有异常值的记录删除是最简单、最直接的方法。这种方法适用于数据样本大,异常值数量较少,且对总体数据影响不大的情况。
- 信息丢失:删除异常值可能导致信息丢失,特别是当异常值代表某种真实但罕见现象时。因此,在使用此方法前需要仔细评估异常值的性质和重要性。
- 替换异常值
-
- 使用统计量替换:用平均值、中位数或众数等统计量来替换异常值是常用方法之一。这样做可以保持数据的完整性,同时减少异常值对整体数据分析的影响。
-
- 应用插补法:插补法通过对异常值进行修正,如使用附近观测值的平均或利用预测模型计算替代值。这种方法适用于异常值较多且分布不均的情况。
-
-
- 保留异常值
-
- 重要信息:在某些情况下,异常值可能代表重要的信息,如欺诈检测中的异常行为。在这种情况下,保留异常值并进行特别分析可能更合适。
- 模型健壮性:对于某些机器学习模型,保留异常值可以测试和提高模型的健壮性。但这需要视具体应用场景和模型要求而定。
- 转换异常值
-
- 封顶和底部处理:对连续变量设置上下限,将超过范围的值进行修正,即所谓的封顶和底部处理。例如,年龄字段可以设定一个合理的最大值,超过这个值的数据可以被设为最大限值。
- 数据转换:通过数据转换,如对数值进行对数转换,可以减少异常值对数据分析的影响。这种方法适用于数据具有明显偏斜和异常值集中在高值区域的情况。
- 其他方法
-
- 分组处理和数据截尾:将数据分组并对组内数据进行汇总处理或仅对数据进行截尾处理。例如,可以将收入数据分成若干组,每组内部进行均值处理,从而平滑异常值的影响。
- 基于聚类和孤立森林:采用聚类方法如DBSCAN或孤立森林算法来识别和处理异常值。这些高级方法可以在保留大部分数据结构的同时,有效识别和处理离群点。
异常值检验与处理,以及缺失值的检验与处理。为了识别数据中是否存在异常值,可以采用箱线图方法。箱线图能够直观地展示数据的分布情况,特别是能突出显示离群值,这些离群值可能是由于测量误差、输入错误或其他非典型条件造成的。一旦在箱线图中识别出离群值,将进一步通过均值替换法进行处理。这种方法用该变量的其他非离群值的平均数来替换离群值,从而减少其对整体数据分析的影响。在确认数据中无异常值后,接下来需要检查数据集中是否存在缺失值。可以通过SPSS软件进行描述性统计分析,该分析可以揭示数据集中的缺失值数量和位置。对于发现的缺失值,同样推荐使用均值替换法进行处理。这种方法简单有效,尤其是在数据缺失不严重时,可以保持数据集的整体统计特性不变。
在数学建模和数据分析中,检测异常值(outliers)是非常关键的一步,因为异常值可能会对模型的性能和预测准确性产生显著的影响。以下是一些常见的用于检测异常值的方法:
基于统计的方法
- Z-Score(标准分数):如果一个数据点的Z-Score的绝对值大于某个阈值(通常为3),则认为它是异常值。
- 四分位数范围(IQR):使用箱线图(Boxplot),任何低于第一四分位数减去1.5倍IQR或高于第三四分位数加上1.5倍IQR的数据点都被视为异常值。
- 绝对中位差(MAD):计算每个数据点与中位数的绝对偏差,再取这些偏差的中位数,偏离MAD较大的点被视为异常值。
- Grubbs检验:用于检测单个或多个异常值,适用于正态分布的数据集。
- Dixon检验:用于小样本数据集中的异常值检测。
基于距离的方法
- Mahalanobis距离:考虑到变量间的相关性,用于多维空间中检测异常值。
- 欧氏距离:在多维空间中,如果一个点与所有其他点的距离都很大,那么这个点可能是异常值。
基于密度的方法
- DBSCAN(Density-Based Spatial Clustering of Applications with Noise):基于点的密度将数据点聚类,并将密度低的区域标记为噪声或异常值。
基于聚类的方法
- K-means聚类:虽然主要用来聚类,但可以利用离群点远离集群中心的特性来识别异常值。
- 层次聚类:异常值往往在聚类树的末端形成较小的子簇。
基于机器学习的方法
- 孤立森林(Isolation Forest):随机构建决策树来隔离异常值,异常值被更快地隔离。
- One-Class SVM:学习正常数据的边界,任何落在边界之外的数据点都被认为是异常值。
- 局部异常因子(LOF):基于局部密度比率来检测异常值。
- 自动编码器(Autoencoder):通过重建误差来识别与正常数据模式不匹配的异常值。
基于偏差的方法
- 移动窗口滤波算法:在时间序列分析中,使用滑动窗口来检测与趋势或季节性模式不一致的点。
基于深度的方法
- 投影寻踪(Projection Pursuit):寻找数据的低维投影,在此投影中异常值可以被容易地识别。
每种方法都有其适用场景和局限性,实际应用时需要根据数据的性质和需求选择合适的方法。在处理异常值时,重要的是不仅要检测它们,还要理解它们出现的原因,以及决定如何处理它们(删除、修正或保留)。