巴拉巴

 找回密码
 立即注册

站内搜索

搜索
热搜: 活动 交友 discuz
查看: 19|回复: 0

数据处理方法整理【目前最全】

[复制链接]

9

主题

10

帖子

27

积分

新手上路

Rank: 1

积分
27
发表于 2023-4-12 18:40:32 | 显示全部楼层 |阅读模式
数据处理方法
主要采用编写数据处理代码来对数据进行处理步骤,主要采用Python语言,使用相关的Pandas、Numpy、Scikit-learn等库来进行操作,一些代码实例如下。
1、缺失数据处理
数据缺失是指数据集中某行记录或某列特征的变量值存在空值的情况。常用的缺失值处理方法主要包括以下几种:
(1)删除法,若数据集中某行记录或某一列特征的数据缺失比率大于指定阅值时,可以认为该行数据或该列特征为无效数据或无效特征,直接删除含缺失数据的记录即可。
(2)基于统计学变量的填充法,这类方法需要根据特征的类型和分布情况决定采用哪种统计学变量进行填充。例如:特征是离散型的,可以直接通过众数对缺失值进行填充;特征是连续数值型并且数据分布比较均匀,可以采用平均数对缺失值进行填充,用全局变量或是属性的平均值来代替所有缺失数据;特征是连续数值型但分布倾斜,可以采用中位数进行填充等。
(3)基于插值的填充法,这类方法主要是通过随机插值、拉格朗日插值、多项式插值等方法对缺失的变量值进行填充。例如:多项式插值法是通过构建多项式来拟合现有的数据,使得所有的样本数据都符合该多项式的分布,需要获取某个样本的缺失值时,通过求解该多项式来获得。
(4)基于模型的填充法,这类方法是利用有监督的模型或者无监督的模型来实现缺失值的填充。例如:K近邻填充是利用聚类的方式来获得某个缺失样本邻近的若干个样本点,通过对这些样本点计算均值或加权平均来进行缺失值填充。

(5)热卡填充法,这类方法是在数据集中寻找与缺失样本最相似的样本点,并利用该最相似样本的变量值对缺失数据进行填充。问题关键是不同的问题可能会选用不同的标准来对相似进行判定,以及如何制定这个判定标准。该方法概念上很简单,且利用了数据间的关系来进行空值估计,但缺点在于难以定义相似标准,主观因素较多。
(6)预测法,这类方法是用预测模型来预测每一个缺失数据。用已有数据作为训练样本来建立预测模型,预测缺失数据。该方法最大限度地利用已知的相关数据,是比较流行的缺失数据处理技术。

2、数据重采样
针对时序数据可采用数据重采样方法,将时间序列从一个频率转换至另一个频率的过程,它主要有两种实现方式,分别是降采样和升采样,降采样指将高频率的数据转换为低频率,升采样则与其恰好相反,将低频率数据转换到高频率。
对于一些高密度传感器,会在毫秒级别产生海量时序数据,因此对此类大量数据进行采样,将数据压缩到秒、分钟、小时等级别,来对数据进行压缩,较少数据量。
可采用Pandas 提供的 resample 函数来实现数据的重采样。
3、离群值处理
当数据中的某个数据点明显偏离于其他数据点的分布或者某个数据点明显区别于其他的数据点时,将其判定为离群点(异常值),对离群值可采用异常数据检测的方法,检测异常值并将其进行去除。
异常数据检测主要包括以下几种方法:
(1)基于统计分析的方法,通过特征的描述信息以及特征值范围来判断数据是否异常。例如,对于年龄特征,规约其值的范围是[0,200],当出现了负数或者大于200的数,则判断为异常数据。
(2)基于密度的方法,通过离群点的局部密度显著低于大部分近邻点的特点进行判定,适用于非均匀的数据集。
(3)基于聚类的方法,一般正常的数据点呈现“物以类聚”的聚合形态,正常数据出现在密集的邻域周围,而异常点偏离较远,以此来对数据进行判定异常。
(4)基于树的方法,通过划分来判定异常。如孤立森林(Isolation Forest,iForest)被认为是最有效的异常检测方法之一,该方法是通过计算样本点的异常关联度分数来进行异常判定,若某样本得到的异常关联度分数较高,且大于阅值时可以判定其为异常。
(5)基于预测的方法,对时序数据根据其预测出来的时序曲线和真实的数据相比,来判定异常值的出现。
具体一些方法介绍如下:
(1) 基于统计分布的异常检测
数据分布模型可以通过估计概率分布的参数来创建。如果一个对象不能很好地同该模型拟合,即如果它很可能不服从该分布,则它是一个异常。
3σ-法则
假设一组检测数据只含有随机误差,对原始数据进行计算处理得到标准差,然后按一定的概率确定一个区间,认为误差超过这个区间的就属于异常值。
(μ−3σ,μ+3σ)区间内的概率为99.74。所以可以认为,当数据分布区间超过这个区间时,即可认为是异常数据。
假设数据集由一个正太分布产生,该分布可以用 N(μ,σ) 表示,其中 μ 是序列的均值,σ是序列的标准差,数据落在 (μ-3σ,μ+3σ) 之外的概率仅有0.27%,落在 (μ-4σ,μ+4σ) 之外的区域的概率仅有0.01%,可以根据对业务的理解和时序曲线,找到合适的K值用来作为不同级别的异常报警。
Z-score
Z-score为标准分数,测量数据点和平均值的距离,若A与平均值相差2个标准差,Z-score为2。当把Z-score=3作为阈值去剔除异常点时,便相当于3sigma。
MA滑动平均法
识别数据不规则性的最简单的方法是标记偏离分布的数据点,包括平均值、中值、分位数和模式。
假定异常数据点是偏离平均值的某个标准偏差,那么我们可以计算时间序列数据滑动窗口下的局部平均值,通过平均值来确定偏离程度。这被技术称为滑动平均法(moving average,MA),旨在平滑短期波动并突出长期波动。滑动平均还包括累加移动平均、加权移动平均、指数加权移动平均、双指数平滑、三指数平滑等,在数学上,nn周期简单移动平均也可以定义为“低通滤波器”。
该方法有明显缺陷:数据中可能存在与异常行为类似的噪声数据,所以正常行为和异常行为之间的界限通常不明显;异常或正常的定义可能经常发生变化,基于移动平均值的阈值可能并不总是适用。
boxplot箱型图(分位数异常检测)
箱型图,是一种用作显示一组数据分散情况资料的统计图。主要用于反映原始数据分布的特征,还可以进行多组数据分布特征的比较,其绘制方法是:先找出一组数据的最大值、最小值、中位数和上下两个四分位数。通过不同分位数来划分异常值和疑似异常值。
IQR是第三四分位数减去第一四分位数,大于Q3+1.5IQR之外的数和小于Q1-1.5*IQR的值被认为是异常值。
Grubbs异常检验
Grubbs测试是一种从样本中找出outlier的方法,所谓outlier,是指样本中偏离平均值过远的数据,他们有可能是极端情况下的正常数据,也有可能是测量过程中的错误数据。使用Grubbs测试需要总体是正态分布的。
算法流程:
①.样本从小到大排序
②.求样本的mean和std.dev [均值和标准差]
③.计算min/max与mean的差距,更大的那个为可疑值
④.求可疑值的z-score (standard score),如果大于Grubbs临界值,那么就是outlier;
⑤.Grubbs临界值可以查表得到[它由两个值决定:检出水平α(越严格越小)、样本数量n],排除outlier,对剩余序列循环做①-④步骤。
由于这里需要的是异常判定,只需要判断tail_avg是否outlier即可。
等等 由于篇幅太长需要更多的数据处理方法 点赞+评论学习

来源:http://www.yidianzixun.com/article/0nk3Kitm
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 返回顶部