京公网安备 11010802034615号
经营许可证编号:京B2-20210330
作者 | 陈封能
来源 | 《数据挖掘导论》(原书第2版)
导读:数据采集和存储技术的迅速发展,加之数据生成与传播的便捷性,致使数据爆炸性增长,最终形成了当前的大数据时代。围绕这些数据集进行可行的深入分析,对几乎所有社会领域的决策都变得越来越重要:商业和工业、科学和工程、医药和生物技术以及政府和个人。
然而,数据的数量(体积)、复杂性(多样性)以及收集和处理的速率(速度)对于人类来说都太大了,无法进行独立分析。因此,尽管大数据的规模性和多样性给数据分析带来了挑战,但仍然需要自动化工具从大数据中提取有用的信息。
数据挖掘将传统的数据分析方法与用于处理大量数据的复杂算法相结合,本文将介绍数据挖掘的概况。
1. 商业和工业
借助POS(销售点)数据收集技术(条码扫描器、射频识别(RFID)和智能卡技术),零售商可以在商店的收银台收集顾客购物的最新数据。零售商可以利用这些信息,加上电子商务网站的日志、客服中心的顾客服务记录等其他的重要商务数据,能够更好地理解顾客的需求,做出更明智的商业决策。
数据挖掘技术可以用来支持广泛的商务智能应用,如顾客分析、定向营销、工作流管理、商店分布、欺诈检测以及自动化购买和销售。最近一个应用是快速股票交易,在这个交易中,需要使用相关的金融交易数据在不到一秒的时间内做出买卖决定。
数据挖掘还能帮助零售商回答一些重要的商业问题,如:“谁是最有价值的顾客?”“什么产品可以交叉销售或提升销售?”“公司明年的营收前景如何?”这些问题促使着数据挖掘技术的发展,比如关联分析。
随着互联网不断改变我们日常生活中互动和做决定的方式,能够生成大量的在线体验数据,例如网页浏览、信息传递,以及在社交网站上发布信息,这为使用Web数据的商务应用提供了机会。
例如,在电子商务领域,用户的在线浏览或购物偏好数据可以用来推荐个性化的产品。数据挖掘技术也在支持其他基于互联网的服务方面扮演着重要的角色,如过滤垃圾信息、回答搜索查询,以及建议社交圈的更新和联系。
互联网上大量的文本、图像和视频使得数据挖掘方法有了许多进展,如深度学习。这些进展推动了诸多应用领域的进步,如目标识别、自然语言翻译与自动驾驶。
另一个经历大数据快速转型的应用领域是移动传感器和移动设备的使用,如智能手机和可穿戴计算设备。借助更好的传感器技术,可以利用嵌入在相互连接的日常设备上的低成本传感器(称为物联网(IOT))来收集物理世界的各种信息。
在数字系统中,物理传感器的深度集成正开始产生大量与环境相关的多样化和分布式的数据,可用于设计方便、安全、节能的家庭系统,以及规划智能城市。
2. 医学、科学与工程
医学、科学与工程界的研究者正在快速收集大量数据,这些数据对获得有价值的新发现至关重要。例如,为了更深入地理解地球的气候系统,NASA已经部署了一系列的地球轨道卫星,不停地收集地表、海洋和大气的全球观测数据。
然而,由于这些数据的规模和时空特性,传统的方法常常不适合分析这些数据集。数据挖掘所开发的技术可以帮助地球科学家回答如下问题:“干旱和飓风等生态系统扰动的频度和强度与全球变暖之间有何联系?”“海洋表面温度对地表降水量和温度有何影响?”“如何准确地预测一个地区的生长季节的开始和结束?”
再举一个例子,分子生物学研究者希望利用当前收集的大量基因组数据,更好地理解基因的结构和功能。过去,传统方法只允许科学家在一个实验中每次研究少量基因,微阵列技术的最新突破已经能让科学家在多种情况下比较数以千计的基因特性。
这种比较有助于确定每个基因的作用,或许可以查出导致特定疾病的基因。然而,由于数据的噪声和高维性,需要新的数据分析方法。除了分析基因序列数据外,数据挖掘还能用来处理生物学的其他难题,如蛋白质结构预测、多序列校准、生物化学路径建模和系统发育学。
另一个例子是利用数据挖掘技术来分析越来越多的电子健康记录(EHR)数据。不久之前,对患者的研究需要手动检查每一个患者的身体记录,并提取与所研究的特定问题相关的、具体的信息。EHR允许更快和更广泛地探索这些数据。
然而,只有患者在看医生或住院期间才能对他们进行观察,并且在任何特定访问期间只能测量关于患者健康的少量细节,因此存在重大挑战。
目前,EHR分析侧重于简单类型的数据,如患者的血压或某项疾病的诊断代码。然而,很多类型更复杂的医学数据也被收集起来,例如心电图(ECG)和磁共振成像(MRI)或功能性磁共振成像(fMRI)的神经元图像。
尽管分析这些数据十分具有挑战性,但其中包含了患者的重要信息。将这些数据与传统的EHR和基因组数据集成分析是实现精准医学所需的功能之一,旨在提供更加个性化的患者护理。
数据挖掘是在大型数据库中自动地发现有用信息的过程。数据挖掘技术用来探查大型数据库,发现先前未知的有用模式。数据挖掘还可以预测未来的观测结果,比如顾客在网上或实体店的消费金额。
并非所有的信息发现任务都被视为数据挖掘。例如查询任务:在数据库中查找个别记录,或查找含特定关键字的网页。这是因为这些任务可以通过与数据库管理系统或信息检索系统的简单交互来完成。而这些系统主要依赖传统的计算机科学技术,包括先进高效的索引结构和查询处理算法,有效地组织和检索大型数据存储库的信息。
尽管如此,数据挖掘技术可以基于搜索结果与输入查询的相关性来提高搜索结果的质量,因此被用于提高这些系统的性能。
数据挖掘是数据库中知识发现(Knowledge Discovery in Database,KDD)不可缺少的一部分,而KDD是将未加工的数据转换为有用信息的整个过程,如图1所示。该过程包括一系列转换步骤,从数据预处理到数据挖掘结果的后处理。
▲图1 数据库中知识发现(KDD)过程
输入数据可以以各种形式存储(平面文件、电子表格或关系表),并且可以存储在集中式数据库中,或分布在多个数据站点上。预处理(preprocessing)的目的是将原始输入数据转换为适当的格式,以便进行后续分析。
数据预处理涉及的步骤包括融合来自多个数据源的数据,清洗数据以消除噪声和重复的观测值,选择与当前数据挖掘任务相关的记录和特征。由于收集和存储数据的方式多种多样,数据预处理可能是整个知识发现过程中最费力、最耗时的步骤。
“结束循环”(closing the loop)通常指将数据挖掘结果集成到决策支持系统的过程。例如,在商业应用中,数据挖掘的结果所揭示的规律可以与商业活动管理工具结合,从而开展或测试有效的商品促销活动。
这样的结合需要后处理(postprocessing)步骤,确保只将那些有效的和有用的结果集成到决策支持系统中。后处理的一个例子是可视化,它使得数据分析者可以从各种不同的视角探査数据和数据挖掘结果。在后处理阶段,还能使用统计度量或假设检验,删除虚假的数据挖掘结果。
前面提到,面临大数据应用带来的挑战时,传统的数据分析技术经常遇到实际困难。下面是一些具体的问题,它们引发了人们对数据挖掘的研究。
1. 可伸缩
由于数据产生和采集技术的进步,数太字节(TB)、数拍字节(PB)甚至数艾字节(EB)的数据集越来越普遍。如果数据挖掘算法要处理这些海量数据集,则算法必须是可伸缩的。许多数据挖掘算法采用特殊的搜索策略来处理指数级的搜索问题。为实现可伸缩可能还需要实现新的数据结构,才能以有效的方式访问每个记录。
例如,当要处理的数据不能放进内存时,可能需要核外算法。使用抽样技术或开发并行和分布式算法也可以提高可伸缩程度。
2. 高维性
现在,常常会遇到具有成百上千属性的数据集,而不是几十年前常见的只具有少量属性的数据集。在生物信息学领域,微阵列技术的进步已经产生了涉及数千特征的基因表达数据。具有时间分量或空间分量的数据集也通常具有很高的维度。
例如,考虑包含不同地区的温度测量结果的数据集,如果在一个相当长的时间周期内反复地测量,则维数(特征数)的增长正比于测量的次数。为低维数据开发的传统数据分析技术通常不能很好地处理这类高维数据,如维灾难问题。此外,对于某些数据分析算法,随着维数(特征数)的增加,计算复杂度会迅速增加。
3. 异构数据和复杂数据
通常,传统的数据分析方法只处理包含相同类型属性的数据集,或者是连续的,或者是分类的。随着数据挖掘在商务、科学、医学和其他领域的作用越来越大,越来越需要能够处理异构属性的技术。
近年来,出现了更复杂的数据对象。这种非传统类型的数据如:含有文本、超链接、图像、音频和视频的Web和社交媒体数据,具有序列和三维结构的DNA数据,由地球表面不同位置、不同时间的测量值(温度、压力等)构成的气候数据。
为挖掘这种复杂对象而开发的技术应当考虑数据中的联系,如时间和空间的自相关性、图的连通性、半结构化文本和XML文档中元素之间的父子关系。
4. 数据的所有权与分布
有时,需要分析的数据不会只存储在一个站点,或归属于一个机构,而是地理上分布在属于多个机构的数据源中。这就需要开发分布式数据挖掘技术。分布式数据挖掘算法面临的主要挑战包括:
5. 非传统分析
传统的统计方法基于一种假设检验模式,即提出一种假设,设计实验来收集数据,然后针对假设分析数据。但是,这一过程劳力费神。当前的数据分析任务常常需要产生和评估数千种假设,因此需要自动地产生和评估假设,这促使人们开发了一些数据挖掘技术。
此外,数据挖掘所分析的数据集通常不是精心设计的实验的结果,并且它们通常代表数据的时机性样本(opportunistic sample),而不是随机样本(random sample)。
一些其他领域也起到重要的支撑作用。特别是,需要数据库系统提供高效的存储、索引和查询处理。源于高性能(并行)计算的技术在处理海量数据集方面常常是非常重要的。分布式技术还可以帮助处理海量数据,并且当数据不能集中到一起处理时显得尤为重要。图2显示了数据挖掘与其他领域之间的联系。
▲图2 数据挖掘汇集了许多学科的知识
数据分析咨询请扫描二维码
若不方便扫码,搜微信号:CDAshujufenxi
一、问题:为什么 ID 会"断号" 很多刚接触 MySQL 的同学都会有一个困惑:表里的主键 ID 是自增的,删了中间几行数据之后,ID 变 ...
2026-10-22一、问题场景:为什么会重复 JOIN 同一个子查询 在写复杂 SQL 时,经常遇到这种需求:同一张表或同一个聚合子查询,要和主表关联 ...
2026-10-22人力资源专员是HR体系的执行入口。招聘信息发布、简历初筛、面试安排、考勤汇总、入离职手续、劳动合同与档案管理,大多由这个岗 ...
2026-10-22人力资源经理问“必学技巧”,真正要解决的不是知识清单不够长,而是时间有限、业务催得紧,学完却用不上。更有效的路径是:先用 ...
2026-10-22内容营销岗位的核心任务,不是“把文案写得更漂亮”,而是围绕目标受众,用持续的内容供给影响认知、推动转化并沉淀复购。它至少 ...
2026-10-22理财经理培训课程很多,难的是判断“先学什么、后学什么、学完能做什么”。与其按课程名称罗列,不如先看岗位任务:客户分层与维 ...
2026-10-22理财经理的知识结构,可以先用一句话概括:合规与产品知识决定“不出错”,客户经营与资产配置决定“够不够专业”,市场研判与数 ...
2026-10-22经济学背景做数据分析,优势不在工具,而在问题意识:供需如何相互作用、成本与收益如何权衡、变量之间是相关还是因果。真正的缺 ...
2026-10-22需要,但要把“需要”理解准确。经济学本身就在处理数据:GDP、物价、就业、企业营收、问卷调研,都是经济分析的原料。真正的区 ...
2026-10-22经济学分析能力不是单一技能,它至少由三层构成:把现实问题转成可检验假设的理论框架能力、用数据与统计方法验证假设的工具能力 ...
2026-10-22金融分析师的知识提升,先补的不是更多模型,而是让结论可复核的底层能力。按任务顺序,大致是四层:财务与业务理解、指标口径管 ...
2026-10-22金融分析师的“通用技能”,指换到不同机构、不同行业组仍用得上的底层能力,而非某家公司内部系统的操作经验。按任务拆,日常要 ...
2026-10-22先给结论:数据分析证书不是金融分析师的准入条件,招聘方也不会因为一张证书就直接判断你能做分析。要不要考,取决于你当前任务 ...
2026-10-22金融分析师的核心技能,不是“会看K线”或“会讲宏观”,而是能把一家公司、一个行业或一类资产,转化为可核查的数据判断与书面 ...
2026-10-22产品经理的知识提升,不是把需求文档、原型、SQL、数据分析、项目管理都学一遍,而是先对准目标岗位的真实任务,找出自己最缺的 ...
2026-10-22产品专员提升工作知识,最有效的方式不是先囤课程,而是围绕日常交付的四件事来补:需求调研与优先级判断、原型与PRD表达、竞品 ...
2026-10-22产品运营专员提升个人能力,常见误区是先把Excel、SQL、Python列成一张学习清单,然后从第一个工具开始学。更有效的做法是先回答 ...
2026-10-22产品运营的能力提升,最怕从“课程目录”出发:今天学增长模型,明天背SQL语法,学完却说不清自己负责的功能为什么激活率低。更 ...
2026-10-22产品经理的技能和影响力不是两条分开的赛道。技能决定你能不能把问题分析清楚、把方案设计对;影响力决定你的判断能否被团队接受 ...
2026-10-22产品经理要学的数据分析能力,不是“会写SQL”或“会用BI工具”这么简单。更准确地说,是围绕需求评估、功能迭代、指标监控、实 ...
2026-10-22