新闻正文

数据挖掘入门(十一)

来源:JAVA天堂  JAVA学习者  2007-8-6 01:56:52 网友评论 0 条 字体:[ ] ~我要投稿!
,
2.建立数据挖掘库。
连同下面的两个步骤,这三步构成了数据预处理的核心。这三步和在一起比其他
所有的步骤加在一起所花得时间和精力还多。一旦你从数据挖掘的结果中学到一
些什么之后,你很可能要修改数据以得到更好得结果,因此就需要把数据准备和
数据挖掘不断的反复进行。数据准备工作大概要花去整个数据挖掘项目的50%-90%
的时间和精力。
应该把要挖掘的数据都收集到一个数据库中。注意这并不是说一定要使用一个数
据库管理系统。根据要挖掘的数据量的大小、数据的复杂程度、使用方式的不同,
有时一个简单的平面文件或电子表格就足够了。
一般来说,直接在公司的数据仓库上进行数据挖掘是不合适的。你最好建立一个
独立的数据集。数据挖掘会使你成为数据仓库非常活跃的用户,这可能会带来一
些资源申请上的问题。你需要经常把许多表连接在一起,访问数据仓库的细节数
据。一个简单的试验在数据仓库内都要很多步才能完成。
大部分情况下你肯定需要修改要挖掘的数据。而且还会遇到把企业外部的数据拿
到数据仓库内和在原有的表中增加新的字段的情况。其他的数据挖掘用户可能也
要对数据仓库进行与您相似或完全不同的修改。而对数据仓库管理员来说,这恐


怕是他最不愿意遇到的事情。
需要建立独立的数据挖掘库的另一个理由是,数据仓库可能不支持你要对数据进
行各种复杂分析所需的数据结构。这包括对数据进行统计查询,多维分析,和各
种复杂的图表和可视化。
最后,你可能希望把这些要挖掘的数据存贮在与公司的数据仓库在物理设计上不
同的DBMS上。人们越来越倾向于使用DBMS本身很好的支持数据挖掘的数据库程序,
这样能使数据挖掘工作进行的更容易一些。当然如果你的数据仓库允许你建立一
个在逻辑上独立的数据库并且在计算资源上也足够的话,那么在他上面进行数据
挖掘也是可以的。
可以把建立数据挖掘库分成下面几个部分:
a. 数据收集
b. 数据描述
c. 选择
d. 数据质量评估和数据清理
e. 合并与整合
e. 合并与整合
f. 构建元数据
g. 加载数据挖掘库
h. 维护数据挖掘库
注意这些步骤并不需要一定要按步骤执行,而应该按需要进行。比如你可能在收
集数据时就开始构建元数据,并随着工作的进行不断的对其进行修改。在数据整
合和数据质量评估过程中了解到得东西也有可能是你修改最初的数据选择。
a. 数据收集。确定要挖掘的数据源。可能一些外部的数据也是必须的,
需要在公共数据库中获取(人口统计或天气数据)或向数据拥有者购买(比如信
用卡使用数据)。
用以一个数据搜集报告把所需的各种不同的数据源的属性列出来。此报告至少应
包含如下的内容:
² 数据源(内部数据库或外部提供者)
² 拥有者
² 负责维护此数据的人/组织
² DBA
² 费用(如果需要购买)
² 存储方式(如:Oracle数据库、MSAM文件等)
² 表、字段、记录的数目
² 字节数
² 物理存储方式(CD-ROM、磁带、服务器等)
² 安全需求
² 使用上的限制
² 隐私上的需求
注意一旦应用了在安全和隐私上有特殊限制的数据,那么你的数据挖掘库在安全
和隐私上也就继承了同样的限制。比如许多欧洲的数据在隐私上的限制要比美国
严格的多。
b. 数据描述。描述每个文件和数据库表的内容。数据描述报告中应包含
如下内容:
² 字段/列的数目
² 字段是空(缺值)的数目/百分比
² 字段的名字
对每个字段
² 数据类型
² 定义
² 描述
² 源
² 计量单位
² 计量单位
² 所有不同值的个数
² 值的列表
² 值的范围
² 空值的百分比
² 收集信息(比如:怎么得到的,在哪,什么条件下)
² 时间频度(Timeframe)(每天,每周,还是每月)
² 特别时间数据(比如:每个周一或每个周三)
² 主键/外键关系
c. 选择。接下来就要选择用于数据挖掘的数据(源数据的子集)。这与
对数据进行采样和选择预测变量是不同的,这里只是粗略的把一些冗余或无关的数
据除去,或由于资源的限制、费用的限制、数据使用的限制、和质量问题而必须做
出的选择。
d. 数据质量评估和数据清理。“龙生龙,凤生凤”对数据挖掘也是非常
适用的,要想得到好的模型必须用好的数据。数据质量评估就是要确定数据的哪些
性质会最终影响模型的质量。你不仅要保证数据值的正确性和一致性,还要保证这
些值是按同样的方法记录的同一件事情。

由各种各样的数据质量问题。数据域中可能包含了不正确的值。比如,身份证号
码被粗心的数据录入人员录入了年龄。即使每个单个域中包含的数据都是正确的,
但这些域组合起来时可能就出现了错误的记录,如男性怀孕。有时域中的值为空。
当从多个不同的源整合数据时一定要注意不同源之间数据的一致性。
缺值是一个非常有害的问题。如果只要有一个数据域缺值就把这个记录删除掉,那
么最后可能得到一个很小的数据库,同时你得到的这个数据库很可能已经丢失了实
际数据中蕴含 的一些信息,因为你已经改变了原数据的组成。缺值这件事本身可能
就是非常有意义的,比如也许只有富有的顾客才经常忽略“收入”这一项。你可以
增加一个新的变量来标识这些缺值的记录,然后用它建立一个模型,然后与按其他
方法建立的模型进行比较,看哪个准确度更高一些。
另一种方法是为缺失的值计算一个替代值。计算替代值的常用方法包括使用形式值
(为名词变量),中间值(为可排序变量),平均值(为连续变量)。还有一个不
是很常用的方法是按照数据库中值的分布规律为缺值的字段添值。比如如果数据库
中包含40%男性和60%女性,那么在为那些性别子段缺失的记录添值时也按这个比例
随机赋值。还有一种方法是为这个缺值的字段用数据挖掘技术建立一个预测模型,
然后按照这个模型的预测结果添值,这种方法效果应该最好,当然也最花时间。
承认生活并不是十全十美是必要的,数据挖掘也是一样,你也不可能解决所有遇到
的问题,只能做得尽量好一点。检查和修正数据质量问题是一项非常耗费时间和金
钱的工作,对解决不了的问题,通常你只能采取折衷的办法,先用现有的数据建立
一个模型,把问题放到将来去解决。
e. 合并与整合。如果幸运的话,你需要的所有数据都在同一个数据库中
(比如数据仓库),但大部分情况下这些数据是分布在不同的数据库中。数据可能
分布在公司不同的部门、不同的应用中,甚至在公司外(人口数据)。
数据合并与整合把来自不同数据源的数据合并到同一个数据挖掘库中,并且要使
那些本来存在冲突和不一致的数据一致化。不恰当的一致化是数据质量问题的一
个主要来源。不同的数据库间在数据定义和使用上通常都存在巨大的差异。有些
不一致问题是容易解决的,如同一客户的不同住址问题。然而有些则非常棘手。
例如同一个客户有不同的名字—甚至更遭的情况—多个不同的客户标识号码。同
一个名字被用在不同的数据项上(同名异意),或同一个数据项用了不同的名字
(同意不同名)。还有单位上的不统一。比如人民币和港元之间不能不做换算就
直接加减。
f. 构建元数据。数据收集报告和数据描述报告是建立元数据的基础。
本质上,这是一个描述数据库的数据库。他用于建立实际的数据库和为分析数据
和建立模型提供辅助信息。
g. 加载数据挖掘库。大多数情况下,用于挖掘的数据应该放到他自己独
立的数据库中。如果数据量大并且复杂,那么他通常是一个RDMS,反之只是一个简
单的平面文件即可。经过前面所有的搜集、整理之后,现在开始把这些数据实际的
加载过来了。依赖于所涉及的DBMS和操作系统,和数据库设计的复杂程度,有时这
一步也可能变得很复杂,需要靠专家的帮助来完成。
h. 维护数据挖掘库。挖掘库一旦建好,就需要对他进行维护。需要定期
备份;监视他的性能;不时的增加存储空间或提高性能。对存放在DBMS内的复杂的
挖掘库来说,维护他需要计算机专业人员来完成。
于是我们回忆,并且找到相爱的理由
.
※ 修改:·wizard 於 06月20日13:58:05 修改本文
※ 转载:· bbs.sjtu.edu.cn


收藏到ViVi   收藏此页到365Key
上一篇: 数据挖掘入门(十)
下一篇: 数据挖掘入门(十二)
用户名:新注册) 密码: 匿名评论 [所有评论]
评论内容:不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
本栏搜索
  • Google
推荐新闻
     
   网站首页 -  网站地图 -  技术学习 -  网站投稿 -  帮助中心
Copyright 2003-2008 www.javah.net All Rights Reserved
2008 如果你喜欢本站 请收藏本站 并推荐给你的朋友一起分享