参考:https://blog.csdn.net/u013232035/article/details/48281659?spm=1001.2014.3001.5506
和《数据挖掘导论》学习笔记(第1-2章)_时机性样本_schdut的博客-CSDN博客
第1章 绪论
数据挖掘是一种技术,它将传统的数据分析方法与处理大量数据的复杂算法相结合。
数据分析技术的应用:
- 商务:借助POS(销售点)数据收集技术【条码扫描器、射频识别(RFID)和智能卡技术】,零售商可以在其商店的收银台收集顾客购物的最新数据。零售商可以利用执行信息,加上电子商务网站的日志、电购中心的顾客服务记录等其他的重要商务数据,更好地理解顾客的需求,做出明志的商务决策。数据挖掘技术可以用来支持广泛的商务智能应用,如顾客分析、定向营销、工作流管理、商店分布和欺诈检测等。
- 医学、科学与工程:传统的方法常常不适合分析地表、海洋和大气的全球观测数据,这些数据规模大和具有时空特性。数据挖掘不仅能够分析基因序列数据,而且还能用来处理生物学的其他难题,如蛋白质结构预测、多序列校准、生物化学路径建模和种系发生学。
1.1 什么是数据挖掘
KDD:Knowledge Discovery in Database (数据库中知识发现(KDD)不可缺少的一部分)
即从大量数据中提取或“挖掘”知识。
过程如下:
输入数据可以以各种形式存储(平展文件、电子数据表或关系表),并且可以驻留在集中的数据存储库中,或分布在多个站点上。
数据预处理的目的是将未加工的输入数据转换为适合分析的形式。数据预处理涉及的步骤包括融合来自多个数据源的数据,清洗数据以消除噪声和重复的观测值,选择与当前数据挖掘任务相关的记录和特征。由于收集和存储数据的方式多种多样,数据预处理可能是整个知识发现过程中最费力、最耗时的步骤。
“结束循环”通常值将数据挖掘结构集成到决策支持系统的过程。例:在商业应用中,数据挖掘的结果所揭示的规律可以结合商业活动管理工具,从而开展或测试有效的商品促销活动。这样的结合需要后处理步骤,确保只将那些有效的和有用的结果集成到决策支持系统中。后处理的一个例子是可视化,它使得数据分析者可以从不同的视角探查数据和数据挖掘结果。在后处理阶段,还能使用统计度量或假设检验,删除虚假的数据挖掘结果。
1.2 数据挖掘要解决的问题
- 可伸缩:着眼于数据量剧烈增长的问题
- 高维性:对象拥有数量不少的属性
- 异种数据和复杂数据:数据来源广泛,而且结构复杂(XML格式,文本格式,流格式等)
- 数据的所有权与分布:分布式数据处理
- 非传统的分析:数据挖掘要求自动产生和评估假设,并且数据挖掘数据集多是时机性样本,而非随机性样本
1.3 数据挖掘的起源
1.4 数据挖掘任务
一般情况下,数据挖掘任务可以分为描述和预测两类。描述性挖掘主要用来刻画数据集合的一般特性;预测挖掘则是根据当前数据进行分析推算,从而达到预测的目的。
数据挖掘任务通常分为两大类:
- 预测任务:根据其他属性的值预定特定属性的值。其中,用来预测的属性称为说明性属性(explanatory variable)或自变量(independent variable),被预测的属性被称为目标变量(target variable)或因变量(dependent variable)。如回归、分类、离群点检测
- 描述任务:导入数据中的潜在的模式,即寻找概况数据中潜在联系的模式,如相关、趋势、聚类和异常等,即如聚类分析、关联分析、演化分析、序列模式挖掘。更详细的说,有如下几大任务:
- 预测建模(predictive modeling):以自变量为因变量建立模型,从而使得因变量的预测值与实际值误差越小越好。其中,针对离散型变量的称为分类(classification),针对连续性变量的称为回归(regression)
- 关联分析(association analysis):用来描述数据中强相关的模式
- 聚类分析(cluster analysis):旨在发现紧密相关的对象群,使得同一 簇中的对象尽可能相似,不同簇之间的对象则尽可能相异
- 异常检测(anomaly analysis):识别其属性值明显不同于其他数据的对象,这样对象被称为异常值(anomaly)或离群点(outline)
(1)分类(Classification)分析
分类分析就是通过分析示例数据库中的数据,为每个类别做出准确的描述,或建立分析模型,或挖掘出分类规则,然后用这个分类模型或规则对数据库中的其他记录进行分类。分类分析已广泛应用于用户行为分析(受众分析)、风险分析、生物科学等领域。
(2)聚类(Clustering)分析
“物以类聚,人以群分”。聚类分析技术试图找出数据集中数据的共性和差异,并将具有共性的对象聚合在相应的簇中。聚类分析可以帮助判断哪些组合更有意义,聚类分析已广泛应用于客户细分、定向营销、信息检索等领域。聚类与分类是容易混淆的两个概念。聚类是一种无指导的观察式学习,没有预先定义的类。而分类问题是有指导的示例式学习,预先定义类。分类是训练样本包含有分类属性值,而聚类则是在训练样本中找到这些分类属性值。其主要区别如表1-1所示。
表1-1 聚类与分类的主要区别 聚类 分类 监督(指导)与否 无指导信息(没有预先定义的类) 有指导信息(有预先定义的类) 是否建立模型或训练集 否,旨在发现实体属性间的函数关系 是,具有预测功能 例子:通过扑克牌的划分与垃圾邮件的识别之间的差异来说明聚类与分类之间的差异。扑克牌的划分属于聚类问题,没有预先定义的类标号信息,基于不同的相似性度量对扑克牌进行分组。在不同的扑克游戏中采用不同的划分方式,图1-2为十六张牌基于不同相似性度量(花色、点数或颜色)的划分结果。而垃圾邮件的识别属于分类问题,所有训练用邮件预先被定义好类标号信息,即训练集中的每封邮件预先被标记为垃圾邮件或合法邮件信息,同时为了能够对未来未知邮件进行分类,需要利用已有的训练邮件建立预测模型,然后利用预测模型来对未来未知邮件进行预测。
(3)回归(Regression)分析
回归分析是确定两种或两种以上变量间相互依赖的定量关系的一种分析方法,常应用于风险分析、作文自动评分等领域。
(4)关联(Association)分析
关联分析是发现特征之间的相互依赖关系,通常是在给定的数据集中发现频繁出现的模式知识(又称为关联规则)。关联分析广泛用于市场营销、事务分析等领域。
(5)离群点(Outlier)检测
离群点检测就是发现与众不同的数据,已广泛应用于(商业、金融、保险等领域)欺诈行为的检测、网络入侵检测、反洗钱、犯罪嫌疑人调查、海关、税务稽查等领域。
(6)演化(Evolving)分析
演化分析就是对随时间变化的数据对象的变化规律和趋势进行建模描述。演化分析常应用于商品销售的周期(季节)性变化描述、股票行情描述。
(7)序列模式(Sequential Pattern)挖掘
序列模式挖掘是指分析数据间的前后序列关系,包括相似模式发现、周期模式发现等,应用于客户购买行为模式预测、Web访问模式预测、疾病诊断、网络入侵检测等领域。
1.5 数据挖掘功能(补充)
◆ 分类:它是指将数据映射到预先定义好的群组或类。由于分析测试数据之前,类别就确定了,所以分类常称为有指导的学习。分类算法要求基于数据属性来定义类别,通过观察已知所属的数据的特征来描述类别。
◆ 回归:回归是指将数据映射到一个实值预测变量,它首先假设一些已知类型的函数可以拟合目标数据,然后利用某种误差分析确定一个与目标数据拟合程度最好的函数。
◆ 时间序列分析:在时间序列分析中,数据的属性值是随着时间不断变化的。一般是通过时间序列图将时间序列数据可视化,然后用一些方法完成时间序列建模或者时间序列预测。
◆ 预测:预测可以看做一种分类,它是基于过去的和当前的数据对未来的数据状态进行预测。它和分类的主要差别是预测主要是预测未来数据的状态而不是当前状态。
◆ 聚类:聚类和分类很相似,主要区别是聚类的类别没有预先定义,是指无指导的学习。可以将聚类看成将数据划分或分割成相交或者不相交的群组的过程,将相似的数据聚集成簇。
◆ 汇总:汇总就是将数据映射到伴有简单描述的子集中,有时也称为特征化或泛化。汇总就是从数据库中抽取或得到有代表性的信息,也可以通过检索部分数据来完成,得到一些总结性信息,将数据库的内容特征化。
◆ 关联规则:关联规则也称关联分析,是指揭示数据之间相互关系的一项数据挖掘任务,而这种关系在数据中没有直接表示。关联规则可以识别出特殊类型的数据关联的模型。这些关联通常用于零售业了解哪些商品频繁地被顾客同时购买。
◆ 序列发现:序列发现用于确定数据与时间相关的序列模式,这些模式与在数据中发现的相关的关联规则很相似,只是这些序列模式是与时间相关的。例如在购物篮分析中,关联分析的重点是一次购买商品记录的不同,序列发现要求购买的商品记录是按照时间次序登记的。
1.6 数据挖掘对象(补充)
从应用领域的角度看,数据挖掘对象主要包括以下几大类型。
(1)关系数据库
关系数据库是建立在关系数据库模型基础上的数据库,借助于集合代数等概念和方法来处理数据库中的数据。关系数据库可以通过数据库查询、获取信息,当数据挖掘应用于关系数据库时,可以进一步搜索趋势或数据模式。关系数据库广泛应用于各行各业,是数据挖掘最常见、最丰富的数据源。
(2)数据仓库(Data Warehouse)
数据仓库是一个从多个数据源收集的信息存储库,存放在一个一致的模式下。数据仓库是一个面向主题的(Subject Oriented)、集成的(Integrated)、相对稳定的(Non-Volatile)、反映历史变化的(Time Variant)数据集合,用于支持管理决策(Decision Making Support),适合于联机分析处理(On-Line Analysis Processing,OLAP)。银行、电信等行业,数据集中后通常需要保存在数据仓库中。
(3)事务数据库
在事务数据库中,每个记录代表一个事务。通常,一个事务包含唯一的事务标识号和组成该事务的项的列表(如在超市中购买的商品)。超市的销售数据是典型的事务型数据。事务数据库可能有一些与之关联的附加表,如包含关于销售的其他信息:事务的日期、顾客的编号、销售者的编号、连锁分店的编号等。
(4)空间数据库(Spatial Database)
空间数据库是指在关系数据库内部对地理信息进行物理存储。空间数据库中存储的海量数据包括对象的空间拓扑特征、非空间属性特征、对象在时间上的状态变化。常见的空间数据库的数据类型包括地理信息系统、遥感图像数据医学图像数据。空间数据库的特点有:数据量庞大,空间数据模型复杂,属性数据和空间数据联合管理,应用范围广泛。
(5)时态数据库和时间序列数据库(Temporal Database and Time-Series Database)
时态数据库和时间序列数据库都存放与时间有关的数据。时态数据库通常存放与时间相关的属性值,如与时间相关的职务、工资等个人信息及个人简历信息等。时间序列数据库存放随时间变化的值序列,如零售行业的产品销售数据、股票数据、气象观测数据等。时态数据库和时间序列数据库的数据挖掘研究事物发生、发展的过程,有助于揭示事物发展的本质规律,可以发现数据对象的演变特征或对象变化趋势。
(6)流数据(Stream Data)
与传统数据库中的静态数据不同,流数据是连续的、有序的、变化的、快速的、大量的输入数据,主要应用场合包括网络监控、网页点击流、股票市场、流媒体等。与传统数据库相比,流数据在存储、查询、访问、实时性的要求等方面都有很大区别。流数据具有以下特点:数据实时到达;数据到达次序独立,不受应用系统控制;数据规模宏大且不能预知其最大值;数据一经处理,除非特意保存,否则不能被再次取出处理,或者再次提取数据的代价昂贵。
(7)多媒体数据库(Multimedia Database)
多媒体数据库是数据库技术与多媒体技术相结合的产物。多媒体数据库不是对现有的数据进行界面上的包装,而是从多媒体数据和信息本身的特性出发。多媒体数据库用计算机管理庞大复杂的多媒体数据,主要包括图形(graphics)、图像(image)、音频(audio)、视频(video)等,现代数据库技术一般将这些多媒体数据以二进制大对象的形式进行存储。多媒体数据库的数据挖掘需要将存储和检索技术相结合,处理方式不同于数值、文本数据的处理。目前,对多媒体数据的挖掘包括构造多媒体数据立方体、多媒体数据的特征提取和基于相似性的模式匹配等。
(8)文本数据库(Text Database)
文本数据库是一种常用的数据库之一,也是最简单的数据库。任何文件都可以存入文本数据库。文本数据库存储的是对对象的文字性描述。文本数据类型包括:无结构类型(大部分的文本资料和网页)、半结构类型(XML数据)、结构类型(图书馆数据)——对应于通常的关系型数据库。文本数据的处理广泛应用于办公资料的处理,如法院、检察院的案件资料的处理。文本数据库存在以下缺点:一是并发访问麻烦,无法实现多个程序同时修改数据库里面的不同记录;二是查询、修改、删除非常麻烦,只能顺序查找,修改、删除需要更新整个文件。文本数据库的优点显而易见:程序简单,数据库管理方便。
(9)万维网数据
万维网(Word Wide Web,WWW)被看成是最大的文本数据库。随着Internet的广泛使用,万维网这一巨大的海洋中蕴藏着极其丰富的有用信息。面向万维网的数据挖掘比面向数据库和数据仓库的数据挖掘要复杂得多,这是由互联网上异构数据源环境、数据结构的复杂性、动态变化的应用环境等特性决定的。
补充知识点:数据湖与数据仓库的区别
数据湖与数据仓库的概念
1,什么是数据湖?
数据湖定义将其解释为高度可扩展的数据存储区域,以原始格式存储大量原始数据,直到需要使用为止。数据湖可以存储所有类型的数据,对帐户大小或文件没有固定限制,也没有定义特定用途。数据来自不同的来源,可以是结构化的、半结构化的,甚至是非结构化的,数据可按需查询。
数据湖的核心概念是允许收集和存储大量数据而无需立即处理或分析所有数据。 数据湖的最终用户是数据科学家和工程师。
2,什么是数据仓库?
数据仓库是从广泛的运营和外部数据源中积累的组织数据的大型存储库。数据经过结构化、过滤并已针对特定目的进行处理。数据仓库会定期从各种内部应用程序和外部合作伙伴系统中提取处理过的数据,以进行高级查询和分析。
大中型企业使用数据仓库是基于跨部门特定的数据库共享数据和内容。数据仓库的目的可以是存储有关产品、订单、客户、库存、员工等的信息。数据仓库的最终用户是企业家和商业用户。
二、数据湖与数据仓库类型的区别
1,数据湖的类型
数据湖的类型可以是结构化、非结构化、半结构化和二进制等。
(1)结构化:包含来自关系数据库的结构化数据,即行和列
(2)非结构化:包含来自电子邮件、文档、PDF 的非结构化数据
(3)半结构化:包含半结构化数据,如 CSV、日志、XML、JSON
(4)二进制:包含图像、音频、视频
2,数据仓库的主要类型
(1)企业数据仓库 (EDW) :这种类型的数据仓库充当帮助企业内决策支持服务的主数据库。EDW 提供对跨组织信息的访问,一种数据表示的集成方法,并且可以运行复杂的查询。
(2)操作数据存储 (ODS):ODS 实时刷新并用于运行例行任务,包括存储员工记录。存储在这里的数据可以被清理,冗余检查和解决。它还可以用于整合来自不同来源的对比数据,以便业务运营、分析和报告能够顺利运行。
(3)数据集市:数据集市是数据仓库的子集,因为它存储特定部门、地区或业务单位的数据。数据集市有助于增加用户响应并减少分析数据量。此处的数据存储在 ODS 中,然后ODS将其发送到 EDW,并在其中存储和使用。
更多相关知识点:
https://baijiahao.baidu.com/s?id=1743278706922189137&wfr=spider&for=pc
第2章 数据
2.1 数据类型
数据是数据库存储的基本对象。数字只是数据的一种传统的、狭义的理解,是最简单的数据形式。无论是从数学的角度,还是从计算机处理的角度来看,数据的内涵随着时间的推移而扩展。
广义地,可以把数据理解为记录(在不同场合也可以称为数据对象、点、向量、模式、事件、案例、样本、观测或实体等)在介质中的信息,是数据对象及其属性的集合,其表现形式可以是数字、符号、文字、图像或计算机代码等。
数据的语义是指对数据含义的说明,是数据对象(记录)所有属性的集合。而数据集是具有相同属性的数据对象的集合。
数据集通常可以看为数据对象的集合。数据对象有时也可以称为记录、点、向量、模式、事件、案例、样本、观测或实体。数据对象由一组刻画对象基本特性的属性描述。属性又可称为变量、特性、字段、特征或者维。
2.1.1 属性和度量
我们给出如下定义:
- 属性(attribute)(也称为特征、维或字段):一个对象的某方面性质或特性。一个对象通过若干属性来刻画。
(补充知识点)
例如,在表2-1中,每一列表示一个属性,每一行表示一个对象,而整个样本集则由多个具有相同属性的记录组成。在同一列中,各行的取值不完全相同,这是因为不同数据对象在同一个属性上体现的属性值不一样。
- 测量标度(measurement scale):将数值或符号值与对象的属性相关联的规则(函数),如清点教室中的座位数等。
属性的值往往有如下几种性质:
1. 相异性 和
2. 序 、、和
3. 加法 和
4. 乘法 和
根据这些性质,可将属性分为四种类型:标称(nominal)、序数(ordinal)、区间(interval)和比率(ratio)
另外根据属性的可能取值,可将属性分为离散的(discrete),连续的(continuous)
根据属性具有的不同性质,属性可分为4种:标称(Nominal)、序数(Ordinal)、 区间(Interval)和比率(Ratio)。
① 标称(Nominal)属性:其属性值只提供足够的信息以区分对象,如颜色、性别、产品编号等;这种属性值没有实际意义,如三个对象可以用甲乙丙来区分,也可以用ABC来区分。② 序数(Ordinal)属性:其属性值提供足够的信息,以区分对象的序,如成绩等级(优、良、中、及格、不及格)、年级(一年级、二年级、三年级、四年级)、职称(助教、讲师、副教授、教授)、学生(本科生、硕士生、博士生)等。
③ 区间(Interval)属性:其属性值之间的差是有意义的,如日历日期、摄氏温度。
④ 比率(Ratio)属性:其属性值之间的差和比率都是有意义的,如长度、时间和速度等。
属性可以进一步归类为2种。
① 标称和序数属性:统称为分类的(Categorical)或定性的(Qualitative)属性,取值为集合。
② 区间和比率属性:统称为数值的(Numeric)或定量的(Quantitative)属性,取值为区间。注意:定量属性可以是整数值或者连续值。
对于非对称的属性(asymmetric attribute),出现非零值才重要,考虑如下数据集:每个对象为一个学生,每个属性记录该学生是否选修了某项大学课程。
2.1.2 数据集的类型
数据集可以看做具有相同属性的数据对象的集合。
- 一般特性:维度,稀疏性、分辨率
- 记录数据:事务数据或购物篮数据、数据矩阵、稀疏数据矩阵
- 基于图形的数据:带有对象之间联系的数据(类似图论)、具有图形对象的数据
- 有序数据:时序数据、序列数据、时间序列数据、空间数据
- 非记录数据
在数据挖掘领域,数据集具有三个重要特性:维度、稀疏性和分辨率。
① 维度(Dimensionality):指数据集中的对象具有的属性个数总和。根据数据集的维度大小,数据集可以分为高、中、低维数据集。在面对高维数据集时经常会碰到维数灾难(Curse of Dimensionality)的情况。正因为如此,数据预处理的一个重要技术就是维归约(Dimensionality Reduction)。
② 稀疏性(Sparsity):指在某些数据集中,有意义的数据非常少,对象在大部分属性上的取值为0,非零项不到1%。超市购物记录或事务数据集、文本数据集具有典型的稀疏性。
③ 分辨率(Resolution):可以在不同的分辨率或粒度下得到数据,而且在不同的分辨率下对象的性质也不同。例如,在肉眼看来,一张光滑的桌面是十分平坦的,在显微镜下观察,则发现其表面十分粗糙。数据的模式依赖于分辨率,分辨率太高、太低,都得不到有效的模式,针对具体应用,需要选择合适的分辨率或粒度。例如,我们分析不同大学网络用户(假定每个人使用不同的IP地址)的行为特性时,如果使用每个具体地址,则难以体现群体的特性,使用部分IP地址(如前三个IP地址段),则容易发现不同群体的行为特性。
随着数据挖掘技术的发展和成熟,数据集的类型呈现出多样化的趋势。为方便起见,我们将数据集分为三类:记录数据、基于图形的数据和有序的数据集。
(1)记录数据
一般的数据挖掘任务都是假定数据集是记录(数据对象)的集合,每个记录都由相等数目的属性构成,见表2-1。记录之间或属性之间没有明显的联系。记录数据通常存放在平面文件或关系数据库中。根据数据挖掘任务的不同要求,记录数据可以有不同种类的变体。
① 事务数据或购物篮数据
事务数据(Transaction Data)是一种特殊类型的记录数据,其中每个记录涉及一个项的集合。典型的事务数据如超市零售数据,顾客一次购物所购买的商品的集合就构成一个事务,而购买的商品就是项。
② 数据矩阵(Data Matrix)
如果一个数据集中的所有数据对象都具有相同的数值属性集,则该数据对象可以看做多维空间中的点(向量),其中每一维代表描述对象的不同属性。这样的数据对象集可以用一个n×m的矩阵来表示,其中n表示行数,一个对象一行,m表示列数,一个属性一列(也可将行和列的表示反过来)。数据矩阵是记录数据的变体,可以使用标准的矩阵操作对数据进行变换和操纵,因此,对于大部分统计数据,数据矩阵是一种标准的数据格式。
(2)基于图形的数据
有时,图形可以方便而有效地表示对象之间的关系。我们考虑两种特殊情况:图形捕获数据对象之间的联系,数据对象本身用图形表示。
① 带有对象之间联系的数据:对象之间的联系常常携带重要的信息。在这种情况下,数据常常用图形表示。特殊地,数据对象映射到图的结点,而对象之间的联系用对象之间的链、方向、权值等表示。例如,万维网的网页上包含文本和指向其他页面的链接,电话通信中形成不同的社会网络群。
② 具有图形对象的数据:如果对象具有结构,即对象包含具有联系的子对象,则这样的对象常常用图表示。例如,化合物的结构可以图形表示,其中结点是原子,结点之间的链是化学键。
(3)有序数据对于某些数据类型,属性具有涉及时间或空间序的联系。
① 时序数据(sequential data)或时态数据(temporal data)
② 序列数据(sequence data)
③ 时间序列数据(time series data)
④ 空间数据(spatial data)
⑤ 流数据(stream data)
2.2 数据质量
数据挖掘所使用的数据往往是为其他用途收集的,或在收集时没有明确目的的。因而数据的质量往往不高。故数据处理着眼于两方面:(1)数据质量问题的检测与纠正,(2)使用可以容忍低质量数据的算法
2.2.1 测量和数据收集问题
- 测量误差:测量过程中的问题,如系统误差,随机误差等
- 噪声:测量误差的随机部分
- 伪像:数据的确定性失真,如:一组图像在相同的位置出现条纹
- 精度:(同一量的)重复测量值之间的接近程度
- 偏倚:测量值与被测量值之间的系统变差
- 准确度:测量值与实际值之间的接近程度,准确率的一个重要方面是有效数字
- 离群点:离群点与噪音不同,它往往是合法的值,并且可能是人们关注的重点,如:信用卡欺诈、网络进攻等
- 遗漏值:解决方法有 a.删除对象和属性 b.估计遗漏值 c. 在分析时忽略遗漏值
不一致的值 - 重复数据:去重复方法解决
2.2.2 关于应用的问题
- 时效性
- 相关性:常见问题有 抽样偏倚2
- 关于数据的背景知识
2.3 数据预处理
数据预处理是为了改善数据挖掘的效果,减少分析时间,降低成本和提高质量。常用技术可以分为两类:(1)选择分析所需要的数据对象, (2)创建/改变属性
2.3.1 聚集
聚集(aggregation) 将两个或多个对象合并成单个对象。即对数据进行汇总或聚集。考虑如下数据集:一个记录一年中不同日期在不同地区的商店的日销售情况,可以用一个商店事务替换掉该商店的所有事务。通常,聚集用来为多粒度数据分析构建数据立方体。
2.3.2 抽样
在数据挖掘中,抽样是选择数据子集进行分析的常用方法,数据挖掘使用抽样是因为处理所有数据的费用太高,借助抽样压缩样本量,优化数据挖掘算法的性能。
有效抽样的原理:如果样本是有代表性的,则使用样本与使用整个数据集的效果几乎一样。
常见抽样方法有简单随机抽样,包括有放回抽样、无放回抽样;分层抽样;渐进抽样3。
2.3.3 维归约
维度(数据特征的数目)归约是指通过使用数据编码或变换,得到原始数据的归约或“压缩”表示。如果原始数据可以由压缩数据重新构造而不丢失任何信息,则该数据归约是无损的。如果只能重新构造原始数据的近似表示,则该数据归约是有损的。使用维归约可以降低数据挖掘算法的时间和空间复杂度。
当数据集中包含大量特征(属性)时,维归约就愈加显现其好处。其主要的作用是,如果维度较低,许多数据挖掘算法的效果会更好,可以避免维灾难4;并且使得模型更易理解。
维归约的常用方法是使用线性代数技术,将数据从多维空间投影到低维空间,主要技术有 主成分分析(Principal Component Analysis, PCA) 和奇异值分解(Singual Value Decomposition, SVD)。
2.3.4 特征子集选择
通过选择属性集中的部分属性的方法,达到降低维度的目的。当存在冗余特征或不相关特征时,往往并不会损失太多信息,从而也是一种有效的降维方法。特征选择(feature selection):从一组已知特征集合中选择最具有代表性的特征子集,使其保留原有数据的大部分信息,即所选择的特征子集可以像原来的全部特征一样用来正确区分数据集中的每个数据对象。通过特征选择,一些与任务无关或者冗余的特征被删除,从而提高数据处理的效率,简化学习模型。由集合论可知,n个属性有2n−1个非空子集,故而穷举属性子集的方法是计算不可行的,实际中往往采用如下方法:
- 嵌入方法(embedded approach):特征选择作为数据挖掘的一部分存在
- 过滤方法(filter approach):使用某种独立于数据挖掘的方法,在数据挖掘算法运行之前进行特征选择
- 包装方法(wrapper approach):将目标数据挖掘算法作为黑盒,使用类似穷举的方法,但通常并不枚举所有子集
特征子集选择由四部分组成:子集度量评估、控制新的特征子集产生的搜索策略、停止搜索判断和验证过程。过滤方法和包装方法不同在与 子集评估度量 。
另外,除了上述三种特征子集选择的方法,还可以通过 特征加权 来保留或删除特征。
根据特征选择过程与后续数据挖掘算法的关联,特征选择方法可分为过滤、封装和嵌入。
① 过滤方法(Filter Approach):使用某种独立于数据挖掘任务的方法,在数据挖掘算法运行之前进行特征选择,即先过滤特征集产生一个最有价值的特征子集。
② 封装方法(Wrapper Approach):将学习算法的结果作为特征子集评价准则的一部分,根据算法生成规则的分类精度选择特征子集。该类算法具有使得生成规则分类精度高的优点,但特征选择效率较低。
③ 嵌入方法(embedded approach):特征选择作为数据挖掘算法的一部分自然地出现。在数据挖掘算法运行期间,算法本身决定使用哪些属性和忽略哪些特征,如决策树C4.5分类算法。
根据特征选择过程是否用到类信息的指导,特征选择可分为监督式特征选择、无监督式特征选择和半监督式特征选择。
① 监督式特征选择(supervised feature selection):使用类信息来进行指导,通过度量类信息与特征之间的相互关系来确定子集大小。
② 无监督式特征选择(unsupervised feature selection):在没有类信息的指导下,使用样本聚类或特征聚类对聚类过程中的特征贡献度进行评估,根据贡献度的大小进行特征选择。③ 半监督式特征选择(semi-supervised feature selection):有类信息的数据是“昂贵”的,通常情况下没有足够的有类信息的数据。如果有类信息的数据太少,以致不能提供足够的信息的时候,我们可以使用少量的有类信息的数据和无类信息的大量数据组合成数据集而进行特征选择。
特征选择过程可以看做由4部分组成:子集评估度量、控制新的特征子集产生的搜索策略、停止策略和验证过程。
从概念上讲,特征子集选择是一个搜索所有可能的特征子集的过程。可以使用许多类型的搜索策略,但是搜索策略的计算花费应当较低,并且应当能找到最优或近似最优的特征子集。通常不可能同时满足这两个要求,因此需要折中权衡。
特征子集选择的搜索策略主要包括以下技术。
① 逐步向前选择:从空属性集作为归约集开始,确定原属性集中最好的属性,并将它添加到归约集中。在其后的每次迭代中,将剩下的原属性集中最好的属性添加到该集合中。
② 逐步向后删除:由整个属性集开始,在每一步,删除尚在属性集中最差的属性。
③ 向前选择和向后删除的结合:将逐步向前选择和向后删除方法结合在一起,每一步选择一个最好的属性,并在剩余属性中删除一个最差的属性。
④ 决策树归纳:构造一个类似于流程图的结构,其中每个内部节点表示一个属性的测试,每个分支对应于测试的一个输出;每个外部节点表示一个类预测;在每个节点,算法选择“最好”的属性,将数据划分成类。图2-12展示了三种搜索策略选择特征的过程。
2.3.5 特征创建
常常可以用原有的属性创建新的属性集,更有效地捕获数据集中的重要信息。与之相关的方法有:
- 特征提取(feature extraction):如由相片提取人脸的特征点
- 映射数据到新的空间:如将时间域的变量变换到频率域,参见 傅里叶变换
- 特征构造:由原始属性提取出易于数据挖掘的属性,如根据密度分辨木头金块
2.3.6 离散化和二元化
某些数据挖掘算法只适用于分类属性,此时就需要用到离散化(discretization)或二元化(binarization)
2.3.7 变量变换
变量变换(variable transformation) 是指用于变量的所有值的变换,包括:简单函数变换,标准化(standardization) 或 规范化(normalization)
2.4相似性和相异性的度量
相似性度量是衡量变量间相互关系强弱、联系紧密程度的重要手段
- 时间序列数据 是一种特殊的时序数据,它的每一个记录都是一个时序数据,如北京地区从1982年到1994年每年的月平均气温数据。
- 抽象偏倚(sample bias) 是指样本包含的不同类型的对象与它们的总体中的出现情况不成比例。
- 合适的样本容量常常很难确定,此时就有可能使用渐进抽样(progressive sampling),该方法从一个小样本开始,然后逐渐增加样本容量直至得到足够容量的样本。
- 维灾难是指随着数据维度的增加,许多数据分析变得困难,特别是随着维度增加,数据在它所占据的空间中越来越稀疏。
通常,具有若干属性的对象之间的相似性用单个属性的相似性组合来定义。
具有单个属性的对象之间的相似性:
1.标称和区间属性: 标称属性只携带了对象的相异性信息,因此我们只能说两个对象有相同的值,或者没有。因而在这种情况下,如果属性值匹配,则相似度定义为1,否则为0;相异度用相反的方法定义,如果属性值匹配,相异度为0,否则为1。对于区间属性,两对象间的相异性的自然度量是它们的值之差的绝对值。
2.序数和比例数值属性
(1)序数属性
序数属性变量(Ordinal Variable)有分类的和连续的两种。分类序数属性与标称属性类似,不同的是,M(对应M个状态的)个顺序值是按一定次序排列的,有助于记录一些不便于客观度量的主观评价。
(2)比例数值属性
比例数值变量(Ratio-scaled Variable)是在非线性尺度上取得的测量值。
在计算比例数值变量所描述对象间的距离时,有三种处理方法。
① 将比例数值变量当做区间间隔数值变量来进行计算处理。该方法可能导致非线性的比例尺度被扭曲。
② 将比例数值变量看成是连续的序数属性进行处理。
③ 利用变换(如对数转换yf=log(xf))来处理属性f的值xf得到yf,将yf当做间隔数值变量进行处理。这里的变换需要根据具体定义或应用需求而选择log或log-log或其他变换。相对来说,该方法效果较好。
对象之间的相似性度量:
1.数值属性相似性度量
(1)距离度量:① Minkowski距离② 马氏(Mahalanobis)距离③ Canberra距离
(2)相似系数① 余弦相似度② 相关系数③ 广义Jaccard系数
2.二值属性的相似性
一个二值属性变量(binary variable)只有两种状态:0或1,表示属性的存在与否。一种差异计算方法就是根据二值数据计算。
二值属性存在对称的和不对称的两种。如果一个二值属性的两个状态值所表示的内容同等重要,则它是对称的,否则为不对称的。
3.混合属性相似性度量
4.由距离度量转换而来的相似性度量