本节书摘来自华章出版社《Python数据挖掘:概念、方法与实践》一书中的第1章,第1.3节,作者[美] 梅甘·斯夸尔(Megan Squire),更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1.3 在数据挖掘中使用哪些技术
现在我们对数据挖掘在整个KDD或者数据科学过程中的位置有了了解,下面就可以开始讨论完成这一任务的细节了。
从试图定义数据挖掘的早期起,几类相关的问题就一再出现。Fayyad等人在1996年的另一篇重要论文“From Data Mining to Knowledge Discovery in Databases”中提出了6类问题,我们将其总结如下:
分类问题。这里,有需要根据某些特征分成预定义类别的数据。我们需要一种算法,使用过去已经分类的数据,学习如何将未知数据置于正确的类别下。
聚类问题。这类问题是,我们需要根据数据点的特征将其分为不同类别,但是事先不知道这些类别。我们需要一种能够计量数据点之间相似性并自动根据这些相似性分割数据的算法。
回归问题。我们的数据必须根据某个预测变量进行映射,所以必须学习进行这种映射的函数。
摘要问题。假定我们的数据需要以某种方式缩短或者总结。这可能很简单,只是从数据计算基本统计数字;也可能很复杂,需要学习如何总结文本,或者为文本找出一个主题模型。
依赖性建模问题。对于这些问题,我们的数据之间可能有某种联系,我们需要开发一个算法,计算这种联系的概率,或者描述互相联系的数据的结构。
变化和偏差检测问题。在另一种情况下,我们的数据已经有了显著的变化,或者数据的一些子集偏离了正常值。为了解决这些问题,我们需要一种能够自动发现这些问题的算法。
在同年撰写的另一篇论文中,这些作者还加入了其他几种类别:
链接分析问题。我们有一些相关的数据点,必须发现它们之间的关系,并以数据集的支持程度和关系置信度的方式描述它们。
序列分析问题。想象我们的数据点遵循某种顺序,如时间序列或者基因组,我们必须发现序列中的趋势或者偏差,或者发现导致序列的原因,以及序列的演化方式。
韩家炜、Kamber和裴健在前面提及的教科书中描述了数据挖掘所能解决的4类问题,并进一步将其分为描述性和预测性两大类。描述性数据挖掘意味着找出模式,帮助我们理解拥有的数据。预测性数据挖掘意味着找出模式,帮助我们预测尚未拥有的数据。
在描述性类别中,他们列出了如下数据挖掘问题:
数据特性描述和数据区分问题,包括数据摘要或者概念特性描述(或称描述)。
频率挖掘,包括找出数据中的频繁模式、关联规则和相关性。
在预测性类别中,他们列出了如下问题:
分类,回归
聚类
离群值和异常检测
很容易看出,Fayyad等人和韩家炜等人的问题列表有许多相似之处,只是项目的分组不同。确实,如果你过去曾经完成过数据挖掘项目,这两个列表上出现的项目就是你可能已经熟悉的数据挖掘问题。分类、回归和聚类是非常流行的基本数据挖掘技术,所以从业者们所看到的每本数据挖掘书籍几乎都介绍过它们。
本书将使用哪些技术
由于本书是关于“精通”数据挖掘的图书,因此我们将介绍几种在标准书籍中不常介绍的技术。具体地说,我们将在第2章中介绍关联规则,在第9章中介绍异常检测。我们还将应用几种对数据清理和数据预处理有帮助的数据挖掘技术,也就是第9章中的缺失值处理和第3章中通过实体匹配进行的一些数据整合。
除了从技术上定义数据挖掘之外,有时候人们还根据所挖掘的数据类型,划分各种数据挖掘问题。例如,你可能听人说过文本挖掘或者社交网络分析。这些术语指的是所挖掘的数据类型,而不是用于挖掘的具体技术。例如,文本挖掘指的是任何应用于文本文档的数据挖掘技术,而网络挖掘指的是从网络图表数据中寻找模式。在本书中,我们将在第4章中进行一些网络挖掘,在第6、7、8章中进行不同类型的文本文档摘要,在第5章中根据情绪(文本中的情感)进行文本分类。
如果你和我一样,现在可能会想,“对这些背景资料我受够了,我想要写点代码。”我很高兴你对实际项目感兴趣。本书几乎已经做好了开始编码的准备,但是首先要建立一个好的工作环境。