首页 > 代码库 > 数据挖掘原理学习笔记【1】 绪论

数据挖掘原理学习笔记【1】 绪论

学习绪论,可以让我们从大方向上对一本书有一个总体的把握,从一定的高度俯瞰过后,才能更加清楚每个小部分的意义所在。

即使是绪论,也是有干货的!

 

1.1 数据挖掘简介

本书中采用如下的数据挖掘定义:数据挖掘就是对观测到的数据集(经常是很庞大的)进行分析,目的是发现未知的关系和以数据拥有者可以理解并对其有价值的新颖方式来总结数据。

上面定义中所说的“观测到的数据”,是与“实验得到的”数据相对而言的,一般来说数据挖掘所处理的数据都是为了其他某个目的已经收集好的,是“顺便的”或者“机会的”样本,而不是为了数据分析本身采集的随机样本。这意味着数据挖掘的目标根本不在于数据采集策略

 

通过数据挖掘过程所推导出的关系和摘要经常被称为模型或模式,例如线性方程、规则、聚类、图、树结构以及用时间序列表示的循环模式。

 

从数据集中发现的关系和结构必须是新颖的,不幸的是几乎所有数据挖掘算法都不考虑用户以前的知识。这是一个正在研究的课题。同时,寻找到的关系必须是易于理解的,如果其他方面都相同,我们会优先选择简单的关系。

 

数据挖掘经常被置于数据库知识发现(knowledge discovery in databases, KDD)的大背景下。这个过程包括几个阶段:

·选择目标数据

·预处理数据

·转化数据(如果需要)

·进行数据挖掘以提取模式和关系

·解释并评价发现的结构

 

寻找数据集中的关系也就是寻找精确、方便并且有价值地总结了数据的某一特征的表示,这个过程包括很多个步骤:

·决定要使用的表示的特征和结构

·决定如何量化和比较不同表示拟合数据的好坏(即选择一个“评分”函数)

·选择一个算法过程使得评分函数最优

·决定用什么样的数据管理原则以高效地实现算法

这本教材的目标就是系统详细地讨论这些问题。

 

概念看烦了?给一个应用的例子。

最简单的回归形式Y = aX + b大家都很熟悉。我们用这个方法建立一种模型,比如用它来通过一个人的年收入预测他一年的信用卡支出。

·表示模型中,响应变量spending与预测变量income线性相关

·类似本例的情况下,最普遍的评分函数是模型预测支出和观测到支出间差异的平方和

·线性回归的最优化算法可以最简单的应用最小二乘法

·除非数据集非常庞大,否则对于线性回归来说没有什么数据管理问题。遍历一遍数据,进行简单的汇总便可求出结果

 

总而言之,数据挖掘是一门跨学科的技术。统计学、数据库技术、机器学习、模式识别、人工智能、可视化技术都在数据挖掘中起着作用。而且就像难以定义这些学科间的严格界限一样,也很难定义这些学科和数据挖掘之间的界限。

 

1.2 一些基础概念

1??数据集属性

数据集是从某个环境或过程中取得的一系列测量结果。我们可以把n个对象,每个对象拥有统一的p个测量结果的这样一个数据集看作一个n * p的数据矩阵。根据不同的上下文环境,可以把这样的行称为个体(individual)、实体(entity)、实例(entity)、对象(object)或记录(record),把这样的p个列称为变量(variable)、特征(feature)、属性(attribute)或者字段(field)。

数据是以很多形式出现的,然而其中有一些基本的情况我们应该注意:

(1)范畴值和数量值的不同。

一个数量值变量是按照某个数字比例测量的,在理论上可以取任意值。相反,像性别、婚姻状况或文化程度这样的范畴值变量只能取确定数目的离散值。

适合一种数据度量的分析技术未必适合另一种。如果把婚姻状况表示为整数(如0未婚,1已婚,2离异,3丧偶),那么统计平均值是没有任何意义或者可以说是不恰当的。

(2)单个记录没有意义。

不管如何定义测量尺度,它总是位于数据分类系统的底层。数据是按不同的关系和结构产生的。数据可能是按时间序列方式连续产生的,在这种情况下,数据挖掘可以针对整个时间序列,也可以针对这个序列的特定片段。数据也可能描述空间的关系,因此对单个记录来说,仅当从其他记录的上下文环境来考虑时才能看出它的完全含义。

(3)n * p的矩阵经常是对实际情况的一种过度简化。

考虑一个关于医疗患者的数据集。它可能包括对同一个变量(如血压)的多个测量结果,每个结果对应不同的时间。某些患者可能有进一步的X光片。某个人还可能有文字形式的病情诊断。此外,在患者和医生、医院以及地理位置间还可能存在关系。数据结构越复杂,我们需要的数据挖掘模型、算法和工具也就越复杂。

(4)庞大数据集中的失真问题。

在现实情况下,庞大的数据集中缺少某些测量结果是很普遍的。这些结果的记录可能为空,可能由一个特定值来代替。除了残缺值,还有污染和数据损坏。很少有哪个数据集不存在失真问题,以至于一些周密的建模方法在模型中会包括描述处理残缺值或数据失真问题的机制。

 

2??统计和数据挖掘

经典的统计应用和数据挖掘的基本差异是数据集的大小。数据挖掘会处理更大级别的数据集。

很多统计工作是带着特定的问题采集数据,然后分析数据回答问题。而数据挖掘中的数据通常不是随机样本。

可以通过采样来简化海量数据集,也可以使用可适应方法或充分统计量来总结记录。

数据集维度过高时会产生维度灾难,因为空间单元格的数量随着变量个数的上升按指数增长。这种情况下,有必要在预先选取模型时增加一些额外的约束(如假定为线性模型)。

统计学家们传统上理解的“平面”数据文件——n*p矩阵——可能和数据的实际存储方式大不相同。从这种分散的数据中获得一个随机样本不再是微不足道的事。如何定义采样框架以及访问数据需要多长时间都是很重要的问题。

更糟糕的是很多时候数据集是不停变换,实时更新的。分布的或者不断变化的数据可能成倍的增加数据集的大小并改变需要解决的问题的属性。

概括地讲,尽管数据挖掘与标准统计中的探索性数据分析技术有相当大的重叠,但是也面临很多新的问题,这主要是数据集大小和新属性导致的。

 

1.3 数据挖掘任务

1??探索性数据分析(Exploratory Data Analysis, EDA)

宗旨就是对数据进行探索,在探索的时候我们对要寻找什么并没有明确的想法。通常是交互式和可视化的。

eg: 锯齿图;饼状图

2??描述建模(descriptive modeling)

目标是描述数据(或产生数据的过程)的所有特征。包括为数据的总体概率分布建模、把p维空间划分成组和描述变量间的关系。

eg: 根据购买模式和年龄、收入等数据吧客户分成均匀同质的小组;建立精神病的疾病分类;分析北极大气层的长期气候变化

3??预测建模(predictive modeling):分类和回归

建立一个模型,这个模型允许我们根据已知的变量值来预测其他某个变量值。

eg: 预测某一天股票的市值

4??寻找模式和规则

不同于前三者致力于建立模型,它致力于模式探测。目的是发现以前未知的对象。

eg: 天文方面探测异常的星体或星系;欺诈探测

5??根据内容检索

用户有一种感兴趣的模式并且希望在数据集中找到相似的模式。这种任务对于文本和图像数据集合应用最普遍。

eg: 搜索引擎

 

尽管上面的五种任务彼此间有明显的差异,解决问题的函数形式和模型模式也往往差别很大,但他们也有很多共同的特征。如很多都具有“任意两个数据向量间的相似性或距离”的概念,以及评分函数的思想。这些都是无论如何我们需要注意的。

 

1.4 数据挖掘的组件

(1)结构类型:模型和模式

我们把模型结构定义为对数据集的全局性总结,它对整个测量空间的每一点做出描述。一个简单的模型可能取这样的形式:Y = aX + b。

与模型的全局性相反,模式结构仅对变量变化空间的一个有限区域做出描述。一个简单的模式结构可能描述为 p(Y > y1 | X > x1) = p1。

模型通常用来建模,模式可以用于刻画具有某种特性的数据。它们也是有联系的,比如检测孤立点,我们需要一种对正常行为的描述,同时也要找出异常的数据来。

在很多情况下,把模型和模式区别对待是有价值的。但与大多数为了方便人理解而做的自然分类一样,二者的界限并不严格。区分它们仅仅是为了帮助讨论。

(2)评分函数

评分函数对一个模型或参数结构拟合给定数据集的效果进行量化。

经常使用的几种评分函数有似然、误差平方以及错误分类率。

值得注意的是,不仅要考虑不同评分函数理论上的合理性,还应该通过应用实践来检验它们。特别耗时或特别容易受数据中的微小变化影响而疯狂变化的评分函数不可能有很大的价值。

(3)优化和搜索方法

评分函数衡量了提出的模型或模式多好地匹配了数据的各种特征。通常这些模型或模式是以各种形式的结构来描述的,有时还带有未知的参数。优化和搜索的目标就是决定这些结构和参数值,从而使评分函数达到最大/小值。

发现模型中的最佳参数值的任务通常被称为优化问题,丛庞大的潜在模式族中发现感兴趣的模式(比如规则)的任务通常被当作组合搜索问题,并经常用启发式搜索实现。

(4)数据管理策略

即存储、索引和访问数据的方式。

统计和机器学习中的大多数著名数据分析算法都是假定可以在内存(RAM)中迅速高效地访问到所有数据个体。

人们已经开始支持“原语”数据访问操作的技术,这是实现高效率数据挖掘算法所必需的。

 

1.5 本章归纳

不应该把数据挖掘看作一次性的操作。对于巨大的数据集合来说,考察和分析的方式是没有止境的。

我们不应该期望数据挖掘可以回答所有的问题。就像所有发现过程一样,成功具有幸运的因素,并不意味着必然可以得到重要、有趣而又有价值的结果。我们必须警惕虚假模式的生成或对可能的成果的过分夸大。

数据挖掘原理学习笔记【1】 绪论