算法 经验 模型
机器学习任务:分类、回归、聚类(KMeans、DCSAN、层次聚类)、数据降维、数据预处理
常用分类器:KNN、贝叶斯、 逻辑回归 、决策树、随机森林
本书将介绍数据挖掘与数据库知识发现的基本知识,以及从大量有噪声、不完整、甚至是不一致数据集合中,挖掘出有意义的模式知识所涉及的概念与技术方法。同时还将介绍数据挖掘系统的结构、数据挖掘所获得的知识种类,以及数据挖掘系统的分类。
数据挖掘是一个多学科交叉领域,这些交叉学科包括:数据库系统、机器学习、统计学、可视化和信息科学。
置身市场经济且面向全球性剧烈竞争的环境下,任何商家的优势不单纯地取决于如产品、服务、地 区等方面因素,而在于创新。用知识作为创新的原动力,就能使商家长期持续地保持竞争优势。因此要能及时迅速地从日积月累庞大的数据库中,以及互联网上获取与经营决策相关的知识。
为了便于获得决策所需信息,就有必要将整个机构内的数据以统一形式集成存储在一起,这就是形成了数据仓库。数据仓库不同于管理日常工作数据的数据库,它是为了便于分析针对特定主题的集成化的、时变的即提供存贮5-10年或更长时间的数据,这些数据一旦存入就不再发生变化。
数据仓库的出现,为更深入对数据进行分析提供了条件,针对市场变化的加速人们提出了能进行实时分析和产生相应报表的在线分析工具 OLAP(online analytical processing)。OLAP 能允许用户以交互方式浏览数据仓库内容,并对其中数据进行多维分析,且能及时地从变化和不太完整的数据中提取出与企业经营活动密切相关的信息。例如:OLAP 能对不同时期、不同地域的商业数据中变化趋势进 行对比分析。
OLAP是数据分析手段的一大进步,以往的分析工具所得到的报告结果只能回 答“什么”(WHAT),而 OLAP的分析结果能回答“为什么”。OLAP分析过程是建立在用户对深藏在数据中的某种知识有预感和假设的前提下,由用户指导的信息分析与知识发现过程。
但由于数据仓库(通常数据贮藏量以 TB计)内容来源于多个数据源,因此其中埋藏着丰富的不为用户所知的有用信息和知识,而要使企业能及时准确地做出科学的经营决策,以适应变化迅速的市场环境,就需要有基于计算机与信息技术的智能化自动工具,来帮助挖掘隐藏在数据中的各类知识。**这类工具不应再基于用户假设,而应能自身生成多种假设;再用数据仓库(或大型数据库)中的数据进行检验或验证;然后返回用户最有价值的检验结果。**此外这类工具还应能适应现实世界中数据的多种特性(即量大、含噪声、不完整、动态、稀疏性、异质、非线性等)。要达到上述要求,只借助于一般数学分析方法是无能达到的。多年来,数理统计技术方法以及人工智能和知识工程等领域的研究成果,诸如推理、机器学习、知识获取、模糊理论、神经网络、进化计算、模式识别、粗糙集理论等等诸多研究分支,给开发满足这类要求的数据深度分析工具提供了坚实而丰富的理论和技术基础。
九十年代中期以来,许多软件开发商,基于数理统计、人工智能、机器学习、 神经网络、进化计算和模式识别等多种技术和市场需求,开发了许多数据挖掘与知识发现软件工具,从而形成了近年来软件开发市场的热点。目前数据挖掘工具已开 始向智能化整体数据分析解决方案发展,这是从数据到知识演化过程中的一个重要里程碑。如图所示
数据挖掘(data mining),又称为数据库中知识发现(knowledge discovery from database,简称KDD),它是一个从大量数据中抽取挖掘出未知的、有价值的模式或规律等知识的复杂过程。数据挖掘的全过程定义如下 所示
知识挖掘过程和步骤
1.问题定义
2.数据采集
3.数据预处理
数据清洗:数据缺失点补充、离群点异常点检测、重复数据监测等。清除数据噪声和与挖掘主题明显无
关的数据
数据集成:将来自多数据源中的相关数据组合到一起
数据转换:
4.建立模型
5.评估和解释
根据一定评估标准(pattern evaluation)从挖掘结果筛选出有意义的模式知识
6.知识应用
利用可视化和知识表达技术,向用户展示所挖掘出的相关知识
数据挖掘系统总体结构描述
♦知识库,此处存放数据挖掘所需要的领域知识,这些知识将用于指导数据挖掘的搜索过程,或者用于帮助对挖掘结果的评估。挖掘算法中所使用的用户定义的阈值就是最简单的领域知识;
♦ 数据挖掘引擎 数据挖掘引擎 数据挖掘引擎 数据挖掘引擎,这是数据挖掘系统的最基本部件,它通常包含一组挖掘功能模块,以便完成定性归纳、关联分析、分类归纳、进化计算和偏差分析等挖掘功能;
♦ 模式评估模块 模式评估模块 模式评估模块 模式评估模块,该模块可根据趣味标准(interestingness measures ),协助数据挖掘模块聚焦挖掘更有意义的模式知识。当然该模块能否与数据挖掘模块有机结合,与数据挖掘模块所使用的具体挖掘算法有关。显然若数据挖掘算法能够与知识评估方法有机结合将有助提高其数据挖掘的效率;
数据库技术侧重于对数据存储处理的高效率方法的研究,而机器学习则侧重于设计新的方法从数据中提取知识。
数据挖掘(只是发现)和机器学习区别在于:
知识发现KDD是从现实世界中存在的一些具体数据中提取知识,这些数据在KDD 出现之前早已存在,数据完整性,一致性,正确性很难保证;而机器学习所使用的数据是专门为机器学习而特别准备的数据,这些数据在现实世界中也许毫无意义。
KDD 与数据库报表工具区别在于:
数据库报表制作工具是将数据库中的某些数据抽取出来,经过一些数学运算,最终以特定的格式呈现给用户,而 KDD 则是对数据背后隐藏的特征和趋势进行分析,最终给出关于数据的总体特征和发展趋势。
数据挖掘与OLAP(在线联机分析过程)区别:
OLAP 是由用户驱动的,一般是由分析人员预先设定一些假设,然后使用OLAP工具去帮助验证这些假设,提供了使分析人员很方便进行数据分析的手段;而数据挖掘则是通过对数据的分析来自动产生一些假设,人们在这些假设的基础上更有效地进行决策。
利用数据挖掘技术可以帮助获得决策所需的多种知识。在许多情况下,用户并不知道数据存在哪些有价值的信息知识,**因此对于一个数据挖掘系统而言,它应该能够同时搜索发现多种模式的知识,以满足用户的期望和实际需要。此外数据挖掘系统还应能够挖掘出多种层次(抽象水平)的模式知识。**数据挖掘系统还应容许用户指导挖掘搜索有价值的模式知识。
数据挖掘功能以及所能够挖掘的知识类型说明描述如下。
一个概念常常是对一个包含大量数据的数据集合总体情况的概述。对含有大量数据的数据集合进行概述性 的总结并获得简明、准确的描述,这种描述就称为概念描述。获得概念描述的方法主要有以下两种:
在数据集对比概要总结中所使用的挖掘方法与单一数据集概要总结所使用的方法基本相同;其结果输出形式也很类似,只是对比概要总结加入了对比描述因子以帮助区分目标数据集与对比数据集的对比情况。对比数据概要总结的输出结果也常常采用表格形式或对比规则形式来加以描述;
从给定的数据集发现频繁出现的项集模式知识。关联分析广泛用于市场营销、事务分析等应用领域。
分类就是找出一组能够描述数据集合典型特征的模型(或函数),以便能够分类识别未知数据的归属或类别,即将未知事例映射到某种离散类别之一。分类挖掘所获的分类模型可以采用多种形式加以描述输出。其中主要的表示方法有:分类规则、决策树、数学公式和神经网络。
一般使用预测来表示对连续数值的预测;
而使用分类来表示对有限离散值的预测;
聚类分析与分类预测方法明显不同之处在于,后者所学习获取分类预测模型所使用的数据是已知类别归属有监督学习方法;而聚类分析所分析处理的数据均是无类别归属的。
聚类分析中,首先需要根据“各聚集(cluster)内部数据对象间的相似度最大化;而各聚集对象间相似度最小化”的基本聚类分析原则,以及度量数据对象之间相似度的计算公式,将聚类分析的数据对象划分为若干组。因 此一个组中数据对象间的相似度要比不同组数据对象间的相似度要大。每一个聚类 分析所获得的组就可以视为是一个同类别归属的数据对象集合,更进一步从这些同类别数据集,又可以通过分类学习获得相应的分类预测模型(规则)。此外通过反复 不断地对所获得的聚类组进行聚类分析,还可获得初始数据集合的一个层次结构模型。
数据中的异类可以利用数理统计方法分析获得,即利用已知数据所获得的概率统计分布模型,或利用相似度计算所获得的相似数据对象分布,分析确认异类数据。而偏离检测就是从数据已有或期望值中找出某些关键测度显著的变化
不符合大多数数据对象所构成的规律(模型)的数据对象就被称为异类(outlier)。许多数据挖掘方法都在正式进行数据挖掘之前就将这些异类作为噪声或意外而将其排除在数据挖掘的分析处理范围之内。
但在一些应用场合,如各种商业欺诈行为的自动检测,小概率发生的事件(数据)往往比经常发生的事件(数据)更有挖掘价值。对异类数据的分析处理通常就称为异类挖掘。
数据演化分析(evolution analysis)就是对随时间变化的数据对象的变化规律和趋势进行建模描述。这一建模手段包括:概念描述、对比概念描述、关联分析、分类分析、时间相关数据分析(这其中又包括:时序数据分析、序列或周期模式匹配,以及基于相似性的数据分析)
使一个模式有价值的因素是什么?
评估一个模式(知识)是否有意义通常有依据以下四条标准:
(1)易于用户理解;
(2)对新数据或测试数据能够确定有效程度;
(3)具有潜在价值;
( 4)新奇的。一个有价值的模式就是知识。
一个数据挖掘算法能否产生所有有价值的模式(知识)?
期望数据挖掘算法能够产生所有可能模式是不现实的。实际上一个(模式)搜索方法可以利用有趣性评价标准来帮助缩小模式的搜索范围。因此通常只需要保证挖掘算法的完全性就可以了。关联规则的挖掘
算法就是这样的一个例子。
一个数据挖掘算法能否只产生有价值的模式(知识)?
使数据挖掘算法的一个最优化问题。评估所挖掘模式的趣味性标准对于有效挖掘出具有应用价值的模式知识很重重要。可以直接帮助指导挖掘算法获取有实际应用价值的模式知识,以及有效摒弃无意义的模式。更为重要的是这些模式评估标准将积极指导整个知识发现过程,通过及时消除无前途的搜索路径,提高挖掘的有效性。
数据挖掘是一个多学科交叉领域,这些交叉学科包括**:数据库系统、机器学习、统计学、可视化和信息科学**。此外因数据挖掘任务不同,数据挖掘系统还可能采用其它学科的一些技术方法,如:神经网络、模糊逻辑、粗糙集、知识表示、推理逻 辑编程或高性能计算等。根据所挖掘的数据和挖掘应用背景,数据挖掘系统还可能 集成其它领域的一些技术方法,其中包括:空间数据分析、信息检索、模式识别、 图象分析、信号处理、计算机图形学、互联网技术、经济学、心理学等。
为帮助正确认识数据挖掘系统并准确有效使用合适的数据挖掘系统解决实际问题,
这里将对数据挖掘系统分类标准作一详细介绍:
可以按照三种标准进行划分
实际上数据挖掘技术从一开始就是面向应用的。目前,在很多重要的领域,数据挖掘都可以发挥积极促进的作用。尤其是在如银行、电信、保险、交通、零售(如超级市场)等商业应用领域。
数数挖掘能够帮助解决许多典型的商业问题,其中包括:数据库营销、客户群体划分、背景分析、交叉销售等市场分析行为,以及客户流失性分析、客户信用评分欺诈发现等等。
数据挖掘系统的其它应用还有:
♦ 在对客户进行分析方面:银行信用卡和保险行业,利用数据挖掘将市场分 成有意义的群组和部门,从而协助市场经理和业务执行人员更好地集中于 有促进作用的活动和设计新的市场运动。
♦ 在客户关系管理方面:数据挖掘能找出产品使用模式或协助了解客户行为,
从而可以改进通道管理(如银行分支和 ATM 等)。又如正确时间销售( 就是基于顾客生活周期模型来实施的。
♦ 在零售业方面:数据挖掘用于顾客购货篮的分析可以协助货架布置,促销活动时间,促销商品组合以及了解滞销和畅销商品状况等商业活动。通过
对一种厂家商品在各连锁店的市场共享分析,客户统计以及历史状况的分
析,可以确定销售和广告业务的有效性。
♦ 在产品质量保证方面:数据挖掘协助管理大数量变量之间的相互作用,并
能自动发现出某些不正常的数据分布,揭示制造和装配操作过程中变化情 况和各种因素,从而协助质量工程师很快地注意到问题发生范围和采取改 正措施。
♦ 在远程通讯方面:基于数据挖掘的分析协助组织策略变更以适应外部世界
的变化,确定市场变化模式以指导销售计划。在网络容量利用方面,数据
挖掘能提供对客户聚集服务使用的结构和模式的了解,从而指导容量计划 人员对网络设施作出最佳投资决策。
♦ 在各个企事业部门,数据挖掘在假伪检测及险灾评估、失误回避、资源分
配、市场销售预测广告投资等很多方面,起着很重要作用。例如在化学及
制药行业,将数据挖掘用于巨量生物信息可以发现新的有用化学成分;在 遥感领域针对每天从卫星上及其它方面来的巨额数据,对气象预报、臭氧
层监测等能起很大作用。
从数据库挖掘不同类型的知识。
由于不同的应用需要不同类型的知识,因 此数据挖掘应该覆盖广泛的数据分析与知识发现任务需求。这其中包括:数据概念描述、对比概念描述、关联知识、分类知识、聚类分析、趋势和偏差分析,以及相似性分析。这些挖掘任务可以是对同一个数据库进行不同的操作。因此需要设计开发大量的数据挖掘技术。
基于多层抽象水平的交互挖掘
由于无法准确了解从一个数据库中究竟能 够发现什么。因此一个数据挖掘过程应该是交互的。鉴于数据库中包含大量的数据,首先需要利用合适的采样技术来帮助实现交互式数据挖掘的探索。交互数据挖掘能够让用户参与并指导对(要挖掘)模式的搜索,或帮助让用户精炼所返回的挖掘结果。与数据仓库OLAP交互模式类似,用户也可以与数据挖掘系统进行交互来帮助进行更有效地数据挖掘,以便能从多个不同角度发现多个抽象层次(细度)的模式知识
数据挖掘查询语言与定制数据挖掘。
数据挖掘结果表达与可视化。
处理有噪声或不完整的数据。
模式评估
数据预处理是数据挖掘(知识发现)过程中的一个重要步骤,尤其是在对包
含有噪声、不完整,甚至是不一致数据进行数据挖掘时,更需要进行数据的预处
理,以提高数据挖掘对象的质量,并最终达到提高数据挖掘所获模式知识质量的
目的。
名词解释如下:
不完整、有噪声和不一致对大规模现实世界的数据库来讲是非常普遍的情
况。
不完整数据的产生有以下几个原因:
(1)有些属性的内容有时没有,如:参与销售事务数据中的顾客信息;
(2)有些数据当时被认为是不必要的;
(3)由于误解或检测设备失灵导致相关数据没有记录下来;
(4)与其它记录内容不一致而被删除;
(5)历史记录或对数据的修改被忽略了。尤其是一些关键属性的遗失数据或许需要推导出来。
噪声数据的产生原因有:
(1)数据采集设备有问题;
(2)在数据录入过程发生了人为或计算机错误;
(3)数据传输过程中发生错误;如:由于技术限制(有限通讯缓冲区);
(4)由于命名规则或数据代码不同而引起的不一致。数据清洗还将删去重复的记录行。
数据清洗( data cleaning)处理例程通常包括:填补遗漏的数据值、平滑有噪声数据、识别或除去异常值(outlier),以及解决不一致问题。有问题的数据将会误导数据挖掘的搜索过程。尽管大多数数据挖掘过程均包含有对不完全或噪声数据的处理,但它们并不鲁棒且常常将处理的重点放在如何避免所挖掘出的模式对数据过分准确的描述上。因此使用一些数据清洗例程对待挖掘的数据进行预处理是十分必要的。稍后我们将详细介绍数据清洗有关具体方法。
数据集成(data integration)就是将来自多个数据源(如:数据库、文件等)数据合并到一起。由于描述同一个概念的属性在不同数据库取不同的名字,在进行数据集成时就常常会引起数据的不一致或冗余。例如:在一个数据库中一个顾 客的身份编码为“custom_id ”,而在另一个数据库则为“cust_id”。命名的不一致常常也会导致同一属性值的内容不同,如:在一个数据库中一个人的姓取“Bill”,而在另一个数据库中则取“KB”。同样大量的数据冗余不仅会降低挖掘速度,而且也会误导挖掘进程。因此除了进行数据清洗之外,在数据集成中还需要注意消除数据的冗余。此外在完成数据集成之后,有时还需要进行数据清洗以便消除可能存在的数据冗余。
数据转换( data transformation)主要是对数据进行规格化(normalization) 操作。在正式进行数据挖掘之前,尤其是使用基于对象距离( distance-based )的挖掘算法时,如:神经网络、最近邻分类等,必须进行数据规格化。也就是将其缩至特定的范围之内,如:[0,10]。如:对于一个顾客信息数据库中的年龄属性或工资属性,由于工资属性的取值比年龄属性的
取值要大许多,如果不进行规格化处理,基于工资属性的距离计算值显然将远超过基于年龄属性的距离计算值,这就意味着工资属性的作用在整个数据对象的距离计算中被错误地放大了。
数据消减(data reduction)的目的就是缩小所挖掘数据的规模,但却不会影响(或基本不影响)最终的挖掘结果。现有的数据消减包括:
(1)数据聚合(data aggregation),如:构造数据立方(cube);
(2)消减维数( dimension reduction),如:通过相关分析消除多余属性;
(3)数据压缩( data compresion),如:利用编码方法(如最小编码长度或小波);
(4)数据块消减(numerosity reduction),如:利用聚类或参数模型替代原有数据。此外利用基于概念树的泛化(generalization)也可以实现对数据规模的消减,有关概念树的详情将在稍后介绍。
这里需要强调的是以上所提及的各种数据预处理方法,并不是相互独立的,而是相互关联的。如:消除数据冗余既可以看成是一种形式的数据清洗,也可以 认为是一种数据消减。
现实世界的数据常常是有噪声、不完全的和不一致的。数据清洗( data cleaning)例程通过填补遗漏数据、消除异常数据、平滑噪声数据,以及纠正不一致的数据。以下将详细介绍数据清洗的主要处理方法。
噪声是指被测变量的一个随机错误和变化。给定一个数值型属性,如:价格,
平滑去噪的数据具体方法说明:
现实世界的数据库常出现数据记录内容的不一致,其中一些数据不一致可以利用它们与外部的关联手工加以解决。例如:输入发生的数据录入错误一般可以 与原稿进行对比来加以纠正。此外还有一些例程可以帮助纠正使用编码时所发生的不一致问题。知识工程工具也可以帮助发现违反数据约束条件的情况。由于同一属性在不同数据库中的取名不规范,常常使得在进行数据集成时,导致不一致情况的发生。
数据挖掘任务常常涉及数据集成操作,即将来自多个数据源的数据,如:数据库、数据立方、普通文件等,结合在一起并形成一个统一数据集合,以便为数据挖掘工作的顺利完成提供完整的数据基础。
在数据集成过程中,需要考虑解决以下几个问题:
(1)模式集成。如何使来自多个数据源的现实世界的实体相互匹配,这其中就涉及到实体识别问题。
(2)冗余问题。若一个属性(attribute)可以从其它属性中推演出来,那这个属性就是冗余属性。如:一个顾客数据表中的平均月收入属性,就是冗余属性,显然它可以根据月收入属性计 算出来。此外属性命名的不一致也会导致集成后的数据集出现不一致情况.
(3)数据值冲突检测与消除.如对于一个现实世界实体,其来自不同数据源的属性值或许不同。产生这样问题原因可能是表示的差异、比例尺度不同、或编码的差异等。例如:重量属性在一个系统中采用公制,而在另一个系统中却采用英制。同样价格属性不同地点采用不同货币单位。
所谓数据转换就是将数据转换或归并已构成一个适合数据挖掘的描述形式。
数据转换包含以下处理内容
(1)平滑处理。帮助除去数据中的噪声,主要技术方法有:bin方法、聚类
方法和回归方法。
(2)合计处理。对数据进行总结或合计(aggregation)。例如:每天销售额(数据)可以进行合计操作以获得每月或每年的总额。这一操作常用于构 造数据立方或对数据进行多细度的分析。
(3)数据泛化处理。所谓泛化处理就是用更抽象(更高层 次)的概念来取代低层次或数据层的数据对象。例如:街道属性,就可以泛化到更高层次的概念,诸如:城市、国家。同样对于数值型的属性…
(3)规格化。规格化就是将有关属性数据按比例投射到特定小范围之中。如将工资收入属性值映射到-1.0"到 1.0 范围内。
(4)属性构造。根据已有属性集构造新的属性,以帮助数据挖掘过程。
平滑是一种数据清洗方法。合计和泛化也可以作为数据消减的方法。这些已经介绍,下面介绍规格化和属性构造方法
**规格化就是将一个属性取值范围投射到一个特定范围之内,以消除数值型属性因大小不一而造成挖掘结果的偏差。**规划化处理常常用于神经网络、基于距离计算的最近邻分类和聚类挖掘的数据预处理。对于神经网络,采用规格化后的数据不仅有助于确保学习结果的正确性,而且也会帮助提高学习的速度。对于基于距离计算的挖掘,规格化方法可以帮助消除因属性取值范围不同而影响挖掘结果的公正性。下面介绍3种方法
十基数变化规格化方法
对于属性构造方法,它可以利用已有属性集构造出新的属性,并加入到现有属性集合中以帮助挖掘更深层次的模式知识,提高挖掘结果准确性。例如:根据 宽、高属性,可以构造一个新属性:面积。构造合适的属性能够帮助减少学习构造决策树时所出现的碎块)情况。
此外通过属性结合可以帮助发现所遗漏的属性间相互联系,而这常常对于数据挖掘过程是十分重要的
对大规模数据库内容进行复杂的数据分析通常需要耗费大量的时间,这就常
常使得这样的分析变得不现实和不可行,尤其是需要交互式数据挖掘时。数据消
减技术正是用于帮助从原有庞大数据集中获得一个精简的数据集合,并使这一精
简数据集保持原有数据集的完整性,这样在精简数据集上进行数据挖掘显然效率
更高,并且挖掘出来的结果与使用原有数据集所获得结果基本相同。
数据消减的主要策略有以下几种:
(1)数据立方合计。这类合计操作主要用于构造数 据立方(数据仓库操作)
(2)维度消减。主要用于检测和消除无关、弱相关、或冗余的属性或维(数
据仓库中属性)。
(3)数据压缩,利用编码技术压缩数据集的大小。
(4)数据块(numerosity)消减,利用更简单的数据表达形式,如:参数模型、非参数模型(聚类、采样、直方图等),来取代原有的数据。
(5)离散化与概念层次生成。所谓离散化就是利用取值范围或更高层次概 念来替换初始数据。利用概念层次可以帮助挖掘不同抽象层次的模式知识。稍后我们专门介绍概念层次树。
最后需要提醒大家的是,数据消减所花费的时间不应超过由于数据消减而节 约的数据挖掘时间
如图所示就是一个对某公司三年销售额的合计处理的示意描述。而图-2.5 则描述在三个维度上对某公司原始销售数据进行合计所获得的数据立方。
**维数消减就是通过消除多余和无关的属性而有效消减数据集的规模。这里通常采用属性子集的选择方法。**属性子集选择方法(attribute subset selection)的目标就是寻找出最小的属性子集并确保新数据子集的概率分布尽可能接近原来数据集的概率分布。利用筛选后的属性集进行数据挖掘所获结果,由于使用了较少的属性,从而使得用户更加容易理解挖掘结果。
一般利用统计重要性的测试来帮助选择“最优“或“最差”属性。这里都假设各属性之间都是相互独立的。此外还有许多评估属性的方法,如:用于构造决策树的信息增益方法。
构造属性子集的基本启发式方法有以下两种:
(1)逐步添加方法 。该方法从一个空属性集(作为属性子集初始值)开始, 每次从原来属性集合中选择一个当前最优的属性添加到当前属性子集中。直到无法选择出最优属性或满足一定阈值约束为止。
(2)逐步消减方法 。该方法从一个全属性集(作为属性子集初始值)开始, 每次从当前属性子集中选择一个当前最差的属性并将其从当前属性子集中消去。 直到无法选择出最差属性为止或满足一定阈值约束为止。
(3)消减与添加结合方法 。该方法将逐步添加方法与逐步消减方法结合在 一起,每次从当前属性子集中选择一个当前最差的属性并将其从当前属性子集中消去,以及从原来属性集合中选择一个当前最优的属性添加到当前属性子集中。直到无法选择出最优属性且无法选择出最差属性为止,或满足一定阈值约束为 止。
(4)决策树归纳方法 。通常用于分类的决策树算法也可以用于构造属性子集。具体方法就是:利用决策树的归纳方法对初始数据进行分类归纳学习,获得一个初始决策树,所有没有出现这个决策树上的属性均认为是无关属性,因此将这些属性从初始属性集合删除掉,就可以获得一个较优的属性子集。
通常可以利用属组类别(class label)来帮助进行属性的选择,以使它们能 够更加适合概念描述和分类挖掘。由于在冗余属性与相关属性之间没有绝对界线,因此利用无监督学习方法进行属性选择是一个较新研究领域。
数据压缩就是利用数据编码或数据转换将原来的数据集合压缩为一个较小规模的数据集合。若仅根据压缩后的数据集就可以恢复原来的数据集,那么就认为这一压缩是无损的(loseless);否则就称为有损的(lossy)。在数据挖掘领域通常使用的两种数据压缩方法均是有损的,它们是小波转换(wavelet transforms)和主要素分析/主成分分析(principal components analysis)。
离散小波变换与离散傅立叶变换相近,后者也是一个信号处理技术。但一般 讲来离散小波变换具有更好的有损压缩性能。也就是给定同一组数据向量(相关系数),利用离散小波变换所获得的(恢复)数据比利用离散傅立叶变换所获得的(恢复)数据更接近原来的数据。
PCA 方法的计算量不大且可以用于取值有序或无序的属性,同时也能处理稀疏或异常(skewed )数据。PCA 方法还可以将多于两维的数据通过处理降为 两维数据。与离散小波变换相比PCA 方法能较好地处理稀疏数据;而离散小波变换则更适合对高维数据进行处理变换。
消减方法主要包含参数与非参数两种基本方法。所谓参数方法就是利用一个模型来帮助通过计算获得原来的数据,因此只需要存储模型的参数即可(当然异常数据也需要存储)。例如:线性回归模型就可以根据一组变量预测计算另一个变量。而非参数方法则是存储利用直方图、聚类或取样而获得的消减后数据集。以下就将介绍几种主要数据块消减方法。
采样
(4)分层采样方法。若首先将大数据集 D 划分为若干不相交的“层” (STRATIFIED );然后再分别从这些“层“中随机抽取数据对象,从而获得具有代表性的采样数据子集。例如:可以对一个顾客数据集按照年龄进行分层,然后再在 每个年龄组中进行随机选择,从而确保了最终获得分层采样数据子集中的年龄分布具有代表性。
利用采样方法进行数据消减的一个突出优点就是:这样获取样本的时间仅与
样本规模成正比。
离散化技术方法可以通过将属性(连续取值)域值范围分为若干区间,来帮 助消减一个连续(取值)属性的取值个数。可以用一个标签来表示一个区间内的实际数据值。在基于决策树的分类挖掘中,消减一个属性取值个数的离散化处理是一个极为有效的数据预处理步骤.
手工构造概念层次树是一个费时费力的工作,庆幸的是在数据库模式定义中 隐含着许多层次描述。此外也可以通过对数据分布的统计分析自动构造或动态完善出概念层次树。
对于数值属性,可以利用划分规则、直方图分析和聚类分析方法对数据进行分段并构造相应的概念层次树;而对于类别属性,则可以利用概念层次树所涉及属性的不同值个数,构造相应的概 念层次树.
由于数据范围变化较大,构造数值属性的概念层次树是一件较为困难事情。利用数据分布分析,可以自动构造数值属性的概念层次树。其中主要五种构造方 法说明如下:
(1) bin方法。。例如:属性的值可以通过将其分配到各bin 中而将其离散 化。利用每个 bin 的均值和中数替换每个bin 中的值(利用均值或中数进行平滑)。循环应用这些操作处理每次操作结果,就可以获得一个概念层次树。
(2)直方图方法
(3)聚类分析法
聚类算法可以将数据集划分为若干类或组。每个类构成了概念层次树的一个节点;每个类还可以进一步分解为若干子类,从而构成更低水平的层次。当然类也可以合并起来构成更高层次的概念水平。
(4)基于熵的离散化方法
基于熵的离散化方法可以消减数据集规模。与其它方法不同的是基于熵的方法利用了类别 信息,这就使得边界的划分更加有利于改善分类挖掘结果的准确性。有关信息熵的计算方法将在第四章详细介绍
(5)自然划分阶段方法
尽管 bin 方法、直方图方法、聚类方法和基于熵 离散化方法均可以帮助构造数值概念层次树,但许多时候用户仍然使用将数值区 间划分为归一的、易读懂的间隔,以使这些间隔看起来更加自然直观。如: 将年收入数值属性取值区域分解为[50000,60000]区间要比利用复杂聚类分析所获得的[51236,60356]区间要直观的多。
类别属性可取有限个不同的值且这些值之间无大小和顺序。这样的属性有:国家、工作、商品类别等。构造类别属性的概念层次树的主要方法有:
(ps:上述启发知识并非始终正确。如:在一个带有时间描述的数据库中,month:12数量大于week:7)
逻辑回归二分类
softmax多分类
SVM算法:寻找支持向量,由此构造出的分类器可以最大化类与类的间隔
基于决策树:ID3 算法、C4.5 算法(信息增益率)、C5.0算法(Boosting)
KNN 算法
实例:肿瘤判断
关键:分界面,过拟合问题,分成训练集和测试集合
混淆矩阵,AUC-ROC曲线
代价错误
lift analysis(提升分析,市场营销)
线性回归
逻辑回归
Apriori算法
聚类:样品聚类、指标聚类、K-Means
思想:定义样品或指标的“相似度”度量,相近的样品或指标归为一类
样品聚类:
快速聚类法
步骤:
1.选择聚点,样品分为不相交K类
2.重新计算聚点集合,中心作为新的聚点
3.迭代直到分类趋于稳定
谱系聚类法
根据样品间的距离定义类和类间的距离,从而按照类间的距离从小到大进行聚类
步骤:
1.n个样品作为n个类,计算两两距离,构成对称矩阵
2.选择主对角线以上最小元素,合并新类,得到新的距离矩阵
3.重复
欧氏距离
绝对距离
马氏距离
Minkowski距离
Chebyshev距离