人工智能算法与实践-第3章 线性回归_第1页
人工智能算法与实践-第3章 线性回归_第2页
人工智能算法与实践-第3章 线性回归_第3页
人工智能算法与实践-第3章 线性回归_第4页
人工智能算法与实践-第3章 线性回归_第5页
已阅读5页,还剩28页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

3.4算法总结3.1算法概述3.2算法原理3.3算法案例目录第三章线性回归算法3.人工智能算法与实践—1—01算法概述PartTHREE—2—回归分析是一种分析数据的统计方法。回归分析的目的是了解两个或两个以上变量是否相关、相关的方向和强度,并建立数学模型观察特定变量,预测研究者感兴趣的变量。回归分析主要分为前期的模型学习与后期的预测两个过程,前者主要是通过给定的数据集来进行学习并且建立回归模型,后者是输入需要预测的数据到模型中,然后输出预测值。

线性回归模型形式相对简单,易于建模,但是其中却蕴涵着机器学习中的很多重要的基本思想。有很多功能更为强大的非线性模型都能够建立在线性模型的基础上,通过引入层级结构或者一些映射完成。3.1算法概述基本概念—3—02算法原理PartTHREE—4—一元线性回归模型多元线性回归模型12算法原理3.2算法原理算法原理—5—3线性回归模型4梯度下降求解线性回归模型在统计学中,线性回归是一种回归分析方法,它利用最小二乘函数(称为线性回归方程)对一个或多个自变量与因变量之间的关系进行建模。线性回归也是一种被广泛应用的回归分析方法,分为一元线性回归和多元线性回归,通常采用最小二乘法进行拟合。3.2.1线性回归模型基本概念—6—多元线性回归如果回归分析包含两个或两个以上的自变量,并且因变量与自变量之间的关系是线性的,这种回归分析称为多元线性回归分析。一元线性回归如果回归分析中只包含一个自变量和一个因变量,并且两者之间的关系可用直线近似表示,这种回归分析称为一元线性回归分析。3.2.1线性回归模型基本概念—7—公式表示

一元线性回归

3.2.2一元线性回归一元线性回归—8—

3.2.2一元线性回归一元线性回归—9—如何最小化以下最小损失函数?

3.2.2一元线性回归一元线性回归—10—通过特定算法,如最小二乘法、梯度下降算法等来确定代价函数(损失函数)取最小值时的参数。最小二乘法降低损失函数3.2.2一元线性回归一元线性回归—11—

最小二乘法降低损失函数3.2.2一元线性回归一元线性回归—12—令上述两个方程等于0,联立方程,通过数学公式的推导,就可以将a和b的值解出来,最终解得的结果为:算法实现步骤3.2.2一元线性回归一元线性回归—13—

多元线性回归多元线性回归模型,其参数众多,究竟该如何推导呢?由于其涉及的参数个数较多导致上述的方法不再适用,因此一般采用矩阵推导的方式来降低损失函数。3.2.3多元线性回归多元线性回归—14—

3.2.3多元线性回归多元线性回归—15—算法实现步骤3.2.3多元线性回归多元线性回归—16—

梯度下降求解线性回归模型3.2.4梯度下降求解线性回归模型多元线性回归—17—采用最小二乘法来处理多元线性回归问题都是在矩阵满秩的情况下进行的,那么当矩阵不满秩时,就需要采用梯度下降算法来进行求解。当目标函数为凸函数时,梯度下降法的解为全局解。一般情况下,解不一定是全局最优解,梯度下降法的速度也不一定是最快的。梯度下降算法是一种通过不断迭代的方式来求取代价函数的最小值或最大值的算法。其具体的算法思想类似于一个人在山顶寻找最快的下山方式,即找到最陡峭的位置;当找到一个位置下山后,再重复上述过程,直至到达山底。梯度下降求解线性回归模型3.2.4梯度下降求解线性回归模型多元线性回归—18—

3.2.4梯度下降求解线性回归模型多元线性回归—19—在求取参数中,通常采取以下几种方式。(1)批量梯度下降(BatchGradientDescent)。批量梯度下降法是梯度下降法最常用的形式,具体做法也就是在更新参数时使用所有的样本来进行更新,更新参数时,每次都使用全部数据集,即在给定的步长的情况下,对所有的样本的梯度和进行迭代,其核心公式如下:它的优点是易于获取到全局的最优解,总体的迭代次数不多,并且实现了并行,但其缺点是,如果实验中所给的样本数据量很大,则每次迭代都将会耗费很长的时间,最终导致总体效率较低。3.2.4梯度下降求解线性回归模型多元线性回归—20—(2)随机梯度下降(StochasticGradientDescent)。随机梯度下降算法的原理实际上与批量梯度下降算法的原理相似。不同的是它没有使用实验中所给的样本的全部数据,而是只选取其中的一个样本来计算梯度,其原理是每次从样本集中抽取一个点更新参数,核心公式如下:随机梯度下降算法和批量梯度下降算法是两个极端。一个是使用所有数据进行梯度下降,另一个是使用一个样本进行梯度下降。它们的优势和劣势自然也非常突出。在训练速度上,随机梯度下降算法每次只需迭代一个样本,训练速度很快,而批量梯度下降算法在样本量较大时不能满足训练速度的要求。对于收敛速度,由于随机梯度下降算法每次都只迭代一个样本,因此每次迭代的方向变化都会很大,不能快速地收敛到局部的最优解。随机梯度下降算法的优点就是每次只抽取一个样本点来更新参数,实验的整体效率较高,但是不易获得全局的最优解,导致实验整体的正确率下降,并且不易于并行实现。3.2.4梯度下降求解线性回归模型多元线性回归—21—(3)小批量梯度下降(Mini-batchGradientDescent)。小批量梯度下降是批量梯度下降与随机梯度下降两种算法的折中,每次迭代的数据是从总体数据集中选取指定个数的样本更新数据,核心公式如下:小批量梯度下降算法的优点是每次使用一个小批量的样本更新参数,这样可以有效地减少收敛所需要的迭代次数,提高了实验的整体效率;相对于随机梯度下降方法更易于获取全局最优解,并且能够并行实现。但是,如果批量值选取不当,则可能会导致内存消耗较大、收敛到局部解等问题。3.2.4梯度下降求解线性回归模型多元线性回归—22—Python实现梯度下降算法核心步骤:(1)先定义几个变量,thera0、thera1分别表示

0、

1

初始值;alplf表示学习率

;error、error1分别表示上次迭代的误差以及当前迭代后的误差;break_t表示阈值;count表示迭代次数。(2)进行迭代,可以设定一个循环次数,主要是防止步长选取过大时,出现发散的情况而进入死循环。(3)定义一个列表thera01,thera01[0]代表thera0的偏导数,thera01[1]代表thera1的偏导数,用一个列表存储方便后续同时更新thera0与thera1的值。(4)再次进行迭代,遍历整个数据集,不断更新thera01列表,遍历完成后,再同时更新thera0、thera1的值。(5)通过迭代求得此次迭代后的误差平方和,并求其均值得到平均误差error1。(6)将此次误差error1与上次误差error做差得到的值取完绝对值后与阈值进行比较,若比阈值小,则近似看作达到最低点,即取得最优值,跳出循环,否则将error1赋值给error,再次进行循环。(7)为了防止(2)中可能出现的死循环,每次计数count加1后与程序开始设定的循环次数做比较,当迭代次数达到设定次数后,程序自动跳出循环,循环结束。3.2.4梯度下降求解线性回归模型多元线性回归—23—03算法案例PartTHREE—24—以波士顿房价预测的实现为例,其是一个回归问题,数据背景见左表所示。每个类观察值的数量都是均等的,共有506个观察值,13个输入变量以及1个输出变量。每条数据包含了房屋以及房屋周围的详细信息,其中包含了该镇的人均犯罪率、一氧化氮浓度、每栋房屋的平均客房数、到波士顿5个就业中心的加权距离等。3.3算法案例算法案例—25—对于波士顿房价预测,在此仅采用其中一个属性作为变量x,即LSTAT,表示地区中地位较低的人所占百分比。实验具体过程如下所述。1.数据读入因为在sklearn库中已经封装了波士顿房价信息,所以直接调用即可。3.3算法案例算法案例—26—2.编写梯度下降函数并调用与上述批量梯度下降算法基本一致,需要做的是将函数封装,并且对函数里面的参数进行调整,防止出现因“步长”过大而发散的情况,具体代码实现如下:3.3算法案例算法案例—27—3.3算法案例算法案例—28—3.将结果可视化为了将运行结果可视化,可以在代码中引入可视化包,由步骤2中计算得到的a和b(即thera1和thera0)绘制出直线以及LSTAT

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论