📄 11.txt
字号:
发信人: ashun (阿顺), 信区: DataMining
标 题: 数据挖掘入门(十一)
发信站: 南京大学小百合站 (Mon Aug 20 10:25:05 2001)
2.建立数据挖掘库。
连同下面的两个步骤,这三步构成了数据预处理的核心。这三步和在一起比其他所有的步
骤加在一起所花得时间和精力还多。一旦你从数据挖掘的结果中学到一些什么之后,你很
可能要修改数据以得到更好得结果,因此就需要把数据准备和数据挖掘不断的反复进行。
数据准备工作大概要花去整个数据挖掘项目的50%-90%的时间和精力。
应该把要挖掘的数据都收集到一个数据库中。注意这并不是说一定要使用一个数据库管理
系统。根据要挖掘的数据量的大小、数据的复杂程度、使用方式的不同,有时一个简单的
平面文件或电子表格就足够了。
一般来说,直接在公司的数据仓库上进行数据挖掘是不合适的。你最好建立一个独立的数
据集。数据挖掘会使你成为数据仓库非常活跃的用户,这可能会带来一些资源申请上的问
题。你需要经常把许多表连接在一起,访问数据仓库的细节数据。一个简单的试验在数据
仓库内都要很多步才能完成。
大部分情况下你肯定需要修改要挖掘的数据。而且还会遇到把企业外部的数据拿到数据仓
库内和在原有的表中增加新的字段的情况。其他的数据挖掘用户可能也要对数据仓库进行
与您相似或完全不同的修改。而对数据仓库管理员来说,这恐怕是他最不愿意遇到的事情
。
需要建立独立的数据挖掘库的另一个理由是,数据仓库可能不支持你要对数据进行各种复
杂分析所需的数据结构。这包括对数据进行统计查询,多维分析,和各种复杂的图表和可
视化。
最后,你可能希望把这些要挖掘的数据存贮在与公司的数据仓库在物理设计上不同的DBMS
上。人们越来越倾向于使用DBMS本身很好的支持数据挖掘的数据库程序,这样能使数据挖
掘工作进行的更容易一些。当然如果你的数据仓库允许你建立一个在逻辑上独立的数据库
并且在计算资源上也足够的话,那么在他上面进行数据挖掘也是可以的。
可以把建立数据挖掘库分成下面几个部分:
a. 数据收集
b. 数据描述
c. 选择
d. 数据质量评估和数据清理
e. 合并与整合
f. 构建元数据
g. 加载数据挖掘库
h. 维护数据挖掘库
注意这些步骤并不需要一定要按步骤执行,而应该按需要进行。比如你可能在收集数据时
就开始构建元数据,并随着工作的进行不断的对其进行修改。在数据整合和数据质量评估
过程中了解到得东西也有可能是你修改最初的数据选择。
a. 数据收集。确定要挖掘的数据源。可能一些外部的数据也是必须的,需要在公
共数据库中获取(人口统计或天气数据)或向数据拥有者购买(比如信用卡使用数据)。
用以一个数据搜集报告把所需的各种不同的数据源的属性列出来。此报告至少应包含如下
的内容:
² 数据源(内部数据库或外部提供者)
² 拥有者
² 负责维护此数据的人/组织
² DBA
² 费用(如果需要购买)
² 存储方式(如:Oracle数据库、MSAM文件等)
² 表、字段、记录的数目
² 字节数
² 物理存储方式(CD-ROM、磁带、服务器等)
² 安全需求
² 使用上的限制
² 隐私上的需求
注意一旦应用了在安全和隐私上有特殊限制的数据,那么你的数据挖掘库在安全和隐私上
也就继承了同样的限制。比如许多欧洲的数据在隐私上的限制要比美国严格的多。
b. 数据描述。描述每个文件和数据库表的内容。数据描述报告中应包含如下内容
:
² 字段/列的数目
² 字段是空(缺值)的数目/百分比
² 字段的名字
对每个字段
² 数据类型
² 定义
² 描述
² 源
² 计量单位
² 所有不同值的个数
² 值的列表
² 值的范围
² 空值的百分比
² 收集信息(比如:怎么得到的,在哪,什么条件下)
² 时间频度(Timeframe)(每天,每周,还是每月)
² 特别时间数据(比如:每个周一或每个周三)
² 主键/外键关系
c. 选择。接下来就要选择用于数据挖掘的数据(源数据的子集)。这与对数据进
行采样和选择预测变量是不同的,这里只是粗略的把一些冗余或无关的数据除去,或由于
资源的限制、费用的限制、数据使用的限制、和质量问题而必须做出的选择。
d. 数据质量评估和数据清理。“龙生龙,凤生凤”对数据挖掘也是非常适用的,
要想得到好的模型必须用好的数据。数据质量评估就是要确定数据的哪些性质会最终影响
模型的质量。你不仅要保证数据值的正确性和一致性,还要保证这些值是按同样的方法记
录的同一件事情。
由各种各样的数据质量问题。数据域中可能包含了不正确的值。比如,身份证号码被粗心
的数据录入人员录入了年龄。即使每个单个域中包含的数据都是正确的,但这些域组合起
来时可能就出现了错误的记录,如男性怀孕。有时域中的值为空。当从多个不同的源整合
数据时一定要注意不同源之间数据的一致性。
缺值是一个非常有害的问题。如果只要有一个数据域缺值就把这个记录删除掉,那么最后
可能得到一个很小的数据库,同时你得到的这个数据库很可能已经丢失了实际数据中蕴含
的一些信息,因为你已经改变了原数据的组成。缺值这件事本身可能就是非常有意义的,
比如也许只有富有的顾客才经常忽略“收入”这一项。你可以增加一个新的变量来标识这
些缺值的记录,然后用它建立一个模型,然后与按其他方法建立的模型进行比较,看哪个
准确度更高一些。
另一种方法是为缺失的值计算一个替代值。计算替代值的常用方法包括使用形式值(为名
词变量),中间值(为可排序变量),平均值(为连续变量)。还有一个不是很常用的方
法是按照数据库中值的分布规律为缺值的字段添值。比如如果数据库中包含40%男性和60%
女性,那么在为那些性别子段缺失的记录添值时也按这个比例随机赋值。还有一种方法是
为这个缺值的字段用数据挖掘技术建立一个预测模型,然后按照这个模型的预测结果添值
,这种方法效果应该最好,当然也最花时间。
承认生活并不是十全十美是必要的,数据挖掘也是一样,你也不可能解决所有遇到的问题
,只能做得尽量好一点。检查和修正数据质量问题是一项非常耗费时间和金钱的工作,对
解决不了的问题,通常你只能采取折衷的办法,先用现有的数据建立一个模型,把问题放
到将来去解决。
e. 合并与整合。如果幸运的话,你需要的所有数据都在同一个数据库中(比如数
据仓库),但大部分情况下这些数据是分布在不同的数据库中。数据可能分布在公司不同
的部门、不同的应用中,甚至在公司外(人口数据)。
数据合并与整合把来自不同数据源的数据合并到同一个数据挖掘库中,并且要使那些本来
存在冲突和不一致的数据一致化。不恰当的一致化是数据质量问题的一个主要来源。不同
的数据库间在数据定义和使用上通常都存在巨大的差异。有些不一致问题是容易解决的,
如同一客户的不同住址问题。然而有些则非常棘手。例如同一个客户有不同的名字—甚至
更遭的情况—多个不同的客户标识号码。同一个名字被用在不同的数据项上(同名异意)
,或同一个数据项用了不同的名字(同意不同名)。还有单位上的不统一。比如人民币和
港元之间不能不做换算就直接加减。
f. 构建元数据。数据收集报告和数据描述报告是建立元数据的基础。本质上,
这是一个描述数据库的数据库。他用于建立实际的数据库和为分析数据和建立模型提供辅
助信息。
g. 加载数据挖掘库。大多数情况下,用于挖掘的数据应该放到他自己独立的数据
库中。如果数据量大并且复杂,那么他通常是一个RDMS,反之只是一个简单的平面文件即
可。经过前面所有的搜集、整理之后,现在开始把这些数据实际的加载过来了。依赖于所
涉及的DBMS和操作系统,和数据库设计的复杂程度,有时这一步也可能变得很复杂,需要
靠专家的帮助来完成。
h. 维护数据挖掘库。挖掘库一旦建好,就需要对他进行维护。需要定期备份;监
视他的性能;不时的增加存储空间或提高性能。对存放在DBMS内的复杂的挖掘库来说,维
护他需要计算机专业人员来完成。
--
业精于勤荒于嬉,行成于思毁于随。 —— 韩愈
临渊羡鱼不如退而结网。 —— 班固
勿以恶小而为之,勿以善小而不为。 —— 刘备
※ 来源:.南京大学小百合站 http://bbs.nju.edu.cn [FROM: 202.119.80.20]
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -