应用SAS/EM进行数据挖掘 赛仕软件研究所(上海)有限公司
议程 数据挖掘概述 SAS数据挖掘项目方法论及工具SAS/EM简介 Workshop
企业决策支持信息系统 决策支持 企业知识 OLTP 数据仓库 查询报表 OLAP 统计分析 数据挖掘 DM & Analysis 1st Qtr 2nd Qtr 3rd Qtr 4th Qtr PowerPlay File Edit Data Values Display Text Legend Location 1992 All Products Age groups Revenue($000) 查询报表 OLAP 统计分析 数据挖掘 决策支持 企业知识 OLTP 数据仓库 DM & Analysis Solution Application for C/S & B/S CBI Solution DW Solution
什么是数据挖掘? 定义: 从海量的数据库中选择、探索、识别出有效的、新颖的、具有潜在效用的乃至最终可理解的模式以获取商业利益的非平凡的过程 -Fayyad,Piatetsky-Shapiro 特征: 处理海量的数据; 揭示企业运作中的内在规律; 为企业运作提供直接决策分析,并为企业带来巨大经济效益。
数据挖掘全过程 数据 仓库 解释评价 数据挖掘 数据变换 数据预处理 知识 模式 数据抽取 变换后 数据 处理后 数据 待分析 数据 Source :”From Data Mining to Knowledge Discovery: An Overview”, Advances in Knowledge Discovery and Data Mining, AAAI Press/The MIT Press.
数据挖掘涉及领域 神经计算 数据库 知识发现 数据挖掘 统计学 模式 识别 机器学习 人工 智能
数据挖掘算法(按有无目标变量) 有监督算法 无监督算法 预测 分类 探索 关联 (有目标变量) (无目标变量) 关联/序列分析 传统回归 无 有监督算法 无监督算法 (有目标变量) (无目标变量) 传统回归 无 神经网络 决策树 逻辑/概率回归 决策树 聚类 神经网络 神经网络 判别分析 基于记忆的推理 决策树 主成分分析 聚类 关联/序列分析 连接分析 因子分析 预测 分类 探索 关联
数据挖掘算法(按分析目的) ① 预测 用过去的数据预测 未来发生什么 ② 描述 用过去的数据 描述 现在发生了什么 预测算法 预测未来 - 神经元网络 - 决策树 - 回归 预测未来 发生的可能性 历史数据 ② 描述 用过去的数据 描述 现在发生了什么 描述算法 - 聚类 - 关联 描述现在 已经发生的规律 历史数据
数据挖掘算法 回归算法:线性回归、逻辑回归、概率回归 统计方法:主成分分析、因子分析、判别分析等 关联算法:关联模式、序列模式、连接分析等 聚类算法:Cluster、SOM/Kohonen 神经元网络:MLP、RBF 决策树:CHAID、CART、C4.5、C5.0
数据挖掘常用算法 x2 x2 x1 x1 希望预测“绿点”在哪些情况下发生以及发生的概率 1.0 1.0 0.8 0.8 0.6 0.6 ① 预测型 – 回归 希望预测“绿点”在哪些情况下发生以及发生的概率 使用简单线性 使用一元二次项 x2 0.0 0.2 0.4 0.6 0.8 1.0 x1 x2 0.0 0.2 0.4 0.6 0.8 1.0 x1
数据挖掘常用算法 希望预测“绿点”在哪些情况下发生以及发生的概率 103 59% yes no 7 0% 96 63% ① 预测型 – 决策树 希望预测“绿点”在哪些情况下发生以及发生的概率 Quoted price Lower limit price (ratio) time < 10 0.8 ratio < .39 ratio < 84 103 59% 0.6 0.4 Time < 13 yes no 7 0% 96 63% 0.2 9 10 11 13 15 Time
数据挖掘常用算法 希望预测“绿点”在哪些情况下发生以及发生的概率 ① 预测型 – 神经元网络 Y1 = f1(x). Y2 = f2(x). Y = f1(x) + f2(x) + f3(x) time method # of order ratio # of ordered items Y2 = f2(x). Y3 = f3(x).
数据挖掘常用算法 了解客户购买哪些产品组合 A B C A C B A D C D D B E C E Combination A D ② 描述型 – 关联 了解客户购买哪些产品组合 A B C A C B A D C D D B E C E Combination A D A C C A B & C D Support 2/5 1/5 Confidence 2/3 2/4 1/3
数据挖掘常用算法 把具有相似行为的客户分到一群 cluster1 cluster5 cluster3 cluster2 cluster4 ② 描述型 – 聚类 把具有相似行为的客户分到一群 cluster4 cluster3 cluster1 cluster2 cluster5 Quoted Price Average Price Quoted amount Total amount
议程 数据挖掘概述 SAS数据挖掘项目方法论及工具EM简介 Workshop
SAS 数据挖掘项目方法论 定义业务问题 系统环境评估 数据准备 模型实施 回顾与评价 反复挖掘数据 (SEMMA) 探索(E) 考察业务情况 提出业务问题 考察数据可用性 制定业务计划 选择数据挖掘方法 探索(E) 调整(M) 建模(M) 评估(A) 抽样(S) 系统环境评估 评估系统环境 评估企业准备情况 评估IT环境 选择软硬件环境 规划实施体系结构 数据准备 创建数据挖掘环境 检查和校验数据 准备数据 模型实施 设计模型集成的体系结构 生成管理和业务报告 清理数据使其可用 把模型应用于生产 回顾与评价 回顾模型对企业生产的效果 回顾投资回报 回顾模型的性能
国际标准的全方位的 统计分析和数据挖掘工具 企业化经典统计数据分析工具 Thin Client: Enterprise Guide 统计分析:STAT,LAB,INSIGHT 计量经济学与时间序列分析:ETS 运筹优化:OR 质量控制与质量提高:QC 矩阵编程语言:IML 图形与分析工具:GRAPH Thin Client: Enterprise Guide 数据挖掘工具:SAS/Enterprise Miner 傻瓜兼专家型
EM基本介绍 EM特色 EM界面 SEMMA方法论 节点简介 节点通用概貌
SAS/EM特色 支持广泛的平台包括各种UNIX,MVS,OS/390,Linux 可访问的数据源多达50多种,和数据库,数据仓库很好的集成 Client/Server结构。 SEMMA方法论引导,将数据挖掘功能模块组成处理流程图,可视化,图形化,拖拽式操作界面,适用于业务和技术人员 丰富的可视化数据探索节点,对数据进行细致分析 提供多种数据预处理和变换工具,包括变量自动选择等功能 提供丰富的数据挖掘模型和灵活的算法: 决策树,神经元网络,回归,基于记忆的推理,两阶段模型,K均值聚类,自组织映射及其他统计方法,以及模型组装技术(Ensemble) 提供模型评估模块和多种评估准则 提供完整的数据挖掘模型代码输出和打分(Scoring)功能 报告工具可以将整个数据挖掘流程和结果生成HTML格式的详细的报告,与其它业务专家和数据挖掘专家共享。
SAS/EM 界面
SAS数据挖掘过程方法论-SEMMA 数据取样 SAMPLE 选数据样本? 数据探索 EXPLORE 可视化 聚类分析 和分类 数据调整 MODIFY 数据重组 和细分 添加和变换 变量 模式化 MODEL 决策树模型 数理统计 分析 人工神经 网络 时间序列 评价 ASSESS 新数据 预测 结论综合 和评价
节点简介:Sampling类节点 Input Data Sampling Data Partition 确定数据源。 提供多种抽样方法,如简单随机抽样、分层抽样、分类抽样等。 Data Partition 将数据划分为训练(Train)、检验(Validation)、测试(Test)数据,以避免模型过拟合。
节点简介: Explore类节点 Distribution Explorer Multiplot SAS/INSIGHT 提供数据的多维分布图,以了解变量的趋势和特色 Multiplot 提供所有变量的分布图及对KOV的关系图 SAS/INSIGHT 提供交互式直观统计分析 Variable Selection 提供选择对KOV重要的KIVs的功能 Association 提供关联分析和序列分析 Link Analysis 提供连接关系分析
节点简介: Modify类节点 Data Set Attributes Filter Outliers 设置或改变数据集与变量的属性 Filter Outliers 提供处理数据集中异常点、稀缺值的功能 Transform Variables 提供变量变换的功能 Data Replacement 数据集中数据的替换和校正,主要用于处理缺失数据 Cluster 提供多种方法的聚类分析(K-mean) SOM/Kohonen 自组织特征映射网络据进行分类
节点简介: Model类节点 Regression Decision Tree Neural Network 提供多元回归、 逻辑/概率回归及自动选择变量变量的功能 Decision Tree 决策树,支持CHAID, CART, ID3/ C4.5等算法 Neural Network 提供MLP、RBF等网络结构,及多种调整方法 User Defined Model 为SAS程序编制的模型提供统一的模型评价界面 Ensemble 提供模型整合的功能,如Combine, Stratified, Bagging&Boosting Two-Stage Model 两阶段模型 Memory Based Reasoning
节点简介: Assess类节点 Assessment Reporter 对不同模型提供图形化比较:“哪一个模型最好?” 自动生成HTML格式报告
节点简介: Scoring类节点 Score C*Score 可输出SAS/BASE方式的预测代码 可用于对新的数据集进行预测 可输出 C code的预测代码
节点简介: Utilities类节点 SAS Code Group Processing Subdiagram Control Point 提供分组处理的功能 Subdiagram 建立模型流程子表,方便管理 Control Point 控制流程执行,方便管理 Data Mining Database (DMDB) 建立DMDB(Meta Data)
节点通用概貌 In/Out Data Properties(选择,浏览) Data/Variables/Log/Output/Notes等Tab 修改节点后的自动保存 节点的下拉菜单
SAS/EM处理示例 源数据 预处理 建模 模型应用
议程 数据挖掘概述 SAS数据挖掘项目方法论及工具EM简介 Workshop
Workshop(信用风险建模) 业务问题 用于建模的数据 建模前的数据处理 建立预测模型 模型的评估 模型实施
信用风险的业务问题 客户从商业机构获得资金、产品或服务,承诺在未来某天或某段时间内偿还他所使用的资金、产品或服务,并支付一定的费用 一个“坏账”客户带来的损失相当于数百个“好”客户给您带来的收益 信用管理者要求提供对风险进行定量的度量,以及根据其风险大小决定采取何种最佳措施以减低将来的损失
定义我们关注的高信用风险 申请信用时关注的风险 客户使用过程中关注的风险 催收欠费过程中关注的风险 Profitable? 将来拖欠的可能性很大 …… 客户使用过程中关注的风险 信用卡欺诈 客户拖欠偿还我提供的信用?多久才是高风险? 催收欠费过程中关注的风险 无法收回?
信用周期 - Applying 内部信息 政策/内部规则 申请打分引擎 Strategy 拒绝 接受 信用额度 利息 其他条件 信用署数据 客户申请表 内部信息 Strategy 接受 信用额度 利息 其他条件 拒绝 信用署数据 其他外部信息 政策/内部规则 申请打分引擎 (App Scoring Engine) 信控人员 申请记分卡:当客户向银行申请信用卡时使用的信用记分卡。 客户填写一张申请表,使用申请计分模型计算他所得到的分值,然后根据不同的分值按照cut-off点,拒绝或接受该申请人,并按照事先确定的Strategy给定不同的信用额度、利息,是否要预付费等。
信用周期 - Behaviour 行为打分引擎(Beh Scoring Engine) 新的Strategy: Inc/Dec Limit 消费 存现/取现 …… 移管(Transfer) 拖欠(Delinquent) 客户消费情况 6/15 7/15 7/31 8/10 9/17 消费期 对帐单 到期日 最后期限 行为记分卡:客户使用信用卡期间使用的记分卡模型,对他的消费行为进行打分。 使用客户历史消费情况数据,通过行为记分模型计算他所得到的分值,然后根据不同的分值,并按照事先确定的Strategy给予增加或减小信用额度、提高或降低信用卡级别等。并可通过分析行为模式确定是否要向其推销相关产品(x-selling or up-selling) 行为打分引擎(Beh Scoring Engine) 新的Strategy: Inc/Dec Limit X-selling
信用周期 - Collection 催帐单 email 收集打分引擎 电话 …… 全部偿还Recovery 9/17 部分偿还 损 失 (Col Scoring Engine) 收集记分卡:收账期间使用的记分卡模型,对他收账的可能性进行打分。 对于被移管(Transfer)的客户,通过收集记分模型计算他所得到的分值,然后根据不同的分值和策略,可以将得分最低的(最不可能还钱的)卖给专门的债务公司,其他的人可以按照不同的方式电话,账单甚至上门催缴。 全部偿还Recovery 9/17 部分偿还 损 失 ! 被移管的客户 Write-off Strategy 卖给债务代理公司
Workshop(信用风险建模) 业务问题 用于建模的数据 建模前的数据处理 建立预测模型 模型的评估 模型实施
定义所需数据 确定业务问题,找出您想预测的事物 历史数据必须包含您想预测的事物(目标变量) 其它的变量包括客户的属性,交易数据。 使用最新的数据 。
信用风险分析数据集市 目标变量 ... ... ... ... ... ... ① 哪些客户? ... ... ... . . . . . . . . . . . ... ② 哪些属性?
① 哪些客户? current observation window Performance window
Target Definition Exclusion Bad Indeterminate Good 定义一个客户是“好”的,还是“坏”的,“无法确定的”等等
② 哪些属性? 拖欠信息 信用信息 其他相关信息 信用署信息 背景数据 年龄 在过去9个月中拖欠超过30天的次数 性别 拖欠超过60天的次数 地区 拖欠信息 在过去9个月中拖欠超过30天的次数 拖欠超过60天的次数 最后付款日期 信用信息 开户日期、余额 消费金额、偿还金额 卡数量、卡用途 其他相关信息 是否本银行的客户 多长时间 上一次贷款日期 信用署信息 no of outstanding loans no of current loans no of finished loans
使用业务知识派生变量 新的变量 比率 差分,移动平均,趋势,…… 其它??? 前3月内余额大于0的次数 前3月内透支超过10天的次数 最后一次消费距今的天数 …… 比率 前1/2/3月平均余额/n个月平均余额 前1/2/3月消费额/n个月消费额 差分,移动平均,趋势,…… 观察使用量的动态状况 其它???
使用RFM方法派生变量 Money Recency Frequency T-1月余额 T-2月余额 T-3月余额 过去三个月/六个月内最大,最小,平均余额 …… Recency 最后一次余额>0元距今天数 余额连续2次<=0的时间距今天数 余额连续3次<=0的时间距今天数 Frequency 余额<=0元的次数 余额连续2次<=0的次数 余额连续3次<=0的次数
Workshop(信用风险建模) 业务问题 用于建模的数据 建模前的数据处理 建立预测模型 模型的评估 模型实施
数据挖掘与采样 是否需要进行采样? 数据在采样前需要进行什么处理? 数据挖掘中所用到的一般采样类型。 如何决定样本大小? 数据挖掘中采样的指导策略。 对于某些特定的目的,如验证和测试,是否应该采用多重采样?
针对小概率事件的过采样 Good 数据挖掘研究对象通常是一些小概率事件(信用卡欺诈,客户流失等)。我们常常采用一种分层采样技术(称为选择采样,choice-based sampling , a.k.a. case-control sampling)来建立训练数据集。在选择采样(Scott and Wild 1986)中,数据根据研究对象而分层,再对不同的层分别采样,使小概率的研究对象特征凸现。使用选择采样技术,甚至根据需要进行少量的过采时,得出的模型都要比随机采样精确。当然它的结果要对过采样做出修正。 另一个问题是我们到底需要多少数据来进行数据挖掘。在决定这个问题时我们必须考虑我们所研究的事件。如果有1,200,000条交易,其中只有500条是有欺诈行为的。我们应该取多少数据进行研究?大家可以尝试一下,假如我们研究的是欺诈预测模型,最有效的抽样数是接近500还是接近1,200,000。 Bad
数据分割 校验 训练 在数据挖掘中,最公正的模型评估技术是数据分割。分割后一部分数据用于模型训练—称为训练数据集。另一部分用于进行模型的经验评估。 校验(确认)数据通常用于监视和调节模型的训练过程,提高模型的性能(例如:防止过拟合)。调节过程通常包括模型的筛选,然后利用确认数据优化选中的模型。 测试数据集只有一个作用:给生成的模型一个公正的评估。因此,我们要象对待新数据一样对待测试数据。它必须与参与模型生成的数据没有任何关联。除非我们无需对模型进行一个最终的公证评估,例如有使我们只想了解模型最佳解的可能性。这时如果把测试数据转成确认数据,会有更好效果。 当数据量较少时,数据分割会无助于研究;样本数量减少会导致模型拟合程度的快速退化。一些基于电脑的算法,例如cross-validation和bootstrap,可以使同一批数据不相关的同时用来训练和测试。但无论如何,数据挖掘都是建立在大数据集上的奢侈品。 测试
Exploration 阶段 通过探索去理解您的数据 显现您的数据 使用Variable Selection工具发现最有影响的变量- 降维 Insight Distribution Explorer Multiplot 使用Variable Selection工具发现最有影响的变量- 降维
Distribution Explorer节点 交叉报表 简单的汇总分析
Multiplot 节点 为每个变量自动生成直方图。 同时标明每个变量对目标的影响。
Modify 阶段 根据所用的模型进行数据调整 优化您的数据 极值,异常值 缺失值 变量转换 定义最优的输入域 处理共线性 建立新的变量 改变分布的形状 定义最优的输入域 处理共线性
Replacement 节点 包括基于决策树逻辑的缺失值处理。 为修正变量建立指示器
Transform Variables 节点 提供各种变量转换,包括为了优化二元目标变量预测而对变量进行自动分装。
Variable Selection 节点 根据目标变量快速确定输入变量 (“model screening”)。 描述它们拟合线型模型的框架 (regression/ANOVA)。 单变量R-平方及相关检验。 建立新的变量组 (AOV16) 与降低分类变量的类型。
Workshop(信用风险建模) 业务问题 用于建模的数据 建模前的数据处理 建立预测模型 模型的评估 模型实施
建立预测模型 回归,神经网络和决策树等。 Good/Bad作为分析目标。
EM回归节点 回归方法描述一个变量如何的依赖另一个变量。
EM神经网络节点 提供基本选项给普通用户 “智能”设定其它的复杂参数
EM决策树节点
Workshop(信用风险建模) 业务问题 用于建模的数据 建模前的数据处理 建立预测模型 模型的评估 模型实施
Assessment 阶段 Lift Charts(又叫 gains chart) 利润/损失图(Profit/Loss Charts) 投资效益比图(ROI) 诊断分类图 ROC Charts 各种基于临界值的图形(Threshold-based Charts)。
Assessment 节点
结果的鉴别 好 中 差 ROC 增益 累计增益 ROC: Receiver operating characteristic. Gains chart is graphical assessment tool for binary targets: Calculate the posterior probabilities for each case in the (validation) data. Rank the estimated posterior probabilities Dordered cases evenly into groups (often deciles) 中 差
二值目标的混淆矩阵(Confusion Matrix) 预测结果 1 正确的 否定 错误的 肯定 实际否定 合计 混淆矩阵是预测值与实际结果的双向列联表。 每当我们将一个物体归入某一类别时,我们冒着出错的风险。在多类别问题中,某些分类错误要比其它分类错误危害更大。处理这种问题的一种定量分析的方法就是引入代价(损失)函数。 实际 结果 错误的 否定 正确的 肯定 实际肯定 合计 1 否定合计 肯定合计
分界(Cutoff)概率 较高的分界概率 (.5) x2 较低的分界概率 (.1) x1 1.0 0.8 0.6 0.4 0.2 0.0 使用贝叶斯估计(Bayes rule),假设这两种错误(棕判断为绿和绿判断为棕)的损耗比等于3。 选择较高的分界概率会截取响应曲面上较小的山峰,在投影图上显示为较小的椭圆。这样会有较少的棕点被误判为绿点,但同时有更多的绿点被误判为棕点。分界概率为0.5意味着两种误判的概率是均等的。 选择较低的分界概率会截取大片的山峰,在投影图上显示为较大的椭圆。较少的绿点被误判为棕点,但更多的棕点被误判为绿点。分界概率为0.1意味着把绿点误判为棕点的概率是把棕点误判为绿点的1/9。 (Bayes rule,事后估计或后验估计。为了使事前信息和样本结合起来以提供一个全面的最终估计) 0.4 较低的分界概率 (.1) 0.2 0.0 0.0 0.2 0.4 0.6 0.8 1.0 x1
Workshop(信用风险建模) 业务问题 用于建模的数据 建模前的数据处理 建立预测模型 模型的评估 模型实施
模型实施 我们可以用模型来做什么?? 评分 策略 执行 监控 集成 在我们开发出预测模型后,模型必须被应用到新的案例中去。这个过程叫做计分(Scoring)。
Scoring 模型实施 集成到现有的业务系统,决策支持系统中。 在线客户服务系统 模型开发 例如欺诈监测系统,模型最终要被集成到在线监控系统中。
设计Strategy 收益模拟 压力测试 R=信用额度*使用率*利息*人数*(1-p(呆帐)) Loss=信用额度*人数*p(呆帐) 使P=Revenue – Loss最大化 压力测试 经济发展 p(呆帐) 经济萧条 p(呆帐)
信用记分模型实施的时间窗 Time Model Applied Prediction of Good/Bad Actions taken 1 month
结束