《大数据分析原理与实践》——3.1 回归分析

3.1 回归分析

3.1.1 回归分析概述

1.回归分析的定义

回归分析方法是在众多的相关变量中,根据实际问题考察其中一个或多个变量(因变量)与其余变量(自变量)的依赖关系。如果只需考察一个变量与其余多个变量之间的相互依赖关系,我们称为多元回归问题。若要同时考察多个因变量与多个自变量之间的相互依赖关系,我们称为多因变量的多元回归问题。本小节重点讨论多元回归。

2.回归分析的数学模型


3.回归分析的基本计算方法

这里概述回归分析的基本计算方法,关于大数据的回归算法在11.2节中讨论。回归分析的主要目的是估算回归系数β的值。最常用的方法采取最小二乘估计法OLS。


4.回归分析的模型检验

回归分析的模型检验用于检验模型的可用性,模型检验的过程可以分为三个步骤,即分析模型拟合优度、分析模型是否能用于预测未知值和分析模型的解释变量成员显著性检验。






5.回归分析的实例

我们用一个例子说明回归分析的使用。

私立医院一年的营业额总和与股东投资额总和的大小有密切关系,研究发现两个变量之间存在线性关系。下面我们模拟了某市内所有私立医院2000—2013年的营业额与股东投资额数据,研究它们的数量规律性,探讨某市内私立医院的股东投资额与一年营业额的数量关系,原始数据见表3-1。

对其进行回归分析,具体输出表3-2所示的数据。

由输出结果,得到以下结论:

回归方程为

3.1.2 回归模型的拓展

上一小节主要讨论了线性回归模型,根据需求的不同,回归有不同的形式和方法。本小节简要介绍多种形式的回归。

1.多项式回归

假设变量y与x的关系为p次多项式,且在xi处对y的随机误差εi(i=1,2,…,n)服从正态分布N(0,σ),则

yi=β0+β1xi+β2xi2+…+βpxip+εi

令xi1=xi,xi2=xi2,…,xip=xip,则上述非线性的多项式模型就转化为多元线性模型,即

yi=β0+β1xi1+β2xi2+…+βpxip+εi

这样我们就可以用前面介绍的多元线性回归分析的方法来解决上述问题了。其系数矩阵、结构矩阵、常数项矩阵分别为

A=X'X=
X=
B=X'Y=

回归方程系数的最小二乘估计为

b=A-1B=(XTX)-1X'Y

需要说明的是,在多项式回归分析中,检验bj是否显著,实质上就是判断x的j次项xj对y是否有显著影响。

对于多元多项式回归问题,也可以化为多元线性回归问题来解决。例如,对于

yi=β0+β1Zi1+β2Zi2+β3Zi22+β4Zi1Zi2+β5Zi22+…+εi

令xi1=Zi1,xi2=Zi2,xi3=Zi12,xi4=Zi1Zi2,xi5=Zi22,则转化为yi=β0+β1xi1+β2xi2+…+βpxip+εi,转化后就可以按照多元线性回归分析的方法解决了。

  1. GBDT回归

梯度提升决策树(GBDT)又叫多重累计回归树(MART),是一种迭代的决策树算法,该算法由多棵决策树组成,所有树的结论累加起来做最终答案。它在被提出之初就和SVM一起被认为是泛化能力较强的算法。近些年更因为被用于搜索排序的机器学习模型而引起大家关注。GBDT主要由三个概念组成,即回归树、梯度提升和收缩。下面依次介绍这三个概念。

(1)回归树

回归树是一类特殊的决策树,和用于分类的决策树不同,回归树用于预测实际数值,其核心在于累加所有树的结果作为最终结果。有关分类的决策树将会在4.3.3节介绍,这里重点介绍回归问题。

用一个例子来说明回归树。以对人的年龄预测为例来说明,每个实例都是一个已知年龄的人,而属性则包括这个人每天看书的时间、上网的时段、网购所花的金额等。回归树为了做预测,将特征空间划分成了若干个区域,在每个区域里进行预测。

作为对比,先简单介绍一下分类树,分类树在每次分支时,是以纯度度量,比如熵值来选择分类属性。满足一定的条件会被标记成叶子节点并给予标号(这在4.3.3节还会有更详细清晰的介绍)。

回归树总体流程也类似,不过在每个节点(不一定是叶子节点)都会得一个预测值,以年龄为例,该预测值等于属于这个节点的所有人年龄的平均值。分支时穷举每一个属性的每个阈值寻找最好的分割点,但衡量最好的标准不再是熵之类的纯度度量,而是最小化均方差。这很好理解,被预测出错的人数越多,错得越离谱,均方差就越大,通过最小化均方差能够找到最合适的分支依据。直到每个叶子节点上人的年龄都唯一或者达到预设的终止条件,才停止分支操作。若最终叶子节点上人的年龄不唯一,则以该节点上所有人的平均年龄作为该叶子节点的预测年龄。

(2)梯度提升

提升(boosting)是一种机器学习技术,用于回归和分类问题,产生一个预测模型的集合。梯度提升简单来说,就是通过迭代多棵树来共同决策,并可以进行任意可微损失函数的优化。

GBDT是把所有树的结论累加起来做最终结论的,所以每棵树的结论并不是最终结果,而是一个累加量。其核心在于,每一棵树学的是之前所有树的结论和的残差,这个残差就是一个加上预测值后能得真实值的累加量。

例如,A的真实年龄是18岁,但第一棵树的预测年龄是10岁,差了8岁,即残差为8岁。那么在第二棵树中我们把A的年龄设为8岁去学习,如果第二棵树真的能把A分到8岁的叶子节点,那累加两棵树的结论就是A的真实年龄;如果第二棵树的结论是6岁,则A仍然存在2岁的残差,第三棵树中A的年龄就变成2岁,继续学。这就是梯度提升在GBDT中的意义。
形式化地来说,回归树也相当于一个映射,即根据输入x来求得输出y,表达式为

其中,Rj表示一个区域,如果x属于Rj,那么它的预测值就是bj。I()为指示函数,当括号内的式子成立时返回1,否则返回0。

第m棵回归树可以表示为如下数学形式

假设共有M棵回归树,那么最终的预测结果为

表达成递归形式则为












3.1.3 回归的阿里云实现

本节将通过一个例子介绍利用阿里云平台建立回归模型的方法。

很多农民因为缺乏资金,在每年耕种前会向相关机构申请贷款来购买种地需要的物资,等丰收之后偿还。农业贷款发放问题是一个典型的数据分析问题。贷款发放人通过往年的数据,包括贷款人的年收入、种植的作物种类、历史借贷信息等特征来构建经验模型,通过这个模型来预测受贷人的还款能力。本例借助真实的农业贷款业务场景,利用回归算法解决贷款发放业务。通过农业贷款的历史发放情况,预测给预测集的用户发放他们需要金额的贷款。

原始数据前10条见表3-4。

在阿里云平台上先进行数据预处理,然后再进行回归训练和预测。具体操作过程为:首先进入阿里云大数据开发平台中的机器学习平台,选择相应的工作组后进入算法平台。在左侧右击“实验”标签,新建一个空白实验,在“新建实验”对话框中输入对应的实验名称(regression),在组件中选择相应的组件,并将其拖动到右侧实验中。设计好流程,运行开始后,阿里云平台开始运行各实验节点。


在本例子中,首先进行数据的预处理,处理流程如图3-1所示。

利用SQL脚本将一些字符串人为对应映射为某些数值。
SQL脚本的设置如图3-2所示。

运用数据视图可以将所选中的数据列的类型转换为double型,数据视图设置如图3-3所示(注意:此后所有阿里云实验的字段选择部分均参考此处)。

在“字段设置”中选择全部的7个字段,在“参数设置”中将“连续特征离散区间数”设为“100”。数据预处理后的内容如图3-4所示。

然后进行回归训练和预测,此处采用阿里云提供的三种算法(线性回归、GBDT回归、XGBOOST回归)分别实现。

下面分别给出三种算法的具体流程。

(1)线性回归
线性回归的流程如图3-5所示。

其中用训练集来预测得到的预测-2是为了和预测-1进行比对,用于调整训练参数,防止过度拟合与过度偏差,以使得到的回归模型尽可能最佳。原理是利用机器学习学习曲线(learning curve)的原理,由于阿里云本身没有提供对的训练过程的可视化的组件,所以只能使用此法来判断训练结果的差错是过度拟合还是过度偏差造成的。

全表统计组件用于审视数据预处理后的整体情况,不是必要组件。

线性回归组件的设置如下:添加6个字段,其中double类型的字段有farmsize、rainfall、landquality和farmincome,bigint类型的字段有region_num和claimtype_num。“选择标签列”设为“claimvalue”,“最大迭代轮数”设为“100”,“最小似然误差”设为“0.000001”,“正则化类型”设为“None”,“正则系数”设为“1”。

预测组件设置如下:选择double类型的字段claimvalue。“输出结果名”设为“prediction_result”,“输出分数列名”设为“prediction_score”,“输出详细列名”设为“prediction_detail”。

回归模型评估的参数设置如下:“原回归值”设为“claimvalue”,“预测回归值”设为“prediction_score”。

训练后的预测结果如图3-6所示。

模型评估残差直方图如图3-7所示。回归评估指标数据结果如图3-8所示。

(2)GBDT回归

GBDT回归的流程如图3-9所示。

和前文中线性回归一样,用训练集来预测得到的预测-2是为了和预测-1进行比对,用于调整训练参数,防止过度拟合与过度偏差,以使得到的回归模型尽可能最佳。

全表统计组件用于审视数据预处理后的整体情况,不是必要组件。

GBDT回归组件参数设置如下:选择6个字段,其中double类型的字段有farmsize、rainfall和landquality,bigint类型的字段有region_num和claimtype_num。“标签列”设为“claimvalue”。“一棵树的最大深度”设为“10”,“叶子节点容纳的最少样本数”设为“20”,“样本采样比例”设为“0.8”,“训练中采集的特征比例”设为“0.8”,“测试样本数比例”设为“0.2”,“随机数产生器种子”设为“0”,“是否使用newton方法来学习”设为“使用”,“损失函数类型”设为“regression loss”,“gbrank与regression loss中的指数底数”设为“1”,“metric类型”设为“NDCG”,“树数量”设为“44”,“学习速率”设为“0.05”,“最大叶子数”设为“32”。

预测组件设置、输出结果的字段设置、模型评估的参数设置都与用线性回归实现的设置相同。训练后的预测结果如图3-10所示。

模型评估结果如图3-11和图3-12所示。

(3)XGBOOST回归
XGBOOST回归的流程如图3-13所示。
XGBOOST组件的字段选择和设置与线性回归实现完全相同,在“参数设置”中的设置如下:“一棵树的最大深度”设为“3”,“更新过程中使用的收缩步长”设为“0.3”,“最小损失衰减”设为“0”,“树的棵树”设为“7”,“子节点中的最小的样本权值和”设为“1”,“每个树所允许的最大delta步进”设为“0”,“训练的子样本占整个样本集合比例”设为“1”,“在建立树时对特征采样的比例”为“1”,“目标函数”设为“reg_linear”,“初始预测值”设为“0.5”,“随机数的种子”设为“0”。

预测组件设置、输出结果的字段设置、模型评估的参数设置都与用线性回归实现的设置相同。训练后的预测结果如图3-14所示。

模型评估结果如图3-15和图3-16所示。

综合上述三种方法的模型评估结果看出:对于该例子中的数据,XGBOOST回归的效果是最好的。

时间: 2024-09-20 09:45:55

《大数据分析原理与实践》——3.1 回归分析的相关文章

《大数据分析原理与实践》——1.4 大数据分析的过程、技术与难点

1.4 大数据分析的过程.技术与难点 1.大数据分析的过程 大数据分析的过程大致分为下面6个步骤: (1)业务理解 最初的阶段集中在理解项目目标和从业务的角度理解需求,同时将业务知识转化为数据分析问题的定义和实现目标的初步计划上. (2)数据理解 数据理解阶段从初始的数据收集开始,通过一些活动的处理,目的是熟悉数据,识别数据的质量问题,首次发现数据的内部属性,或是探测引起兴趣的子集去形成隐含信息的假设. (3)数据准备 数据准备阶段包括从未处理数据中构造最终数据集的所有活动.这些数据将是模型工具

《大数据分析原理与实践》一一1.4 大数据分析的过程、技术与难点

1.4 大数据分析的过程.技术与难点 1.大数据分析的过程 大数据分析的过程大致分为下面6个步骤: (1)业务理解 最初的阶段集中在理解项目目标和从业务的角度理解需求,同时将业务知识转化为数据分析问题的定义和实现目标的初步计划上. (2)数据理解 数据理解阶段从初始的数据收集开始,通过一些活动的处理,目的是熟悉数据,识别数据的质量问题,首次发现数据的内部属性,或是探测引起兴趣的子集去形成隐含信息的假设. (3)数据准备 数据准备阶段包括从未处理数据中构造最终数据集的所有活动.这些数据将是模型工具

《大数据分析原理与实践》——导读

前 言 本书的缘起与成书过程 大数据经过分析能够产生高价值,这无疑已在大数据火爆的今天成为共识,从而使得大数据分析在"大数据+"涉及的领域(如工业.医疗.农业.教育等)有了广泛的应用.大数据分析的相关知识不仅是大数据行业的从业人员应该必备的,也是和大数据相关的各行各业的从业者需要了解的. 然而,人们对大数据分析的解读有多个不同方面.从"分析"的角度解读,大数据分析可以看作统计分析的延伸:从 "数据"的角度解读,大数据分析可以看作数据管理与挖掘的扩

《大数据分析原理与实践》一一2.3 推断统计

2.3 推断统计推断统计是研究如何利用样本数据来推断总体特征的统计方法,其目的是利用问题的基本假定及包含在观测数据中的信息,做出尽量精确和可靠的结论.基本特征是其依据的条件中包含带随机性的观测数据.以随机现象为研究对象的概率论是统计推断的理论基础.它包含两个内容:参数估计,即利用样本信息推断总体特征,例如某一群人的视力构成一个总体,通常认为视力是服从正态分布的,但不知道这个总体的均值,随机抽部分人,测得视力的值,用这些数据来估计这群人的平均视力:假设检验,即利用样本信息判断对总体的假设是否成立.

《大数据分析原理与实践》一一3.4 小结

3.4 小结关联分析模型用于描述多个变量之间的关联,这是大数据分析的一种重要模型,本章主要探讨了回归分析.关联规则分析和相关分析这三类关联分析.3.1节介绍了回归分析模型,即描述一个或多个变量与其余变量的依赖关系,包括其基本定义和数学模型,并介绍了回归分析的基本计算方法和模型检验,紧接着介绍了回归模型的拓展,包括多项式回归.GBDT回归和XGBOOST回归,并且简要介绍了"回归大家族",让读者对于整个回归问题有了全面的了解.3.2节讲述了关联规则分析模型,即查找存在于项目集合或对象集合

《大数据分析原理与实践》——小结

小结 关联分析模型用于描述多个变量之间的关联,这是大数据分析的一种重要模型,本章主要探讨了回归分析.关联规则分析和相关分析这三类关联分析.3.1节介绍了回归分析模型,即描述一个或多个变量与其余变量的依赖关系,包括其基本定义和数学模型,并介绍了回归分析的基本计算方法和模型检验,紧接着介绍了回归模型的拓展,包括多项式回归.GBDT回归和XGBOOST回归,并且简要介绍了"回归大家族",让读者对于整个回归问题有了全面的了解.3.2节讲述了关联规则分析模型,即查找存在于项目集合或对象集合之间的

《大数据分析原理与实践》一一第2章 大数据分析模型

第2章 大数据分析模型 大数据分析模型讨论的问题是从大数据中发现什么.尽管对大数据的分析方法林林总总,但面对一项具体应用,大数据分析非常依赖想象力.例如,对患者进行智能导诊,为患者选择合适的医院.合适的科室和合适的医生.可以通过患者对病症的描述建立模型而选择合适的科室:可以基于对患者位置.医院擅长病症的信息以及患者病症的紧急程度建立模型而确定位置合适的医院:还可以根据医院当前的队列信息建立模型进行推荐,如果队列较长则显示已挂号人数较少.等待时间较短的医生资料,如果队列较短则显示那些挂号费和治疗费

《大数据分析原理与实践》一一

3.3 相关分析 相关关系是一种非确定性的关系,例如,以X和Y分别表示一个人的身高和体重,或分别表示每公顷施肥量与每公顷小麦产量,则X与Y显然有关系,而又没有确切到可由其中的一个去精确地决定另一个的程度,这就是相关关系.在一些问题中,不仅经常需要考察两个变量之间的相关程度,而且还经常需要考察多个变量与多个变量之间即两组变量之间的相关关系.典型相关分析就是研究两组变量之间相关程度的一种多元统计分析方法.典型相关分析是研究两组变量之间相关关系的一种统计分析方法.为了研究两组变量X1,X2,-,Xp和

《大数据分析原理与实践》——2.3 推断统计

2.3 推断统计 推断统计是研究如何利用样本数据来推断总体特征的统计方法,其目的是利用问题的基本假定及包含在观测数据中的信息,做出尽量精确和可靠的结论.基本特征是其依据的条件中包含带随机性的观测数据.以随机现象为研究对象的概率论是统计推断的理论基础.它包含两个内容:参数估计,即利用样本信息推断总体特征,例如某一群人的视力构成一个总体,通常认为视力是服从正态分布的,但不知道这个总体的均值,随机抽部分人,测得视力的值,用这些数据来估计这群人的平均视力:假设检验,即利用样本信息判断对总体的假设是否成立

《大数据分析原理与实践》——2.1 大数据分析模型建立方法

2.1 大数据分析模型建立方法 大数据分析模型可以基于传统数据分析方法中的建模方法建立,也可以采取面向大数据的独特方法来建立.为了区分这两种模型建立方法,我们分别简称其为传统建模方法和大数据建模方法.由于这两种模型建立方法存在一些交集(如业务调研.结果校验等),我们采取统一框架来进行介绍,在介绍时区分两种建模方法的不同之处. (1)业务调研 首先需要向业务部门进行调研,了解业务需要解决的问题,将业务问题映射成数据分析工作和任务.对业务的了解无疑是传统建模方法和大数据建模方法都需要的. (2)准备