首页 > 编程知识 正文

大数据预处理的目的,数据的预处理包括哪些内容?

时间:2023-05-05 12:56:05 阅读:135314 作者:3873

转载自最全面的数据预处理介绍-知乎

另一方面,数据可能有问题,但在实际的业务处理中,数据通常是脏数据。 污染是指数据可能存在以下问题(主要问题) :

1 .“缺少数据”表示属性值为空。 例如,Occupancy="

2 .数据噪声(Noisy )是指数据值超出常识的情况。 如Salary=“-100”

3 .数据不一致(Inconsistent )是指数据前后有矛盾的情况。 如age=“42”vs.birthday=“01/09/1985”

4 .数据冗馀的情况是数据量或属性数大于数据分析所需的情况。

5 .如果每个类别的数据量相差很大,则数据集不均衡。

6 .“离群/离群”(Outliers )是远离数据集其馀部分的数据。

7 .数据重复是数据集中多次出现的数据。

二、数据预处理工序数据的预处理主要有以下几个工序,第一部分所述的各种脏数据的处理都是在这些工序中完成的。

1 .数据清洗数据学习

2 .数据转换数据转换

3 .数据描述数据描述

4 .选取特征Feature Selection或特征组合Feature Combination

5 .特征提取功能扩展

在数据清洗阶段,我们处理第一部分提及的缺失数据、离群点和重复数据。

缺少的数据分为以下类别:

a .缺少a.missingcompletelyatrandom:的概率是随机的,例如店里的计数器在断电断网等原因的时间段数据为空。

b.missingconditionallyatrandom :数据是否缺失取决于其他属性。 例如,有些女性不想填写体重。

c.Not missing at random:数据缺失与自身值有关,例如高收入的人可能不愿意填报收入。

处理方法如下。

a .删除数据,如果缺少数据的记录比例很小,直接删除这些记录并结束。

b .手工填充、重新收集数据或根据领域知识补充数据。

c .自动补全,简单的是平均值的填补方法。 或者,再加一个概率分布,看起来会更真实。 另外,也可以根据实际情况用公式计算。 例如,如果商店缺少计数,可以参考过去的客流数据,转换数据,用简单的公式自动计算缺少时间段的销售额并进行弥补。

离群点是远离数据集其余部分的数据,这部分数据可能来自随机因素,也可能来自不同机制。 如何处理,取决于离群点产生的原因和应用目的。 如果来自随机因素,我们会忽略或排除离群点;如果来自不同的机制,离群点是宝物,是应用的重点。 后者的应用之一是异常行为检测。 例如,在银行信用卡诈骗识别中发现,通过对大量信用卡用户信息和消费行为进行量化建模和聚类,远离集群中的大量样本是非常值得怀疑的。 因为他们与普通信用卡用户的特性不同,他们的消费行为也与普通信用卡消费行为相差甚远。 另外,在购物网站上检测出恶意小票等场景也重点分析了漏洞。

无论是提出离群点,还是重点研究应用,都需要首先检测离群点。 sklearn(python机器学习包)提供了各种方法,包括OneClassSVM、Isolation Forest、localoutlierfactor (lof )等。 需要更多了解原理的人可以额外看资料。 不在这里展开。

重复数据的处理如下。 如果高度可疑的样本相邻,可以在滑动窗口中进行比较。 为了使类似记录相邻,可以为每个记录生成散列密钥,并根据该密钥对其进行排序。

数据清洗阶段结束后,我们得到的是毫无疑问的数据集~

3358 www.Sina.com/http://www.Sina.com /是从特定概率分布中提取样本点的过程。 采样在机器学习中有非常重要的应用:将复杂分布简化为离散样本点; 重采样可以调整样本集,以便更好地调整,适应后期的模型学习; 用于进行复杂模型的近似解或推理的随机模拟。 采样的一个重要作用是处理不平衡数据集。

处理不平衡样本集的最简单方法是随机采样。 一般分为过采样(Over-sampling )和欠采样(under sampling )。 随机过采样从少数类样本集S_min中随机重复提取样本,随机低采样从多数类样本集S_max中随机选择较少样本。 这两种方法也存在问题,例如随机过采样容易扩大数据规模,引起过拟合; 随机欠采样可能丢失某些有用信息,从而导致欠配。 为了解决上诉问题,通常在随机过采样中不是简单地复制样本,而是通过一定的方法产生新的样本。 例如,可使用smote (syntheticminorityoversamplingtechnique :同步驱动技术)算法、Borderline-SMOTE、ADASYN等算法。 对于欠采样,可以使用Informed Undersampling解决数据丢失问题。

>PS:当总体数据量不够时,除了简化模型,我们可以借鉴随机过采样的方法,对每个类进行过采样。具体到图像任务,还可以直接在图像空间进行变换,如可以通过对图像施加一定幅度的变换(旋转、平移、缩放、裁剪、填充、翻转、添加噪声、颜色变换、改变亮度、清晰度、对比度等),得到扩充的数据集。此外,迁移学习也是在小数据集上进行建模的好方法。

PS:整体准确率不适用于不平衡数据集,需要引入新的度量模式比如G-mean, 它会看正类上的准确率,再看负类上的准确率,然后两者相乘取平方根。另外一种常见的度量如F-score

类型转换处理前,我们先来看下数据的类型。

数据类型可以简单划分为数值型和非数值型。数值型有连续型和离散型。非数值型有类别型和非类别型,其中类别型特征中如果类别存在排序问题为定序型,若不存在排序问题则为定类型,非类别型是字符串型。如下所示:

1.连续型 Continuous

Real values: Temperature, Height, Weight …

2. 离散型 Discrete

Integer values: Number of people …

3. 定序型 Ordinal

Rankings: {Average, Good, Best}, {Low, Medium, High} …

4. 定类型 Nominal

Symbols: {Teacher, Worker, Salesman}, {Red, Green, Blue} …

5. 字符串型 String

Text: “Tsinghua University”, “No. 123, Pingan Avenue” …

对于非数值型,我们需要进行类别转换,即将非数值型转换为数值型,以方便机器学习算法后续处理。

对于定序型,我们可以使用序号编码,如成绩,分为Average, Good, Best三档,序号编码可以按照大小关系对定序型特征赋予一个数值ID,例如Average表示为1,Good表示为2,Best表示为3,转换后依旧保留了大小关系。

对于定类型,我们可以使用独热编码,如颜色三原色,为Red, Green, Blue,独热编码可以把三原色变为一个三维稀疏向量,Red表示为(0,0,1),Green表示为(0,1,0),Blue表示为(1,0,0)。需要注意的是,在类别值较多的情况下,可以使用稀疏向量来节省空间,目前大部分算法实现均接受稀疏向量形式的输入。当然还有很多别的编码方式,如二进制编码等,感兴趣的可以额外查阅资料了解。

对于字符串型,我们有多种表示方式,如词袋模型(Bag of Words),TF-IDF(Term Frequency-Inverse),主题模型(Topic Model),词嵌入模型(Word Embedding)。各种表示有不同的适用场景和优缺点,需要进一步了解的可以额外查资料。

经过类别转换后,我们所有的数据均转为了数值型。为了消除数据特征之间的量纲影响,我们需要对特征进行归一化处理,使不同指标之间具有可比性。例如,分析一个人的身高和体重对健康的影响,如果使用米(m)和千克(kg)作为单位,身高在1.6-1.8m的数值范围内,体重特征在50-100kg的数值范围内,分析出来的结果会倾向于数值差别较大的体重特征。对数值型特征进行归一化可以将所有特征都统一到一个大致相同的区间内,以便进行分析。归一化方式通常有线性函数归一化(Min-Max Scaling)和零均值归一化(Z-score Normalization)。当然,不是所有的机器学习算法需要对数值进行归一化,在实际应用中,通过梯度下降法求解的模型通常需要归一化,因为经过归一化后,梯度在不同特征上更新速度趋于一致,可以加快模型收敛速度。而决策树模型并不需要,以C4.5为例,决策树在节点分裂时主要依据数据集D关于特征x的信息增益比,而信息增益比跟特征是否经过归一化是无关的。

​​​​​​​譬如梯度和矩阵为核心的算法中,譬如逻辑回归,支持向量机,神经网络,无量纲化可以加快求解速度;而在距离类模型,譬如K近邻,K-Means聚类中,无量纲化可以帮我们提升模型精度,避免某一个取值范围特别大的特征对距离计算造成影响。(一个特例是决策树和树的集成算法们,对决策树我们不需要无量纲化,决策树可以把任意数据都处理得很好。)

在数据描述阶段,我们可以根据需要计算统计量和对数据进行可视化。

数据的一般性描述有meanmedianmodevariance.

mean是均值;median是中位数,取数据排序后在中间位置的值,避免因为极端离群点影响客观评价;mode是出现频率最高的元素,其实用的比较少;variance是方差衡量数据集与其均值的偏离。

数据之间的相关性可以使用Pearson correlation coefficient和Pearson chi-square进行度量。前者适用与有metric data的情况,后者适用于分类统计的情况。

数据可视化一维数据圆饼图,柱状图;二维数据散点图;三维数据用三维坐标呈现;高维数据需要先做转换或映射,比如用matlab的Box Plots,也可以用平行坐标呈现。可使用工具有很多,如matlab和Geph。

当我们做特定分析的时候,可能属性非常多,但有些属性是不相关的,有些属性是重复的,所以我们需要用特征选择挑选出来最相关的属性降低问题难度。

我们可以通过熵增益(Entropy Information Gain)、分支定界(Branch and Bound)等方式进行特征选择。特征选择还有sequential forward, sequential backward, simulated annealing(模拟退火), tabu search(竞技搜索), genetic algorithms(遗传算法)等方式去优化。

为了提高复杂关系的拟合能力,在特征工程中经常会把一些离散特征两两组合,构成高阶特征。如在点击率预测问题中,原始数据有语言和类型两种特征,为了提高拟合能力,语言和类型可以组合成二阶特征,联合预测对点击率的影响。如何找到有意义的组合特征?有一种方法是基于决策树的组合特征寻找方法。

在机器学习中,数据通常需要表示为向量的形式进行训练,但是在对高维向量进行处理和分析时,会极大消耗系统资源,甚至产生维度灾难。因此,使用低维度的向量来表示高维度的向量就十分必要。特征抽取或降维即使用低纬度向量表示高维度向量的方法。

特征抽取是主要有主成分分析(Principal Component Analysis,PCA)和线性判别分析(Linear Discriminant Analysis,LDA)两种方式。两者相同之处为均假设数据服从尊敬的咖啡分布,都使用了矩阵分解的思想。两者不同之处为PCA是无监督的算法,对降低后的维度无限制,其目标为投影方差最大;LDA是有监督的算法,降维后的维度小于类别数,其目标为类内方差最小,类间方差最大。

以上为数据预处理的步骤,希望对正在进行实操的朋友有所帮助。

Reference

wzdhy. 清华大学《数据挖掘:理论与算法》课件,学堂在线。Jeru_d39e. 数据挖掘:理论与算法笔记.干净的未来等.《百面机器学习:算法工程师带你去面试》.brdgb.《机器学习基础:从入门到求职》.xfdzxc,卫峥, 过时的火龙果等. 《白话大数据与机器学习》.

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。