一、前言
文中部分内容来自书籍和网络,部分内容为自己的理解。希望借助笔记的方式能够加深自己对该部分知识的掌握,也作为日后回顾的记录。
二、基本概念
很多小伙伴听到数据挖掘这四个字的时候很困惑,虽然字面意思大家都知道,但是数据挖掘到底是个什么东西,需要用到什么技术来实现却并不了解,下面我们就来剖析一下,到底什么是数据挖掘。
按照惯例,先来一个百度百科的定义:
数据挖掘(英语:Data mining),又译为资料探勘、数据采矿。它是数据库知识发现(英语:Knowledge-Discovery in Databases,简称:KDD)中的一个步骤。数据挖掘一般是指从大量的数据中通过算法搜索隐藏于其中信息的过程。数据挖掘通常与计算机科学有关,并通过统计、在线分析处理、情报检索、机器学习、专家系统(依靠过去的经验法则)和模式识别等诸多方法来实现上述目标。
根据定义可以看出,数据挖掘是一个过程结果的称谓。即主要目标是从数据中挖取隐藏的信息。挖取的过程中会采用许多技术,包括运用一系列统计方法、模式识别、机器学习(归根结底都是统计方法啦)等等技术,来实现挖取隐藏信息的目的。
引用一张图来阐明数据挖掘在整个数据处理流程中的阶段和作用:
三、挖掘的数据对象
-
数据库数据
顾名思义,就是存储在数据库中的数据。这里面的数据库主要指关系型数据库。 -
数据仓库
数据仓库是从多个数据源收集汇总的一个数据存储库,跟事务型数据库的不同点在于它是面向主题的,有一定的分类和聚合。并且分为度量值和维度值即事实表和维度表这样的区分,便于多维数据分析(OLAP)。 -
事务数据
事务数据库的每个记录代表一个事务,就是我们常见的业务系统,订单系统。例如京东的一次购物就有一条购物信息的记录,这就是事务。 -
其他类型的数据
除了以上类型的数据之外的其他数据,包括时间相关或序列相关的数据、地理空间的数据、文本数据以及图片和音视频等。
四、挖掘的模式
-
特征化与区分
数据特征化是目标数据的一般特性或特性的汇总。
数据区分是将目标类数据对象的一个特性与一个或多个对比类对象的一般特性进行比较。 -
频繁模式、关联和相关性
频繁模式是数据中频繁出现的模式 -
用于预测分析的分类与回归
分类(classification):分类规则、决策树、数学公式、神经网络等。先从数据中选出分好类的训练集,在该训练集上运用数据挖掘技术,建立分类模型,然后对没有分类的数据进行分类。这里的类是预定义好的,即个数是确定的。
下图中,a是分类规则(IF-THEN规则), b是决策树, c是神经网络
回归(regression):建立连续值函数模型
相关分析(relevance analysis):在做分类和回归之前,先识别与分类和回归过程显著相关的属性,其他不相关的属性可以不考虑。
- 聚类分析
聚类分析数据对象,不考虑分类。聚类和分类的区别是聚集不依赖于预先定义好的类,不需要训练集。
对象根据最大化类内相似性、最小化类间相似性的原则进行聚类或分组。
例如下图,找到具有共性的数据,然后聚类:
- 离群点分析
分析数据集中与数据的一般行为或模型不一致的数据对象。又称为异常挖掘。
五、数据挖掘使用的技术
-
统计学
研究数据的收集、分析、解释和表示。运用统计模型对数据建模、使用假设检验来验证模型等。 -
机器学习
- 监督学习(supervised learning)
基本上是分类的同义词。学习中的监督来自训练数据集中标记的实例。 - 无监督学习(unsupervised learning)
本质上是聚类的同义词。学习过程是无监督的,因为输入的实例没有类标记。 - 半监督学习(semi-supervised learning)
在学习模型时,使用标记的和未标记的实例。标记的模型用来学习类模型,未标记的实例用来进一步改进类边界。 - 主动学习(active learning)
让用户在学习过程中扮演主动角色,让用户对一个可能来自未标记的实例集或由学习程序合成的实例进行标记。给定要求标记数量的约束。目的是通过主动的从用户获取知识来提高模型质量。
- 监督学习(supervised learning)
-
信息检索(IR)
是搜索文档或文档中信息的科学。假定搜索的数据是无结构的,主要采用关键词。