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

简介: 本节书摘来自华章计算机《大数据分析原理与实践》一书中的第3章,第3.1节,作者 王宏志,更多章节内容可以访问云栖社区“华章计算机”公众号查看。

3.1 回归分析

3.1.1 回归分析概述

1.回归分析的定义

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

2.回归分析的数学模型

image
image

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

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

image
image

4.回归分析的模型检验

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

image
image
image
image
image
image

5.回归分析的实例

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

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

image

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

image

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

回归方程为

image

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,表达式为

image

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

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

image

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

image

表达成递归形式则为

image
image
image
image
image
image
image
image
image
image
image
image

3.1.3 回归的阿里云实现

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

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

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

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

image
image

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

image

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

image

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

image

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

image

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

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

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

image

其中用训练集来预测得到的预测-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所示。

image

模型评估残差直方图如图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”。

image

image

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

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

image

image

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

image

image

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

image

image

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

image

image

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

相关文章
|
1月前
|
机器学习/深度学习 算法 搜索推荐
从理论到实践,Python算法复杂度分析一站式教程,助你轻松驾驭大数据挑战!
【10月更文挑战第4天】在大数据时代,算法效率至关重要。本文从理论入手,介绍时间复杂度和空间复杂度两个核心概念,并通过冒泡排序和快速排序的Python实现详细分析其复杂度。冒泡排序的时间复杂度为O(n^2),空间复杂度为O(1);快速排序平均时间复杂度为O(n log n),空间复杂度为O(log n)。文章还介绍了算法选择、分而治之及空间换时间等优化策略,帮助你在大数据挑战中游刃有余。
54 4
|
1月前
|
SQL 消息中间件 分布式计算
大数据-124 - Flink State 01篇 状态原理和原理剖析:状态类型 执行分析
大数据-124 - Flink State 01篇 状态原理和原理剖析:状态类型 执行分析
63 5
|
2天前
|
存储 监控 数据挖掘
【Clikhouse 探秘】ClickHouse 物化视图:加速大数据分析的新利器
ClickHouse 的物化视图是一种特殊表,通过预先计算并存储查询结果,显著提高查询性能,减少资源消耗,适用于实时报表、日志分析、用户行为分析、金融数据分析和物联网数据分析等场景。物化视图的创建、数据插入、更新和一致性保证通过事务机制实现。
26 14
|
9天前
|
数据采集 机器学习/深度学习 搜索推荐
大数据与社交媒体:用户行为分析
【10月更文挑战第31天】在数字化时代,社交媒体成为人们生活的重要部分,大数据技术的发展使其用户行为分析成为企业理解用户需求、优化产品设计和提升用户体验的关键手段。本文探讨了大数据在社交媒体用户行为分析中的应用,包括用户画像构建、情感分析、行为路径分析和社交网络分析,以及面临的挑战与机遇。
|
7天前
|
消息中间件 分布式计算 大数据
数据为王:大数据处理与分析技术在企业决策中的力量
【10月更文挑战第29天】在信息爆炸的时代,大数据处理与分析技术为企业提供了前所未有的洞察力和决策支持。本文探讨了大数据技术在企业决策中的重要性和实际应用,包括数据的力量、实时分析、数据驱动的决策以及数据安全与隐私保护。通过这些技术,企业能够从海量数据中提取有价值的信息,预测市场趋势,优化业务流程,从而在竞争中占据优势。
34 1
|
9天前
|
机器学习/深度学习 搜索推荐 大数据
大数据与教育:学生表现分析的工具
【10月更文挑战第31天】在数字化时代,大数据成为改善教育质量的重要工具。本文探讨了大数据在学生表现分析中的应用,介绍学习管理系统、智能评估系统、情感分析技术和学习路径优化等工具,帮助教育者更好地理解学生需求,制定个性化教学策略,提升教学效果。尽管面临数据隐私等挑战,大数据仍为教育创新带来巨大机遇。
|
12天前
|
人工智能 供应链 搜索推荐
大数据分析:解锁商业智能的秘密武器
【10月更文挑战第31天】在信息爆炸时代,大数据分析成为企业解锁商业智能的关键工具。本文探讨了大数据分析在客户洞察、风险管理、供应链优化、产品开发和决策支持等方面的应用,强调了明确分析目标、选择合适工具、培养专业人才和持续优化的重要性,并展望了未来的发展趋势。
|
27天前
|
存储 SQL 分布式计算
湖仓一体架构深度解析:构建企业级数据管理与分析的新基石
【10月更文挑战第7天】湖仓一体架构深度解析:构建企业级数据管理与分析的新基石
41 1
|
1月前
|
存储 消息中间件 大数据
大数据-69 Kafka 高级特性 物理存储 实机查看分析 日志存储一篇详解
大数据-69 Kafka 高级特性 物理存储 实机查看分析 日志存储一篇详解
32 4
|
1月前
|
消息中间件 druid 大数据
大数据-153 Apache Druid 案例 从 Kafka 中加载数据并分析(二)
大数据-153 Apache Druid 案例 从 Kafka 中加载数据并分析(二)
29 2
下一篇
无影云桌面