本文来自网易云社区算法
数据清洗是将重复、多余的数据筛选清除,将缺失的数据补充完整,将错误的数据纠正或者删除,最后整理成为咱们能够进一步加工、使用的数据。数据库
所谓的数据清洗,也就是ETL处理,包含抽取Extract、转换Transform、加载load这三大法宝。在大数据挖掘过程当中,面对的至少是G级别的数据量,包括用户基本数据、行为数据、交易数据、资金流数据以及第三方的数据等等。选择正确的方式来清洗特征数据极为重要,除了让你可以事半功倍,还至少可以保证在方案上是可行的。安全
数据清洗的通常步骤:分析数据、缺失值处理、异常值处理、去重处理、噪音数据处理。在大数据生态圈,有不少来源的数据ETL工具,可是对于公司内部来讲,稳定性、安全性和成本都是必须考虑的。数据结构
对于数据值缺失的处理,一般使用的方法有下面几种:运维
一、删除缺失值函数
当样本数不少的时候,而且出现缺失值的样本在整个的样本的比例相对较小,这种状况下,咱们可使用最简单有效的方法处理缺失值的状况。那就是将出现有缺失值的样本直接丢弃。这是一种很经常使用的策略。工具
二、均值填补法性能
根据缺失值的属性相关系数最大的那个属性把数据分红几个组,而后分别计算每一个组的均值,把这些均值放入到缺失的数值里面就能够了。学习
三、热卡填补法大数据
对于一个包含缺失值的变量,热卡填充法的作法是:在数据库中找到一个与它最类似的对象,而后用这个类似对象的值来进行填充。不一样的问题可能会选用不一样的标准来对类似进行断定。最多见的是使用相关系数矩阵来肯定哪一个变量(如变量Y)与缺失值所在变量(如变量X)最相关。而后把全部变量按Y的取值大小进行排序。那么变量X的缺失值就能够用排在缺失值前的那个个案的数据来代替了。
还有相似于最近距离决定填补法、回归填补法、多重填补方法、K-最近邻法、有序最近邻法、基于贝叶斯的方法等。
异常值一般被称为“离群点”,对于异常值的处理,一般使用的方法有下面几种:
一、简单的统计分析
拿到数据后能够对数据进行一个简单的描述性统计分析,譬如最大最小值能够用来判断这个变量的取值是否超过了合理的范围,如客户的年龄为-20岁或200岁,显然是不合常理的,为异常值。
二、3∂原则
若是数据服从正态分布,在3∂原则下,异常值为一组测定值中与平均值的误差超过3倍标准差的值。若是数据服从正态分布,距离平均值3∂以外的值出现的几率为P(|x-u| > 3∂) <= 0.003,属于极个别的小几率事件。若是数据不服从正态分布,也能够用远离平均值的多少倍标准差来描述。
三、箱型图分析
箱型图提供了识别异常值的一个标准:若是一个值小于QL01.5IQR或大于OU-1.5IQR的值,则被称为异常值。QL为下四分位数,表示所有观察值中有四分之一的数据取值比它小;QU为上四分位数,表示所有观察值中有四分之一的数据取值比它大;IQR为四分位数间距,是上四分位数QU与下四分位数QL的差值,包含了所有观察值的一半。箱型图判断异常值的方法以四分位数和四分位距为基础,四分位数具备鲁棒性:25%的数据能够变得任意远而且不会干扰四分位数,因此异常值不能对这个标准施加影响。所以箱型图识别异常值比较客观,在识别异常值时有必定的优越性。
四、基于模型检测
首先创建一个数据模型,异常是那些同模型不能完美拟合的对象;若是模型是簇的集合,则异常是不显著属于任何簇的对象;在使用回归模型时,异常是相对远离预测值的对象
优缺点:1.有坚实的统计学理论基础,当存在充分的数据和所用的检验类型的知识时,这些检验可能很是有效;2.对于多元数据,可用的选择少一些,而且对于高维数据,这些检测可能性不好。
五、基于距离
一般能够在对象之间定义邻近性度量,异常对象是那些远离其余对象的对象
优缺点:1.简单;2.缺点:基于邻近度的方法须要O(m2)时间,大数据集不适用;3.该方法对参数的选择也是敏感的;4.不能处理具备不一样密度区域的数据集,由于它使用全局阈值,不能考虑这种密度的变化。
六、基于密度
当一个点的局部密度显著低于它的大部分近邻时才将其分类为离群点。适合非均匀分布的数据。
优缺点:1.给出了对象是离群点的定量度量,而且即便数据具备不一样的区域也可以很好的处理;2.与基于距离的方法同样,这些方法必然具备O(m2)的时间复杂度。对于低维数据使用特定的数据结构能够达到O(mlogm);3.参数选择困难。虽然算法经过观察不一样的k值,取得最大离群点得分来处理该问题,可是,仍然须要选择这些值的上下界。
七、基于聚类:
基于聚类的离群点:一个对象是基于聚类的离群点,若是该对象不强属于任何簇。离群点对初始聚类的影响:若是经过聚类检测离群点,则因为离群点影响聚类,存在一个问题:结构是否有效。为了处理该问题,可使用以下方法:对象聚类,删除离群点,对象再次聚类(这个不能保证产生最优结果)。
优缺点:1.基于线性和接近线性复杂度(k均值)的聚类技术来发现离群点多是高度有效的;2.簇的定义一般是离群点的补,所以可能同时发现簇和离群点;3.产生的离群点集和它们的得分可能很是依赖所用的簇的个数和数据中离群点的存在性;4.聚类算法产生的簇的质量对该算法产生的离群点的质量影响很是大。
噪音,是被测量变量的随机偏差或方差。对于噪音的处理,一般有下面的两种方法:
一、分箱法
分箱方法经过考察数据的“近邻”(即,周围的值)来光滑有序数据值。这些有序的值被分布到一些“桶”或箱中。因为分箱方法考察近邻的值,所以它进行局部光滑。
用箱均值光滑:箱中每个值被箱中的平均值替换。
用箱中位数平滑:箱中的每个值被箱中的中位数替换。
用箱边界平滑:箱中的最大和最小值一样被视为边界。箱中的每个值被最近的边界值替换。
通常而言,宽度越大,光滑效果越明显。箱也能够是等宽的,其中每一个箱值的区间范围是个常量。分箱也能够做为一种离散化技术使用.
二、回归法
能够用一个函数拟合数据来光滑数据。线性回归涉及找出拟合两个属性(或变量)的“最佳”直线,使得一个属性可以预测另外一个。多线性回归是线性回归的扩展,它涉及多于两个属性,而且数据拟合到一个多维面。使用回归,找出适合数据的数学方程式,可以帮助消除噪声。
网易猛犸大数据平台做为一站式的应用开发和数据管理平台,经过大数据开发套件,将数据开发、任务运维、自助分析、数据管理、项目管理等工做经过工做流的方式有效的串联起来,提供敏捷易用的用户操做界面,下降了大数据分析的使用门槛,显著的提升了数据开发工程师和数据分析师的工做效率。猛犸大数据平台在电商、音乐、云课堂学习、企业工业制造等领域已普遍应用,基于持续的需求驱动,经过多行业的业务验证,同时丰富全面的组件,提供完善的平台能力,知足不一样类型的业务需求。