1、数据预处理,为什么对数据进行预处理 描述性数据汇总 数据清理 数据集成和变换 数据归约 离散化和概念分层生成,第二章 数据预处理,现实世界的数据是“肮脏的”数据多了,什么问题都会出现 不完整 缺少数据值;缺乏某些重要属性;仅包含汇总数据; e.g., occupation=“ 有噪声 包含错误或者孤立点 e.g. Salary = -10 数据不一致 e.g., 在编码或者命名上存在差异 e.g., 过去的等级: “1,2,3”, 现在的等级: “A, B, C” e.g., 重复记录间的不一致性 e.g., Age=“42” Birthday=“03/07/1997”,为什么进行数据预处理?
2、,不完整数据的成因 数据收集的时候就缺乏合适的值 数据收集时和数据分析时的不同考虑因素 人为/硬件/软件 问题 噪声数据(不正确的值)的成因 数据收集工具的问题 数据输入时的 人为/计算机 错误 数据传输中产生的错误 数据不一致性的成因 不同的数据源 违反了函数依赖性,数据为什么会变“脏”?,没有高质量的数据,就没有高质量的挖掘结果 高质量的决策必须依赖高质量的数据 e.g. 重复值或者空缺值将会产生不正确的或者令人误导的统计 数据仓库需要对高质量的数据进行一致地集成数据预处理将是构建数据仓库或者进行数据挖掘的工作中占工作量最大的一个步骤,数据预处理为什么是重要的?,一个广为认可的多维度量观点
3、: 精确度 完整度 一致性 合乎时机 可信度 附加价值 可解释性 跟数据本身的含义相关的 内在的、上下文的、表象的以及可访问性,数据质量的多维度量,数据清理 填写空缺的值,平滑噪声数据,识别、删除孤立点,解决不一致性 数据集成 集成多个数据库、数据立方体或文件 数据变换 规范化和聚集 数据归约 得到数据集的压缩表示,它小得多,但可以得到相同或相近的结果 数据离散化 数据归约的一部分,通过概念分层和数据的离散化来规约数据,对数字型数据特别重要,数据预处理的主要任务,为什么对数据进行预处理 描述性数据汇总 数据清理 数据集成和变换 数据归约 离散化和概念分层生成,第二章 数据预处理,动机:为了更好
4、的理解数据 获得数据的总体印像 识别数据的典型特征 凸显噪声或离群点 度量数据的中心趋势 均值、中位数、众数(模)、中列数 度量数据的离散程度 四分位数、四分位数极差、方差等,描述性数据汇总,度量可以分为三类: 分布式度量(distributive measure):将函数用于n个聚集值得到的结果和将函数用于所有数据得到的结果一样 比如:count(),sum(),min(),max()等 代数度量(algebraic):可以 通过在一个或多个分布式度量上应用一个代数函数而得到 比如:平均值函数avg() ( avg() =sum()/count()) 整体度量(holistic):必须对整个
5、数据集计算的度量 比如:median(),mode(),rank(),度量的分类,算术平均值 加权算术平均 截断均值(trimmed mean):去掉高、低极端值得到的均值 e.g. 计算平均工资时,可以截掉上下各2的值后计算均值,以抵消少数极端值的影响 中位数:有序集的中间值或者中间两个值平均 整体度量;但是可以通过插值法计算近似值,度量中心趋势 (1),众数(Mode,也叫模):集合中出现频率最高的值 单峰的(unimodal,也叫单模态)、双峰的(bimodal)、三峰的(trimodal);多峰的(multimodal) 对于适度倾斜(非对称的)的单峰频率曲线,可以使用以下经验公式计算
6、众数,度量中心趋势 (2),对称与正倾斜、负倾斜数据的中位数、均值和众数,对称 VS. 倾斜的数据,最常用度量:极差、五数概括(基于四分位数)、中间四分位数极差和标准差 极差(range):数据集的最大值和最小值之差 百分位数(percentile):第k个百分位数是具有如下性质的值x:k%的数据项位于或低于x 中位数就是第50个百分位数 四分位数:Q1 (25th percentile), Q3 (75th percentile) 中间四分位数极差(IQR): IQR = Q3 Q1 孤立点:通常我们认为:挑出落在至少高于第三个四分位数或低于第一个四分位数 1.5IQR处的值,度量数据的离散
7、度 (1),度量数据的离散度 (2),五数概括: min, Q1, Median, Q3, max 盒图:数据分布的一种直观表示 方差和标准差 方差s2:n个观测之x1,x2.xn的方差是标准差s是方差s2的平方根 标准差s是关于平均值的离散的度量,因此仅当选平均值做中心度量时使用 所有观测值相同则 s0,否则 s0 方差和标准差都是代数度量,盒图:数据分布的一种直观表示,在盒图中: 端点在四分位数上,使得盒图的长度是IQR 中位数M用盒内的线标记 胡须延伸到最大最小观测值 该盒图为在给定时间段在AllElectronics的4个分店销售的商品单价的盒图 分店1 中位数$80 Q1: $60
8、Q3: $100,盒图示例,使用盒图的数据离散的可视化描述,常用的显示数据汇总和分布的方法: 直方图、分位数图、q-q图、散布图和局部回归曲线 直方图:一种单变量图形表示方法 将数据分布划分成不相交的子集或桶,通常每个桶宽度一致并用一个矩形表示,其高度表示桶中数据在给定数据中出现的计数或频率,基本统计类描述的图形显示直方图,一种观察单变量数据分布的简单有效方法 显示所有的数据,允许用户评估总的情况和不寻常情况的出现 绘出了分位数信息 设xi是递增排序的数据,则每个xi都有相对应的fi,指出大约有100 fi 的数据小于等于xi,分位数图,对着另一个单变量的分位数,绘制一个单变量分布的分位数 允
9、许用户观察是不是有从一个分布到另外一个分布的迁移,分位数分位数图(Q-Q 图),确定两个量化的变量之间看上去是否有联系、模式或者趋势的最有效的图形方法之一 散布图中的每个值都被视作代数坐标对,作为一个点画在平面上 易于观察双变量数据在平面上的分布,散布图,loess曲线为散布图添加一条平滑的曲线,以便更好的观察两个变量间的依赖模式 Loess (local regression)意指“局部回归”,为了拟合loess曲线,需要两个参数:平滑参数 ,被回归拟合的多项式的阶,loess曲线,为什么对数据进行预处理 描述性数据汇总 数据清理 数据集成和变换 数据归约 离散化和概念分层生成,第二章 数据
10、预处理,业界对数据清理的认识 “数据清理是数据仓库构建中最重要的问题”DCI survey数据清理任务 填写空缺的值 识别离群点和平滑噪声数据 纠正不一致的数据 解决数据集成造成的冗余,数据清理,数据并不总是完整的 例如:数据库表中,很多条记录的对应字段没有相应值,比如销售表中的顾客收入 引起空缺值的原因 设备异常 与其他已有数据不一致而被删除 因为误解而没有被输入的数据 在输入时,有些数据应为得不到重视而没有被输入 对数据的改变没有进行日志记载 空缺值要经过推断而补上,空缺值,忽略元组:当类标号缺少时通常这么做(假定挖掘任务设计分类或描述),当每个属性缺少值的百分比变化很大时,它的效果非常差
11、。 人工填写空缺值:工作量大,可行性低 使用一个全局变量填充空缺值:比如使用unknown或- 使用属性的平均值填充空缺值 使用与给定元组属同一类的所有样本的平均值 使用最可能的值填充空缺值:使用像Bayesian公式或判定树这样的基于推断的方法,如何处理空缺值,噪声:一个测量变量中的随机错误或偏差 引起不正确属性值的原因 数据收集工具的问题 数据输入错误 数据传输错误 技术限制 命名规则的不一致 其它需要数据清理的数据问题 重复记录 不完整的数据 不一致的数据,噪声数据,分箱(binning): 首先排序数据,并将他们分到等深的箱中 然后可以按箱的平均值平滑、按箱中值平滑、按箱的边界平滑等等
12、 回归 通过让数据适应回归函数来平滑数据 聚类: 监测并且去除孤立点 计算机和人工检查结合 计算机检测可疑数据,然后对它们进行人工判断,如何处理噪声数据,price的排序后数据(单位:美元):4,8,15,21,21,24,25,28,34 划分为(等深的)箱: 箱1:4,8,15 箱2:21,21,24 箱3:25,28,34 用箱平均值平滑: 箱1:9,9,9 箱2:22,22,22 箱3:29,29,29 用箱边界平滑: 箱1:4,4,15 箱2:21,21,24 箱3:25,25,34,数据平滑的分箱方法,通过聚类分析检测离群点,消除噪声 聚类将类似的值聚成簇。直观的,落在簇集合之外的
13、值被视为离群点,聚类,回归,x,y,y = x + 1,X1,Y1,Y1,第一步:偏差检测 使用元数据(e.g. 每个属性的域、数值类型、依赖性、分布等) 检查字段过载 检查唯一性规则、连续性规则、空值规则 使用偏差检查工具 数据清理工具:使用简单的领域知识(e.g.邮编、拼写检查)检查并纠正数据中的错误 数据审计工具:通过分析数据发现规则和联系及检测违反这些条件的数据来发现偏差,数据清理做为一个过程 (1),第二步:数据变换(纠正偏差) 数据迁移工具:允许说明简单的变换 ETL(提取/变换/装入)工具:允许用户通过GUI说明变换偏差检测和数据变换(纠偏)的迭代执行 强调交互性的清理方法,数据
14、清理做为一个过程 (2),为什么对数据进行预处理 描述性数据汇总 数据清理 数据集成和变换 数据归约 离散化和概念分层生成,第二章 数据预处理,数据集成: 将多个数据源中的数据整合到一个一致的存储中 模式集成: 整合不同数据源中的元数据 e.g. A.cust_id = B.customer_no 实体识别问题: 匹配来自不同数据源的现实世界的实体 e.g. Bill Clinton = William Clinton 检测并解决数据值的冲突 对现实世界中的同一实体,来自不同数据源的属性值可能是不同的 可能的原因:不同的数据表示,不同的度量等等,数据集成,集成多个数据库时,经常会出现冗余数据
15、对象识别:同一属性或对象在不同的数据库中会有不同的字段名 可导出数据:一个属性可以由另外一个表导出,如“年薪” 有些冗余可以被相关分析检测到仔细将多个数据源中的数据集成起来,能够减少或避免结果数据中的冗余与不一致性,从而可以提高挖掘的速度和质量。,处理数据集成中的冗余数据,2 (chi-square)测试 2的值越大,意味着两个变量相关的可能性越大 期望值和观测值之间相差越大,值也将越大 相关性不意味着因果关系 e.g. 我们发现一个地区的医院数和汽车盗窃数相关 两者都必然的关联到第三个属性:人口,分类(离散)数据的相关性分析,数据变换将数据转换或统一成适合挖掘的形式 平滑:去除数据中的噪声
16、聚集:汇总,数据立方体的构建 数据泛化:沿概念分层向上汇总 规范化:将数据按比例缩放,使之落入一个小的特定区间 最小最大规范化 z-score规范化 小数定标规范化 属性构造 通过现有属性构造新的属性,并添加到属性集中;以增加对高维数据的结构的理解和精确度,数据变换,最小最大规范化z-score规范化 最大最小值未知,或者离群点影响较大的时候适用小数定标规范化,数据变换规范化,其中,j是使 Max(| |)1的最小整数,为什么对数据进行预处理 描述性数据汇总 数据清理 数据集成和变换 数据归约 离散化和概念分层生成,第二章 数据预处理,为什么需要进行数据规约? 数据仓库中往往存有海量数据 在整
17、个数据集上进行复杂的数据分析与挖掘需要很长的时间 数据归约 数据归约可以用来得到数据集的归约表示,它小得多,但可以产生相同的(或几乎相同的)分析结果,数据归约 (1),常用的数据归约策略 数据立方体聚集 维归约,e.g. 移除不重要的属性 数据压缩 数值归约,e.g. 使用模型来表示数据 离散化和概念分层产生 用于数据归约的时间不应当超过或“抵消”在归约后的数据上挖掘节省的时间,数据归约 (2),最底层的方体对应于基本方体 基本方体对应于感兴趣的实体 在数据立方体中存在着不同级别的汇总 数据立方体可以看成方体的格 每个较高层次的抽象将进一步减少结果数据 数据立方体提供了对预计算的汇总数据的快速
18、访问 使用与给定任务相关的最小方体 在可能的情况下,对于汇总数据的查询应当使用数据立方体,数据立方体聚集,通过删除不相干的属性或维减少数据量 属性子集选择(特征选择) 找出最小属性集,使得数据类的概率分布尽可能的接近使用所有属性的原分布 减少出现在发现模式上的属性的数目,使得模式更易于理解 启发式的(探索性的)方法 逐步向前选择 逐步向后删除 向前选择和向后删除相结合 判定归纳树,维归约,有损压缩 VS. 无损压缩 字符串压缩 有广泛的理论基础和精妙的算法 通常是无损压缩 在解压缩前对字符串的操作非常有限 音频/视频压缩 通常是有损压缩,压缩精度可以递进选择 有时可以在不解压整体数据的情况下,
19、重构某个片断 两种有损数据压缩的方法:小波变换和主要成分分析,数据压缩,有损压缩 VS. 无损压缩,原始数据,压缩后 的数据,无损压缩,近似的 原始数据,有损压缩,通过选择替代的、较小的数据表示形式来减少数据量 有参方法 使用一个参数模型估计数据,最后只要存储参数即可,不用存储数据(除了可能的离群点) 常用方法:线性回归方法;多元回归;对数线性模型; 无参方法 不使用模型的方法存储数据 常用方法:直方图,聚类,选样,数值归约,线性回归:数据被拟合为一条直线Y = w X + b 两个回归系数,w和b,由手头的数据来进行估算 通常适用最小二乘法来确定这条直线多元回归:线性回归的扩充,允许响应变量
20、Y被建模为两个或多个预测变量的线性函数Y = b0 + b1 X1 + b2 X2. 多元回归可以拟合多种非线性函数对数线性模型:近似离散的多维概率分布。,回归分析与对数线性模型,直方图,一种流行的数据归约技术 将某属性的数据划分为不相交的子集,或桶,桶中放置该值的出现频率 桶和属性值的划分规则 等宽 等频(等深) V-最优 具有最小方差 MaxDiff,将数据集划分为聚类,然后通过聚类来表示数据集 如果数据可以组成各种不同的聚类,则该技术非常有效,反之如果数据界线模糊,则方法无效 数据可以分层聚类,并被存储在多层索引树中 聚类的定义和算法都有很多选择 将在第7章对聚类分析进行深入探讨,聚类,
21、允许用数据的较小随机样本(子集)表示大的数据集 对数据集D的样本选择: s个样本无放回简单随机抽样(SRSWOR):由D的N个元组中抽取s个样本(sN) s个样本有放回简单随机抽样(SRSWR) :过程同上,只是元组被抽取后,将被回放,可能再次被抽取 聚类选样:D中元组被分入M个互不相交的聚类中,可在其中的s个聚类上进行简单随机选择(SRS,mM) 分层选样:D被划分为互不相交的“层”,则可通过对每一层的简单随机选样(SRS)得到D的分层选样,选样,选样SRS,SRSWOR (简单随机选 样,不回放),SRSWR,选样聚类/分层选样,原始数据,聚类/分层选样,为什么对数据进行预处理 描述性数据
22、汇总 数据清理 数据集成和变换 数据归约 离散化和概念分层生成,第二章 数据预处理,三种类型的属性值: 名称型:无序集合中的值;e.g. 颜色、职业 序数:有序集合中的值; e.g. 军衔、职称 连续值;e.g. 实数 离散化 将连续属性的范围划分为区间 有些分类算法只接受离散属性值 通过离散化有效的规约数据 离散化的数值用于进一步分析,离散化,离散化 通过将属性域划分为区间,减少给定连续属性值的个数 区间的标号可以代替实际的数据值 离散化可以在一个属性上递归的进行 概念分层 通过使用高层的概念(比如:青年、中年、老年)来替代底层的属性值(比如:实际的年龄数据值)来规约数据,离散化和概念分层,
23、典型方法(所有方法均可递归应用) 分箱(binning) 分箱技术递归的用于结果划分,可以产生概念分层 直方图分析(histogram) 直方图分析方法递归的应用于每一部分,可以自动产生多级概念分层 聚类分析 将数据划分成簇,每个簇形成同一个概念层上的一个节点,每个簇可再分成多个子簇,形成子节点 基于熵的离散化 通过自然划分分段,数据数值的离散化和概念分层生成,将数值区域划分为相对一致的、易于阅读的、看上去更直观或自然的区间。 聚类分析产生概念分层可能会将一个工资区间划分为:51263.98, 60872.34 通常数据分析人员希望看到划分的形式为50000,60000 自然划分的3-4-5规
24、则常被用来将数值数据划分为相对一致,“更自然”的区间,通过自然划分分段,规则的划分步骤: 如果一个区间最高有效位上包含3,6,7或9个不同的值,就将该区间划分为3个等宽子区间;(72,3,2) 如果一个区间最高有效位上包含2,4,或8个不同的值,就将该区间划分为4个等宽子区间; 如果一个区间最高有效位上包含1,5,或10个不同的值,就将该区间划分为5个等宽子区间; 将该规则递归的应用于每个子区间,产生给定数值属性的概念分层; 对于数据集中出现的最大值和最小值的极端分布,为了避免上述方法出现的结果扭曲,可以在顶层分段时,选用一个大部分的概率空间。e.g. 5%-95%,自然划分的3-4-5规则,
25、3-4-5规则例子,(-$4000 -$5,000),第四步,P59,分类数据是指无序的离散数据,它有有限个值(可能很多个)。 分类数据的概念分层生成方法: 由用户或专家在模式级显式的说明属性的部分序。 通过显示数据分组说明分层结构的一部分。 说明属性集,但不说明它们的偏序,然后系统根据算法自动产生属性的序,构造有意义的概念分层。 对只说明部分属性集的情况,则可根据数据库模式中的数据语义定义对属性的捆绑信息,来恢复相关的属性。,分类数据的概念分层生成,根据在给定属性集中,每个属性所包含的不同值的个数,可以自动的生成概念分成;不同值个数最多的属性将被放在概念分层的最底层。,属性集的规格,country,province,city,street,5个不同值,65 个不同值,3567 个不同值,674,339 个不同值,