SAS数据挖掘实战篇.docx
《SAS数据挖掘实战篇.docx》由会员分享,可在线阅读,更多相关《SAS数据挖掘实战篇.docx(18页珍藏版)》请在冰豆网上搜索。
SAS数据挖掘实战篇
SAS数据挖掘实战篇
2013-11-12数据分析联盟数据分析联盟
1数据挖掘简介
1.1数据挖掘的产生
需求是一切技术之母,管理和计算机技术的发展,促使数据挖掘技术的诞生。
随着世界信息技术的迅猛发展,信息量也呈几何指数增长,如何从巨量、复杂的数据中获取有用的信息,成为了信息技术研究领域的一道新课题。
在这样的背景下,数据挖掘技术诞生并成为了近年来的研究热点。
机器学习、数据库技术和数理统计是数据挖掘的三个技术支柱。
今天,这些技术已经相当成熟,加上高性能关系数据库引擎和广泛的数据集成,让数据挖掘技术得到了广泛的实际应用。
目前数据挖掘相关研究文献越来越多、可用技术也层出不穷,数据挖掘的理论体系正在形成,相信很快就会成为一种主流信息技术。
当然,数据挖掘面向应用领域要做的事还很多,比如需要开发更多数据挖掘系统和产品,需要建立行业内的数据标准和通用挖掘平台,需要建立可交换信息和共享知识的通用数据仓库等。
应该说,数据挖掘包含的内容很多,值得研究的方向也很多。
但是,我们也注意到,就目前而言,注重多种策略和技术的集成,以及各个学科之间的相互渗透是目前的研究热点。
传统机器学习技术一般使用研究者按照条件和结论事先组织好的数据,但是数据挖掘却需要面对现实的数据,通常具有不完整、带有噪音、数量大、甚至还不断增加等特点,因此传统机器学习方法需要改进后才能用于数据挖掘。
所以,目前数据挖掘的研究重点应该是针对应用实践,综合借鉴交叉学科中的技术和方法,互相渗透,发现新的方法或进行多种策略和技术的集成。
1.2数据挖掘概念
数据挖掘,顾名思义就是指从大量的数据中提取人们所感兴趣的、事先不知道的、隐含在数据中的有用的信息和知识的过程,并且把这些知识用概念、规则、规律和模式等方式展示给用户,从而解决信息时代的“数据过量,知识不足”的矛盾。
数据挖掘技术是从数据库中的知识发现KDD(KnowledgeDiscoveryinDatabase)的研究起步的,KDD是随着数据库开始存储了大量业务数据,并采用机器学习技术分析这些数据,挖掘这些数据背后的知识而发展起来的。
随着KDD研究的深入,越来越多的研究人员进入这一领域。
目前,大多数研究还是主要集中在数据挖掘的算法和应用上。
事实上,人们往往不严格区分数据挖掘和数据库中的知识发现这两个概念,常常将两者混淆使用。
一般在科学研究领域中称为KDD,而在工程应用领域则称为数据挖掘。
数据挖掘是一门交叉学科,涉及到机器学习、统计学、人工智能、模式识别、数据库、信息检索、信息可视化和专家系统等多个领域。
2数据挖掘原理
2.1数据挖掘技术
数据挖掘任务主要有很多种,常见的有监督学习(或称为分类学习)、无监督学习(或称为聚类分析)、关联规则挖掘、预测、时序挖掘和偏差分析等等。
1.分类学习:
分类就是找出一个类别的概念描述,它代表了这类数据的整体信息,即该类的内涵描述,并用这种描述来构造模型,一般用规则或决策树模式表示。
分类是利用训练数据集通过一定的算法模型而求得分类规则。
分类可被用于规则描述和预测。
目前比较常见的分类算法有K最近邻居算法(KNearestNeighborAlgorithm)、决策树算法、贝叶斯分类和支持向量机算法(SupportVectorMachine)等等。
2.聚类分析:
聚类就是把数据按照相似性归纳成若干类别,同一类中的数据彼此相似,不同类中的数据相异。
聚类分析可以建立宏观的概念,发现数据的分布模式,以及可能的数据属性之间的相互关系。
目前常见的聚类算法有基于划分的算法、基于层次的算法、基于密度算法和基于网格的算法等等。
3.关联规则:
关联规则挖掘是描述两个或两个以上变量的取值之间存在某种规律性,就称为关联。
数据关联是数据库中存在的一类重要的、可被发现的知识。
关联分为简单关联、时序关联和因果关联。
关联分析的目的是找出数据库中隐藏的关联网。
一般用支持度和可信度两个阈值来度量关联规则的相关性,还不断引入兴趣度、相关性等参数,使得所挖掘的规则更符合需求。
4.预测:
预测是利用历史数据找出变化规律,建立模型,并由此模型对未来数据的种类及特征进行预测。
预测关心的是精度和不确定性,通常采用预测方差来度量。
预测的主要方法有统计学中的回归分析等等。
5.时序模式:
时序模式是指通过时间序列搜索出的重复发生概率较高的模式。
与回归一样,它也是用已知的数据预测未来的值,但这些数据的区别是变量所处时间的不同。
6.偏差分析:
在偏差中包括很多有用的知识,数据库中的数据存在很多异常情况,发现数据库中数据存在的异常情况是非常重要的。
偏差检验的基本方法就是寻找观察结果与参照之间的差别。
2.2数据挖掘过程
数据挖掘方法在数据挖掘过程起着很重要的作用。
但是,作为一个数据挖掘应用来说,数据挖掘仅仅是整个过程中的一个环节。
数据挖掘项目的成功需要花费相当的心血,依照规范的流程进行操作。
一般来说,数据挖掘需要经历以下过程:
确定挖掘对象、收集数据、数据预处理、数据挖掘和信息解释。
在整个数据挖掘过程中,信息可视化技术扮演着很重要的角色。
下面详细介绍各个数据挖掘的步骤。
数据挖掘步骤图:
1.确定挖掘对象:
定义清晰的挖掘对象,认清数据挖掘的目标是数据挖掘的第一步。
数据挖掘的最后结果往往是不可预测的,但是要解决的问题应该是有预见性的、有目标的。
在数据挖掘的第一步中,有时还需要用户提供一些先验知识。
这些先验知识可能是用户的业务领域知识或是以前数据挖掘所得到的初步成果。
这就意味着数据挖掘是一个过程,在挖掘过程中可能会提出新的问题;可能会尝试用其他的方法来检验数据,在数据的子集上展开研究。
2.数据收集:
数据是挖掘知识最原始的资料。
“垃圾进,垃圾出”,只有从正确的数据中才能挖掘到有用的知识。
为特定问题选择数据需要领域专家参加。
因此,领域问题的数据收集好之后,和目标信息相关的属性也可以确定。
3.数据预处理:
数据选择好以后,就需要对数据进行预处理。
数据预处理包括:
去除错误数据和数据转换。
错误数据,在统计学中称为异常值,应该在此阶段发现并且删除。
否则,它们将导致产生错误的挖掘结果。
同时,需要将数据转换成合适的形式。
例如,在某些情况下,将数据转换成向量形式。
另外,为了寻找更多重要的特征和减少数据挖掘步骤的负担,我们可以将数据从一个高维空间转换到一个低维空间。
4.数据挖掘:
数据挖掘步骤主要是根据数据建立模型。
我们可以在这个步骤使用各种数据挖掘算法和技术。
然而,对于特定的任务,需要选择正确合适的算法,来解决相应的问题。
5.信息解释:
首先,通过数据挖掘技术发现的知识需要专家对其进行解释,帮助解决实际问题。
然后,根据可用性、正确性、可理解性等评价指标对解释的结果进行评估。
只有经过这一步骤的过滤,数据挖掘的结果才能够被应用于实践。
6.可视化:
可视化技术主要用来通过图形化的方式显示数据和数据挖掘的结果,从而帮助用户更好的发现隐藏在数据之后的知识。
它可以被应用在数据挖掘的整个过程,包括数据预处理、数据挖掘和信息解释。
数据和信息的可视化显示对用户来说非常重要,因为它能够增强可理解性和可用性。
3数据挖掘应用
3.1数据挖掘工具
目前国际上广泛应用的数据挖掘工具有很多,如SAS公司的EnterpriseMiner,SPSS公司的Clementine,Waikato大学开发的Weka平台,SQLSever的数据挖掘模块,IBM公司的DBMiner等。
本文应用了SASEnterpriseMiner模块进行了数据挖掘的相应研究。
SAS(STATISTICALANALYSISSYSTEM)是由美国NORTHCAROLINA州立大学1966年开发的统计分析软件。
SAS(StatisticalAnalysisSystem)是一个模块化、集成化的大型应用软件系统。
它由数十个专用模块构成,功能包括数据访问、数据储存及管理、应用开发、图形处理、数据分析、报告编制、运筹学方法、计量经济学与预测等等。
SAS系统基本上可以分为四大部分:
SAS数据库部分;SAS分析核心;SAS开发呈现工具;SAS对分布处理模式的支持极其数据仓库设计。
SAS系统主要完成以数据为中心的四大任务:
数据访问、数据管理、数据呈现、
数据分析。
SAS持续良好的统计分析功能,得到了业界广泛好评,这为它在国际专业统计分析软件领域获得头把交椅奠定了基础。
3.2数据挖掘应用场景
目前,数据挖掘在很多领域得到了广泛的应用。
以客户为导向的应用有市场购物篮分析、获取客户、客户细分、客户保持、交叉销售、向上销售、客户终身价值分析等等;以运营为导向的应用有盈利分析、定价、欺诈发现、风险评估、客户流失分析、生产效率分析等等。
除此之外,数据挖掘还在生物信息学、互联网、金融、电力等等企业有着各种各样的应用。
在未来的发展中,数据挖掘将被用于更多的领域。
从SAS数据挖掘实战篇【一】介绍完目前的数据挖掘基本概念之外,对整个数据挖掘的概念和应用有初步的认识和宏观的把握之后,我们来了解一下SAS数据挖掘实战篇【二】SAS工具的应用。
首先来看一下SAS大概的一个软件界面。
(这里面实际操作性较强,建议都打开软件,stepbystep自己操作一遍,印象深刻)操作流程如下:
1认识SASEnterpriseMiner
1启动SASEM
方式1:
首先打开SAS,然后在SAS命令栏输入miner,回车即可;
方式2:
启动SAS,点击Solutions菜单下面的Analysis菜单下面的EnterpriseMiner,即可启动SASEM。
2建立工程和流程图
EM通过工程和流程图组织数据分析。
每个工程可能有多个处理流程图,每个流程图可能包含多个数据分析。
一般而言,每个流程图包括一个数据集的分析。
创建工程步骤:
1)从SAS菜单创建工程
2)为该工程输入工程名
3)如果需要访问服务器,选择Client/Server选项,否则就不需要选择该项
4)设置工程路径
5)点击创建按钮,默认情况下生成一个流程图。
6)选择流程图标题,输入流程图标题
3识别窗口组件
2SASEM挖掘过程
SEMMA概述
SAS公司将数据挖掘的核心过程分为抽样Sample、探索Explore、修整Modify、建模Model以及评估Assess几个阶段。
①抽样
从数据集中抽取有代表性的样本,样本应该大到不丢失重要的信息,小到能够便于操作。
创建三个数据子集:
(1)训练数据,用于拟合各种模型;
(2)验证数据,用于评估各模型并进行模型选择避免过度拟合;(3)测试数据,用于对模型的普适性形成真实的评价。
②探索
使用可视化的方法或主成分分析、因子分析、聚类等统计方法对数据集进行探索分析,发现未曾预料的趋势和异常情况,对数据形成初步理解,寻求进一步分析的思路。
③修整
包括生成和转换变量,发现异常值,变量选择等。
④模型
针对数据集选择适当的模型进行建模。
⑤评估
评估模型的实用性、可靠性和效果。
3SASEM结点介绍
主要针对下面的几个图标进行介绍:
①抽样
输入数据源节点主要用于读取数据和定义数据的属性。
抽样节点主要通过随机抽样、层次抽样和聚类抽样三种技术对数据集进行抽样。
对于非常大的数据库,抽样非常重要,这样处理可以减少模型的训练时间。
数据划分节点主要用于将数据集划分为训练集、测试集以及验证集。
训练集主要用于模型的训练。
验证集主要用来调整估计阶段的模型和模型评估阶段。
测试数据集是一种另外的数据集,主要用于模型评估。
该节点使用简单随机抽样、层次抽样或者用户自定义的划分来创建划分数据集。
②探索
分布探索节点用于探索大量数据,并且通过可视化的方式对数据进行展示,譬如多维直方图等等。
多图节点也是一种可视化的方式显示大量数据。
与观察节点和分布探索节点不一样的是,该节点能够自动创建柱状图和散点图。
观察节点可以打开SAS/INSIGHT会话。
它是一种数据探索和分析的交互式工具。
关联规则节点主要用来识别数据之间的关联关系。
变量选择节点主要用于评估预测或者分类目标变量中输入变量的重要性。
为了选择重要的输入,该节点使用R平方标准或者卡方标准选择变量。
链接分析节点用于发现复杂系统中链接之间的效果,从而发现活动的模式得到有用的结论。
③调整
数据集属性节点可以用来修改数据集属性,譬如数据集名称,描述和角色。
同时,还可以修改样本数据集的元数据以及定义目标变量的资料。
转换变量节点用于转换变量,譬如计算自然对数,最大化和目标的相关性或者规范化变量。
过滤异常节点使用过滤器排除训练数据集中的某些观测值,譬如异常点或者其他观测值,即不包含在数据挖掘分析中的数据集。
但是,该节点不能过滤验证数据集、测试数据集以及打分数据集中的异常点。
替换节点用于对有缺失值的观测值进行插值。
对于区间变量,可以采用平均值、中值、中间区间、基于分布的替换等等来替换缺失值。
另外,还可以使用基于决策树的方法插值。
对于类别变量来说,可以使用最频繁发生的事件的值替换缺失值,基于分布的替换,基于决策树的插值或者常量也可以用来处理类别变量的缺失值。
聚类节点主要用于对数据的划分,识别具有相似性的观测值。
相似的观测值在相同的聚类中,不同的观测值在不同的聚类中。
SOM节点产生自组织映射,Kohonen网络以及向量数量化网络。
尤其是,该节点执行非监督学习,理解数据的结构。
与聚类节点类似,在网络映射创建好以后,数据的特性可以通过图形化的方式来浏览。
时间序列节点主要用于预测趋势和季节性因素的影响。
时间序列数据时给予时间间隔的。
④模型
回归模型节点用于拟合线性和逻辑回归模型,可以使用连续变量、顺序变量和二值目标变量,同时可以使用连续变量和离散变量作为输入。
该节点支持前向、后向和双向的选择方法。
树节点在名义变量、顺序变量和连续变量的基础上对数据库执行多路划分。
该节点同时支持自动化和交互性训练。
当在自动模式下运行树节点时,它能够在变量对树模型贡献的基础之上自动对输入变量进行排序。
这种排序可能被用来作为接下步骤选择变量的方法。
另外,它所产生的哑变量也可用在接下来的建模过程中。
交互式训练可以用来探索和评价比较大和复杂的树。
神经网络节点用于构建、训练和验证多层前向神经网路。
一般来说,每个输入是完全和第一个隐藏层连接,每个隐藏层和接下来的隐藏层完全相连,最后的隐藏层和输出是完全连接的。
该节点还支持一般形式的多种变种形式。
主成分分析节点用于拟合非线性模型。
并且,该节点也可以执行主成分分析,将打分的主成分传递给后面的节点。
在训练神经网络时,目标变量必须是二值或者区间变量,但在进行主成分分析时不需要目标变量。
用户自定义模型用于产生使用模型中SAS代码节点生成的预测值或者变量选择节点的评估统计信息。
预测值可以保存在sas数据集中,然后将其导入到流程的数据输入节点中。
集成节点用来组合模型,它比单个模型更加稳定。
当独立的模型相关性越低时,组合模型更加有效。
该节点创建三种组合方式:
组合模型:
例如组合决策树模型和神经网络模型。
组合函数是预测值的平均值。
层次模型:
在一个或者多个变量上面执行分组处理。
在这种情况下,由于数据集中每行是通过独立的模型进行打分,并且依赖于一个或者多个变量,因此该模型没有组合函数。
袋和步进模型:
袋和步进模型是通过重抽样训练数据集,为每个样本拟合独立的模型。
对预测值(区间目标变量)或者先验值(分类变量)进行平均产生集成模型。
袋模型使用随机抽样代替创建n个样本。
每个观测值的权重是相等的。
步进模型对每个训练观测值进行自适应重置权重。
对于先前经常误分类的模型,重抽样的权重是逐渐增加的。
因此,观测值权重的分布是建立在模型先前抽样的性能的基础之上。
步进模型需要一个类型目标变量。
基于内存的推理节点是根据案例集寻找出和新的观测值相似的案例集。
在SASEM中,基于内存的推理模型节点使用K最近邻居算法分类或者预测观测值。
双阶段模型节点用于计算预测分类目标和区间目标的双阶段模型。
区间目标变量经常和类别目标的某个级别相关联。
⑤评估
评估节点为模型比较提供共同的框架。
模型比较是建立在期望和实际利润或者损失的基础之上。
它提供几种图表帮助描述模型的有效性,譬如提升图和利润/损失图表。
报表节点将整个流程分析的结果导入到HTML报表中,可以通过网页浏览器来查看。
每个报表包括表头信息,处理流程图片以及每个节点的单独报告。
其他类型节点:
打分节点
打分节点是从训练模型中产生和管理预测值。
打分公式主要用来评估和预测。
SASEM以sas数据步代码的形式产生和管理打分公式。
C打分节点将SAS数据步的代码转换成c语言的形式。
其他类型节点:
实用节点
分组处理节点针对分类变量执行分组处理。
并且,也可以用来分析多目标,对同样的数据源进行重复处理。
数据挖掘数据库节点为批处理创建数据挖掘数据库。
SAS代码节点用来添加新的或者已经存在的sas代码到处理流程图中。
SAScode节点能够将其他的sas过程加入到数据挖掘分析过程中。
并且,也可以用SAS数据步创建自定义的评分代码,从而有条件地进行数据连接和合并操作。
该节点还提供宏功能,动态的关联到训练数据集、验证数据集和测试数据集中的变量。
运行完SAScode节点之后,结果集合数据集可以被导出用于后面的节点。
控制点节点用于减少节点连接的步骤。
例如,假设三个输入数据源节点和三个建模节点连接。
如果没有使用控制点节点,需要9个链接完成。
然而,如果使用控制点节点,只需要6次连接操作。
子图节点将整个流程图划分为不同的分组。
对于复杂的处理流程图,需要创建子图来更好的设计和控制流程。
结点使用的一般规则
在过程流程图中放置结点的一般规则:
a)不能将任何结点放在输入数据源结点之前。
b)在抽样结点前面必须有用于导出数据集的结点。
c)评估结点之前必须有一个或者多个模型结点。
d)评分结点和评分转换结点之前必须有用于产生打分的结点。
任何修改数据结点和创建模型结点都会产生打分结点。
e)SAS源代码结点可以定义在流程图的任何步骤。
它不需要由输入数据源结点定义的数据集。