第1章关于数据建模
1.1数据建模概述
随着信息化时代的发展,社会信息高速流通,人们之间的交流越来越密切,特别是各行各业业务操作流程的自动化,各行各业面临的数据量越来越大,大数据便在这高科技时代应运而生。大数据在统计学、生物学、环境生态学等领域以及军事、金融、通信等行业存在已有时日,却因为近年来互联网和信息行业的发展而引起人们的关注。因此,近年来,在全国大学生数学建模竞赛中,大数据问题也开始出现在竞赛题目中,供参赛者选择,这些问题绝大部分来源于科学与工程技术、人文与社会科学、经济管理等领域,经过适当简化加工的实际问题。大数据类型的主题将不再局限于一个领域。针对大数据问题,参赛者需要使用数学软件或大数据平台对数据进行处理,通过挖掘数据之间的关系,从而建立数学模型来表示实际问题,这就是所谓的数据建模。
1.2数据建模基本任务
数据挖掘功能可以是目标性的,也可以是描述性的,其差异取决于指导数据挖掘实践的目标。目标性数据挖掘的首要任务是创建一个可以预测指定标记,以及估计数值的预测模型,从而可以自动实现决策过程。
通常目标性挖掘的结果可以直接应用在行动中,例如,依照预测模型的结果,可决定是否给某个申请贷款客户发放贷款。在这种情况下,模型好坏与否主要在于其判断的准确性。但多数情况下,数据挖掘是描述性的。所谓“描述”的任务是通过各种直观或有效的方式对数据更深入的理解,进而了解数据所反映的领域背景情况。当然描述性的数据挖掘也产生了一些挖掘结果,但这些结果并非由模型自动生成。此时,模型的好坏并不取决于预测的准确与否,而在于通过模型所得到的对数据的认知。
数据挖掘的基本任务主要是聚类分析、关联分析、时间序列分析、偏差分析和回归分析等。
1.聚类分析(clustering)
聚类是把数据按照相似性归纳成若干类别,同一类中的数据彼此相似,不同类中的数据相异。聚类分析可发现数据的分布模式,以及数据属性之间可能存在的相互关系。根据数据自身的距离或相似度进行划分。划分原则是保持最大的组内相似性和最小的组间相似性,使不同聚类中的数据尽可能地不同,而同一聚类中的数据尽可能地相似,主要的聚类分析算法如表1-1所示。
2.关联分析(association analysis)
关联规则挖掘是一种基于规则的机器学习算法,该算法可以在大数据库中发现感兴趣的关系。数据关联是数据中存在的一类重要的、可被发现的知识。关联分为简单关联、时序关联和因果关联。关联分析的目的是找出数据库中隐藏的关联网。一般用支持度和可信度两个阈值来度量关联规则的相关性,通过不断引入兴趣度、相关性等参数,使得所挖掘的规则更符合需求。揭示数据之间的相互关系,在原始数据中,这种关系没有被直接表示出来。
关联分析的任务是发现事物间的关联规则或相关程度。
相信大家都听说过“尿布与啤酒”的故事。在某超市有一个有趣的现象:尿布和啤酒赫然摆在一起出售。但是这个奇怪的举措却使尿布和啤酒的销量双双增加了。这不是一个笑话,而是发生在美国沃尔玛连锁超市的真实案例,并一直为商家所津津乐道。沃尔玛拥有世界上最大的数据仓库系统,为了能够准确了解顾客在其门店的购买习惯,沃尔玛对其顾客的购物行为进行购物篮分析,想知道顾客经常一起购买的商品有哪些。沃尔玛数据仓库里集中了其各门店的详细原始交易数据。在这些原始交易数据的基础上,沃尔玛利用数据挖掘方法对这些数据进行分析和挖掘。一个意外的发现是:跟尿布一起购买最多的商品竟是啤酒!经过大量实际调查和分析,掲示了一个隐藏在“尿布与啤酒”背后的美国人的一种行为模式:在美国,一些年轻的父亲经常要到超市去买婴儿尿布,而他们中有30%~40%的人同时也为自己买一些啤酒。
产生这一现象的原因是:美国的太太们常叮嘱她们的丈夫为小孩买尿布,而丈夫们在买尿布后又随手带回了他们喜欢的啤酒,常用的关联规则算法如表1-2所示。
3.时间序列分析(time-series analysis)
在时间序列分析中,数据的属性值是随着时间不断变化的,通过时间序列可以使用距离度量来确定不同时间序列的相似性,也可通过检验时间序列图中的曲线关系来确定时间序列的行为,利用历史时间序列预测未来数值。
用已有的数据序列预测未来。在时间序列分析中,数据的属性值是随着时间不断变化的。回归不强调数据间的先后顺序,而时间序列要考虑时间特性,尤其要考虑时间周期的层次,如天、周、月、年等,有时还要考虑日历的影响,如节假日等。用于确定数据之间与时间相关的序列模式。其主要目的:进行预测,根据已有的时间序列数据预测未来的变化。
例如可通过时间序列分析饮料等一些季节性商品,随着时间周期变化而出现的规律性特征,通过分析并预测出数据未来的变化趋势,进而掌握其内部规律。时间序列预测关键:确定已有时间序列的变化模式,并假定这种模式会延续到未来。基本特点:假设事物发展趋势会延伸到未来,预测所依据的数据具有无规律性,不考虑事物发展之间的因果关系,常用的时间序列分析算法见表1-3。
4.偏差分析(deviation)
在偏差中包含很多有用的知识,数据库中的数据存在很多异常情况,发现数据库中数据存在的异常情况是非常重要的。偏差检验的基本方法就是寻找观察结果与参照之间的差别。偏差是对差异和极端特例的表述,如分类中的反常实例、聚类外的离群值、不满足规则的特例等。
5.回归分析
回归分析是通过建立模型来研究变量之间相互关系的密切程度。回归首先假设一些已知类型的函数(例如线性函数、非线性函数、Logistic函数等)可以拟合目标数据,利用某种误差分析确定一个与目标数据拟合程度最好的函数,主要的回归函数模型及描述如表1-4所示。
1.3数据建模过程
数据挖掘是从大量数据中挖掘出隐含的、未知的、对决策有潜在价值的信息、模型和趋势。数据挖掘建模过程是对一堆杂乱无章的数据进行分析并挖掘出有价值的知识的过程。首先明确挖掘数据的目标,然后对数据进行探索、预处理,最后根据数据建模的目标、归属问题类型,使用建模挖掘出有价值的知识,数据建模流程如图1-1所示。
1.3.1定义挖掘目标
针对数据挖掘问题,首先要了解问题相关领域,包括在实际应用中的各种知识和应用目标、熟悉问题背景知识、明确用户需求。思考问题和数据信息之间的联系,从给出的数据能够得到哪些问题所需要的价值信息,站在需求者即数据来源的角度思考。建模的过程要围绕着什么进行?给定的数据信息能够挖掘出哪些有价值,且是需求者所需要的信息?本次的挖掘目标是什么?系统完成后能达到什么样的效果?数据挖掘需要解决的问题是什么?要想充分发挥数据挖掘的价值,必须对目标有一个清晰明确的定义,即决定到底想干什么。
公共自行车服务系统的运行:近些年来随着共享经济的兴起,公共自行车作为一种绿色环保的出行方式已经迅速普及。该问题首先要明确目标,分析自行车借还数据目的是掌握自行车实时的借还动态,了解数据特征,有利于运营商对各个站点及时间段自行车的投放和回收进行优化,更好地满足用户对公共自行车的运营,如此以便于公共自行车服务系统能够产生更大的效益。
大型百货商场会员画像描述:该问题始终围绕着会员,从给定的各会员卡号消费记录信息可以挖掘各会员年龄、性别、消费偏好以及会员价值等信息。该问题的目标是刻画出会员消费“画像”,挖掘出会员的消费特征,以及会员对商场的价值特征。对于商场而言这些有价值的“信息”可以更清楚了解会员的偏好,然后通过折扣促销、连带消费等一系列营销方法“激活”会员,使大型百货商场能够长久获利运营。
“薄利多销”问题:该问题研究的是商品的利润与销售数量的关系,是通过降低商品的利润来增加销售数量,从而使商家获得更多盈利的销售方式。所给定的数据是商场的销售流水记录,根据所给定的数据可挖掘出商场每天的营业额、利润以及利润率、打折率等有价值的信息,从而可以挖掘出隐含的对需求者有潜在价值的关系和趋势。商场可以根据消费情况了解各商品大类利润和消费情况,从而改变销售方式使商场获利更多。
1.3.2探索数据
探索数据是对数据进行初步探索研究,以便更好地了解数据的特征,为建模的变量选择和方法选取提供依据,是挖掘建模的铺垫过程。探索数据是数据预处理的前提,也是数据挖掘分析有效性和准确性的基础。当我们拿到一份数据后,对数据的特征一无所知,它是否能够达到我们原来设想的要求?其中有没有什么明显的规律和趋势?因素之间是否具有相关性?对一些异常值、缺失值如何处理?这都是探索数据需要思考并解决的问题。
对样本数据进行探索、审核和必要的加工处理,是保证预测质量所必需的。数据探索和预处理的目的是保证样本数据的质量,进而为保证预测质量打下基础。
下面从几个方面了解探索数据的方法。
(1)描述统计.
描述统计包括均值、频率、众数、百分位数、中位数、极差、方差和标准差等,描述统计均可以用来探索数据结构,用于探索数据的不同属性。均值是所有数据的平均值;中位数是将一组数据从大到小的顺序排列位于中间的那个数据;众数是指数据中出现最频繁的值。均值和中位数是对个体集中趋势的度量。
极差是一份数据中最大值减去最小值的差值;标准差是离均差平方的算术平均值。极差、标准差是对数据离中趋势度量。
(2)异常值分析.
异常值分析是检验数据是否有错误或者不合理的数据。异常值数据是样本中的个别值,其数值明显偏离其余数值。数据的异常是十分危险的存在,异常值数据对计算过程和挖掘建模造成影响,从而导致结果出现误差。通常可以通过简单的统计量分析、箱线图分析检测出异常值数据。
(3)缺失值分析.
数据的缺失值分析使用简单的统计方法分析,可以得到含有缺失值的属性个数,以及每个属性的缺失数和缺失率。数据的缺失主要包括记录缺失、记录中某个字段信息缺失等。造成数据缺失的原因有很多,例如,记录的遗漏、数据的无法获取等。对于缺失的数值,我们需要对其进行分析,重要的数值需要通过各种方法进行补充,对结果毫无影响的数值则可以忽略。
温馨提示:请使用泸西县图书馆的读者帐号和密码进行登录