分享

数据挖掘的道、法、术、器

 读书与思考001 2017-05-17



 wen 文/ Mr.Wang  来源:嘉数汇(ID:datahui)


数据挖掘已经有20多年历史了,20年前,“尿布和啤酒的故事”像童话一样被许多应用领域的信息主管认为是不靠谱的幻想(很多地方称为营销神话)。如今,我们处处能够看到数据挖掘的影子,Target 百货分析16岁的少女买无香型沐浴露之后,判断她怀孕了;语言学家通过记录自己孩子出生到3岁每天每秒钟的状态数据,发现语言记忆和周遭环境相关性更大;调查局通过数据分析和挖掘发现改善公共环境有助于降低犯罪率。

 

这篇文章我们就从道、法、术、器这四个层面上看看究竟什么是数据挖掘。

 

1. 道以明向

 

道,是放在最上层的东西,不管是什么学问。对于数据挖掘来说,道就是数据挖掘的定义、特点和任务三者的结合。

 

1.1 数据挖掘的定义

 

关于数据挖掘有很多相近的术语,如:数据库中的知识发现(Knowledge Discovery inDatabase,KDD))、知识挖掘、知识提取、数据/模式分析、数据考古、数据融合等。其中,最常使用的是数据挖掘和知识发现,并且两者在使用中常常不加区分。就术语的使用情况看,在2012年大数据尚未被广泛关注之前,人工智能领域主要使用知识发现,而数据库领域和工业界主要使用数据挖掘,市场上的绝大部分产品也称为数据挖掘工具,而非知识发现工具。在大数据受到广泛关注之后,数据挖掘被更加广泛地使用,其他术语的使用越来越少。

 

1996年,Fayaad等人对数据挖掘定义进行了详细阐述,将数据挖掘看作是KDD的一个过程。定义数据挖掘是一个确定数据中有效的、新颖的、潜在可用的且最终可理解的模式的重要过程。随后,著名的数据挖掘研究学者Jiawei Han也给出了自己的定义:从大量的、不完全的、有噪声的、模糊的、随机的数据中,提取隐含在其中的、人们事先不知道的但又是潜在有用信息和知识的过程。

 

综上,可以认为:数据挖掘是通过分析每个数据从大量数据中寻找其规律的技术。

 

相较于其他数据挖掘定义,该定义给出了数据挖掘的核心“大量”和“寻找”,而对挖掘到的“规律”没有做任何描述或限制,即没有要求“规律”是“有用的”。事实上,一个规律有用与否是由用户的需求决定的。挖掘算法本身很难保证挖掘结果的有用性,一般需要用户在挖掘过程中不断调整相关参数(如支持度、置信度等)来获得有用的结果。有时,一些被认为是“无用”的结果经过评价后可能是意外的好结果。

 

数据隐含价值,技术发现价值,应用实现价值。数据、技术和应用是大数据的三个内涵。大数据环境下,数据挖掘的对象(即数据)有了新的特征,这决定了大数据挖掘将被赋予新的含义,相应的,也产生了新的挖掘算法和模型。

 

因此,大数据挖掘可以定义为:从大数据集中寻找其规律的技术。将“大数据集”强调为大数据挖掘的对象。

 

需要注意的是,在大数据挖掘中,“寻找”变得更具挑战性,因为,大数据具有高价值、低密度的特性,即规律不是显而易见的,而是隐含在大数据之中,需要用新的方法和技术去寻找。同样的,对挖掘到的“规律”没有做任何描述或限制,大数据的价值是更加难以估量的,需要在大数据的应用中去实现。

 

1.2 数据挖掘的特点


 “大量”、“多源、异质、复杂”、“动态”、“价值高但价值密度低”的数据特征决定了当前的数据挖掘技术具有如下技术特征:

  • 高性能计算支持的分布式;

  • 并行数据挖掘技术;

  • 面向多源、不完整数据的不确定数据挖掘技术;

  • 面向复杂数据组织形式的图数据挖掘技术;

  • 面向非结构化稀疏性的超高维数据挖掘技术;

  • 面向价值高但价值密度低特征的特异群组挖掘技术;

  • 面向动态数据的实时、增量数据挖掘技术等。

 

(1)“大量的”与并行分布式数据挖掘算法研究

 

数据的“大”通常是指PB级以上的。这一特征需要更高性能的计算平台支持,考虑大规模数据的分布式、并行处理,对数据挖掘技术带来的挑战是I/O交换、数据移动的代价高,还需要在不同站点间分析数据挖掘模型间的关系。虽然以往已有并行分布式数据挖掘算法的相关研究,但是,大数据环境下,需要新的云计算基础架构支撑(例如,Hadoop、Spark等)。

 

(2)“多源的”与不确定数据挖掘算法研究

 

大数据时代,收集和获取各种数据倍受关注,更多方式、更多类型、更多领域的数据被收集。不同数据源的数据由于数据获取的方式不同、收集数据的设备不同,大数据下,挖掘的数据对象常常具有不确定、不完整的特点,这要求大数据挖掘技术能够处理不确定、不完整的数据集,并且考虑多源数据挖掘模型和决策融合。

 

数据挖掘一直以来重视数据质量。数据的质量决定数据挖掘结果的价值。然而,大数据环境下,数据获取能力逐渐高于数据分析能力。数据获取过程中数据缺失、含有噪音难以避免,更值得注意的是,数据获取的目标也与以前不同,并不是针对某个特定应用或特定任务收集的。数据填充、补全是困难的。因此,大数据挖掘技术要有更强地处理不确定、不完整数据集的能力。

 

(3)“复杂的”与非结构化、超高维、稀疏数据挖掘算法研究


大数据下,来自网络文本(用户评论文本数据)、图像、视频的数据挖掘应用更加广泛,非结构化数据给数据挖掘技术带来了新的要求,特征抽取是非结构化数据挖掘的重要步骤,大数据挖掘算法设计要考虑超高维特征和稀疏性。也需要新型非关系型数据库技术的支持,通常表现为关系型数据库和非关系型数据库互为补充。


超高维特征分析的需求使得深度学习技术成为热点。数据挖掘技术一直将统计学习、机器学习、人工智能等算法和技术与数据库技术结合应用,发现数据中的规律。大数据环境下,深度学习与大数据的结合,也将成为寻找大数据其中规律的重要支撑技术之一。

 

(4)“动态的、演变的”与实时、增量数据挖掘算法研究

 

时序数据挖掘是数据挖掘领域的一个研究主题。然而,大数据环境下,数据的获取更加高速,关键是处理数据的需求在实时性方面的要求更高。早期的数据挖掘总是能容忍分钟级别,甚至更长时延的响应。现在,许多领域已经使用数据挖掘技术分析本领域数据,各个领域对数据挖掘结果响应需求存在差异,不少领域需要有更到的响应度,例如实时在线精准广告投放、证券市场高频交易等。

 

(5)“高价值低密度”与聚类、不平衡分类、异常挖掘算法研究


大数据环境下,产生了新的数据挖掘任务。其中,特异群组是一类低密度高价值的数据,特异群组是指在众多行为对象中,少数对象群体具有一定数量的相同或相似的行为模式,表现出相异于大多数对象而形成异常的组群。特异群组挖掘问题既不是异常点挖掘(只发现孤立点)问题也不是聚类问题(将大部分数据分组),是一类全新的问题。


1.3 数据挖掘的任务

 

下面给出典型数据挖掘任务的简要描述。

 

(1)关联分析:寻找数据项之间的关联关系。例如:我们可以通过对交易数据的分析可能得出“86%买‘啤酒’的人同时也买‘尿布’”这样一条“啤酒”和“尿布”之间的关联规则。

 

(2)聚类分析:根据最大化簇内的相似性、最小化簇间的相似性的原则将数据对象集合划分成若干个簇的过程。例如:我们可以通过对电子商务网站用户的注册数据和购买行为数据的分析,划分消费者的消费层次为节约时间型消费等。

 

(3)分类分析:找出描述并区分数据类的模型(可以是显式或隐式),以便能够使用模型预测给定数据所属的数据类。例如:P2P网贷平台可以将贷款人的信用等级分类为:AA(信用水平最高级,代表极低的违约率)、A、B、C、D、E、HR(低信用水平,潜在的违约风险最高级)。分类分析通过对这些数据及其类标签的分析给出一个信用等级的显式模型,例如:“AA级贷款者是年收入在××元到×××元,年龄在×××至×××,居住面积达×××平方米以上的人”。这样,对于一个新提交信用审核申请的贷款人,就可以根据他的特征预测其信用等级。

 

(4)异常分析:一个数据集中往往包含一些特别的数据,其行为和模式与一般的数据不同,这些数据称为“异常”。对“异常”数据的分析称为“异常分析”。例如,在对银行客户信用卡刷卡记录数据进行监测的过程中,发现某一笔交易明显不同于以往的消费模式。

 

(5)演变分析:描述时间序列数据随时间变化的数据的规律或趋势,并对其建模。包括时间序列趋势分析、周期模式匹配等。例如:通过对交易数据的演变分析,可能会得到89%的情况下,股票X上涨一周左右后,股票Y会上涨”这样一条序列知识,或者通过对股票某一历史交易时间区间的价格变化情况,可以预测出下一交易日的价格。

 

(6)特异群组分析:发现数据对象集中明显不同于大部分数据对象(不具有相似性)的数据对象(称为特异对象)的过程。一个数据集中大部分数据对象不相似,而每个特异群组中的对象是相似的。这是一种大数据环境下的新型数据挖掘任务。

 

2. 法以立本

 

法就是数据挖掘的流程与标准化步骤。

 

数据挖掘不是一个从数据到模型、再到结果的简单过程,而是一个循环往复逐步求精的过程。该过程从大型数据库中挖掘先前未知的,有效的,可实用的信息,并使用这些信息做出决策或丰富知识。在实施数据挖掘之前,先决定采取什么样的步骤,每一步都做什么,确定目标和实施方案。一般地,数据挖掘在具体应用时,大体分为以下几个阶段:

  • 数据选择。数据选择的目的是确定发现任务的操作对象,即目标数据,是根据用户的需求从数据库中提取与数据挖掘相关的数据。在此过程中,可以利用一些数据库操作对数据进行处理,形成真正有效的数据库。

  • 数据预处理。主要是对前面阶段所产生的数据进行加工,检查数据的完整性及数据的一致性,对其中的噪声数据进行处理,对丢失的数据利用统计方法进行填补,形成有待挖掘的数据库。当数据挖掘的对象是数据仓库时,一般地,数据预处理在生成数据仓库时就已经完成了。

  • 数据挖掘。根据用户需求,确定数据挖掘的目的是发现何种类型的知识,因为对数据挖掘的不同要求会在具体的知识发现过程中采用不同的数据挖掘算法。算法包括选取合适的模型和参数,并使得数据挖掘算法与整个KDD的评判标准相一致。然后,运用选定的知识发现算法,从数据库中提取出用户所需要的知识,这些知识可以用一种特定的方式表示或使用一些常用的表示方式,如产生式规则等。

  • 知识评价。该过程主要用于对所获得的规则进行价值评定,以决定所得到的规则是否存入基础知识库,主要通过人机交互界面由专家依靠经验来评价。数据挖掘阶段发现出来的模式,经过评估,可能存在冗余或无关的模式,这时需要将其剔除;也有可能模式不满足用户要求,这时需要退回前面的步骤。该阶段还需要对挖掘出的模式进行解释,使得用户更容易理解和应用。


数据挖掘全过程的几个步骤可以进一步归纳为3个步骤:数据挖掘预处理、数据挖掘和数据挖掘后处理。数据挖掘质量的好坏有两个影响因素:一是所采用的数据挖掘技术的有效性;二是用于挖掘的数据的质量和数量。


整个挖掘过程是一个不断反馈的过程。比如,用户在挖掘途中发现选择的数据不太好,或使用的挖掘技术产生不了期望的结果,这时用户需要重复先前的过程,甚至从头开始。


以上的数据挖掘过程模型主要是从数据挖掘技术角度来阐述的,还可以从另外一个角度来叙述数据挖掘与具体业务之间紧密联系,即数据挖掘的建模标准──CRISP-DM。


CRISP-DM (Cross-Industry StandardProcess for Data Mining) 意为“跨行业数据挖掘的标准化过程”。在CRISP-DM规划中,数据挖掘过程中每个必要的步骤均被标准化,它主要倡导的理念是:提倡标准过程行业内共享;建立应用与背景无关的标准过程;建立与所用数据挖掘工具无关的标准过程;建立具有普遍指导意义的标准化过程;从方法学的角度强调实施数据挖掘项目的方法和步骤。具体的,CRISP-DM分为以下6个步骤:

  • 业务理解。业务理解是从业务角度来理解数据挖掘的目标和要求,再转化为数据挖掘问题。

  • 数据理解。数据理解的任务是对原始数据进行收集和熟悉,检查数据质量,对数据进行初步探索,并发现可能存在的、有分析价值的数据特征,以形成对隐藏信息的假设。

  • 数据准备。数据准备阶段初步完成变量的选择和导出变量的生成,同时对一些存在数据质量问题的字段进行相应的处理。

  • 建立模型。建立预测模型,如回归模型、决策树、神经网络等。

  • 模型评估。选择最好的最终模型,需要快速简单地应用和比较不同方法,比较产生的结果,然后对得到的不同规则给予商业评价。从可用的统计和非统计模型中找到最好的分析模型,对于产生最终决策是必需的。

  • 应用部署。应用部署的目标是将预测模型生成的结果以一定的形式展现给业务人员使用。因此,应当从业务的角度来关注模型发布的形式。

 

3. 术以立策

 

术就是数据挖掘的具体方法。

 

(1)关联分析


自然界中某种事情发生时其他时间也常常会发生,这样一种练习称为关联。这种反映事件之间互相关联的知识称为关联型知识。例如,在某超市的交易记录中,发现“86%购买啤酒的人同时也购买尿布”,这种规律成为指导超市销售决策和管理的有效辅助性知识。关联分析(Association analysis)技术就是在诸如商场交易这样的大规模数据中分析并找到有价值的关联型知识。最著名的应用是沃尔玛(Wal-Mart)公司通过收集消费者购买其产品的历史数据,形成消费者的消费档案,并对这些历史数据进行关联分析而了解消费者的购买模式。

关联分析的目的是找到用户感兴趣的关联规则,辅助用户管理决策。频繁模式挖掘是关联分析的关键步骤,比较经典的频繁模式挖掘算法包括:Apriori算法和FP-Growth算法。


(2)聚类分析


聚类分析是人类一向基本的认知活动(如区分动物和植物),通过适当的聚类分析,人们更容易掌握事物的内部规律。聚类分析已经被广泛应用于社会学、经济学、电子商务等多个领域,如在市场营销中,根据客户的购物积分卡记录中的购物次数、时间、性别、年龄、职业、购物种类、金额等信息,进行聚类分析,帮助市场分析人员从交易数据库中发现不同的客户群,针对不同群体制定营销策略,提高客户对商场商业活动的响应率。此外,聚类分析在生物学领域应用日益突出,如通过对基因的聚类分析,获得对种群的认识等。


聚类分析是根据最大化类内的相似性、最小化类间的相似性的原则将数据对象聚类或分组,所形成的每个簇可以看作一个数据对象类,用显示或隐式的方法描述它们。


相似度用于判断两个样本之间的差异程度,它是定义一个簇的基础,聚类分析过程的质量取决于对相似度度量标准的选择。通常使用“距离”来描述数据之间的相似程度。常用的距离度量标准有欧几里得距离、Minkowski距离等。常用的聚类算法包括:基于层次的最领近算法、BIRCH算法、k-medoids算法、基于密度的OPTICS算法等。


(3)分类分析


 “啤酒尿布”的故事启发销售商采用关联分析了解客户的购买习惯,进而选择更优的营销方案,但仅由这种技术来制定营销方案任然是不够的,销售商还要考虑需要对哪些客户采用哪种营销方案,这需要分类技术,将诸如客户或营销方案等分门别类,为各类客户提供个性化方案。分类技术已经在各个行业得到了广泛应用。例如,在医疗诊断中,用分类预测申请者的信用等级等。


分类是根据已有的数据样本集的特点建立一个能够把数据集中的数据项映射到某一个给定类别的分类函数或构造一个分类模型(或分类器classifier)的技术,从而对未知类别的样本赋予类别,以更好的辅助决策。


分类器的构造分为模型训练阶段(分析输入数据,通过在训练数据集中的数据表现出来的特性,为每一个类找到一种准确的描述或模型)和测试阶段(使用模型分类的阶段,利用类别的描述或模型对测试数据进行分类)。


常见的分类模型的构造方法有决策树方法、统计方法、神经网络方法等。不同分类模型有不同特点,数据样本分类的结果也不同,评价分类模型的尺度主要包括:预测准确度、计算复杂度、模型描述的简洁度等。


(4)异常分析


前面讨论的关联、分类、聚类分析等数据挖掘技术研究的问题主要是针对数据集中的大部分对象,而数据集中小部分明显不同于其他数据的对象(异常对象)常常被人们忽略或作为噪音消除。事实上,一些应用中,这些异常对象可能包含比正常数据更优价值的信息,比如信用卡欺诈检测问题中,相对被窃前的使用模式而言,被窃后的使用模式很可能是个异常点,因此可通过识别这个异常点检测信用卡是否被窃。异常分析已经成为数据挖掘中的一个重要方面,它是在诸如信用卡使用模式这样的大量数据中发现明显不同于其他数据的异常对象的技术。


一个数据集中包含的一些特别的数据称为“异常”,它们的行为和模式与一般的数据不同,它们又不同于聚类算法中的“噪音”,不依赖于是否存在簇。异常分析算法主要包括基于统计的异常分析方法、基于偏差的异常分析方法、基于距离的异常分析方法以及基于密度的异常分析方法等。


(5)特异群组挖掘


特异群组挖掘在证券金融、医疗保险、智能交通、社会网络和生命科学等研究领域具有重要应用价值。特异群组挖掘与聚类、异常挖掘都属于根据数据对象的相似性来划分数据集的数据挖据任务,但是,特异群组挖掘在问题定义、算法设计和应用效果方面不同于聚类和异常等挖掘任务。


挖掘高价值、低密度的数据对象是大数据的一项重要工作,甚至高价值、低密度常常被用于描述大数据的特征。将大数据集中的少部分具有相似性的对象划分到若干个组中,而大部分数据对象不在任何组中,也不和其他对象相似,将这样的组群称为特异群组,实现这一挖掘需求的数据挖掘任务被称为特异群组挖掘。需要强调的是,特异群组是指由给定大数据集里面少数相似的数据对象组成的、表现出相异于大多数数据对象而形成异常的群组,是一种高价值、低密度的数据形态。


大数据的特异群组挖掘具有广泛的应用背景。例如,在证券市场中,特异群组常常表现为合谋操纵(多帐户联合操纵)、基金“老鼠仓”等。


(6)演变分析

 

描述发展规律和趋势是一种重要的预测形式,演变分析(Evolution analysis)是一种用于描述对象行为随时间变化的规律或趋势,并对其建模,以预测对象行为的未来形式的技术。例如,通过对股票交易数据的演变分析,可能会得到“89%情况下,股票X上涨一周左右后,股票Y会上涨”的一条知识。演变分析主要包括因果分析、时间序列分析等。

 

因果分析方法是研究当某个或某些因素发生变化时,对其他因素的影响。回归分析是一类重要的因果分析方法,它是从各变量的互相关系出发,通过分析与被预测变量有联系的现象的动态趋势,推算出被预测变量未来状态的一种预测法。回归分析预测法以来一个假设,即要预测的变量与其他一个或多个变量之间存在因果关系。

 

时间序列分析是通过分析调查收集的已知历史和现状方面的资料,研究其演变规律,据此预测对象的未来发展趋势。使用时间序列分析法基于一个假设,即事物在过去如何随时间变化,那么在今后也会同样的方式继续变化下去。

 

ICDM(国际数据挖掘大会)2006年从18种提名的数据挖掘算法中投票选出了十大算法。这18中提名数据挖掘算法分属10大数据挖掘主题,高亮部分即为最终选出的十大算法:


  • 分类(Classification)

  • C4.5

  • CART

  • K Nearest Neighbours

  • Naive Bayes


  • 统计学习(Statistical Learning)

  • SVM

  • EM


  • 关联分析(Association Analysis)

  • Apriori

  • FP-Tree


  • 链接挖掘(Link Mining)

  • PageRank

  • HITS


  • 聚类(Clustering)

  • K-Means

  • BIRCH


  • Bagging and Boosting

  • AdaBoost


序列模式(Sequential Patterns)

  • GSP

  • Prefix Span


  • 集成挖掘(Integrated Mining)

  • CBA


  • 粗糙集(Rough Sets)

  • Finding Reduct


  • 图挖掘(Graph Mining)

  • gSpan

 

4. 器以成事


器就是数据挖掘的具体工具。例如,传统商业分析工具有Matlab、SAS和SPSS,开源的数据挖掘工具有R、python、Weka等。


具体可以参见:数据分析中的Excel、R、Python、SPSS、SAS和SQL

 

参考文献

  • Jiawei Han,Micheling Kamber, 数据挖掘 概念与技术(原书第3版) [Data Mining Concepts and Techniques Third Edition], 机械工业出版社, 2012.

  • 贾双成, 王奇, 数据挖掘核心技术揭秘,  机械工业出版社, 2015.

  • 熊赟, 朱扬勇, 陈志渊, 大数据挖掘, 上海科学技术出版社, 2016.





    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多