From Data Mining to Knowledge Discovery in Databases

这篇是数据挖掘领域一篇经典的综述性论文,因而将其翻译为中文以加深印象,方便复习回顾。其中相当一部分是机翻,可能不太通顺,从第3节KDD的过程开始,是人机结合翻译,对有/道翻的不好的地方进行修正,然后有一些名词和知识点我目前还不太懂,可能也翻得比较粗糙(虽然我自己看也觉得翻得像一坨……但是我就是发上来存一下,看懒羊羊发型一样的中文也比看英文要快嘛,以后有时间再完善,另外还打算自己总结提炼一下关键要点。全文如下:


数据库中的数据挖掘和知识发现已经吸引了大量的研究、行业和媒体的关注。为什么这么激动?本文对这一新兴领域进行概述,阐明了数据挖掘和知识发现如何相互关联,以及如何与相关领域(如机器学习、统计和数据库)相关联。本文提到了特定的现实中的应用、特定的数据挖掘技术、知识发现的现实应用所面临的挑战,以及当下和未来的研究方向。

在各种各样的领域,数据正在以惊人的速度收集和积累。我们迫切需要新一代的计算理论和工具来帮助人类从快速增长的数字数据中提取有用的信息(知识)。这些理论和工具是数据库知识发现(KDD)这一新兴领域的主题。

在抽象的层次上,KDD领域与理解数据的方法和技术的开发有关。知识发现(KDD)的基本问题是将低级的(通常太过庞大而难以理解)数据映射到到其他可能更紧凑的形式(例如,一个简短的报告),更抽象的(例如,一个描述性的近似或一个生成数据的过程的模型),或更有用(例如,一个估计未来的值的预测性模型)。这个过程的核心是特定数据挖掘方法的应用,为了挖掘或抽取模式。

本文首先讨论了KDD和数据挖掘的历史背景,以及它们与其他相关领域的交集。本文简要概述了最近的KDD实际应用。给出了知识发现和数据挖掘的定义,并给出了通用的多步骤知识发现过程。这个多步骤流程将数据挖掘算法的应用作为流程中的一个特定步骤。数据挖掘步骤将在特定的数据挖掘算法及其应用的上下文中进行更详细的讨论。本文还概述了实际应用中的问题。最后,文章列举了未来研究和发展的挑战,并特别讨论了人工智能技术在KDD系统中的潜在机遇。

1. 为什么需要KDD?

将数据转化为知识的传统方法依赖于手工分析和解释。例如,在医疗保健行业,专家通常定期分析当前的趋势和医疗保健数据的变化,例如每季度分析一次。然后,专家们将详细分析报告提交给主办保健机构;这份报告成为今后保健管理决策和规划的基础。在另一种完全不同的应用中,行星地质学家对行星和小行星的遥感图像进行筛选,仔细地定位和编目像撞击坑这样感兴趣的地质物体。无论是科学、市场营销、金融、医疗保健、零售还是任何其他领域,经典的数据分析方法基本上都依赖于一个或多个分析师熟悉数据,并充当数据、用户和产品之间的接口。

扩大人类分析能力以处理我们可以收集的大量字节的需求既经济又科学。企业利用数据来获取竞争优势,提高效率,并为客户提供更有价值的服务。我们收集的有关环境的数据是我们用来建立我们所生活的宇宙的理论和模型的基本证据。因为计算机已经使人类能够收集到比我们能够消化的更多的数据,所以自然会求助于计算技术来帮助我们从大量的数据中挖掘出有意义的模式和结构。因此,KDD试图解决数字信息时代为我们所有人带来的一个现实问题:数据过载。

.

2. 真实世界中的数据挖掘和知识发现

当前对KDD的兴趣很大程度上是媒体对成功的KDD应用程序感兴趣的结果,例如,最近两年内的焦点文章《商业周刊》、《新闻周刊》、《Byte》、《PC周刊》等发行量较大的期刊。不幸的是,要把事实与媒体炒作区分开来并不容易。尽管如此,几个有良好文档记录的成功系统的例子可以被正确地称为KDD应用,并且已经在科学和商业中的大规模真实世界问题上部署了操作使用。

扫描二维码关注公众号,回复: 14771580 查看本文章

科学上一个基本的应用领域是天文学。在这方面,SKICAT取得了显著的成功,天文学家使用该系统对巡天图像中的天体进行图像分析、分类和编目(Fayyad,Djorgovski, and Weir, 1996)。在它的第一个应用中,系统被用来处理3tb的数据(10^ 12字节)的图像数据产生第二帕洛马天文台巡天,估计有10^9个天体可以探测到。SKICAT在对微弱的天空物体进行分类方面的表现优于人类和传统的计算技术。

在商业方面,主要的KDD应用领域包括营销、金融(特别是投资)、欺诈检测、制造、电信和互联网代理。

市场营销: 在市场营销中,主要的应用是数据库营销系统,它通过分析客户数据库来识别不同的客户群体,并预测他们的行为。商业周刊(Berry 1994)估计超过一半的零售商正在使用或计划使用数据库营销,那些使用它的人有很好的结果;例如,美国运通报告信用卡的使用增加了10%到15%。另一个值得注意的营销应用是市场购物篮分析系统(Agrawal et al. 1996),它可以发现诸如“如果顾客购买X,他/她也可能购买Y和Z。”这样的模式对零售商来说很有价值。

投资: 许多公司使用数据挖掘进行投资,但大多数公司都没有描述他们的系统。一个例外是LBS资本管理。它的系统使用专家系统、神经网络和遗传算法来管理总计6亿美元的投资组合;自1993年开始以来,该系统的表现优于大盘(Hall, Mani, and Barr 1996)。

欺诈检测:HNC Falcon和Nestor PRISM系统用于监控信用卡诈骗,监视数百万账户。FAIS系统(Senator et al. 1995)来自美国财政部金融犯罪执法网络,用于识别可能表明洗钱的金融交易。

制造:CASSIOPEE故障排除系统,作为通用电气和SNECMA被欧洲三大航空公司用于诊断和预测波音737的问题。为了得到故障族,使用了聚类方法。

电信: 电信警报序列分析仪(TASA)是与电信设备制造商和三个电话网络(马尼拉、Toivonen和)合作建造的Verkamo 1995)。该系统采用一种新颖的框架从告警流中定位频繁发生的告警事件,并将其作为规则呈现。通过支持交互性和迭代的灵活的信息检索工具,可以探索发现的大量规则。通过这种方式,TASA提供了修剪、分组和排序工具来优化基本的蛮力结果。

数据清理: MERGE-PURGE系统被应用于识别重复的福利索赔(Hernandez和Stolfo 1995)。它在华盛顿州福利部门的数据中得到了成功的应用。

在其他领域,一个被广泛宣传的系统是IBM的ADVANCED SCOUT,一个专门的数据挖掘系统,可以帮助NBA教练组织和解释NBA比赛的数据(美国新闻,1995)。

最后,一种新颖且日益重要的发现类型是基于智能代理在信息丰富的环境中导航的发现。虽然主动触发器的思想在数据库领域中已经被分析了很长时间,但真正成功的应用是随着主动触发器的出现而出现的互联网。这些系统要求用户指定感兴趣的概要文件,并在各种公共领域和专有资源中搜索相关信息。

这些只是众多使用KDD技术从大量原始数据中自动生成有用信息的系统中的一小部分。请参阅Piatetsky-Shapiro等人(1996)对开发工业KDD应用中的问题的概述。

3. 数据挖掘和KDD

从历史上看,在数据中发现有用模式的概念有各种各样的名称,包括数据挖掘、知识提取、信息发现、信息获取、数据考古和数据模式处理。数据挖掘这个术语主要被统计学家、数据分析师和管理信息系统(MIS)团体使用。它在数据库领域也得到了广泛的应用。数据库中的知识发现一词是在1989年的第一次KDD研讨会上创造的(Piatetsky-Shapiro 1991),用来强调知识是数据驱动的发现的最终产品。它已经在人工智能和机器学习领域得到推广。

在我们看来,KDD是指从数据中发现有用知识的整个过程,而数据挖掘是这个过程中的一个特定步骤。 数据挖掘是从数据中提取模式的特定算法的应用。KDD流程和数据挖掘步骤(流程中的)之间的区别是本文的中心内容。KDD过程中的其他步骤,如数据准备、数据选择、数据清理、合并适当的先验知识和对挖掘结果的正确解释,对于确保从数据中获得有用的知识是至关重要的。盲目地应用数据挖掘方法可能是一种危险的活动,很容易导致发现无意义和无效的模式。

3.1 KDD的跨学科性质

KDD从机器学习、模式识别、数据库、统计、人工智能、专家系统的知识获取、数据可视化和高性能计算等研究领域的交叉点发展而来。统一的目标是在大数据集背景下从低级数据中提取高级知识。

KDD的数据挖掘步骤目前严重依赖于机器学习、模式识别和统计等已知技术,以在KDD过程的数据挖掘步骤中从数据中发现模式。一个很自然的问题是,KDD与模式识别或机器学习(及相关领域)有何不同?答案是,这些领域提供了用于KDD流程中数据挖掘步骤的数据挖掘方法。 KDD关注从数据中发现知识的整个流程,包括数据的存储和获得,如何将算法扩展到海量数据集但仍然保持高效,结果如何解释和可视化,以及如何有效地对整个人机交互进行建模和支持。KDD流程可以被视为包含了超越任一特定学科如机器学习的多学科活动。在这个背景下,人工智能的其他领域(除了机器学习)也有明显的机会为KDD做出贡献。KDD特别强调寻找可以被解释为有用或有趣的知识的可理解的模式。例如,尽管神经网络是一种强大的建模工具,但与决策树相比,它还是比较难以理解。KDD还强调大型噪声数据集建模算法的缩放和鲁棒性。

Data mining is a step in the KDD process that consists of applying data analysis and discovery algorithms that produce a particular enumeraton of patterns( or models) over the data.
数据挖掘是KDD过程中的一个步骤,该过程包括应用数据分析和发现算法,这些算法在数据上生成特定的模式(或模型)枚举。

有关人工智能的研究领域包括机器发现,其目标是观察和实验中的经验法则的发现,因果建模用于从数据中推断因果模型。统计学尤其与KDD有许多共同之处。从数据中发现知识基本上是一项统计工作。统计学提供了一种语言和框架来量化不确定性,当人们试图从总体人口的特定样本中推断出一般模式时,这种不确定性就会产生。正如前面提到的,数据挖掘这个术语在统计学中有负面的含义,自从20世纪60年代,基于计算机的数据分析技术首次被引入。之所以会出现这种问题,是因为如果在任何数据集(甚至是随机生成的数据)中搜索足够长的时间,就会发现似乎具有统计学意义但实际上并非如此的模式。显然,这个问题对KDD至关重要。近年来,在理解统计中的这类问题方面取得了重大进展。这些工作中的大部分与KDD直接相关。因此,只要人们知道如何正确地进行数据挖掘,它就是一项合法的活动;如果数据挖掘进行得不好(不考虑问题的统计方面),就应该避免。KDD也可以被看作是包含了比统计更广泛的建模观点。KDD的目标是提供工具来自动化(在可能的程度上)整个数据分析过程和统计学家的假设选择的“艺术”。

KDD背后的驱动力是数据库领域(KDD中的第二个D)。事实上,当数据不能装入主内存时,如何有效地进行数据操作对KDD来说是至关重要的。获取高效数据访问、访问数据时的分组和排序操作以及优化查询的数据库技术构成了将算法扩展到更大数据集的基础。大多数来自统计、模式识别和机器学习的数据挖掘算法都假设数据在主存储器中,没有注意到如果仅仅是有限的数据视图是可能的那么算法是如何崩溃的。

从数据库发展而来的一个相关领域是数据仓库,它指的是收集和清理事务性数据以使它们可用于在线分析和决策支持的流行业务趋势。数据仓库以两种重要的方式为KDD奠定了基础:(1)数据清洗和(2)数据访问。

数据清理:由于组织必须考虑其拥有的各种数据和数据库的统一逻辑视图,因此必须解决将数据映射到单一命名约定、统一表示和处理缺失数据以及在可能的情况下处理噪音和错误的问题。

数据访问:必须创建统一的、定义良好的方法来访问数据,并为过去难以访问的数据(例如离线存储的数据)提供访问路径。

一旦组织和个人解决了如何存储和访问他们的数据的问题,下一步的问题自然是,我们还能对所有的数据做什么?这是KDD的机会自然出现的地方。

一种流行的数据仓库分析方法称为在线分析处理(OLAP),以Codd(1993)提出的一套原则命名。OLAP工具专注于提供多维数据分析,在计算多个维度的摘要和分解方面优于SQL。OLAP工具的目标是简化和支持交互式数据分析,而KDD工具的目标是尽可能多地自动化过程。 因此,KDD超出了目前大多数标准数据库系统所支持的范围

3.2 基本定义

KDD是识别有效的、新颖的、潜在有用的和最终可理解的数据模式的重要过程。(Fayyad, Piatetsky-Shapiro, and Smyth 1996)

在这里,数据是一组事实(例如,数据库中的案例cases),而模式是用某种语言描述数据子集或适用于该子集的模型的表达式。因此,在我们这里的用法中,提取模式也指定了模型与数据的拟合;从数据中寻找结构;或者,通常来说,对一组数据进行任何高级描述。术语’‘过程process’'意味着KDD包含许多步骤,包括数据准备、模式搜索、知识评估和细化,所有这些都在多个迭代中重复。说到nontrivial(不平凡都,重要的),我们的意思是涉及一些搜索或推理;也就是说,它不像计算一组数字的平均值那样简单地计算预定义量。

发现的模式应该在一定程度上对新数据有效。我们还希望模式是新颖的(至少对系统来说是这样,最好对用户来说是这样),并且具有潜在的实用性,也就是说,为用户或任务带来一些好处。最后,这些模式应该是可以理解的,如果不是立即就可以理解,那么在进行一些后处理之后也可以理解。

前面的讨论暗示我们可以定义量化的度量来评估提取的模式。在许多情况下,可以定义确定性的度量(例如,对新数据估计的预测精度)或者效用(例如,收益,可能是由于更好的预测或加速系统的响应时间而节省的美元)。像新颖性和可理解性这样的概念则更加主观。在某些情况中,可通过简单性(例如,描述模式的bit)来估计可理解性。一个重要的概念,叫做interestingness(参见Silberschatz和Tuzhilin[1995]和Piatetsky-Shapiro和 Matheus[1994]),通常将其作为结合了有效性、新颖性、有用性和简洁性的整体衡量标准。interestingness函数可以显式地定义,也可以通过KDD系统对发现的模式或模型的排序隐式地表示出来。

有了这些概念,我们可以把一个模式视为知识,如果它超过了某个interestingness的阈值,这绝不是试图在哲学或甚至流行的观点中定义知识。事实上,这个定义中的知识纯粹是面向用户和特定于领域的,由用户选择的任何函数和阈值决定。

数据挖掘是KDD过程中的一个步骤,该过程包括应用数据分析和发现算法,这些算法在可接受的计算效率限制下,对数据产生特定的模式(或模型)枚举。注意模式的空间通常是无限的,模式的列举涉及到这个空间中某种形式的搜索。实际的计算约束对数据挖掘算法可以探索的子空间设置了严格的限制。

KDD过程包括使用数据库以及任何必要的选择、预处理、二次采样和转换;应用数据挖掘方法(算法)从中枚举模式;评估数据挖掘的产品,以识别被视为知识的枚举模式的子集。KDD流程的数据挖掘组件与从数据中提取和枚举模式的算法方法有关。整个KDD过程(图1)包括对挖掘的模式的评估和可能的解释,以确定哪些模式可以被视为新知识。KDD流程还包括下一节中描述的所有附加步骤。总体用户驱动过程的概念并不是KDD独有的:类似的建议已经在统计中提出(Hand 1994)和机器学习(Brodley and Smyth 1996)。

3. KDD的过程

KDD过程是交互的、迭代的,包括很多与用户制定的决策有关的步骤。Brachman and Anand(1996)给出了一个KDD过程的实用看法,强调这个过程的交互性。在这里,我们大致列出这个过程的基本步骤:

首先,得到对应用领域和相关先验知识的理解,并从客户的角度确定KDD过程的目标。

第二,构建一个目标数据集:选择一个数据集,或关注变量或数据样本的子集,在此基础上进行知识发现。

第三,数据清洗和预处理。基本操作包括在适当的情况下去除噪声,收集必要的信息来建模或解释噪声,决定处理缺失数据字段的策略,以及考虑时间序列信息和已知的更改。

第四,数据降维和投影:基于任务目标找到对解释数据有用的特征。通过降维或变换方法,可以减少考虑的变量的有效数量,或者可以找到数据的恒定表征。

第五,找到一种特定的数据挖掘方法匹配KDD的任务目标/将KDD过程的目标(步骤1)与特定的数据挖掘方法相匹配。例如,摘要summarization、分类、回归、聚类等等,后来在Fayyad, Piatetsky-Shapiro和Smyth(1996)中也有描述。

第六,探索性分析和模型与假设选择:选择数据挖掘算法,并选择用于搜索数据模式的方法。这个过程包括找到合适的模型和参数(例如,分类数据模型不同于实数向量的模型),将特定的数据挖掘方法和KDD过程的整体标准进行匹配,例如终端用户可能对理解这个模型更感兴趣,而不是它的预测性能。

第七,数据挖掘。在特定的表示形式或一组表示形式中搜索感兴趣的模式,包括分类规则或树,回归和聚类。用户通过正确执行上述步骤,可以极大地方便数据挖掘方法。

第八,解释挖掘到的模式,可能回到第1步到第7步中的任意步骤进行进一步的迭代。这一步还可以涉及到提取的模式和模型的可视化,或者给定模型情况下数据的可视化。

第九,根据发现的知识进行:直接使用知识,将知识并入另一个系统中进行进一步地操作,或简单地将知识记录和报告给有关各方。这个过程也包括检查和解决与以前相信(或提取)的知识的潜在冲突。

KDD流程可以包含重要的迭代,并且可以包含任意两个步骤之间的循环。基本的步骤流(尽管不是潜在的大量迭代和循环)如图1所示。 KDD大部分以往的工作都关注第7步数据挖掘。然而在实际工作中,其他的步骤对KDD的成功运用也同样重要(可能更加重要)。定义了基本概念并介绍了KDD的过程之后,现在我们聚焦数据挖掘部分。

4. KDD过程中的数据挖掘步骤

KDD流程的数据挖掘步骤通常涉及特定数据挖掘方法的重复迭代应用。这一节展示了数据挖掘主要目标的概述,实现这些目标所用方法的描述,包含这些方法的数据挖掘算法的简要描述。

知识发现目标是由系统的预期用途定义的。我们可以区分出两类目标:(1)证明verification(2) 发现Discovery。对于verification,系统只能验证用户的假设。对于Discovery,自动的发现新的模式。进一步将 Discovery目标划分为预测(系统发现模式用于预测一些实体的未来的行为)和描述(系统发现模式用于以人容易理解的方式向用户进行展示)。在这篇文章中,我们主要关注Discovery的数据挖掘。

数据挖掘,包括用观察到的数据拟合模型或确定模式。拟合模型扮演推理知识的角色:模型是否反映有用或有趣的知识是整个交互的KDD过程的一部分,且通常需要人的主观判断。在模型拟合中主要用了两种数学形式。(1)统计的(2)逻辑的。统计方法允许模型中的不确定性效应,而逻辑模型是纯确定性的。我们主要关注数据挖掘的统计方法,考虑到真实世界数据生成过程中典型的不确定性,它往往是实际数据挖掘应用程序中使用最广泛的基础。

大多数数据挖掘方法都是基于机器学习、模式识别和统计中经过试验和测试的技术:分类聚类回归等等。在每一个标题下的不同算法组合,往往会使新手和有经验的数据分析人员感到困惑。需要强调的是,文献中经常提到的许多数据挖掘方法中,实际上只有一些基本技术。一个特定方法所使用的实际底层模型表示通常来自少数几个众所周知的选项的组合: 多项式,样条,核和基函数,阈值布尔函数 threshold-Boolean functions,等等。因此,这些算法的不同主要在于评估模型的拟合优度标准或者寻找良好拟合的搜索方法。

在我们对数据挖掘方法的简要概述中,我们特别尝试传达这样一个概念,即大多数(如果不是全部的话)方法可以被视为一些基本技术和原则的扩展或混合。 我们首先讨论了数据挖掘的主要方法,然后表明数据挖掘方法可以被视为由三个主要的算法组件组成。(1)模型表示,(2)模型评价,(3)搜索。

在KDD和数据挖掘方法的讨论中,我们使用了一个简单的例子去使一些概念更加具体。图2展示了一个简单的包含23个样本的二维人造数据集。图上的每一个点都代表一个人,他在过去的某个时间得到了某家银行的贷款。横轴表示个人收入;纵轴表示这个人的个人债务总额(抵押贷款、汽车贷款等)。这些数据被分为两类:(1)“x”代表已拖欠其贷款的人士,而(2)“o”代表其贷款在该银行处于良好状态的人士。因此,这个简单的人工数据集可以代表一个历史数据集,其中可以包含从发放贷款的银行的角度来看的有用知识。注意在实际中KDD应用中,通常有更多的维度(多达数百个)和更多的数据点(数千甚至数百万个)。

这里的目的是说明二维空间中一个小问题的基本思想。

4.1 数据挖掘方法

在实际中,数据挖掘的两大主要目标是预测和描述。如前所述,预测涉及到使用数据库中的一些变量或字段来预测其他感兴趣的变量的未知值或未来值,而描述则侧重于找到描述数据的人类可解释的模式。尽管预测和描述之间的界限并不明显(一些预测模型可以是描述性的,在一定程度上它们是可理解的,反之亦然),但这种区别对于理解总体发现目标是有用的。对于特定的数据挖掘应用,预测和描述的相对重要性可能有很大的不同。预测和描述的目标可以通过使用各种特定的数据挖掘方法来实现。

4.1.1 分类

分类是学习一个函数,它将数据项映射(分类)到几个预定义的类。作为知识发现应用的一部分,分类方法的例子包括金融市场趋势的分类(Apte和Hong 1996)和大型图像数据库中感兴趣对象的自动识别(Fayyad,Djorgovski和Weir, 1996) 图3展示了将贷款数据简单划分为两类区域。注意,不大可能用一个线性决策边界得到完美的类别划分。银行可能希望使用分类区域自动决定是否向未来的贷款申请人提供贷款。

4.1.2 回归

回归是学习一个将数据项映射到实值预测变量的函数。回归应用有很多,例如,根据遥感微波测量预测森林中的生物量,根据一组诊断测试的结果估计病人存活的概率,根据广告支出预测消费者对新产品的需求,以及预测时间序列,其中输入变量可以是预测变量的时滞版本。图4显示了简单线性回归的结果,其中总债务被拟合为收入的线性函数:拟合效果很差,因为两个变量之间只存在微弱的相关性。

4.1.3 聚类

聚类是一种常见的描述性任务,人们试图确定一个有限的类别或簇来描述数据。这些类别可以是互斥且完备的,也可以由更丰富的表示组成,例如分层或重叠的类别。知识发现中的聚类应用的例子包括发现营销数据库中消费者的同质亚群,以及识别红外天空测量光谱的子类。图5显示了将贷款数据集聚为三个可能的簇;注意,簇是重叠的,允许数据点属于多个簇。原来的类标签(在前面的图中用x和o表示)已经被a +取代,表示不再假定类成员关系是已知的。

4.1.4 Summarization

Summarization包括为数据子集寻找紧凑描述的方法。一个简单的例子是将所有字段的均值和标准差制成表格。更复杂的方法涉及到Summarization规则的推导,多元可视化技术,以及变量间函数关系的发现。Summarization通常应用于交互式探索性数据分析和自动报告生成。

4.1.5 依赖关系建模

依赖关系建模(Dependency modeling)包括找到一个描述变量之间重要依赖关系的模型。依赖模型存在两个层次:(1)模型的结构层次指定(通常以图形形式)哪些变量是相互局部依赖的;(2)模型的定量层次指定依赖关系的强度,使用一些数值尺度。例如,概率依赖网络使用条件独立性来指定模型的结构方面,使用概率或相关性来指定依赖的强度(Glymour et al. 1987;Heckerman1996)概率依赖网络的应用领域越来越多,如数据库、信息检索和人类基因组建模等领域的概率医学专家系统的开发。

4.1.6 变化和偏差分析

变化和偏差分析( Change and deviation detection)侧重于发现先前测量的或规范的数据中最显著的变化。

4.2 数据挖掘算法的组件

下一步是构造具体的算法来实现我们概述的一般方法。我们可以在任何数据挖掘算法中识别出三个主要组成部分:(1)模型表示,(2)模型评价,(3)搜索。

这种简化的观点不一定是完整的或包罗万象的;相反,它是一种方便的方式,以一种相对统一和紧凑的方式表达数据挖掘算法的关键概念。

4.2.1 模型表示

模型表示是用来描述可发现模式的语言。如果表示形式太有限,那么再多的训练时间或例子都无法为数据生成准确的模型。重要的是,数据分析人员要充分理解特定方法中可能固有的代表性假设。同样重要的是,算法设计者要清楚地说明哪些代表性的假设是由特定的算法做出的。请注意,模型的表示能力增加了过度拟合训练数据的危险,从而降低了对未见数据的预测精度。

4.2.2 模型评价标准

是一个定量描述,表达了一个特定模式(一个模型及其参数)达到KDD过程目标的程度。例如,预测模型通常是根据某一测试集的经验预测精度来判断的。描述性模型可以沿着预测精度、新颖性、实用性和拟合模型的可理解性的维度进行评估。

4.2.3 搜索方法

搜索方法由两部分组成:(1)参数搜索;(2)模型搜索。
一旦模型表示(或表示族)和模型评估标准固定下来,那么数据挖掘问题就变成了一个纯粹的优化任务:从选择的模型族中找到优化评估标准的参数和模型。在参数搜索中,该算法必须在给定观测数据和固定模型表示的条件下搜索优化模型评价标准的参数。模型搜索作为参数搜索方法的一个循环发生:模型表示被改变,以便考虑一系列模型。

5. 一些数据挖掘方法

存在各种各样的数据挖掘方法,但在这里,我们只关注流行技术的一个子集。每种方法都在模型表示、模型评估和搜索的框架中进行讨论。

5.1 决策树和规则

使用单变量拆分的决策树和规则具有简单的表示形式,使得推断模型对用户来说相对容易理解。但是,对特定树或规则表示的限制会极大地限制函数形式。例如,图6说明了对贷款数据集的收入变量进行阈值分割的效果:很明显,使用这种简单的阈值分割(平行于特征轴)严重限制了可归纳的分类边界类型。如果扩大模型空间以允许更一般的表达式(如任意角度的多元超平面),那么模型在预测方面会更强大,但可能更难理解。机器学习和应用统计文献中描述了大量的决策树和规则归纳算法。

在很大程度上,它们依赖于基于可能性likelihood的模型评估方法,在惩罚模型复杂性方面具有不同程度的方法。贪婪搜索方法是一种常用的搜索方法,它涉及到生长和剪枝规则以及树形结构。树和规则主要用于预测建模,包括分类(Apte和Hong1996;Fayyad, Djorgovski, and Weir 1996)和回归,尽管它们也可以应用于概要描述性建模。

5.2 非线性回归和分类的方法

这些方法包括一系列预测技术,用基函数的线性和非线性组合(sigmoids,样条,多项式)对输入变量的组合进行拟合。例子包括前馈神经网络、自适应样条方法和投影寻踪回归。以神经网络为例,图7显示了神经网络可能为贷款数据集找到的非线性决策边界。在模型评估方面,尽管适当规模的网络普遍可以逼近任何光滑函数,达到任何期望的精度,但相对而言,人们对有限数据集估计的固定规模网络的表示性质知之甚少。用于训练神经网络的标准平方误差和交叉熵损失函数可以被视为分别用于回归和分类的对数似然函数。反向传播是一种在参数(权值)空间中对参数进行梯度下降的参数搜索方法,从随机初始条件出发,寻找似然函数的局部极大值。非线性回归方法虽然具例如,尽管图7的分类边界可能比简单的阈值更准确的边界图6中,阈值边界的优点是模型可以表达,一定程度的确定性,表单的一个简单的规则“如果收入大于阈值,那么贷款将有良好的状态。”有很强的代表性,但却很难解释。

例如,尽管图7的分类边界可能比简单的阈值划分更准确,单阈值边界的优点是模型可以表达成一个简单的规则“如果收入大于阈值,那么贷款将有良好的状态。”

5.3 基于案例的方法

使用数据库中的代表性例子来近似一个模型;也就是说,对新例子的预测是根据预测已知的模型中类似例子的性质推导出来的。技术包括最近邻分类和回归算法(Dasarathy 1991)和基于案例的推理系统(Kolodner 1993)。图8展示了对贷款数据集使用最近邻分类器的情况:二维空间中任何一个新点上的类与原始训练数据集中最近点上的类相同。

基于案例的方法(与基于树的方法相比)的一个潜在缺点是,需要一个定义良好的距离度量来评估数据点之间的距离。对于图8中的贷款数据,这不会是一个问题,因为收入和债务是用相同的单位计算的。但是,如果希望包括诸如贷款期限、性别和职业等变量,则需要更多的努力在这些变量之间定义一个合理的度量标准。模型评估通常基于预测误差的交叉验证估计(Weiss和Kulikowski 1991):待估计模型的参数可以包括用于预测的邻居数量和距离度量本身。与非线性回归方法一样,基于案例的方法在近似特性方面通常是渐近强大的,但相反,可能很难解释,因为模型隐含在数据中,而不是明确地表达出来。相关技术包括核密度估计和混合模型。

5.4 概率图依赖模型

图模型使用图结构说明概率依赖关系。该模型指定了哪些变量是直接相互依赖的。通常,这些模型用于分类或离散值变量,但扩展到特殊情况,如高斯密度,也可以应用于实值变量。人工智能和统计领域,这些模型最初是在概率专家系统的框架内开发的;模型的结构和参数(附在图的链接上的条件概率)是由专家得出的。最近,在人工智能和统计领域都有大量的工作,这些工作都是关于如何从数据库中直接学习图形模型的结构和参数。模型评估标准通常是贝叶斯的形式,参数估计可以是封闭形式估计和迭代方法的混合物,这取决于变量是直接观察还是隐藏。模型搜索可以由贪心的爬山方法组成。先验知识,例如基于因果关系的变量的部分排序,在减少模型搜索空间方面是有用的。虽然目前尚处于研究阶段,但图模型归纳方法尤其值得关注,因为图的形式很容易被人类理解。

5.5 关系学习模型

Relational Learning Models,虽然决策树和规则的表示仅限于命题逻辑,但关系学习(也称为归纳逻辑编程inductive logic programming)使用一阶逻辑的更灵活的模式语言。关系学习者可以很容易地找到诸如X = Y这样的公式。迄今为止,大多数关于关系学习模型评估方法的研究在本质上是合乎逻辑的。关系模型的额外表示能力是以搜索方面的大量计算需求为代价的。

6. 讨论

考虑到广泛的数据挖掘方法和算法,我们的概述在范围上不可避免是局限的;许多数据挖掘技术,特别是针对特定类型的数据和领域的专门方法,都没有特别提到。我们认为,关于数据挖掘任务和组成部分的一般性讨论与各种方法具有普遍的相关性。例如,考虑时间序列预测,它传统上被转换为预测回归任务(自回归模型,等等)。最近,为时间序列应用开发了更多的通用模型,如非线性基函数、基于实例的模型和核方法。此外,人们对时间序列的描述性图形和局部数据建模而不是单纯的预测建模。因此,尽管不同的算法和应用表面上看起来可能不同,但它们共享许多共同的组件并不罕见。在组件级别理解数据挖掘和模型归纳可以阐明任何数据挖掘算法的行为,并使用户更容易理解其总体贡献和对KDD流程的适用性。

重要的一点是,每种技术通常比其他技术更适合某些问题。例如,决策树分类器可以用于在高维空间中寻找结构,以及在混合连续和分类数据的问题中(因为树方法不需要距离度量)然而,分类树可能不适用于用二阶多项式描述类之间真正决策边界的问题(例如)。因此,不存在通用的数据挖掘方法,为特定的应用程序选择特定的算法是一种艺术。在实践中,应用的大部分工作在于正确地表述问题(提出正确的问题),而不是优化特定数据挖掘方法的算法细节。

因为我们对数据挖掘方法的讨论和概述很简短,所以我们想要明确两点:

首先,我们对自动搜索的概述主要集中在从数据中提取模式或模型的自动方法上。尽管这种方法与我们前面给出的定义一致,但它并不一定代表其他领域提到时也是指数据挖掘。例如,一些人使用这个术语来指定任何对数据的手动搜索,或通过对数据库管理系统的查询进行辅助搜索,或指数据中的人类可视化模式。在其他领域中,它指的是来自事务的数据的自动关联或事务报告的自动生成。我们选择只关注那些包含一定程度的搜索自主性的方法

其次,要小心炒作:数据挖掘自动化方法的技术水平仍处于相当早期的发展阶段。目前还没有确定的标准来决定在何种情况下使用何种方法,许多方法都是基于粗糙的启发式近似,以避免寻找最优或最好的解决方案所需的昂贵搜索。因此,当读者面对夸大系统从大型(甚至小型)数据库中挖掘有用信息的能力时,应该小心。

7. 应用问题

在这里,我们检查了选择潜在应用的标准,可以分为实用和技术类别。KDD项目的实用标准与其他高级技术应用的标准相似,包括应用的潜在影响、缺乏更简单的替代解决方案以及对使用技术的强大组织支持。在处理个人资料的应用时,亦应考虑有关私隐及法律问题。

技术标准包括是否有足够的数据等因素。一般来说,字段越多,寻求的模式越复杂,需要的数据就越多。然而,强大的先验知识(参见后面的讨论)可以显著减少需要的案例数量。另一个需要考虑的问题是属性的相关性。拥有与任务相关的数据属性是很重要的;此外,低噪声水平(很少的数据错误)是另一个需要考虑的问题。大量的噪声使识别模式变得困难,除非有大量的样本数据可以减轻随机噪声并帮助发现聚集模式。尽管变化的和面向时间的数据使应用的开发变得更加困难,但它可能更有用,因为重新训练系统比训练人更容易。最后,可能也是最重要的考虑因素之一是先验知识。了解一些关于领域的信息是很有用的——重要的字段是什么,可能的关系是什么,用户效用函数是什么,已经知道的模式是什么,等等。

研究和应用挑战

我们概述了目前KDD的一些主要研究和应用挑战。这个列表绝不是详尽无遗的,它的目的是让读者了解KDD实践者要解决的问题类型。

(1) 更大的数据库

具有数百个字段和表、数百万条记录和几gb大小的数据库很常见,tb(1012字节)的数据库也开始出现。处理大数据量的方法包括更有效的算法,抽样、近似和大规模并行处理。

(2) 高维

数据库中不仅经常有大量的记录,而且还可能有大量的字段
(属性、变量);因此,问题的维数很高。高维数据集在以组合爆炸的方式增加模型归纳的搜索空间方面产生了难以解决的问题。此外,它增加了数据挖掘算法发现通常无效的伪模式的机会。解决这一问题的方法包括降低问题的有效维数和使用先验知识来识别无关变量。

(3) 过拟合

当算法使用有限的数据集为一个特定的模型寻找最佳参数时,它不仅可以对数据中的一般模式建模,也可以对数据集特定的任何噪声建模,导致模型在测试数据上的性能很差。可能的解决方案包括交叉验证、正则化和其他复杂的统计策略。

(4) 评估统计显著性

当系统搜索许多可能的模型时,会出现一个问题(与过拟合相关)。例如,如果系统在0.001显著性水平上测试模型,那么平均而言,在纯随机数据下,这些模型中的N/1000将被视为显著。这一点经常被许多KDD的初始尝试所忽略。处理这个问题的一种方法是使用将测试统计量调整为搜索函数的方法,例如,独立测试或随机测试的Bonferroni调整。

(5) 不断变化的数据和知识

快速变化(非平稳)的数据会使以前发现的模式失效。此外,可以随着时间的推移用新的度量值修改、删除或扩充给定应用程序数据库中测量的变量。可能的解决方案包括更新模式的增量方法,以及通过使用变更来提示只搜索变更的模式,将变更视为发现的机会。

(6) 丢失和噪声数据

这个问题在商业数据库中尤其严重。据报道,美国人口普查数据在某些领域的错误率高达20%。如果在设计数据库时没有考虑到“发现”,那么重要的属性可能会丢失。可能的解决方案包括更复杂的统计策略,以识别隐藏的变量和相关性。

(7) 字段之间的复杂关系

层次结构的属性或值、属性之间的关系,以及更复杂的表示数据库内容知识的方法,都需要能够有效使用这些信息的算法。历史上,数据挖掘算法已经被开发用于简单的属性值记录,尽管用于派生变量之间关系的新技术正在开发中。

(8) 模式的可理解性

在许多应用中,重要的是要使发现更容易被人理解。可能的解决方案包括图形表示(Buntine 1996;Heckerman 1996),规则结构,自然语言生成,数据和知识可视化技术。规则细化策略(例如Major和Mangano[1995])可用于解决相关问题:所发现的知识可能隐式或显式地冗余。

(9) 用户交互和先验知识

许多当前的KDD方法和工具并不是真正的交互式的,并且除了以简单的方式外,不能轻易地整合关于问题的先验知识。领域知识早KDD的所有步骤中都非常重要。贝叶斯方法(例如,Cheeseman[1990])使用数据和分布的先验概率作为编码先验知识的一种形式。其他应用演绎数据库功能来发现知识,然后用于指导数据挖掘搜索。

(10) 与其他系统的集成

独立的发现系统可能不是很有用。典型的集成问题包括与数据库管理系统的集成(例如,通过查询界面),与电子表格和可视化工具的集成,以及容纳实时传感器读数


结束语: AI在KDD中的潜在作用

除了机器学习,其他人工智能领域也可能对KDD过程的各个方面做出重大贡献。我们在这里举几个例子:

自然语言为自由形式文本的挖掘提供了重要的机会,特别是在文本语料库分类之前的自动标注和索引。有限的解析能力可以在很大程度上帮助确定一篇文章指的是什么。因此,从简单的自然语言处理到语言理解的范围都能提供很大的帮助。此外,自然语言处理可以作为一个有效的接口,为挖掘算法提供提示,并可视化和解释由KDD系统发现的知识。

规划Planning考虑了一个复杂的数据分析过程。它涉及进行复杂的数据访问和数据转换操作;应用预处理程序;并且,在某些情况下,要注意资源和数据访问约束。通常,数据处理步骤是用特定例程应用所需的后置条件和前置条件来表示的,这很容易将其表示为一个规划问题。此外,规划能力可以在自动化代理(见下一项)中发挥重要作用,以收集数据样本或进行搜索以获得所需的数据集。

智能代理可以从各种来源收集必要的信息。此外,可以通过网络远程激活信息代理,或者在某个事件发生时触发信息代理并启动分析操作。最后,代理可以帮助导航和建模World-Wide Web(Etzioni 1996),另一个日益重要的领域。

人工智能中的不确定性包括管理不确定性的问题、存在不确定性时的合理推理机制以及因果关系推理,这些都是基础的KDD理论与实践。事实上,KDD-96会议今年与UAI-96会议有一个联合会议(Horvitz and Jensen 1996)。

知识表示包括本体,本体是表示、存储和访问知识的新概念。还包括模式,用于表示知识和使KDD系统使用关于底层流程的先验人类知识。还包括用于表示知识和允许KDD系统使用关于底层流程的先验人类知识的方案。

人工智能的这些潜在贡献只是一部分;许多其他的,包括人机交互、知识获取技术和推理机制的研究,都有机会为KDD做出贡献。

最后,我们给出了KDD领域中一些基本概念的定义。我们的主要目的是澄清知识发现和数据挖掘之间的关系。我们概述了KDD过程和基本的数据挖掘方法。由于数据挖掘方法和算法的范围很广,我们的概述不可避免地受到限制:有许多数据挖掘技术,特别是针对特定类型的数据和领域的专门方法。尽管各种算法和应用程序表面上看起来可能非常不同,但它们共享许多共同的组件并不罕见。在此组件级别理解数据挖掘和模型归纳可以澄清任何数据挖掘算法的任务,并使用户更容易理解其总体贡献和对KDD流程的适用性。

本文代表了向一个共同框架迈出的一步,我们希望这个框架最终能够提供一个共同的总体目标和使用的方法的统一视图。我们希望这将最终导致更好地理解这一多学科领域的各种方法以及它们如何结合在一起。

猜你喜欢

转载自blog.csdn.net/codelady_g/article/details/122725851
今日推荐