数据挖掘一般可分为描述型数据挖掘和预测型数据挖掘,概念描述讲的就是描述型数据挖掘。
一、概念描述基本知识
1.1 两种类型的数据挖掘
从数据分析角度出发,数据挖掘可分为两种类型:
- 描述型数据挖掘:以简洁概要方式描述数据
- 预测型数据挖掘:预测性数据挖掘则是通过对所提供数据集应用特定方法分析所获得的一个或一组数据模型,并将该模型用于预测未来新数据的有关性质。
1.2 概念描述
描述型数据挖掘又称为概念描述,概念描述是数据挖掘的一个重要部分。描述型数据挖掘最简单的类型就是概念描述。概念描述描述的是数据的特征和比较描述:
- 特征描述:给定数据集的简洁汇总
- 比较描述:多用于两个或多个数据集
数据泛化也是一种概念描述,这类似于数据仓库中的OLAP,但两者之间也是有区别的:
- 复杂的数据类型和聚集:概念描述可以处理更加复杂的数据类型属性和他们的聚集
- 用户控制和自动处理:OLAP多是用户的控制和操作,而数据挖掘中的概念描述更努力成为自动化的过程,具备自动知识发现的能力,要远远复杂的多
二、特征描述
数据泛化也是一种特征描述。数据泛化的概念:它是一个过程,它将庞大、任务相关的数据集从较低的概念层次抽象到较高的概念层次。具体泛化方法有两类:
- 数据立方:类似OLAP
- 面向属性的归纳
数据泛化是非常有用的,举个例子:一个销售系统中的数据库中商品项目可能由诸如itemid,name,brand,price,category,place-made等低层次的属性构成,但销售和市场经理都希望得到在圣诞节期间大量商品基本信息的汇总描述来获得一些信息。
2.1 面向属性的归纳
面向属性归纳的基本思想是:首先使用关系数据库查询收集任务相关数据,然后通过观察任务相关数据中每个属性的不同值的个数进行泛化。泛化可以通过属性删除,或者通过属性泛化进行。
2.1.1 收集任务相关数据
通过数据挖掘查询或者关系查询获取相关数据,假设我们有如下关系查询语句:
use Big_university_DB
select name,gender,major,birth_place,birth_date,residence,phone,gpa
from student
where status in {"M.Sc","M.A","M.B.A","Ph.D"}
把词语在关系数据库中执行,返回如下表所示数据。该表一般被称作初始工作表,是要进行归纳的数据。
name | gender | major | birth_place | birth_date | redidence | phone | gpa |
---|---|---|---|---|---|---|---|
Jim | M | CS | Vancouver,BC,Canada | 76-12-8 | 3511,Main St,Richmand | 687-4598 | 3.67 |
Scott | M | CS | Montreal,Que,Canada | 75-7-28 | 345,IstSt,Vancouver | 253-9106 | 3.70 |
Lee | F | Physics | Seattle,WA,USA | 70-8-25 | 231,Austin,Burnaby | 420-5232 | 3.83 |
数据已经准备好,下面就开始进行属性归纳,面向属性归纳的基本操作是数据泛化,它有两种方法:属性删除
2.1.2 属性删除
顾名思义,属性删除就是删除我们不需要的数据。我们基于如下规则盘点是否采用属性删除方法:如果初始工作表中某个属性有大量不同的值,(1)但是在此属性上没有泛化操作符
;或者(2)它的较高层概念可以用其它属性表示
,该属性应当从工作关系表中删除。
举个例子,对于情况1,因为它没有泛化操作符,就意味着它不能被泛化,保留它则与产生简洁的描述规则相矛盾,比如初始工作表中的姓名字段。对于情况2,比如属性street可以被较高的属性city表示,所以删除city属性。
2.1.3 属性泛化
属性泛化基于如下规则:如果初始工作表中某个属性有大量不同的值,并且该属性上存在泛化操作符,则应当选择该泛化操作符,并将它用于该属性。
2.1.4 属性泛化控制
属性删除和属性泛化两个规则都表明,如果某个属性存在大量的不同取值,就应当进一步泛化,那多大才算是大?这个控制过程我们就称作属性泛化控制。有一些方法可以控制泛化的过程,下面介绍两种常用的方法:
- 属性泛化阈值控制,对所有属性设置一个泛化阈值,或对每个属性设置一个泛化阈值,如果属性不同值个数大于这个阈值,就应当进一步进行属性删除或泛化。
- 泛化关系阈值控制,如果泛化关系中不同元组的个数超过该阈值,则应当进一步泛化。
2.1.5 面向属性归纳实例
现在,我们就对上面的初始工作表中的每个属性进行泛化,泛化过程如下:
- name:由于name存在大量不同的值,并且没有泛化操作符,删除之。
- gender:只有两个不同值,保留,无需泛化。
- major:假设major数量有20,属性泛化阈值为5,并且已定义了一个向上攀升的概念分层{arts,engineering,business},则对major进行泛化。
- birth_place:有大量不同取值,应当泛化。可以将birth_place属性删除,泛化到birth_country。
- birth_date:泛化到age。
- resident:可以泛化到resident_country,像是的概念层次的number,street可以删除。
- phone:从泛化中删除。
- gpa:存在概念分层,可以泛化到{excellent,very good,…}
所泛化过程将产生相等元组的组。例如,初始工作表中前两个元组被泛化成相同的元组(即第一个元组),这些相同的元组被合并成一个,同时累计它们的计数值,这一过程最终得到如下泛化关系表:
gender | major | birth_country | age_range | redidence_city | gpa | count |
---|---|---|---|---|---|---|
M | Science | Canada | 20 | Richmon | verygood | 1 |
M | Science | Canada | 20 | Vancouve | verygood | 2 |
F | engineer | USA | 25 | Burnaby | excellent | 2 |
2.2 数据泛化的导出表示
- 二维表
- 3d交叉表
- 条形图、饼形图
- 数据方
三、解析特征:属性相关性分析
有时候我们很难确定哪些属性应当纳入类特征或类比较中,我们可以借助某些属性相关分析方法来识别不相关或者弱相关属性。
3.1 为什么要进行属性分析
我们已经在上面介绍过,数据仓库和OLAP工具有两个局限性:处理复杂对象和泛化过程难以自动化。
对用户来说,确定哪些维应当纳入到类特征分析中并不是一件很容易的事,数据关系通常有很多属性(多的有成百上千个),对于有效的数据挖掘,应当选择哪些属性或维,用户所知甚少。另一方面,用户也可能包含了太多的分析属性。
所以我们应当引进一些方法进行属性相关性分析,以过滤统计不相关或弱相关属性,保留对手头挖掘任务最相关的属性。包含属性/维相关性分析的类特征成为解析特征,包含这种分析的类比较成为解析比较。
3.2 属性相关分析的方法
关于属性相关分析,在机器学习、统计、模糊和粗糙集理论等方面都有很多研究。属性相关分析基本思想是计算某种度量,用于量化属性与给定类或概念的相关性。这种度量包括信息增益、Gini索引、不确定性和相关系数。