【数据清洗】总结

写在前面(201908):
数据质量问题往往会影响到工作效果,我们学习现代工具后,很容易就建立起一个初步的模型。但是真正的工作是如何优化它,而关键节点就包括数据的清洗和模型的调优。就好比想要做一道好菜,就需要好的原材料和好的制作手法。而不同的数据处理方法,也跟模型的需要息息相关。因此理解模型对数据的要求也是对做好一道菜的必要知识点。

这里先参考相关材料,记录下常规的数据清洗方法,并持续更新。

内容:
1、数据探索和准备步骤
2、缺失值处理

1、数据探索和准备步骤
1)变量确认
首先,确认因变量(目标变量)和自变量。
然后确认数据的类型,是字符型还是数字型。
最后确定数据的类别,是分类数据还是连续数据。

2)单变量分析
针对每个变量进行分析,分析变量的数字特征。
连续变量:了解变量的集中趋势(均值、众数、中位数、最大值、最小值)、分布情况(范围、四分位距IQR、方差、标准差、峰度、偏度)、可视化(直方图、箱型图)。
分类变量:各类别的频次、频率、条形图

3)双变量分析
寻找变量之间的关系。连续变量和分类变量共有三种组合情况,均有对应的方法进行分析。
(1)两个连续变量:使用散点图初步查看变量关系,利用相关系数计算相关性。
相关系数:Correlation = Covariance(X,Y) / SQRT( Var(X)* Var(Y))
(2)两个分类变量:
使用联合分布图,显示频次和比例;
使用堆积柱形图可视化呈现内容;
利用卡方检验进行分析,卡方检验是基于预期和观察频次的分析,它返回具有自由度的卡方分布的概率。理论上若H0成立,则预期和观察的相似,卡方值越小,否则卡方值越大。与P值的对应关系可以查表,P值一般小于0.05则不拒绝H0。
(3)分类变量与连续变量
Z-Test/T-Test:如果Z统计量的概率较小,则两个变量的均值较为显著。T检验相似,但是适用于观察数小于三十的情况。
方差分析:计算两个以上的群组的均值是否有统计学上的区别。

4)缺失值处理
缺失值会影响模型效果,因此需要进行处理。
(1)删除。删除缺少变量的观察。 优点是简单,但减少样本量所以降低了模型的功效。但只有在缺失值是随机缺失的情况下,才会使用删除法,否则会导致模型产生偏差(比如男性全缺失)。
(2)均值、众数、中位数填充。是最常用的填充方法,定量常用(均值、中位数)、定性常用(众数)。
(3)预测模型。以缺失变量作为目标变量,按是否缺失将数据拆分成两组,利用回归分析、方差分析等模型进行预测缺失值。但是有两个缺点,一是预测出来的值比真实值表现得更好,二是如果变量间关联性较低则会导致模型预测不准确。
(4)KNN估计。利用相似属性进行预测,使用距离函数进行计算。优点是能预测定性和定量数据、不需要为每个缺失变量建立模型、变量缺失较多也能被填充、考虑了数据的结构相似性。缺点是计算时间长、K值的选择较为重要(较大会包含无关属性而较小会忽略相关属性)。

5)异常值处理
(1)通常会选择忽略异常值,但是这样会导致模型效果产生偏差、准确性降低。因此需要对异常值进行处理。
异常值有单变量异常值和多变量异常值,多变量异常值在n维上才能发现。
异常值发生的原因很多,输入错误、度量错误、试验错误、故意错误、传输错误、样本错误、自然错误。
异常值会导致方差的变大、降低分布水平、影响预估准确度。
(2)如何检测异常值:
(2.1)-1.5 x IQR to 1.5 x IQR范围以外
(2.2)小于5%和超过95%的数值
(2.3)3个方差范围以外的数值
(2.4)对于二元或多元,一般使用影响力指数等方法检测。常用马哈拉诺比斯距离和库克D( Mahalanobis’ distance and Cook’s D )等方法。
(2.5)SAS可以使用 PROC Univariate, PROC SGPLOT.方法。
(3)如何处理异常值?
删除、转化、分组、替换、单独分析等方法进行处理。
(3.1)如果是输入错误,或者处理错误,或者异常值数量很少,可以删除异常值。
(3.2)可以进行log操作对数据进行转化。也可以对数据进行分组(如大于100的为同一个级组),可用于决策树算法。
(3.3)可以用中位数、众数、均值的方法进行替换。也可以使用模型对异常值进行预测并替换。
(3.4)如果是比较典型的异常值,可以分开单独分析。如做分别做模型分析,然后合并输出报告。

6)特征工程
对数据进行处理使得它更有效。
(1)数据转化:例如对变量进行平方、立方或取对数的方法进行替换,就会改变变量分布或者与其它变量的关系。
(2)什么时候需要做特征工程呢?
(2.1)当需要改变数据范围,或者对数值进行标准化以便更好地解释时,就需要数据转化。
(2.2)或当我们想要将非线性关系转换为线性关系时(可以使用散点图进行观察)。取对数是最常用的方法之一。
(2.3)对称分布由于偏斜分布,因为更容易解释和生成推论。一些模型也需要正态分布变量。对右偏分布一般采取开平方根、开立方根、取对数的方法,对左偏分布一般采取平方、立方和取e指数的方法。
(2.4)直接使用数据可能存在困难,比如直接用年龄进行分析可能效果不佳,因此可以对年龄层进行分组。

(2)常用的数据转化技术。
(2.1)对数:变量的对数是一种常用的变换方法,用于在分布图上更改变量的分布形状。 它通常用于减少变量的右偏度。 但是,它也不能应用于零值或负值。
(2.2)开平方根/立方体根: 开根可能会对变量分布产生影响。但立方根可以应用于包括零的负值。 平方根可以应用于包括零的正值。
(2.3)分组(分类):用于对变量进行分类。 它是在原始值,百分位数或频率上执行的。 分类技术的决定基于业务理解。 例如,我们可以将收入分为三类,即:高,平均和低。

7)特征创造
基于现有的变量生成新的变量或特征。比如日期可以拆分为年、月、日等与目标变量有更好关系的值。
(1)创建派生变量:这是指使用一组函数或不同方法从现有变量创建新变量。 比如变量age具有缺失值。 为了预测缺失值,我们使用名称的称呼(Master,Mr,Miss,Mrs)作为新变量。 我们如何决定创建哪个变量? 这取决于对分析师的商业理解。 取对数、分组变量和其他变量变换方法等方法也可用于创建新变量。
(2)创建虚拟变量:虚拟变量最常见的应用之一是将分类变量转换为数值变量。 虚拟变量也称为指标变量。 将分类变量作为统计模型中的预测变量是有用的。 分类变量可以取值0和1.让我们采用变量“性别”。 我们可以产生两个变量,即值为1(男性)和0(无男性)的“Var_Male”和值为1(女性)和0(无女性)的“Var_Female”。 我们还可以为具有n或n-1个虚拟变量的分类变量的两个以上类创建虚拟变量。

你可能感兴趣的:(数据分析)