一、概述前端
实际的数据库极易受噪声、缺失值和不一致数据的侵扰,由于数据库太大,而且多半来自多个异种数据源。低质量的数据将会致使低质量的挖掘结果。有大量的数据预处理技术:
- - 数据清理:能够用来清楚数据中的噪声,纠正不一致。
- - 数据集成:将数据由多个数据源合并成一个一致的数据存储,如数据仓库。
- - 数据归约:能够经过如汇集、删除冗余特征或聚类来下降数据的规模。
- - 数据变换:(例如,规范化)能够用来把数据压缩到较小的区间,如0.0到1.0。算法这能够提升设计距离度量的挖掘算法的准确率和效率。这些技术不是排斥的,能够一块儿使用。数据库
1.一、数据质量 数据若是能知足其应用的要求,那么它是高质量的。数据质量涉及许多因素,包括:准确率、完整性、一致性、时效性、可信性和可解释性。markdown
二、数据清理网络
现实世界的数据通常是不完整的、有噪声的和不一致的。数据清理例程试图填充缺失的值、光滑噪声并识别离群点、纠正数据中的不一致。ide
2.一、缺失值函数
如何处理缺失的属性?咱们来看看下面的方法:
1- - - 忽略元组:当缺乏类标号时一般这样作(假设挖掘任务设计分类)。除非元组有多个属性缺乏值,不然更改方法不是颇有效。当每一个属性缺失值的百分比变化很大时,他的性能特别差。采用忽略元组,你不能使用该元组的剩余属性值。这些数据可能对手头的任务是有用的。
2- - - 人工填写缺失值:通常来讲,该方法很费事,而且当数据集很大、缺失不少值时该方法可能行不通。
3- - - 使用一个全局填充缺失值:将缺失的属性值用同一个常量(如:“Unknow”或-∞)替换。若是确实的值都如“Unknow”替换,则挖掘程序可能误认为他们造成了一个有趣的概念,由于他们都具备相同的值 – “Unknow”。所以,尽管该方法简单,可是并不十分可靠。
4- - - 使用属性的中心度量(如均值或中位数)填充缺失值:对于正常的(对称的)数据分布而言,可使用均值,而倾斜数据分布应该使用中位数。
5- - - 使用与给定元组属同一类的全部样本的属性均值或中位数:
6- - - 使用最可靠的值填充缺失值:能够用回归、贝叶斯形式化方法的基于推理的工具或决策树概括肯定。工具
方法3~方法6使数据有偏,可能填入的数据不许确。然而,方法6是最流行的策略。与其余方法(可能方法2除外)相比,它使用已有数据的大部分信息来预测缺失值。性能
须要注意的是,在某些状况下,缺失值并不意味着数据有错误。理想状况下,每一个属性都应当有一个或多个空值条件的规则。这些规则能够说明是否容许空值,而且/或者说明这样的空值应该如何处理或转换。若是在业务处理的稍后步骤提供值,字段也可能故意留下空白。所以,尽管在获得数据后,咱们能够尽咱们所能来清理数据,但好的数据库和数据输入设计将有助于在第一现场把缺失值或者错误的数量降至最低。大数据
2.二、噪声数据
噪声(noise)是被测量的变量的随机偏差或方差。咱们可使用基本的数据统计描述技术(例如,盒图或者散点图)和数据可视化方法来识别可能表明噪声的离群点。
1- - - 分箱(bining):分箱方法经过考察数据的“近邻”(即周围的值)来光滑有序的数据值。这些有序的值被分布到一些“捅”或箱中。因为分箱方法考察近邻的值,所以它进行局部的光滑。
如上图所示,数据首先排序并被划分到大小为3的等频的箱中。对于用箱均值光滑,箱中每个值都被替换为箱中的均值。相似的,可使用用箱中位数光滑或者用箱边界光滑等等。
2- - - 回归(regression):能够用一个函数拟合数据来光滑数据。这种技术称之为回归。线性回归涉及找出拟合两个属性(或变量)的“最佳”直线,使得一个属性能够用来预测另外一个。多元线性回归是线性回归的扩充,其中涉及的属性多余两个,而且数据拟合到一个多维曲面。
3- - - 离群点分析(outlier analysis):能够经过如聚类来检测离群点。聚类将相似的值组织成群或“簇”。直观地,落在簇集合以外的值被视为离群点。
2.三、数据清理做为一个过程
数据清理过程第一步是误差检测(discrepancy detection)。致使误差的因素可能有多种,包括具备不少可选字段的设计糟糕的输入表单、人为的输入错误、有意的错误(例如,不肯意泄露我的隐私),以及数据退化(例如,过期的地址)。误差也可能源于不一致的数据表示和编码的不一导致用。记录数据的设备的错误和系统错误是另外一种误差源。当数据(不适当地)用于不一样于当初的目的时,也可能出现错误。数据集成也可能致使不一致(例如,当给定的属性在不一样的数据库中具备不一样的名称时)。
那么,如何进行误差检测呢?首先,咱们明确一个概念,”关于数据的数据“称做元数据。例如,每一个属性的数据类型是定义域是什么?每一个属性可接受的值是什么?对于把握数据趋势和识别异常,数据的基本统计描述是有用的。例如,找出均值、中位数和众数。数据是对称的仍是倾斜的?值域是什么?全部的值都在指望的区间内吗?每一个属性的标准差是多少?远离给定属性均值超过两个标准差的值可能标记为可能的离群点。属性之间存在已知的依赖吗?在这一步,能够编写程序或使用稍后咱们讨论到的工具。由此,你可能发现噪声、离群点和须要考察的不寻常的值。
1- - - 编码格式:警戒编码使用的不一致和数据表示的不一致问题(例如,日期“2015/12/08”和”08/12/2015”);
2- - - 字段过载:开发者将新属性的定义挤进已经定义的属性的未使用(位)部分(例如,使用一个属性未使用的位,该属性取值已经使用了32位中的31位)。
1- - - :惟一性规则:给定属性的每一个值都必须不一样于该属性的其余值。
2- - - :连续性规则:属性的最低值和最高值之间没有缺失的值,而且全部的值还必须是惟一的(例如,检验数).
3- - - :空值规则:说明空白、问号、特殊符号或指示空值条件的其余串的使用(例如,一个给定属性的值何处不能用),以及如何处理这样的值。
1- - - 数据清洗工具(data scrubbing tools):使用简单的领域知识(邮政地址知识和拼写检查),检查并纠正数据中的错误。在清理多个数据源的数据时,这些工具依赖分析和模糊匹配技术。
2- - - 数据审计工具(data auditing tools):经过分析数据发现规则和联系,并检测违反这些条件的数据来发现误差。
3- - - 数据迁移工具(data migration tools):容许说明简单的变换,如将串”gender”用“sex”替换。
4- - -ETL(extraction/transformation/loading,提取/变换/装入)工具:容许用户经过图形用户界面说明变换。
一般,这些工具只支持有限的变换,所以咱们可能须要为数据清理过程的这一步编写定制的程序。
误差检测和数据变换(纠正误差) 迭代执行这两步过程。一般,须要屡次迭代才能使用户满意。
新的数据清理方法强调增强交互性。例如,Potter’s Wheel是一种公开的数据清理工具,它集成了误差检测和数据变换。
2、数据分析以前的各项准备工做
数据分析团队各成员肯定以后,将进行下一项工做,就是找到有价值的数据进行分析了。数据是分析的基础,所以数据的质量、数据的相关度、数据的维度等会影响数据分析的结果影,其中GIGO(垃圾进垃圾出)对于数据分析结果影响最大。
1数据源选择
数据分析团队面对大量的数据源,各个数据源之间交叉联系,各个数据域之间具备逻辑关系,各个产品统计口径不一样,不一样的时间段数值不一样等。这一系列问题多会影响数据分析结果,所以肯定数据源选择和数据整理相当重要。
DBA能够基于数据分析须要,找到相关数据,创建一张数据宽表,将数据仓库的数据引入到这张宽表当中,基于必定的逻辑关系进行汇总计算。这张宽表做为数据分析的基础,而后再依据数据分析须要衍生出一些不一样的表单,为数据分析提供干净全面的数据源。宽表一方面是用于集中相关分析数据,一方面是提升效率,不须要每次分析时都查询其余的数据表,影响数据仓库效率。
2数据抽样选择
简单的数据分析能够调用全体数据进行分析,数据抽样主要用于建模分析,抽样需考虑样本具备表明性,覆盖各类客户类型,抽样的时间也很重要,越近的时间窗口越有利于分析和预测。在进行分层抽样时,须要保证分红出来的样本比例同原始数据基本一致。
3数据类型选择
数据类型分为连续型和离散型,建模分析时须要肯定数据类型。进行业务收入趋势分析、销售额预测分析、RFM分析时,通常采用连续型变量。信用评级、分类预测时通常采用离散变量。
4缺失值处理
数据分析过程当中会面对不少缺失值,其产生缘由不一样,有的是因为隐私的缘由,故意隐去。有的是变量自己就没有数值,有的是数据合并时不当操做产生的数据缺失。
缺失值处理能够采用替代法(估值法),利用已知经验值代替缺失值,维持缺失值不变和删除缺失值等方法。具体方法将参考变量和自变量的关系以及样本量的多少来决定。
5异常值检测和处理
异常值对于某些数据分析结果影响很大,例如聚类分析、线性回归(逻辑回归)。可是对决策树、神经网络、SVM支持向量机影响较小。
通常异常值是指明显偏离观测值的平均值,例如年龄为200岁,平均收入为10万元时,有个异常值为300万元。第一个异常值为无效异常值,须要删掉,可是第二个异常值可能属于有效异常值,能够根据经验来决定是否保留或删掉。
6数据标准化
数据标准化的目的是将不一样性质、不一样量级的数据进行指数化处理,调整到能够类比的范围。例如在创建逻辑回归模型时,性别的取值是0或以,可是收入取值可能就是0-100万,跨度较大,须要进行标准化。
通常能够采用最佳/最大标准化(Min-Max标准化法)将数值定在0和1之间,便于计算。Z分数法和小数定标标准化法也能够采用。
7数据粗分类(Categorization)处理
归类和分类的目的是减小样本的变量,常有的方法由等间距分类,等频数分类。能够依据经验将自变量分红几类,分类的方法能够不一样,建议采用卡方检验来决定采用哪一种分类方法。连续型变量能够用WOE变化方法来简化模型,但下降了模型的可解释性。
8变量选择
数据分析过程当中会面对成百上千的变量,通常状况下只有少数变量同目标变量有关,有助于提升预测精度。一般建模分析时,有意义的变量不会超过10-15个,称他们为强相关变量(聪明变量)。能够利用变量过滤器的方法来选择变量。常见的变量过滤器应用场景以下。