《中国人工智能学会通讯》——12.2 大数据环境下序列模式挖掘及应用

简介: 本节书摘来自CCAI《中国人工智能学会通讯》一书中的第12章,第12.2节, 更多章节内容可以访问云栖社区“CCAI”公众号查看。

12.2 大数据环境下序列模式挖掘及应用

模式发现问题诞生于 1993 年[1] ,与分类、聚类和异常点检测并称为数据挖掘四大问题[2] 。它指的是从数据库找出频繁共现的“项”,被称为频繁模式。模式发现问题在数据挖掘领域地位重要,有大量关于模式发现的论文发表在重要数据挖掘、数据库会议。Google Scholar 记录的 Agrawal 等人[1]提出的经典模式发现算法 Apriori 的论文单篇 , 被引用次数近 1.8 万次,已成为数据挖掘领域引用最多的论文之一。

序列模式 (Sequential pattern) [3] (及其扩展情景模式 (Episode) [4] )是引入了时间关系和约束的数据模式,它指的是从时序数据中挖掘频繁出现的子序列。这类模式因为蕴含了时间维度的补充信息,为推荐或者预测提供了潜在的帮助[2] 。序列模式挖掘曾成功应用于网络挖掘[5-6] 、设备故障检测 [7] 、软件 bug 检测[8] 、时空数据分析 [9] 、股票趋势预测 [10] 、化学与生物模式[11-12]和新闻分析[13-14]等。由于其广泛的应用,它逐渐成为数据挖掘领域中一个专门的研究主题。

由于序列模式挖掘是从频繁模式挖掘[1]演化而来,因此 Agrawal 和 Srikant [3] 最初提出该问题也是为了挖掘用户购物数据中行为模式来辅助决策。这个挖掘问题的问题描述如下:

设 I={I 1 , I 2 , …, I m } 是所有项的集合。给定一个序列集合 D,其中任意一条序列 S i 由一个元素列表组成,每一个元素则由 I 中的项组成,以及一个用户指定的最小支持度阈值 min_sup,序列模式挖掘是指从D中挖掘出现频率不低于min_sup的子序列,它们被称为频繁序列模式。

如表 1 所示的一个序列集合中,字母代表项,括号中的项视为无序,若设置最小支持度 min_sup为 2,子序列〈(bc)a〉是一个频繁序列模式,它共出现了 2 次,分别位于 s 1 和 s 2 中。image
频繁情景模式挖掘,作为序列模式挖掘的扩展,则考虑的是从一条长事件序列中挖掘频繁的子序列,其问题描述如下:

设 E={E 1 , E 2 , …, E m } 是所有事件的集合。情景模式发现问题是指从一条单一的事件长序列 S 中挖掘出现频率不小于 min_sup 的子序列,min_sup 是用户指定的最小支持度阈值参数。其中,S 中的任意一个事件集合均由 E 的事件组成。挖掘出来的频繁子序列被称作频繁情景模式。

如图 1 所示的一条事件序列中,字母代表事件,数字代表事件发生的时间,若设置最小支持度 min_sup 为 3,子序列〈A, B〉是一个频繁情景模式,它共出现了 3 次,在序列中用虚线矩形框标注。image
由于序列模式挖掘(及其扩展频繁情景模式挖掘)和频繁模式挖掘的相关性,其算法多数也是由频繁模式挖掘算法改进而来,这些算法大致可以分为基于 Apriori 的算法[3]和模式增长算法[15]两类。其中,基于 Apriori 思想的算法主要思想是通过生成候选集,以及扫描数据库进行逐层挖掘。这些算法通常还基于 Apriroi 算法的支持度的向下封闭性(downward closure)进行剪枝,即任何不频繁模式的超模式也不会频繁。但是在频繁情景挖掘问题中,这种性质不一定适用[16] 。这些算法虽然可以使用剪枝技术提升效率,但是它们实际的缺点是生成了大量的候选序列并需要重复扫描数据库对每一个候选序列计算支持度,这样的迭代过程使得挖掘效率低下。为了缓解这些问题,基于模式增长的算法开始涌现。它们大多采用了分治思想,以当前的频繁序列模式作为前缀将原始序列分割成若干个投影数据库(projected databases),并在这些投影区域内进行挖掘。相较于前一大类算法,基于模式增长的方法的好处是不需要生成序列的候选集合,并且缩小了数据库扫描的范围,在性能上具有一定的优势。

近年来,为了能够处理持续快速增长的大数据,序列模式挖掘(及其扩展频繁情景模式挖掘)在并行、增量和近似算法上也取得了显著进步。本文将从算法角度综述主要的序列模式挖掘(以及频繁情景模式挖掘)算法,并且回顾适用于大数据的序列模式挖掘(频繁情景模式挖掘)代表性算法。

相关实践学习
简单用户画像分析
本场景主要介绍基于海量日志数据进行简单用户画像分析为背景,如何通过使用DataWorks完成数据采集 、加工数据、配置数据质量监控和数据可视化展现等任务。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
相关文章
|
14天前
|
机器学习/深度学习 人工智能 搜索推荐
探索人工智能在医疗诊断中的应用
【4月更文挑战第30天】 随着技术的飞速发展,人工智能(AI)已经渗透到各行各业,特别是在医疗领域,它展现出了巨大的潜力。本文将深入探讨AI在医疗诊断中的具体应用,从图像识别到疾病预测模型,再到个性化治疗方案的生成。我们将分析AI技术如何协助医生做出更准确的诊断,并讨论其在改善患者治疗结果和降低医疗成本方面的潜在价值。同时,我们也将审视当前的挑战,包括数据隐私、算法透明度和系统集成等问题。通过实际案例研究和最新研究成果,本文旨在为读者提供一个关于AI在医疗诊断领域应用的全面视角。
|
14天前
|
机器学习/深度学习 人工智能 自然语言处理
探索人工智能在医疗诊断中的应用
【4月更文挑战第30天】 随着人工智能技术的飞速发展,其在医疗领域的应用已经引起了广泛关注。特别是在医疗诊断领域,人工智能不仅提高了诊断的准确性和效率,还为医生提供了强大的辅助工具。本文将深入探讨人工智能在医疗诊断中的应用,包括图像识别、自然语言处理和机器学习等方面的技术。
|
14天前
|
机器学习/深度学习 人工智能 搜索推荐
探索人工智能在医疗诊断中的应用
【4月更文挑战第30天】 随着人工智能(AI)技术的飞速发展,其在医疗行业的应用日益广泛,尤其在医疗诊断领域展现出巨大的潜力。本文将深入探讨AI技术如何在医疗诊断中被利用,以及它对提高诊断准确性、降低医疗成本和改善患者治疗体验的影响。我们将分析当前的挑战和未来的发展趋势,为读者提供一个关于AI在医疗诊断中应用的全面视角。
|
1天前
|
机器学习/深度学习 人工智能 自然语言处理
|
3天前
|
存储 NoSQL 大数据
【MongoDB 专栏】MongoDB 在大数据场景下的应用
【5月更文挑战第11天】MongoDB,适用于大数据时代,以其灵活数据模型、高可扩展性和快速性能在大数据场景中脱颖而出。它处理海量、多类型数据,支持高并发,并在数据分析、日志处理、内容管理和物联网应用中广泛应用。电商和互联网公司的案例展示了其在扩展性和业务适应性上的优势,但同时也面临数据一致性、资源管理、数据安全和性能优化的挑战。
【MongoDB 专栏】MongoDB 在大数据场景下的应用
|
3天前
|
机器学习/深度学习 人工智能 搜索推荐
探索人工智能在医疗诊断中的应用
【5月更文挑战第11天】 随着人工智能(AI)技术的快速发展,其在医疗领域的应用已经成为改善患者护理和提高诊断效率的重要工具。本文将深入探讨AI在医疗诊断中的具体应用,包括图像识别、疾病预测、个性化治疗建议等方面。通过实例分析,我们将展示AI如何辅助医生进行更准确的诊断,并讨论AI在医疗行业中实施的挑战与机遇。
|
6天前
|
机器学习/深度学习 人工智能 自然语言处理
探索人工智能在医疗诊断中的应用
【5月更文挑战第8天】 随着科技的飞速发展,人工智能(AI)技术已经渗透到各个领域,其中医疗诊断领域的应用尤为引人注目。本文将探讨人工智能在医疗诊断中的应用,包括图像识别、疾病预测和个性化治疗方案等方面。通过对比传统医疗诊断方法,我们将展示AI技术如何提高诊断准确性、降低医疗成本并改善患者体验。
22 10
|
7天前
|
分布式计算 监控 数据挖掘
MaxCompute的应用
【5月更文挑战第7天】MaxCompute的应用
26 8
|
7天前
|
机器学习/深度学习 人工智能 分布式计算
JAVA编程语言在人工智能领域的应用
Java是由Sun Microsystems(已被Oracle收购)于1995年推出的一种跨平台编程语言。它具有面向对象、可移植、高效和安全等特性,成为了广泛应用于企业级应用开发的编程语言之一。
48 21
|
7天前
|
机器学习/深度学习 人工智能 搜索推荐
探索人工智能在医疗诊断中的应用
【5月更文挑战第7天】 随着技术的飞速发展,人工智能(AI)在医疗领域的应用已经从理论走向了实践。本文将深入探讨AI在医疗诊断中的具体应用,包括图像识别、疾病预测以及个性化治疗方案的制定等方面。通过分析最新的研究成果和实际案例,我们旨在揭示AI技术如何提高诊断的准确性和效率,同时讨论其在实际应用中面临的挑战和未来的发展方向。