第5章数值预测


第4章中介绍的分类问题可以看作是一种预测技术,预测的是新样本的类别。另一类常见的预测问题是数值预测。分类问题中预测的是类别,属于类别属性的取值; 数值预测则预测的是数值属性的取值。本章将介绍解决数值预测问题的常用技术和方法。
5.1数值预测的概念
数值预测是一个与分类既相似又有区别的过程。两者都属于有监督学习,解决问题的过程相同,都是先通过训练数据集进行学习得到一个模型,然后利用模型进行预测。不同的是分类问题预测的是类别,而数值预测预测的是数值,通常是连续类型的数值。另一个不同是两者采用的常用技术大多是不同的,数值预测最常用的技术是回归(regression),因此,有时将回归与数值预测等同。当然,有一些技术是相同的,例如,K近邻既可以用于分类也可以用于数值预测。有些技术存在相似性,例如,决策树和模型树、回归树的构建过程存在一些共性。
数值预测问题可以这样描述。给定一个样本xt,由k+1个属性A1,A2,…,Ak,Y描述,其中属性Y为数值属性,称该数值属性为目标属性,其他属性称为描述属性。假设样本xt前k个属性的取值分别为xt1,xt2,…,xtk,样本xt可以表示为xt=(xt1,xt2,…,xtk),要预测其数值属性Y的取值,记为y,需要构建一个样本集,记此样本集为D,其中每个样本有k+1个属性A1,A2,…,Ak,Y的取值,其中第i个样本为(xi1,xi2,…,xik,yi),i=1,2,…,n。与分类任务类似,通常将数据集D分为两部分: 一部分作为学习,用于构建预测模型,称为训练数据集,简称训练集; 另一部分作为测试模型性能的数据集,称为测试数据集,简称测试集。
数值预测有许多实际的应用,例如,预测一个产品的销售量、预测一个客户的消费额度、预测一个客户的月均账户余额、预测一个产品的性能等。这些预测是一个公司或部门的业务运营非常重要的决策依据。下面以一个常用的供研究使用的数据集来进一步解释数值预测问题。该数据集是加州大学欧文分校机器学习数据库(UC Irvine Machine Learning Repository,网址为http://archive.ics.uci.edu/ml/)中的一个,名为computer hardware,或者CPU performance,简称CPU。该数据完整版包括209个样本,每个样本有10个属性,其中有2个类别属性,8个数值属性,选择其中的6个数值属性作为描述属性,1个数值属性作为目标属性。表5.1是该数据集的一个子集。



表5.1数据集CPU的子集





MYCTMMINMMAXCACHCHMINCHMAXPRP


125256600025616128198
2980003200032832269
2980003200032832220
2980003200032832172
2680003200064832318
231600032000641632367
231600032000641632489
231600064000641632636
23320006400012832641144
400512350041640


0

0
表5.1中的各属性对应机器周期时间、最小内存、最大内存、缓存、最小信道、最大信道及相对性能,其中最后一个属性为目标属性。给定一台计算机,已知其前6个属性的取值,可以预测其相对性能的取值。回归方法是最常用的数值预测方法,下面首先重点介绍回归方法、回归树和模型树方法,最后介绍预测误差的各种度量。
5.2回归方法
回归(regression)方法是一种历史悠久的统计方法,最早由弗朗西斯·高尔顿(Francis Galton)提出。回归方法中最常用的是线性回归(linear regression),包括一元线性回归(又称简单线性回归)、多元线性回归(multiple linear regression) 以及非线性回归。线性回归方法不仅可以用于预测,而且可以用作解释模型,以探寻变量之间的关系。另外还有回归树(regression tree)和模型树(model tree)等模型,下面先从简单的一元线性回归开始介绍。
5.2.1一元线性回归
一元线性回归模型涉及一个因变量(dependent variable,又称响应变量(response variable))y和一个自变量(independent variable)x,利用如下的线性关系对两者进行建模。


y=β0+β1x+ε(5.1)

其中,β0、β1是系数; ε是随机变量,服从均值为0、方差为σ2的正态分布,即ε~N(0,σ2)。构建和使用此模型涉及如下几个步骤: ①构建包含因变量和自变量的训练集; ②通过散点图,确认因变量和自变量之间的近似线性关系; ③计算系数,构建模型; ④检验模型; ⑤利用模型进行预测。
一元线性回归是用一条直线描述因变量和自变量之间的关系,因此可以通过已观测到的样本的散点图来发现两者之间是否大致符合线性关系。表5.2所示的是某公司在10个地区的销售额和人口数。
为了建立销售额和人口数之间的数量关系,首先绘制散点图,如图5.1所示。从该图中可以看到,二者之间存在线性关系。因此,下面就可以利用线性回归进行建模。


表5.2销售额与人口数





销售额/万元人口数/万人销售额/万元人口数/万人


32334143
28343036
26282229
30302835
29323536






图5.1销售额与人口数之间的散点图





为了构建一元线性回归模型,需要根据训练集数据进行参数估计。假设训练集由n个样本构成: {(xi,yi)|i=1,2,…,n}。用一条直线来拟合这n个样本,则原来的n个点由直线上的n个点来估计,即原来的点(xi,yi)变为(xi,y^i),i=1,2,…,n,其中的误差εi=yi-y^i称为残差(y^i=a+bxi,其中,a、b为系数β0、β1的估计值,b又称为斜率系数)。为使拟合的误差最小,采用最小二乘法,即使n个样本的拟合误差的平方和最小: 


SSE=∑ni=1ε2i=∑ni=1(yi-y^i)2(5.2)
SSE称为残差平方和。为使SSE最小,通过将该式对系数a和b求偏导,使其等于0,可解得a和b的值如下: 



b=SxySxx=∑ni=1(xi-x-)(yi-y-)∑ni=1(xi-x-)2

a= y--bx-=1n∑ni=1yi-b1n∑ni=1xi
(5.3)

式(5.3)中x-和y-分别是n个样本的自变量和因变量的均值,Sxx称为x的校正平方和,Sxy称为校正交叉乘积和。同理,Syy=∑ni=1(yi-y-)2称为y的校正平方和。
无论因变量和自变量之间是否存在真实的线性关系,利用公式(5.3)都能得到该线性模型。因此,在构建完此模型之后,需要对模型进行各种检验。下面介绍拟合优度检验、回归关系的显著性检验和回归系数的显著性检验,常用的检验方法有R检验、F检验和t检验。
首先介绍回归模型的方差分析。前面已经给出了残差平方和SSE,下面给出回归平方和SSR的定义。


SSR=∑ni=1(y^i-y-)2(5.4)

总离差平方和SST是将y的均值作为总体估计值时的误差,定义如下。


SST=∑ni=1(yi-y-)2(5.5)

可以证明,SST=SSE+SSR。可以理解为,总离差平方和中被回归模型解释的部分为回归平方和,未被回归模型解释的部分是残差平方和。那么,在总离差平方和中回归平方和占的比例越大,说明模型的拟合效果越好。因此,定义样本决定系数(determination coefficient)R2(R square)和修正样本决定系数2(adjusted R square)如下。


R2=SSRSST=1-SSESST

2=1-SSE/(n-k-1)SST/(n-1)=1-n-1n-k-1(1-R2)(5.6)

公式(5.6)中n为样本个数,k为自变量个数,修正样本决定系数2用于自变量个数增多的时候,它将自变量的个数加以考虑,以便不同自变量个数的回归方程可以进行比较。 
显然,样本决定系数R2越接近1,说明模型的拟合程度越高。
为了检验线性回归关系的显著性,需要检验假设H0: b=0和H1: b≠0。可以证明在H0成立的情况下由公式(5.7)定义的F符合F(1,n-2)分布。


F=SSRSSE/(n-2)(5.7)

给定显著性水平α,查自由度为(1,n-2)的F分布临界值表,可得临界值Fα(1,n-2)使得概率P(F>Fα(1,n-2))=α。然后,通过样本计算公式(5.7)得F值,设为F0,若F0>Fα(1,n-2)则因变量和自变量之间的线性关系显著,假设H0被拒绝。
最后介绍回归系数的显著性检验。为了检验回归模型中每个回归系数的显著性,可以推导出系数a和b的样本方差如下。


S2b=SSE/(n-2)Sxx(5.8)

S2a=SSEn-21n+x-2Sxx(5.9)

可以证明tb=b/Sb和ta=a/Sa均符合自由度为(n-2)的t分布。其中重要的是检验系数b是否为0。因此需要检验假设H0: b=0和H1: b≠0是否成立。给定显著性水平α,查自由度为(n-2)的t分布表,得到tα(n-2),若tb>tα(n-2),则拒绝假设H0,即回归系数b显著。通常tb>2时说明该系数显著,即对模型的贡献大。同时可以计算出P值(P value),一般以P<0.05为显著,P<0.01为非常显著。
5.2.2多元线性回归
多元线性回归是对一个因变量和多个自变量之间的回归分析。设因变量y和k个自变量x1,x2,…,xk之间满足如下线性关系: 


y=β0+β1x1+β2x2+…+βkxk+ε(5.10)

公式(5.10)中βi,i=1,2,…,n,称为回归系数; ε称为残差,服从均值为0、方差为σ2的正态分布,即ε~N(0,σ2)。该式称为多元线性回归模型。
假设因变量和自变量有n个观测样本,(xi1,xi2,…,xik,yi),i=1,2,…,n。根据这些样本观测值,可以得到估计的回归方程为: 


y^=b0+b1x1+…+bkxk(5.11)
其中,b0,b1,…,bk是β0,β1,…,βk的最小二乘估计,即使得公式(5.12)中残差平方和SSE最小。


SSE=∑ni=1(yi-y^i)2=∑ni=1(yi-b0-b1xi1-b2xi2-…-bkxik)2(5.12)

与一元线性回归类似,为使SSE最小,利用多元函数求极值的方法令SSEbi=0,i=0,1,…,k可以解得b0,b1,…,bk的取值。求解过程这里不再赘述,下面给出结果。
为方便表述,n个观测样本(xi1,xi2,…,xik,yi)及回归系数用如下矩阵表示。


Y=y1
y2
︙
yn
X=
1x11x21…xk1

1x12x22…xk2

︙︙︙︙

1x1nx2n…xknB=b0
b1
︙
bk(5.13)
则回归系数可以通过矩阵运算B=(XTX)-1XTY得到。
建立了多元回归模型后,同样要进行模型的检验,包括拟合优度检验、回归模型的显著性检验和回归系数的显著性检验。
拟合优度检验仍然使用样本决定系数R2和修正样本决定系数2,其公式同公式(5.6),其中,残差平方和见公式(5.12),回归平方和与总离差平方和的公式同公式(5.4)、(5.5),SST=SSE+SSR。因变量y的自由度(degree of freedom)dfT也可以分解为回归自由度dfR和残差自由度dfE,即dfT=dfR+dfE,其中dfT=n-1,dfR=k,dfE=n-k-1,n为样本个数,k为自变量个数。R2越接近1,模型的拟合效果越好。将三种方差(即SST、SSE、SSR)分别除以相应的自由度,得到的是相应的均方差,即MST=SST/dfT,MSE=SSE/dfE,MSR=SSR/dfR。
回归模型的显著性检验用于检验因变量与自变量整体之间是否存在线性关系,仍然采用F检验。显著性检验的无效假设和备择假设分别为H0: b1=b2=…=bk=0和H1: b1,b2,…,bk不全为零。可以证明,在H0成立的情况下,由公式(5.14)定义的F变量符合F(k,n-k-1)分布。


F=MSRMSE(5.14)

给定显著性水平α,查自由度为(k,n-k-1)的F分布临界值表,可得临界值Fα(k,n-k-1)使得概率P(F>Fα(k,n-k-1))=α。然后,通过样本计算公式(5.14)得F值,设为F0,若F0>Fα(n-k-1)),则因变量和自变量之间的线性关系显著,假设H0被拒绝。
表5.3是回归分析结果中通常返回的方差分析表的构成示例。


表5.3回归分析结果中通常返回的方差分析表的构成示例





方差类型自由度平方和均方差F


回归kSSRMSR
残差n-k-1SSEMSEMSR/MSE

总离差n-1SST

回归系数的显著性检验。前面所述的F检验如果说明回归关系是显著的,并不能说明每个回归系数是显著的,有可能存在某些回归系数不显著的情况。因此,需要接着对单个回归系数分别进行检验,不显著的系数可以去掉,重新建立回归模型。
回归系数的显著性检验可以采用t检验。对于每个回归系数bi(i=1,2,…,k),显著性检验的两个假设分别为H0: bi=0和H1: bi≠0。若bi=0说明自变量xi的变化对因变量没有线性影响,即变量xi对因变量的影响不显著。为每个回归系数bi构造变量tbi: 


tbi=biSbi=biciiMSE(5.15)
其中,cii是矩阵C=(XTX)-1的对角线上的第i个值。
给定显著性水平α,查自由度为(n-k-1)的t分布表,得到tα(n-k-1),若tbi>tα(n-k-1),则拒绝假设H0,即回归系数bi显著。
在通过以上显著性检验之后,给定一个因变量未知的样本(xt1,xt2,…,xtk)将其带入公式(5.11)中的各个自变量取值中就可以得到因变量的一个预测值。
5.2.3非线性回归
实际应用中并不是所有的因变量和自变量之间都存在线性关系,有时存在非线性关系,如图5.2所示。


图5.2销售量与商品价格之间的散点图




图5.2中所示的是某商品在某段时间内的价格x和销量y之间的关系图,显然这两个变量之间存在的不是线性关系。有些非线性关系通过一定的变换可以转换为线性回归问题。例如,图5.2中所示的两个变量之间的关系为y=a+bx2。此时,可以假设x1=x2,则原来的非线性关系变为y=a+bx1。因此,对于形如y=a0+a1x+a2x2+…+apxp的因变量和自变量之间的关系,假设x1=x,x2=x2,…,xp=xp,则有y=a0+a1x1+a2x2+…+apxp。经过这样的变换之后,就可以利用多元线性回归进行建模了。
一些常用的非线性函数除了前面提到的多项式函数外,还包括幂函数、指数函数、对数函数及双曲函数等。
对于幂函数y=axb,可以通过两边取对数变换为lgy=lga+blgx,设Y=lgy,a0=lga,a1=b, X=lgx,则有Y=a0+a1X。
对于指数函数y=aebx,可以通过两边取对数变换为lny=lna+bx,设Y=lny,a0=lna,a1=b, 则有Y=a0+a1x。
对于对数函数y=a+blgx,设X=lgx,则有y=a+bX。
对于双曲函数y=x/(ax+b),可以通过两边取倒数变换为1/y=a+b/x,设Y=1/y,X=1/x,则有Y=a+bX。
另外,非线性关系也可以通过构建回归树(regression tree)或模型树(model tree)的方法进行建模。
5.3回归树与模型树
回归树和模型树与第4章中介绍的决策树存在许多相似之处,都是通过自顶向下分而治之的思想,将训练集不断分割成子数据集来不断扩展树枝,当满足一定条件时停止树的生长。不同之处包括数据集的分割条件不同和叶子结点的内容不同。决策树的叶子结点对应某个类别,而回归树的叶子结点对应一个数值,模型树的叶子结点对应一个线性回归方程。
图5.3所示的模型树是利用Weka 中的M5P模型树算法对CPU数据集(此数据集是UCI 机器学习数据库中的一个,网址为http://archive.ics.uci.edu/ml/datasets/Computer+Hardware)构建的。表5.1是该数据集的部分数据。




图5.3CPU数据集的模型树



此模型树中有2个内部结点,3个叶子结点。叶子结点对应的回归方程以及相应的条件如下: 

If CHMIN<=7.5,then 

PRP=-0.0055 * MYCT+ 0.0013 * MMIN + 0.0029 * MMAX + 0.8007 * CACH + 0.4015 * CHMAX + 11.0971

if CHMIN > 7.5 and MMAX <= 28000,then 

PRP =-1.1492 * MYCT+ 0.0086 * MMIN+ 0.0031 * MMAX+ 0.8422 * CACH- 4.0839 * CHMIN+ 1.1597 * CHMAX+ 101.3434

if CHMIN > 7.5 and MMAX> 28000,then 

PRP =-0.4882 * MYCT+ 0.0218 * MMIN+ 0.003 * MMAX+ 0.3865 * CACH+ 3.2333 * CHMAX- 67.9242

通常模型树比回归树小,更适合处理大规模数据,且回归树可以看作模型树的一个特例。下面重点介绍模型树的构建方法。为了避免过分拟合问题,模型树构建之后也需要进行剪枝。

5.3.1模型树的构建

给定训练数据集,构建模型树的过程与构建决策树的过程非常类似,也是一个将训练集不断分裂的过程。假设训练数据集用D表示,涉及的类别由C={c1,c2,…,ck}表示。构建决策树T的主要步骤如下。
(1) 创建一个结点t,与结点t关联的数据集记为Dt。初始情况下训练数据集中的所有样本与根结点关联,即Dt=D。将t设为当前结点。
(2) 如果当前结点t所关联的数据集Dt中样本个数小于给定阈值或者Dt中样本的目标属性取值的标准差小于给定阈值(例如初始数据集D的标准差的5%),则将该结点标记为叶子结点,停止对该结点所关联的数据集的进一步分裂,对数据集Dt运用多元线性回归建模方法构建回归模型。否则,进入下一步。
(3) 为数据集Dt选择分裂属性和分裂条件。根据分裂条件将数据集Dt分裂为两个子数据集,为结点t创建两个子女结点,将这两个子数据集分别与之关联。依次将每个结点设为当前结点,转至步骤(2)进行处理,直至所有结点都标记为叶子结点。
上述过程中的一个关键点在于步骤(2)中的分裂属性和分裂条件的选择。分裂属性的选择以分裂后的各个子数据集中目标属性取值的标准差为依据,将标准差作为一种误差度量,将分裂前后标准差的减少量作为误差的期望减少,称为SDR(standard deviation reduction)。假设数据集D按照属性A的取值分裂为两个子数据集D1和D2,此次分裂的SDR值的计算公式如下: 


SDR(D,A)=sd(D)-∑2i=1|Di||D|×sd(Di)(5.16)
其中,sd(D)代表数据集D中目标属性取值的标准差,|D|代表数据集D中包含的样本个数。
在选择分裂属性时,选取使SDR值最大的属性。
按照属性A的取值分裂数据集的方法取决于属性A的类型。如果A是连续取值的属性,则将A的所有取值升序排列,每两个相邻的取值的中点可以作为一个候选的分裂点,中点假设用vm表示,分裂条件则为A≤vm和A>vm。计算每个候选分裂点的SDR值,选取具有最大值的分裂点作为该属性的分裂条件,与其他属性进行比较。
如果A是离散变量或定性属性,假设A属性有k个不同取值{v1,v2,…,vk},则可以将此属性进行如下处理: 对于A的每个取值vi,求出对应的目标属性的平均值μ(vi),然后将这k个不同取值按照目标属性的平均值进行升序排序,设其顺序为vl1,vl2,…,vlk,其中li∈{1,2,…,k}。则有(k-1)组不同的分裂条件,分别为A∈{vl1}和A∈{vl2,…,vlk},A∈{vl1,vl2}和A∈{vl3,…,vlk},A∈{vl1,vl2,vl3}和A∈{vl4,…,vlk},…,A∈{vl1,vl2,…,vlk-1}和A∈{vlk}。分别计算这k-1组不同的分裂条件对应的SDR值,选择SDR值最大的作为该属性的分裂条件。
例如,假设银行储户的婚姻状况是属性A,目标属性Y是每月平均账户余额,表5.4是一个有关这两个属性的示例数据。


表5.4定性属性数据集D示例





婚姻状况账户余额/万元
婚姻状况账户余额/万元


单身20已婚200
单身40已婚130
单身90离异60
已婚30离异100


属性婚姻状况有3个不同取值,其中单身对应的账户余额的平均值μ(单身)=(20+40+90)/3=50,同理,μ(已婚)=120,μ(离异)=80。因此,3个取值的排序为单身、离异、已婚。对应两组分裂条件,分裂条件A1: 婚姻状况∈{单身}和婚姻状况∈{离异,已婚},分裂条件A2: 婚姻状况∈{单身,离异}和婚姻状况∈{已婚}。
根据分裂条件A1,表5.4可以分裂为2个子表,前3行婚姻状况为单身的构成一个数据集D1,剩下的5行为另一数据集D2。sd(D1)=29.4,sd(D2)=58.9,sd(D)=56.3。则: 


SDR(D,A1)=sd(D)-38sd(D1)-58×sd(D2)=8.47

SDR(D,A2)=11.4

因此按照分裂条件A2进行分裂更优,故SDR(D,A)=11.4。
5.3.2模型树的剪枝
模型树构建之后,为了避免过度拟合,需要对模型树进行剪枝。剪枝通过对树深度优先遍历从叶子结点向根结点进行。以图5.3中的模型树为例,首先查看内部结点MMAX对应的子树是否需要用一个叶子结点代替。方法是计算该结点以及其下的两个叶子结点的期望误差。给定结点t及所关联的数据集Dt,设样本个数为n,数据集Dt对应的多元线性回归模型为Mt,Mt中涉及的自变量的个数为v,设利用该模型,Dt中每个样本的目标属性的预测值为pi、真值为ai,其期望误差error(t)计算如下: 


error(t)=n+vn-v1n∑ni=1|pi-ai|(5.17)

两个叶子结点的期望误差通过加权求和结合在一起作为子树误差,权值是叶子结点包含样本占其父结点样本个数的比例。若当前结点含有n个样本,两个叶子结点含有样本分别为n1和n-n1,则其权重分别为n1/n和(n-n1)/n。若当前结点的期望误差小于子树误差,则将该结点设为叶子结点,即此子树被一个叶子结点代替。
5.3.3算法
构造模型树的主要步骤如下所示。



算法5.1:  模型树构建算法gen_modelTree(D)

输入: 训练数据集D

输出: 模型树

主要步骤:

(1)if dataset D meets stopping criteria then

(2)create node t;

(3)t.type=leaf;

(4)t.data=D

(5)t.model=linearRegression(t);

(6)else

(7)create node t;

(8)t.type=interior;

(9)t.split_condition=find_split_condition(D);

(10) split dataset D into two subsets,D1 and D2

(11) t.leftChild=gen_modelTree(D1),t.leftChild.data=D1;

(12) t.rightChild=gen_modelTree(D2),t.rightChild.data=D2;

(13) end if

(14)   return t;




模型树的剪枝的重要步骤如下: 



算法5.2:  模型树剪枝算法prune (node t)

输入: 模型树

输出: 剪枝后的模型树

主要步骤: 

(1)if t.type=interior then

(2)prune(t.leftChild);

(3)prune(t.rightChild);

(4)t.model=linearRegression(t);

(5)if treeError(t)>error(t) then

(6)t.type=leaf;

(7)end if

(8)end if



过程 treeError(node t)

主要步骤: 

(1) if t.type=interior then

(2) l=t.leftChild;

(3) r=t.rightChild;

(4) return (|l.data|×treeError(l)+|r.data|×treeError(r))/|t.data|;

(5) else return error(t);

(6) end if





在过程treeError(node t)中,|l.data|指的是与结点l关联的数据集包含的样本个数。error(t)是根据公式(5.17)计算的结点t的期望误差。调用该过程时利用prune(root),即从根结点调用即可。
5.4K近邻数值预测
与第4章中介绍的K近邻分类类似,可以利用一个样本的K个最相似的邻居的目标属性的取值来进行预测。
假设训练集D由n个观测样本构成: {oi=(xi1,xi2,…,xiK,yi),i=1,2,…,n},其中yi是目标属性Y的取值,(xi1,xi2,…,xiK)是K个描述属性的取值。对于测试集T中的一个测试样本tj=(xj1,xj2,…,xjK,yj),j>n,可以利用相似度衡量方法计算此样本与D中每个观测样本的相似度,选取与测试样本最相似的K个观测样本。例如,可以通过欧氏距离,计算此测试样本与第i个观测样本的距离,d(oi,tj)=∑kl=1(xil-xjl)2,找到距离最近的K个样本。设N(tj) 是这K个观测样本的集合,则测试样本tj的目标属性的预测值pj计算如下: 


pj=∑o∈N(tj)sim(o,tj)×y(o)∑o∈N(tj)sim(o,tj)(5.18)

式中,y(o)代表观测样本o的目标属性取值,sim(o,tj)代表观测样本o和测试样本tj直接的相似度,相似度的衡量方法在第6章详述,此处可以利用欧氏距离的倒数进行衡量,即sim(o,tj)=1/d(o,tj)。
5.5预测误差的度量
预测性能的优劣需要一定的度量来衡量。常用的度量是平均绝对误差(mean absolute error,MAE)、均方误差(mean square error,MSE)、均方根误差(root mean square error,RMSE)、相对平方误差(relative square error,RSE)和相对绝对误差(relative absolute error,RAE)。
假设训练集D由n个观测样本构成: {oi=(xi1,xi2,…,xik,yi),i=1,2,…,n},其中yi是目标属性Y的取值,(xi1,xi2,…,xik)是k个描述属性的取值。假设测试集T包含m个样本,对于测试集T中的每个测试样本tj=(xj1,xj2,…,xjk,yj),n<j<n+m,利用预测模型得出的目标属性的预测值为pj,则平均绝对误差MAE的计算公式如下: 


MAE=1m∑n+mj=n+1|pj-yj|(5.19)

均方误差、均方根误差、相对平方误差和相对绝对误差的计算公式分别如下: 


MSE=1m∑n+mj=n+1(pj-yj)2(5.20)

RMAE=∑n+mj=n+1(pj-yj)2m(5.21)

RSE=∑n+mj=n+1(pj-yj)2∑n+mj=n+1(yj-y-)2,其中y-=1m∑n+mj=n+1yj(5.22)


RAE=∑n+mj=n+1|pj-yj|∑n+mj=n+1|yj-y-|,其中y-=1m∑n+mj=n+1yj(5.23)
练习题5
1. 数值预测和分类的异同点有哪些?
2. 用线性回归建模的基本步骤有哪些?
3. 在线性回归中样本决定系数R2说明了什么?
4. 如何进行回归关系的显著性检验?
5. 如何进行回归系数的显著性检验?
6. 表5.5中给出了10个学生的身高和体重的数据。
(1) 绘制散点图。
(2) 求出回归方程。
(3) 对回归模型进行统计检验。
(4) 一个身高1.66m的人的体重可预测为多少?


表5.5习题6数据





身高/m体重/kg
身高/m体重/kg


1.62551.6862
1.65571.7560
1.60451.8090
1.72651.7670
1.73701.8275

7. 根据10年的年度统计资料,利用多元回归对同一因变量构建了两个回归方程。第一个方程中k=5,R2=0.83; 第二方程中k=1,R2=0.80。试对这两个回归方程的拟合程度做出评价。
8. 表5.6是来自中国统计年鉴的1990—2003年我国的城镇居民家庭人均可支配收入与城市人均住宅建筑面积的数据。


表5.6习题8数据





年度城镇居民家庭人均可支配收入/元城市人均住宅建筑面积/m2


19901510.213.65
19911700.614.17
19922026.614.79
19932577.415.23
19943496.215.69
1995428316.29
19964838.917.03
19975160.317.78
19985425.118.66
19995854.0219.42
2000628020.25

(1) 做出散点图,建立住宅建筑面积为因变量的一元线性回归模型,并解释斜率系数的经济意义。
(2) 对回归模型进行统计检验。
9. 图5.4是利用Excel进行多元回归建模的部分输出结果。
(1) 计算①②③④⑤中的值。
(2) 判断回归方程以及回归系数的显著性。


图5.4习题9回归模型结果