CRISP-DM--数据挖掘标准流程
Posted yunp-kon
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CRISP-DM--数据挖掘标准流程相关的知识,希望对你有一定的参考价值。
CRISP-DM--数据挖掘标准流程
在1996年的时候,SPSS,戴姆勒-克莱斯勒和NCR公司发起共同成立了一个兴趣小组,目的是为了建立数据挖掘方法和过程的标准。并在1999年正式提炼出了CRISP-DM流程。这个流程确定了一个数据挖掘项目的生命周期包括以下六个阶段:
- 业务/研究理解阶段
- 确认目标:从整体上阐明项目目标和需求
- 挖掘目标(优先级)
- 成功标准(量化)
- 评估环境
- 资源目录
- 需求、假设、约束
- 成本代价比
- 制定项目计划
- 项目计划
- 最初评估项目技术
- 确认目标:从整体上阐明项目目标和需求
- 数据理解阶段
- 收集数据
- 描述数据
- 探索数据
- 评估数据质量:
- 数据成本与质量平衡
- 数据准备阶段
- 选择数据:考虑与业务需求的相关性、数据质量和技术约束等因素
- 清洗数据:通过选择、替换等方法提高数据质量
- 构造数据:构造衍生属性
- 集成数据:同源数据合并和不同源数据合并
- 格式化数据:根据业务需求对数据进行格式化
- 在工业领域,一定要一定要一定要利用现有的知识,首先充分利用现有的知识进行特征提取。在相对成熟的领域一般都已经有现成的解决方案、论文等可以参考。
- 建模阶段
- 选择建模技术:充分利用现有的知识;对同一个挖掘问题可能应用多种不同的技术
- 生成测试设计:分离测试数据和训练数据,定义模型结果验证参数
- 建立模型:列出参数和选择值,评估模型,模型要简单、可靠、可解释性高
- 评估阶段
- 从业务角度评估结果,是否满足阶段一的目标
- 确认解释性:确认业务和研究问题的重要组合部分是否未被清楚地解释
- 审核结果:是否有重要因素被忽略
- 审核模型应用的风险:比如模型不可用的情况,模型的边界
- 评价部署方案:方案的成本、最终的收益、可扩展性、带来的风险等等。
- 部署阶段
- 计划的监控和维护:数据分析实施的计划应用到业务系统中,数据和结果反馈
- 最终的报告
- 项目回顾报告
过程出具的工作结果:分析问题的思维导图、明确项目依据和目标(业务理解和指标细化)、根据数据字典进行数据分析、总结性的数据探索报告、分析计划(维度和度量等指标确定和实现)、最终验证报告、业务实现。
注意:在整个CRISP-DM的过程当中,围绕数据为核心,项目可能会在各个阶段之间跳跃,因为数据分析一定是一个不断迭代的过程。是否可以继续进行下一个阶段取决于是否有达到最初的业务目标,如果业务目标没有达到,那么就要考虑是否是数据不够充分或算法需要调整,一切都以业务目标为导向。
业务/研究理解阶段
确定目标
- 背景:客户方面要给出明确的系统上下文,包括业务相关(比如生产制造工程中,周围环境)等的相关原理、相关运作机制,相关关键信息,而且在尽量容易理解的同时,保证对于业务相关所有量的一个准确描述。
- 从商业角度全面了解客户想要达到什么目标,以及多个目标的重要程度和优先级,并权衡影响醒目结果的重要因素
- 对于期待的结果一定要有量化的衡量,对于主观方式描述的,应该标识哪个或哪些人做出这个主观假设
评价环境
- 列出项目可用的资源:人员(商业专家,数据专家,技术支持人员,数据挖掘人员),数据(是否可以观测数据,实时访问,可以控制)计算资源(硬件平台和软件支持)
- 需求、假设和约束:
- 列出需求:完成项目的时间表,结果和安全方面的可理解性和质量
- 列出假设:可能是数据方面的假设,也可能是作为项目基础的商业有关假设。
- 列出约束:资源可用性,技术约束
- 成本和收益:比较项目成本与项目成功后为商业带来的可能收益
项目计划
- 列出项目需要经历的各个阶段及丰碑性产出
- 定义初步的进程计划并于全部相关人员讨论其可行性,
- 将全部标出的目标和选出的技术何在一起形成一个可以解决商业问题和满足商业成功标砖的连贯过程
- 评估解决和部署方案所需的精力和资源(例如50-70%时间和精力花在数据准备阶段)
- 标注关键步骤,关键点,重审点,主要的重复过程
- 阶段性产出、大众及高层评审、评估策略、更新方案
- 分析时间进度和风险之间的关联
- 应对风险的行动和建议,以及可能出现的结果
- 注意:挖掘过程可能有大量重复的步骤
- 工具和技术的初步评估
- 给出工具和技术选择标准的列表
- 选择可能的工具和技术
- 评估技术的适合层度
- 根据可选方案的评估,审查和筛选合适技术
数据理解阶段
- 收集数据:
- 列出获得的数据集(或多个数据集),包括数据在项目位置,以及获取方法和面临的问题
- 原始数据收集报告:列出项目中药用到的数据,包括更详细数据的筛选要求,并应明确哪些属性比其他属性重要
- 数据需求计划:计划好需要什么信息;检查所要信息是否真正可用
- 记录沉淀问题和解决方案,
- 注意:如何整合多个数据源(可能引起数据质量问题)
- 描述数据:
- 列出已获得的数据,包括数据格式、数据质量等其他外部数据特征
- 数据规模分析
- 表明尽量获取的数据和方法
- 访问数据源
- 若合适的话,使用统计分析
- 给出表及其关系报告
- 检查数据容量、多样性、复杂性
- 数据包含自由文本吗?
- 数据类型和值
- 检查属性的可访问性和可用性
- 检查数据类型(数值,符号、类别等)
- 检查属性值域
- 分析属性相关度
- 从商业角度,理解每个属性和属性值得含义
- 对每个属性,计算基本统计量(分布、均值,最大/小值,标准差,模数,倾斜度)
- 从商业角度,分析基本统计量和叙述与其含义相关的结果
- 属性与挖掘目标有关吗?
- 属性意义被一致应用吗?
- 询问领域专家对于属性相关的看法
- 有必要平衡数据吗?(取决于建模技术)
- 关键点:
- 分析关键信息
- 检查跨表关键信息的交叉数量
- 重审假设/目标
- 探索数据:重点把握数据整体趋势及特殊子集
- 数据探索:
- 细致分析值得关注属性的特征
- 表明子聚集的特征
- 为以后分析提出设想
- 考量和评估数据描述报告中蕴含信息
- 提出假设并表明活动项目
- 若有可能,把假设转换成数据挖掘的一个目标
- 澄清或更精确化数据挖掘目标。盲目地搜寻不是一定没有的,但针对商业目标的搜寻更为可取
- 做基本分析以验证假设
- 数据探索:
- 评估数据质量:
- 验证数据全、正确与否(尤其注意人工收集的数据是否因KPI而人为修改的),错误有多常见?缺失值?问题出现在哪里和出现频率?
- 获取数据的成本与数据质量质量平衡
- 重审键,属性
- 检查覆盖率(可以所有可能性?)
- 检查键
- 属性含义和包含的值是否相符合
- 识别空白字段和缺失属性
- 缺失属性的含义
- 检查值不同确表达类似含义的属性(低脂肪,减肥)
- 检查值得拼写(同一个值有时大写,有时小写)
- 检查偏差,判断偏差是噪音还是暗示着值得关注的现象。
- 检查值得合理性,若所有字段相同和相似的值
- 重审有悖于常识的属性值
- 使用可视化图表,柱状图等来说明数据的不一致性
- 平面文件的数据质量
- 如果数据存储在平面文件中,检查使用了哪个分解符,以及它是否在全部属性中被一致使用
- 如果数据存储在平面文件中,检查每个记录的字段数,他们一致吗?
- 噪音和源之间的不一致性
- 检查不同源之间的一致性和冗余
- 计划好怎样处理噪音
- 甄别噪音数据类型和哪些属性会受影响
- 排除一些行为表现既不肯定也不否定的数据可能是必须的
- 重审全部假设,判断他们是否有效,还是没有提供有关数据和知识的任何信息
列出数据质量检查报告
数据准备阶段
- 选择数据
- 列出被包含/排除数据,并给出理由
- 收集适当的附加数据(从内外不同的来源)
- 做些显著性检验和相关度测试,以判断字段要包括进来
- 依据数据质量和数据探索的经验重新考虑数据选择标准(如可能包含/排除数据)
- 依据健米的经验(例如,模型评估可能需要其他数据集)重下新考虑数据选择标准
- 选择不同的数据子集(例如,不同的属性,锦复合某个条件的数据)
- 考虑抽样技术的使用,根据不同属性重要性或者同一属性的不同值来进行加权抽样可能是有益的
- 记录包含/排除数据的原则
- 检查可用于抽样数据的技术
- 根据数据选择标准,判断若干属性是否比其他属性更为重要,从而赋予这些属性相应权值。
- 清洗数据
- 重新考虑观察到的噪音类型
- 校正、移除或忽略噪音
- 确定如何处理特殊值和其意义。是否是未被提出的问题。另外数据截断时也可能造成特殊值
- 依据数据清洗经验重新考虑数据选择标准
- 数据清洗报告
- 数据质量问题的解决策略和行动描述出来
- 数据应用于挖掘时的潜在数据质量问题,以及对结果的潜在影响
- 构造数据
- 检查可能的构造机制,它与项目建议的工具列在一起
- 对最好是工具内执行构造还是外部构造
- 依据构造经验重新考虑数据选择标准
- 输出派生属性
- 判断属性是否应该规格化
- 考虑通过新属性来添加与属性相应重要性的新信息
- 缺失值应该如何构造或归因?
- 添加新属性到被访问的数据
- 在加入派生属性前,判断是否怎样精简过程或使建模短发容易使用
- 单一属性转换
- 把区间转换成离散字段,有时离散字段转换成数值型
- 整合数据
- 检查可以用来整合给定输入源的整合数据
- 检查源并保存结果
- 根据数据整合经验重新考虑数据选择标准
- 一些知识可能以非电子形式存在
- 格式化数据
- 重排记录,一些工具对顺序有要求
- 重格式化内部值
- 输出数据集描述
建模阶段
- 选择建模技术
- 定义好技术本身对数据的某些假设(如质量,格式,分布)
- 与数据描述报告中的假设进行比较
- 如果有需要,回溯到数据描述报告以确保这些假设写入其中
- 生成测试设计
- 检每个数据挖掘目标对应的现有测试设计
- 确定必要的步骤(重复次数,迭代次数)
- 准备测试数据
- 输出测试计划
- 建立模型
- 记录初始参数以及选择参数的理由
- 在输入数据集上执行选择的技术生成模型
- 后处理数据挖掘的结果(编辑规则,展示树)
- 输出模型描述:
- 描述现有模型的特征,这对将来有用
- 记录用于生成模型的参数设置
- 给出模型详细描述和特殊性质
- 对于基于规则的模型,列出生成的规则和各规则的评价和这个模型的准确度、覆盖率
- 对于隐含模型,列出关于模型的技术信息(如神经网络的拓展结构)和建模过程产生的行为描述(准确度或敏感度)
- 描述模型的表现和解释和遇到的困难
- 给出数据中有关模式的结论(若有的话)有时模型不要独立的评价过程就会揭示出数据的重要事实
- 评估模型
- 根据测试策略测试结果(训练和测试,交叉验证,自举法等)
- 比较评估结果和解释
- 根据成功和评估标准,列出结果的好坏等级
- 用商业术语解释结果(金尽可能延伸)
- 从领域或数据专家哪里获得关于模型的评论
- 检查模型的合理性
- 检查与挖掘目标的冲突
- 与给定的知识库对比检查以判断发现的信息是否是新颖的和有用的
- 检查结果的可靠性
- 分析每个结果的可发布潜力
- 如果对于建立的模型有口语化的描述,试评价规则,他们复合逻辑吗?他们可行吗?他们太多了或太少了?他们违背常识吗
- 评价结果
- 深入研究为什么某个建模技术和参数设置会导致结果的好/差
评估阶段
- 评价结果
- 理解数据挖掘结果
- 参照应用解释结果
- 检查对数据挖掘目标的影响
- 与给定的知识库对比检查以判断发现的信息是否是新颖的和有用的
- 评估和评价与挖掘成功标准有关的结果,实现了最初的目标了吗?
- 比较评估结果并解释
- 根据挖掘成功标准,列出结果的好坏等级
- 检查结果对于最初应用目标的影响
- 会在项目后面或新项目中提出新的商业目标吗
- 对将来的数据挖掘项目给出结论性意见
- 如果时间和预算可以,另一个非必需的评估是在实际应用中同步运行测试模型
- 重审过程
- 对使用的数据挖掘过程做一个全面概述
- 对每一个阶段,有必要回溯吗?
- 对每一个阶段,被最优先执行?
- 有什么方式改善
- 标识失败之处
- 识别有误步骤
- 识别可选活动,过程中意外的分支
- 重审与商业成功标准有关的数据挖掘结果
- 对使用的数据挖掘过程做一个全面概述
- 确认下一步
- 分析每个结果的可发布力
- 估计当前过程可改善的钱来空间
- 检查遗留资源以判断是否允许再过程重复(或还需要额外资源)
- 对多个可选后续火星给出建议
- 修订过程计划
部署阶段
- 规划部署
- 概述可部署的结果
- 制定和评估可备选的部署计划
- 确定明确无误的知识或信息结果
- 知识或信息如果传播到用户?
- 结果的使用如何被监控或如何衡量其获益(在合适的地方)?
- 模型或软件结果如果在公司系统内部部署?
- 使用如果受监控或如何衡量其获益(在合适的地方)?
- 识别部署数据挖掘结果时可能出现的问题(部署的缺陷)
- 规划监控和维护
- 检查呈动态的表现方面(如,环境中为什么会改变)
- 如何监控准确性
- 何时不再使用 数据挖掘结果或模型?给出标准(有效性,准确度阈值,新数据,应用范围变化等等)?如果模型或结果不再被使用了会怎样?(更新模型,提出新的数据挖掘项目)
- 模型使用的商业目标会随时间而改变吗?完整的记录模式试图解决的原始问题
- 制定监控和维护计划
- 生成最终报告
- 确定需要什么样的报告(ppt,详细结论,模型解释?等等)
- 描述整个过程,表明带来哪种成本,说明原始计划的偏差,描述计划执行并给出将来工作哦的建议
- 明确报告的目标群体
- 列出报告的大致结构和目录
- 挑选需要写入汇报的结论
- 撰写报告
- 确定最终称述放人目标部门
- 从最终报告中选择要写入最终描述的条目
- 回顾项目
- 与参与项目的重要成员接触,询问项目期间的获得的经验
- 若商业运行中终端用户使用了挖掘结果,询问他们满意吗?改善点?其他支持?
- 对反馈总结并写出经验文档
- 分析整个过程(好的地方,错误的地方,教训)
- 记录下详细的数据挖掘过程(使用模型的结果经验反馈回来的怎么样)
- 从细节抽取对将来项目有用的经验
以上是关于CRISP-DM--数据挖掘标准流程的主要内容,如果未能解决你的问题,请参考以下文章
CRISP-DM (cross-industry standard process for data mining)跨行业数据挖掘过程标准