Python数据分析与挖掘实战
上QQ阅读APP看书,第一时间看更新

1.3 数据挖掘的通用流程

目前,数据挖掘的通用流程包含目标分析、数据抽取、数据探索、数据预处理、分析与建模、模型评价。需要注意的是:这6个流程的顺序并不是严格不变的,可根据实际项目的情况进行不同程度的调整。

1.3.1 目标分析

针对具体的数据挖掘应用需求,先要明确本次的挖掘目标是什么,以及系统完成数据挖掘后能达到什么样的效果。因此必须分析应用领域,包括应用领域中的各种知识和应用目标,了解相关领域的有关情况,熟悉背景知识,弄清用户需求。要想充分发挥数据挖掘的价值,必须对目标有一个清晰明确的定义,即确定到底想干什么。

1.3.2 数据抽取

在明确了数据挖掘的目标后,接下来就需要从业务系统中抽取出一个与挖掘目标相关的样本数据子集。抽取数据的标准包括相关性、可靠性、有效性,而且无需动用全部企业数据。精选数据样本不仅能减少数据处理量、节省系统资源,而且能使想要寻找的规律突显出来。

进行数据取样时,一定要严格把控质量。任何时候都不能忽视数据的质量,即使是从数据仓库中进行数据取样,也不要忘记检查其质量。因为数据挖掘是要探索企业运作的内在规律,所以如果原始数据有误,就很难从中探索出规律,就算真的从中探索出了什么“规律”,再依此去指导工作,也很可能会造成误导。若从正在运行的系统中进行数据取样,则更要注意数据的完整性和有效性。

衡量取样数据质量的标准包括:资料完整无缺,各类指标项齐全;数据准确无误,反映的都是正常(而不是异常)状态下的水平。

对于获取到的数据,可再从中抽样。抽样的方式是多种多样的,常见的方式如下。

(1)随机抽样。在采用随机抽样方式时,数据集中的每一组观测值都有相同的被抽中概率。例如,按10%的比例对一个数据集进行随机抽样,则每一组观测值都有10%的概率被抽取到。

(2)等距抽样。如果按5%的比例对一个有100组观测值的数据集进行等距抽样,有,那么抽取的就是第20、40、60、80、100组这5组观测值。

(3)分层抽样。在进行分层抽样操作时,需要先将样本总体分成若干层(或分成若干个子集)。每层中的观测值都具有相同的被选中概率,但对不同的层可设定不同的概率。这样的抽样结果通常具有更好的代表性,进而使模型具有更好的拟合精度。

(4)按起始顺序抽样。这种抽样方式是从输入数据集的起始处开始抽样,对于抽样的数量,可以给定一个百分比,或直接给定选取观测值的组数。

(5)分类抽样。前述几种抽样方式并不考虑抽取样本的具体取值,分类抽样则依据某种属性的取值来选择数据子集,如按客户名称分类、按地址区域分类等。分类抽样的方式就是前面所述的几种方式,只是抽样时以类为单位。

1.3.3 数据探索

前面所叙述的数据取样,或多或少是人们带着对如何实现数据挖掘目的的主观认识进行操作的。当拿到一个样本数据集后,它是否达到设想的要求,其中有没有什么明显的规律和趋势,有没有出现从未设想过的数据状态,属性之间有什么相关性,它可分成哪些类别等,这些都是需要先进行探索的内容。

对所抽取的样本数据进行探索、审核和必要的加工处理,是保证最终挖掘模型的质量所必需的操作。可以说,挖掘模型的质量不会优于抽取的样本的质量。数据探索和预处理的目的是保证样本数据的质量,从而为保证模型质量打下基础。

数据探索主要包括数据校验、分布分析、对比分析、周期性分析、贡献度分析、相关性分析等,有关介绍详见第3章。

1.3.4 数据预处理

当采样数据的表达形式不一致时,如何进行数据变换、数据合并等都是数据预处理要解决的问题。

由于采样数据中常常包含许多含有噪声、不完整甚至不一致的数据,因此需要对数据进行预处理以改善数据质量,并最终达到完善数据挖掘结果的目的。

数据预处理主要包括重复值处理、缺失值处理、异常值处理、简单函数变换、数据标准化、数据离散化、独热编码、数据合并等,有关介绍详见第4章。

1.3.5 分析与建模

样本抽取和预处理都完成后,需要考虑本次建模属于数据挖掘应用中的哪类问题(分类与回归、聚类、关联规则、智能推荐还是时间序列),还需考虑选用哪种算法进行模型构建更为合适。

其中,分类与回归算法主要包括线性模型、决策树、最近邻分类、支持向量机、神经网络、集成算法等;聚类算法主要包括K-Means聚类、密度聚类、层次聚类等;关联规则主要包括Apriori、FP-Growth等;智能推荐主要包括基于内容推荐、协同过滤推荐算法等;时间序列模型主要包括AR模型、MA模型、ARMA模型、ARIMA模型等。

1.3.6 模型评价

在建模过程中会得出一系列的分析结果,模型评价的目的之一就是依据这些分析结果,从训练好的模型中寻找出一个表现最佳的模型,并结合业务场景对模型进行解释和应用。

适用于分类与回归模型、聚类分析模型、智能推荐模型的评价方法是不同的,具体评价方法见第5章。