《数据挖掘:实用案例分析》——3.2 数据挖掘建模过程

3.2 数据挖掘建模过程

  广州TipDM团队在多年的数据挖掘项目实施过程中,积累了一套行之有效的数据挖掘方法论,数据挖掘建模过程如图3-2所示。

3.2.1 定义挖掘目标

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

《数据挖掘:实用案例分析》——3.2 数据挖掘建模过程

3.2.2 数据取样

  数据采集前首要考虑的问题包括:

《数据挖掘:实用案例分析》——3.2 数据挖掘建模过程

  在明确了需要进行数据挖掘的目标后,接下来就需要从业务系统中抽取出一个与挖掘目标相关的样本数据子集。抽取数据的标准,一是相关性,二是可靠性,三是最新性。而不是动用全部企业数据。通过数据样本的精选,不仅能减少数据处理量,节省系统资源,而且能通过数据的筛选,使想要反映的规律性更加突显出来。

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

  衡量取样数据质量的标准包括:

  1)资料完整无缺,各类指标项齐全。
  2)数据准确无误,反映的都是正常(而不是反常)状态下的水平。

  对获取的数据,可再从中作抽样操作。抽样的方式是多种多样的,包括:

《数据挖掘:实用案例分析》——3.2 数据挖掘建模过程

3.2.3 数据探索

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

  这里的数据探索,就是我们通常所进行的深入调查的过程。你最终要达到的目的可能是要搞清多因素相互影响的、十分复杂的关系。但是,这种复杂的关系不可能一下子建立起来。一开始,可以先观察众多因素之间的相关性,再按其相关的程度,以了解它们之间相互作用的情况。这些探索、分析,并没有一成不变的操作规律性,因此要有耐心地反复试探,仔细观察。在此过程中,原来的专业技术知识是非常有用的,它会帮助你进行有效的观察。但是,你也要注意,不要让你的专业知识束缚了你对数据特征观察的敏锐性。可能实际存在着先验知识认为不存在的关系的情况,假如数据是真实可靠的话,那么绝对不要轻易地否定数据呈现的新关系,很可能这里就是发现的新知识。有了它,也许会在此后的分析中,引导你得出比原有的认识更加符合实际的规律性知识。假如在操作中出现了这种情况,应当说,数据挖掘已挖到了有效的矿脉。

  对所抽取的样本数据进行探索、审核和必要的加工处理,是保证预测质量所必需的。可以说,预测的质量不会超过抽取样本的质量。数据探索和预处理的目的是为了保证样本数据的质量,从而为保证预测质量打下基础。

  数据探索主要包括:异常值分析、缺失值分析、相关分析、周期性分析、样本交叉验证等。

3.2.4 预处理

  当采样数据维度过大,如何进行降维处理,采样数据中的缺失值如何处理,这些都是数据预处理要解决的问题。

  由于采样数据中常常包含许多含有噪声、不完整、甚至是不一致的数据。显然对数据挖掘所涉及的数据对象必须进行预处理。那么如何对数据进行预处理以改善数据质量,并最终达到完善最终的数据挖掘结果的目的呢?

  数据预处理主要包括以下内容。

  1.数据筛选

  通过数据筛选可从观测值样本中筛选掉不希望包括进来的观测值。对于离散变量可给定某一类的类值说明此类观测值是要排除于抽样范围之外的。对于连续变量可指定其值大于或小于某值时的这些组观测值是要排除于抽样范围之外的。

  2.数据变量转换

  将某一个数据进行某种转换操作,然后将转换后的值作为新的变量存放在样本数据中。转换的目的是为了使数据和将来要建立的模型拟合地更好。例如,原来的非线性模型线性化、加强变量的稳定性等。数据变量可进行取幂、对数、开方等转换。当然,也可给定一个公式进行转换。

  3.缺失值处理

  数据缺失在许多研究领域都是一个复杂的问题。对数据挖掘来说,空值的存在,造成的影响主要有:

《数据挖掘:实用案例分析》——3.2 数据挖掘建模过程

  数据挖掘算法本身更致力于避免数据过分适合所建的模型,这一特性使得它难以通过自身的算法去很好地处理不完整数据。因此,空缺的数据需要通过专门的方法进行推导、填充等,以减少数据挖掘算法与实际应用之间的差距。

  4.坏数据处理

  如果抽取数据中存在坏数据(脏数据),则需要对坏数据进行预处理。通常的做法是采用绝对均值法或莱因达法等对样本中的坏点数据进行剔除处理。

  5.数据标准化

  数据标准化的目的就是要消除变量间的量纲关系,从而使数据具有可比性。比如一个百分制的变量与一个5分制的变量在一起怎么比较?只有通过数据标准化,都把它们标准到同一个标准时才具有可比性,一般标准化采用的是Z标准化,即均值为0,方差为1,当然也有其他标准化,比如0-1标准化等,可根据研究目的进行选择。

  6.主成分分析

  主成分分析(PCA)是指用几个较少的综合指标来代替原来较多的指标,而这些较少的综合指标既能尽可能多地反映原来较多指标的有用信息,且相互之间又是无关的。

  PCA运算就是一种确定一个坐标系统的直交变换,在这个新的坐标系统下,变换数据点的方差沿新的坐标轴得到了最大化。这些坐标轴经常被称为是主成分。PCA运算是一个利用了数据集的统计性质的特征空间变换,这种变换在无损或很少损失了数据集的信息的情况下降低了数据集的维数。

  7.属性选择

  属性选择是数据预处理的一部分,因采集的数据中的每一个属性对于整个数据的挖掘结果的作用不是完全对等的,一些属性对结果的影响占主导地位,一些属性对结果的影响不大,甚至没有影响。采用相应的算法,对数据的属性值进行评估,如去掉某个属性后对挖掘结果无影响,从而减少后续挖掘算法的运行时间,同时也能有效地去除数据中含有的噪声数据。

  如果建模数据集的维度较高,或输入属性与输出属性的相关性不明确时,对其进行属性选择是必要的步骤。综合考虑应用实现的复杂性,可使用标准属性选择方法,用一个评估标准对属性的有用性进行度量,并选择其最有用的一部分属性作为下一部分算法的输入。为了确定属性选择的标准,可选用多种方法进行属性评价,选出5~10个不同的属性,然后对于处理后的数据集进行测试,综合评价维度约减前后的预测模型的性能及效果。

  属性选择用于对属性进行筛选,搜索数据集中全部属性的所有可能组合,找出预测效果最好的那一组属性,一般在预处理阶段进行。为实现这一目标,必须设定属性评估器和搜索策略。属性评估器是对属性/属性子集进行评估确定,决定了怎样给一组属性安排一个表示它们好坏的值。搜索策略确定搜索算法,决定了要怎样进行搜索。

  8.数据规约

  把繁杂的样本数据信息进行数据规约,简化以后存储在数据表中,避免数据的不一致性。

3.2.5 模式发现

  样本抽取完成并经预处理后,接下来要考虑的问题是:本次建模属于数据挖掘应用中的哪类问题(分类、聚类、关联规则或者时序模式),选用哪种算法进行模型构建?

  模型构建的前提是在样本数据集中发现模式,比如关联规则、分类预测、聚类分析、时序模式等。在目标进一步明确化的基础上,我们就可以按照问题的具体要求来重新审视已经采集的数据,看它是否适应挖掘目标的需要。

  针对挖掘目标的需要可能要对数据进行增删,也可能按照对整个数据挖掘过程的新认识,要组合或者生成一些新的变量,以体现对状态的有效的描述。

  在挖掘目标进一步明确、数据结构和内容进一步调整的基础上,下一步数据挖掘应采用的技术手段就更加清晰、明确了。

3.2.6 模型构建

  确定了本次建模所属的数据挖掘应用问题(分类、聚类、关联规则或者时序模式)后,还需考虑:具体应该采用什么算法,实施步骤是什么?

  这一步是数据挖掘工作的核心环节。模型构建是对采样数据轨迹的概括,它反映的是采样数据内部结构的一般特征,并与该采样数据的具体结构基本吻合。对于预测模型(包括分类与回归模型、时序预测模型)来说,模型的具体化就是预测公式,公式可以产生与观察值有相似结构的输出,这就是预测值。预测模型是多种多样的,可以适用于不同结构的样本数据,因此,对一个具体采样数据,就有选择适当预测模型的问题。正确选择预测模型在数据挖掘过程中是具有关键性的一步。有时由于模型选择不当,造成预测误差过大,就需要改换模型。必要时,可同时采用几种预测模型进行运算以便对比、选择。对建立模型来说,要记住最重要的就是它是一个反复的过程。需要仔细考察不同的模型以判断哪个模型对问题最有用。

  预测模型的构建通常包括模型建立、模型训练、模型验证和模型预测4个步骤,但根据不同的数据挖掘分类应用会有细微的变化,本书在第二部分中对每个案例的建模步骤都有详细描述。

3.2.7 模型评价

  模型评价的目的是什么?如何评价模型的效果?通过什么评价指标来衡量?

  从前面的建模构建过程中会得出一系列的分析结果、模式或模型。同一个采样数据可以利用多种数据分析方法和模型进行分析,模型评价的目的之一就是从这些模型中自动找出一个最好的模型出来,另外就是要针对业务对模型进行解释和应用。

  模型效果评价通常分两步,第一步是直接使用原来建立模型的样本数据来进行检验。假如这一步都通不过,那么所建立的决策支持信息价值就不太大了。一般来说,在这一步应得到较好的评价。这说明你确实从这批数据样本中挖掘出了符合实际的规律性。第一步通过后,第二步是另外找一批数据,已知这些数据是反映客观实际的、规律性的。这次的检验效果可能会比前一种差,差多少是要注意的,若是差到所不能容忍程度,那就要考虑第一步构建的样本数据是否具有充分的代表性,或是模型本身是否够完善。这时候可能要对前面的工作进行反思了。若这一步也得到了肯定的结果时,那所建立的数据挖掘模型应得到很好的评价了。

  对预测模型和聚类模型的评价方法是不同的。

  1.预测模型评价

  预测模型对训练集进行预测而得出的准确率并不能很好地反映分类模型未来的性能,为了能预测一个分类模型在新数据上的性能表现,需要一组没有参与分类模型建立的数据集,并在该数据集上评估分类器的准确率,这组独立的数据集叫测试集。这是一种基于验证的评估方法,常用的方法有保持法、随机二次抽样、自助法、交叉验证等。

  模型预测效果,通常用相对绝对误差、平均绝对误差、根均方差、相对平方根误差等指标来衡量。

  (1)绝对误差与相对误差

  设表示实际值,表示预测值,则称E为绝对误差(Absolute Error),计算公式如下:

《数据挖掘:实用案例分析》——3.2 数据挖掘建模过程

  称e为相对误差(Relative Error),计算公式如下:

《数据挖掘:实用案例分析》——3.2 数据挖掘建模过程

  有时相对误差也用百分数表示:

《数据挖掘:实用案例分析》——3.2 数据挖掘建模过程

  这是一种直观的误差表示方法。

  (2)平均绝对误差

  平均绝对误差(Mean Absolute Error,MAE)定义如下:

《数据挖掘:实用案例分析》——3.2 数据挖掘建模过程

式中各项的含义如下:

《数据挖掘:实用案例分析》——3.2 数据挖掘建模过程

  由于预测误差有正有负,为了避免正负相抵消,故取误差的绝对值进行综合并取其平均数,这是误差分析的综合指标法之一。

  (3)均方误差

  均方误差(Mean Squared Error,MSE)定义如下:

《数据挖掘:实用案例分析》——3.2 数据挖掘建模过程

式中,表示均方误差,其他符号同前。

  本方法用于还原平方失真程度。

  均方误差是预测误差平方之和的平均数,它避免了正负误差不能相加的问题。由于对误差进行了平方,加强了数值大的误差在指标中的作用,从而提高了这个指标的灵敏性是一大优点。均方误差是误差分析的综合指标法之一。

  (4)均方根误差

  均方根误差(Root Mean Squared Error,RMSE)定义如下:

《数据挖掘:实用案例分析》——3.2 数据挖掘建模过程

式中,表示均方根误差,其他符号同前。

  这是均方误差的平方根,代表了预测值的离散程度,也叫标准误差,最佳拟合情况为=0。均方根误差也是误差分析的综合指标之一。

  均方根误差代表两种估算值的变异程度指标,均方根误差最佳拟合情况为=0。

  (5)平均绝对百分误差

  平均绝对百分误差(Mean Absolute Percentage Error,MAPE)定义如下:

《数据挖掘:实用案例分析》——3.2 数据挖掘建模过程

式中,表示平均绝对百分误差。一般认为小于10时,预测精度较高。

  (6)Kappa统计

  Kappa统计是比较两个或多个观测者对同一事物,或观测者对同一事物的两次或多次观测结果是否一致,以由于机遇造成的一致性和实际观测的一致性之间的差别大小作为评价基础的统计指标。Kappa统计量和加权Kappa统计量不仅可以用于无序和有序分类变量资料的一致性、重现性检验,而且能给出一个反映一致性大小的“量”值。

  Kappa取值在[?1,+1]之间,其值的大小均有不同意义。

《数据挖掘:实用案例分析》——3.2 数据挖掘建模过程

  (7)识别准确度

  识别准确度(Accuracy)定义如下:

《数据挖掘:实用案例分析》——3.2 数据挖掘建模过程

  (8)识别精确率

  识别准确率(Precision)定义如下:

《数据挖掘:实用案例分析》——3.2 数据挖掘建模过程

  (9)反馈率

  反馈率(Recall)定义如下:

《数据挖掘:实用案例分析》——3.2 数据挖掘建模过程

式中各项说明如下:

《数据挖掘:实用案例分析》——3.2 数据挖掘建模过程

  (10)ROC曲线

  受试者工作特性(Receiver Operating Characteristic,ROC)曲线是一种非常有效的模型评价方法,可为选定临界值给出定量提示。将灵敏度(Sensitivity)设在纵轴,1-特异性(1-Specificity)设在横轴,就可得出ROC曲线图。该曲线下的积分面积(Area)大小与每种方法优劣密切相关,反映分类器正确分类的统计概率,其值越接近1说明该算法效果越好。

  2.聚类模型评价

  聚类分群效果可以通过向量数据之间的相似度来衡量,向量数据之间的相似度定义为两个向量之间的距离(实时向量数据与聚类中心向量数据),距离越近则相似度越大,即该实时向量数据归为某个聚类。常用的相似度计算方法有:欧几里得距离法(Euclidean Distance)、皮尔逊相关系数法(Pearson Correlation Coefficient)、Cosine相似度和Tanimoto系数法。

  欧几里得距离计算公式如下:

《数据挖掘:实用案例分析》——3.2 数据挖掘建模过程

式中各项说明如下:

《数据挖掘:实用案例分析》——3.2 数据挖掘建模过程