数据挖掘作为一个跨学科主题,它是用人工智能、机器学习、统计学和数据库交叉的方法在相对较大型的数据集中发现模式的计算过程。其目标是从数据集中提取信息并将其转换成可理解的结构,以进一步分析使用。对其的研究大致可分如下4类:
(1)基础理论研究方向
数据挖掘是一门交叉学科,因此涉及的基础理论也是多学科的基础。其包含的基础理论研究涉及到规则和模式挖掘、分类、聚类、话题学习、时间空间数据挖掘、机器学习方法,监督、非监督、半监督等方面,同时这些也是人工智能领域的相关研究。基础理论的研究一直都有人在做。
(2)网络、图的挖掘方向
当下,数据的类型有很多种,如一维信号、时序数据、二维图像数据、三维视频、多光谱、高光谱数据等,但在现实生活中,其实有很多很多不规则的数据结构,典型的就是图结构,或称拓扑结构,如社交网络、化学分子结构、知识图谱等,它是与其他维数据不同的一种数据结构。图结构的数据已经成为日常中一种非常常见的数据了,各行各业都能产生图结构的数据,而对这些数据进行分析处理就必须要用到数据挖掘技术,对网络、图结构的数据处理分析也就成为的数据挖掘的研究热点问题。
具体研究方向有:图模式挖掘、社区发现、网络聚类系数估计、网络关系挖掘、网络用户行为分析、网络信息传播、社交网络应用,社交推荐(信息、好友等)等
(3)大数据挖掘方向
多模态数据挖掘、算法的并行、分布式扩展、多源异构数据融合挖掘、数据挖掘与多库系统的集成、数据挖掘过程可视化、复杂数据分析建模方法等。
从数据挖掘的对象来说,数据挖掘后期多会偏向多模态数据挖掘。因为就当前来看大部分的数据挖掘都是针对结构化数据进行挖掘的,但大数据时代背景下,非结构化数据占据主流,如果从这些非结构化数据中挖掘出隐藏信息,将是未来大数据领域研究和实践的重点。
现今大数据挖掘与传统算法的本质区别在于算法的可扩展性。换句话说,现在研究的算法在不仅仅能处理小规模数据集,当数据增加时也具有较大范围内的适合。算法的扩展理解为两个方面:scale out-纵向扩展以及scale up-横向扩展。(1)纵向扩展最要在算法底层、良好的数据结构设计或者并行设计方面。(2)横向扩展主要指算法的分布式技术实现(自己编写分布式算法或者基于现有分布式框架实现)。这里所说的“大数据”,在不同的挖掘领域(文本、图结构、机器学习、图像)所对应的数据量是不同的。对文本来说,几百万个样本可能就是“大数据”;对机器学习来说,千万个样本,几十维、几百维(MB/GB)就是“大数据”;对大规模图挖掘来说,千万级节点、亿级边(GB),也是“大数据”;对图像数据,百万级图像(TB)完全可以称得上“大数据”。
要做算法的可扩展性一般是要用到并行技术、分布式编程技术的,但算法如果做到了极致,单台计算机也能处理“大数据”问题,比如:TurboGraph: A Fast Parallel Graph Engine Handing Billion-Scale Graphs in a Single PC。 文章仅仅在一台计算机上利用线程并行(多核)实现了计算机集群完成的工作。有些文章是用MATLAB来完成的实验、有些文章是利用hadoop集群来完成实验、有些是利用C/JAVA语言编写分布式程序实现、有些是利用多核CPU的多线程并行实现。可见,算法的实现方式不重要,重要的是算法具有scalability。多源数据融合以及挖掘分析也可以称得上大数据挖掘,可能不见得数据集有非常大,但是通过多种数据的融合发现了之前完成不了的事情、或者之前完成效果不好的事情。比如: heterogeneous hashing 文章用了两个异构数据集(text、image)进行relation-aware分析。特别是微软亚洲研究院在KDD’13 上的U-Air: When Urban Air Quality Inference Meets Big Data,这篇文章就是融合了5个数据集(气象数据、空气质量数据、POI数据、路网数据、轨迹数据),利用传统的数据挖掘方法进行了融合分析,得到了较好的效果并进行了商业应用。
(4)数据挖掘应用方向
作为一门交叉学科,数据挖掘技术在工程应用方面具有非常高的潜力,只要能产生数据,那么就可以进行数据挖掘知识发现。尤其在医疗、教育、金融等领域的应用前景非常广阔。信息技术正在以突飞猛进的速度向前进步,包括新传感器采集技术、移动互联网技术、社交网络技术的蓬勃发展,将带来大量的创新性应用。大数据是新时代的石油,通过研发分析各种多元结构化数据的高效技术,提高数据产品的易用性,让数据分析实现“开箱即用”,其蕴藏的巨大能量将使数据成为政府和企业建立核心竞争力的关键途径,甚至能够颠覆很多传统行业的运作方式,带领我们进入信息革命的新时代。综上,数据挖掘能够在医疗、教育、金融、企业管理、工业制造等多个行业发挥重要作用。
数据挖掘的方法有关联规则法、聚类分析、决策树法、模糊集法、粗糙集法、神经网络法和遗传算法等。
常用经典算法有:
(1)决策树:Cart、ID3、C4.5
(2)聚类算法:K-Means,EM
(3)关联分析:Apriori、FP-Growth
(4)支持向量机:SVM
(1)关联规则法:
关联规则法旨在确定不同事物之间的关联性。RAgrawal等人首次提出了关联规则挖掘问题,并给出Apriori算法的核心思想:首先找出重复出现次数至少达到预定意义阈值的所有关联项集合,然后根据该集合生成关联规则。该算法提出了最小支持度和最小可信度两个阈值概念。假设有两个事件α和β,支持度为二者同时出现的概率,置信度指事件α发生时,事件β同时出现的概率,即在α出现的条件下,β也出现的条件概率。而最小支持度和最小置信度则没有固定的计算公式,需要根据训练数据和具体的数据场景来确定。
(2)决策树法:
决策树是根据变量的目标效用构建的树形流程图,通过固化的规则对数据进行分类。早在1986年,JRQuinlan就提出了基于决策树的ID3算法,此后在ID3算法的基础上又提出了性能更好的C4.5算法。决策树法的构建过程简单且易于理解,决策过程可见、高效而迅速。但是决策树法无法妥善处理存在组合变量的规律挖掘过程。决策树算法非常适合基于非数值型数据的数据挖掘过程,且对大数据进行集中处理的效率很高。
(3)模糊集法:
现实中的很多问题可能无法用具体的数学公式进行描述,此时可以使用模糊集来描述这些模糊问题,模糊集由论域和隶属函数构成,使用隶属度来描述模事物的属性。所描述的问题越复杂,精确描述该问题的难度就越大,问题的模糊性就越强。对于数据掘过程中定义模糊不清的问题,采取基于模糊集合理论的数学工具判断其模糊程度,商定解决模糊问题的策略,对模糊问题中存在的模式进行识别并最终进行模糊聚类分析。
(4)粗糙集法:
粗糙集法也称为粗糙集理论,是波兰数学家ZPawlak于20世纪80年代初提出的,也是一种处理含义不明、无法精准描述问题的数学方法。粗糙集法的处理过程可以不基于先验知识,支持自动归纳出问题的潜在规律,但是对于连续的属性值无法直接处理,需要对属性进行离散化预处理。如何对连续属性进行恰当的离散化处理是粗糙集研究中的重点,该理论主要应用于近似推理、数字逻辑分析、构建预测模型等问题。
(5)神经网络法:
神经网络算法通过模拟生物大脑内的神经系统,设计算法模拟神经元的结构和功能,构造训练模型,使用大量数据来训练模型,并将模型中的每一个连接作为基本处理单元,实现特征挖掘、分类、聚类等各种基本功能。神经网络的学习训练过程和人脑类似,主要通过修改中间神经层的权值来不断完善和优化训练模型,获得符合预期拟合效果的模型。神经网络算法的抗噪音和异常值干扰性能非常好,适合非线性学习,具有自动联想功能,能够在复杂场景中得到精准的预测结果,但是不适合处理高维变量,且训练过程属于黑盒模型,不能观察中间的学习过程,输出结果不易于理解,且训练模型效果对数据规模依赖较大,学习时间也较长。
(6)遗传算法:
遗传算法借鉴了生物进化规则,通过模拟自然选择过程和遗传中发生的繁殖、交配和基因突变现象,构造复制、交叉、变异三种算子完成求解过程。遗传算法的优势是可以处理各种类型的数据,并且支持对数据的并行处理;缺点是算法训练过程中需要调整的参数太多,需要花费大量的时间,数据和算法的编码过程也比较复杂,需要的数据量也很大,相应的计算量也比较大。遗传算法经常用于优化神经元网络模型,也经常用于解决其他方法难以解决的问题。
数据挖掘过程往往涉及用户的隐私问题,例如:私营公司老板可以通过访问应聘职工的就诊记录来筛除有糖尿病或者严重心脏病的人,从而节省保险支出。但是,此类行为会导致伦理道德以及法律问题。正确使用数据挖掘可以为社会产生非常大的价值,但也可能出现滥用医疗数据库的风险。例如,根据患者的医疗数据可以分析药物与副作用的关系。这种关系可能是非常偶然的情况,且可能会出现误判的情况。基于各种算法,数据挖掘方法可以获得用其他方法不可能发现的潜在信息,但同样面临着各种安全风险,必须进行规范。
数据挖掘的研究重点在于数据挖掘算法的选择和数据处理方法对模型效果的影响。模型效果包括有效性和正确性两个方面,在挖掘商业数据的过程中,除了需要考虑正确性和有效性,还需考虑数据的安全性。
随着信息时代的大爆发,各种数据资源迅猛增加,然而数据的增加与数据分析的滞后差值也越来越大,而大多数研究者希望通过科学手段挖掘数据深层价值,所以数据挖掘变成了解决数据分析问题的主流技术,它弥补了传统分析方法的不足,有针对性地对数据进行科学化处理。只有将数据隐藏的有效知识信息及时发现,才能进一步服务于人类发展,数据资源才能真正被利用起来,也才意味着大数据时代的真正到来。
[1]杨小娟.数据挖掘国内研究综述[J].电脑编程技巧与维护,2020(08):115-117.DOI:10.16184/j.cnki.comprg.2020.08.041.
[2]杜治涵.数据挖掘研究[J].信息与电脑(理论版),2021,33(01):169-171.