我对流程很感兴趣。我想知道做好事情的好方法,如果可能的话,甚至是最好的方法。即使你没有技能或深入的理解,流程也能让你走得很远。它可以指引方向,技能和深入的理解可以随之而来。至少,我一直用它来指导我的很多工作。
我认为学习数据挖掘很有用,因为它被呈现为从数据中发现的流程。在本帖中,您将探索来自教科书和论文的“数据挖掘”的权威定义。由于数据挖掘是一个流程,因此定义将包含对该流程的多种解释。

金矿
照片来源 GSofV,部分权利保留
权威教科书
在本节中,我们将从该领域的两本权威教科书中查看“数据挖掘”的定义。
《数据挖掘:实用机器学习工具与技术》(Data Mining: Practical Machine Learning Tools and Techniques)
这是伊恩·惠滕(Ian Witten)和艾贝·弗兰克(Eibe Frank)的教科书。
从序言中,作者评论道:
“数据挖掘是从数据中提取隐含的、先前未知且可能有用的信息。其理念是构建计算机程序,自动筛选数据库,寻找规律或模式。如果发现强大的模式,很可能会泛化以对未来数据做出准确预测……机器学习为数据挖掘提供了技术基础。它用于从数据库的原始数据中提取信息……”
在书的第一章中,作者写道:
“数据挖掘被定义为发现数据中模式的过程。该过程必须是自动的或(更通常是)半自动的。发现的模式必须是有意义的,因为它们会带来某种优势,通常是经济上的优势。数据总是以大量的形式存在。”
在我进入这个领域早期,我读了这本书,数据挖掘的定义及其与机器学习的关系一直伴随着我。当我应用机器学习方法时,我应用了一个看起来像数据挖掘过程的过程,只是我并不试图发现模式本身,而是试图为定义明确的问题找到一个“足够好”的解决方案。
数据挖掘:概念与技术
这是贾维·汉(Jiawei Han)和米歇尔·坎伯(Micheline Kamber)的教科书。
在序言中,作者写道:
“数据挖掘,也被称为知识发现(KDD),是从大型数据库、数据仓库、网络、其他海量信息存储库或数据流中隐含存储或捕获的模式的自动化或便捷提取。”
这是KDD的一个稍有不同的定义,我认为是该领域的标准。我认为KDD的首选定义是“从数据库中发现知识”。
在第一章中,作者总结了KDD过程(第7页和第8页)
- 数据清洗以消除噪声和不一致的数据。
- 数据集成,其中可能合并多个数据源。
- 数据选择,其中从数据库中检索与分析任务相关的数据。
- 数据转换,其中数据通过执行摘要或聚合操作进行转换和合并,以适应挖掘。
- 数据挖掘,这是一个关键过程,应用智能方法来提取数据模式。
- 模式评估,根据有趣的度量来识别代表知识的真正有趣的模式。
- 知识呈现,其中使用可视化和知识表示技术将挖掘的知识呈现给用户。
在这本书中,作者评论说,数据挖掘通常是指整个知识发现过程,可能是因为它是一个更短的术语。
权威文章
在本节中,我们将探讨知识发现(KDD)过程在该领域的权威文章中的应用。这些都是信誉良好的技术杂志上的文章,而不是同行评审的期刊文章。尽管如此,不太正式的语气允许对这个高级主题进行有用的讨论。
从数据挖掘到知识发现
这是Usama Fayyad、Gregory Piatetsky-Shapiro和Padhraic Smyth于1996年在AI Magazine上发表的一篇文章。
他们将KDD定义为“从数据库中发现知识”,这是我更熟悉的定义
“……KDD领域关注于开发用于理解数据的技术和方法……该过程的核心是应用特定的数据挖掘方法进行模式发现和提取。”
和
“……KDD是指从数据中发现有用知识的整个过程,而数据挖掘是指该过程中的一个特定步骤。数据挖掘是应用特定算法从数据中提取模式。”
作者通过带有方框实体和连接方框作为实体转换的流程图,对KDD进行了有用的总结。这里的描述已总结如下。我很不情愿复制图像,抱歉,正式出版物在这方面可能很困难。
- 步骤 1:选择(将数据转换成目标数据)
- 步骤 2:预处理(将目标数据转换成处理过的数据)
- 步骤 3:转换(将处理过的数据转换成转换后的数据)
- 步骤 4:数据挖掘(将转换后的数据转换成模式)
- 步骤 5:解释和/或评估(将模式转换成知识)
这个过程很简单,也是我处理问题时喜欢使用的模型。
从大量数据中提取有用知识的KDD过程
这是Usama Fayyad、Gregory Piatetsky-Shapiro和Padhraic Smyth于1996年在Communications of the ACM上发表的一篇文章。
在本文中,作者对KDD过程进行了更详细的总结。这个更详细的版本出现在上面“从数据挖掘……”的文章中,但我认为它没有那么清晰地呈现。以下是对KDD过程更详细的总结的释义。
- 了解应用领域和流程目标
- 创建目标数据集,作为可用数据的一个子集
- 数据清洗和预处理以消除噪声、处理缺失数据和异常值
- 数据约简和投影,以便专注于与问题相关的特征
- 将流程目标与数据挖掘方法匹配。确定模型的目的,例如摘要或分类。
- 选择数据挖掘算法以匹配模型目的(来自步骤5)
- 数据挖掘,即在数据上运行算法。
- 解释挖掘出的模式,使其易于用户理解,例如摘要和可视化。
- 根据发现的知识采取行动,例如报告或做决策。
我喜欢这个过程的细节。它真正说明了理解流程目标并确保所选算法符合这些目标的重要性。
总结
在本帖中,您了解到数据挖掘是从数据中发现模式。您了解到它是一个由一系列步骤组成的流程,涵盖数据准备、算法运行和结果呈现。
您了解到机器学习是数据挖掘中使用的工具,数据挖掘实际上是“从数据库中发现知识”(KDD)过程中的一个步骤,并且由于它更容易说,它已成为该术语的同义词。
您了解到,当您从事机器学习项目时,您很可能正在执行某种形式的KDD过程,其特定目标是解决问题而不是进行发现。
资源
如果您想深入了解,可以在下方阅读更多有关本次研究使用的资源。
- 《数据挖掘:实用机器学习工具与技术》(Data Mining: Practical Machine Learning Tools and Techniques)
- 数据挖掘:概念与技术
- 从数据挖掘到知识发现, 1996
- 从大量数据中提取有用知识的KDD过程, 1996
您如何理解数据挖掘以及机器学习如何融入其中?
留下评论并分享您的经验。
作为一名拥有食品技术背景的博士科学家,我现在需要独自学习如何将多模态复杂信号分类到纹理质量组。感谢您让我查找的术语非常清晰,这样我就不会犯错误。我以前寻找数据挖掘,但KDD更符合我正在做的事情。
但是我想知道我是否应该使用数据挖掘,正如您所说,许多人出于实用性而将其用于KDD。在我的海报上,“知识发现”似乎很清晰,但措辞很奇怪,而且数据挖掘对每个人来说都不容易理解。但我认为我们应该使用正确的定义来避免混淆。
感谢您清晰的定义。这真的帮助我理解了要遵循的过程和流程。
很高兴听到你这么说,Jayesh。
我非常喜欢你的挖掘概念和流程。谢谢你的帮助。
我非常喜欢你的挖掘概念和流程。谢谢你的帮助。
很高兴听到你这么说,Basant。
完全同意这个定义和澄清。
尽量不要互换使用这些概念,KDD与数据挖掘不同。
同意!
谢谢您,先生,提供清晰的定义。
不客气。
非常感谢您阐明KDD和数据挖掘。不知不觉中,我使用的整个数据清洗、预处理和摘要过程都非常类似于KDD。很高兴知道它是另一个更正式、定义明确的过程的一部分。
说得对。很多东西都是在20世纪90年代被研究出来的。
非常感谢……
不客气,很高兴它有所帮助。
嗨,Jason,
我读过您好几篇博文,每次您都会提供一些独特的新术语,这次是KDD,我之前完全不知道,感谢您对其进行定义,并提供了一篇简短而内容丰富的文章。此外,您还提供了一些书籍的参考,我已经记下了它们的名字,并将着手去获取它们。
请继续发帖。
谢谢,很高兴它有帮助。
我很高兴看到这个漂亮的网站,作为一名高级软件专业的学生,我从中受益匪浅。
非常感谢。
阿里
谢谢,很高兴对您有帮助。
你好,
除了您所写的,执行KDD(从数据库中发现知识)的其他具体步骤是:
1. 了解应用领域,
2. 创建将用于发现的数据集,
3. 预处理和清洗,
4. 数据转换,
5. 选择合适的数据挖掘任务,
6. 选择数据挖掘算法,
7. 应用数据挖掘算法,
8. 评估,
9. 使用发现的知识。
这些摘自书籍:《数据挖掘决策树》,理论与应用,第二版,Lior Rokach,Oded Maimon。
感谢您提供有用的文章。
感谢分享。
你好,我是一名数据挖掘初学者。我想在MAC平台上做数据挖掘。您能推荐一些工具给我吗?尤其是Java和免费的。谢谢!
是的,这个教程将向您展示如何进行设置。
https://machinelearning.org.cn/setup-python-environment-machine-learning-deep-learning-anaconda/
感谢分享这篇精彩的博文。
不客气。
谢谢……
不客气,Jaalataa!