机器学习算法之线性回归

一、什么是回归算法

回归算法是一种有监督算法

回归算法是一种比较常用的机器学习算法,用来建立“解释”变量(自变量X)和观测值(因变量Y)之间的关系;从机器学习的角度来讲,用于构建一个算法模型(函数)来做属性(X)与标签(Y)之间的映射关系,在算法的学习过程中,试图寻找一个函数使得参数之间的关系拟合性最好

回归算法中算法(函数)的最终结果是一个连续的数据值,输入值(属性值)是一个d维度的属性/数值向量

1.1 初识回归

有一个问题:现在拥有一组房屋面积及其对应房价的数据如下,如果有一个房屋面积为55平,请问最终的租赁价格是多少比较合适?

房屋面积租赁价格
100.8
201.8
302.2
302.5
705.5
705.2

我们可以构建一个函数

\begin{center} h(x)=\theta ^{0}+\theta ^{1}x \end{center}

其中h(x) 为房价,x为房屋面积,根据大量的数据求出 \theta ^{0} 和 \theta ^{1} 的值,于是能够构建出一条直线。

如果此时将测试集中的数据投入到模型中,如果模型构建的比较好,可以看到测试集中所有(面积,价格)的点会均匀分布在直线的上下两侧,而且离的直线距离不会太远 (说明方差较小) 。如果测试集中的数据大量分布在直线的上方,或离直线的距离普遍较远,那么说明模型质量不高,需要重新训练。

如果在面积的基础上,增加房间数量这一变量呢

房屋面积房间数量租赁价格
1010.8
2011.8
3012.2
3022.5
7035.5
7025.2

构造函数

h \left (x \right )=\theta_{0}+\theta_{1}x_{1}+\theta_{2}x_{2}

其中h(x) 为房价,根据大量的数据求出 \theta ^{0}\theta ^{1}\theta ^{2}的值,于是能够构建出一个平面。我们要预测面积、房间个数和房价的映射关系,构建如下模型

从Y轴向下俯视该平面,可以获得该平面在 x1、 x2 两坐标轴上的投影。同样,由(x1、 x2)点衍生到平面上后,对应的Y轴值即是对应的房价值y或记作h(x) 

如果有1个特征,我们得到了一条直线模型。如果有2个特征,我们得到了一个平面。如果有2个以上的特征呢?

2个特征形成的平面,结合目标值构成了一个三维的图像,对于更高维度的思维结构人类是无法想象出来的。对于两个以上特征形成的n维模型,我们称之为超平面(Hyperplane)

模型:

h(x) = \theta _{0} + \theta _{1}x _{1} + \theta _{2}x _{2} + ... + \theta _{n}x _{n}

h(x) = \sum_{0}^{n} \theta _{i}x_{i}

h(x) = \theta ^{T}X = [\theta_{1},\theta_{2},\theta_{3},...,\theta_{n}] * [x_{1},x_{2},x_{3},...,x_{n}]^{T}

即θ矩阵的转置,乘以X的矩阵。

注:所有特征默认都是列向量

1.2 导数

导数 就是曲线的斜率,是曲线变化快慢的一个反应。

二阶导数 是斜率变化的反应,表现曲线的 凹凸性

y=f(x)

y'=f'(x) =\frac{dy}{dx} =\lim_{\triangle x}\frac{\triangle y}{\triangle x} =\lim_{\triangle x}\frac{f(x_{0} + \triangle x) - f(x_{0})}{\triangle x}

1.3 偏导数

导数是针对单一变量的,当函数是多变量的,偏导数 就是关于其中一个变量的导数而保持其他变量恒定不变(固定一个变量求导数)。

1.4 梯度

梯度是一个向量,表示某一函数在该点处的 方向导数 ,沿着该方向取最大值,即函数在该点处沿着该方向变化最快,变化率最大(即该梯度向量的模);当函数为一维函数的时候,梯度就是导数。

二、求解

2.1 求解方法

1.解析解:最小二乘法(又称最小平方法)是一种数学优化技术,它由两部分组成:

  • 计算所有样本误差的平均(代价函数)
  • 使用最优化方法寻找数据的最佳函数匹配(抽象的)

2.数值解:梯度下降法、牛顿法、拟牛顿法等

2.2 线性回归算法的步骤

Step1:画出散点图确定回归方程

Step2:写出回归方程的基本形式(以线性为例)。最终目的是要计算出θ的值,并选择最优的θ构成算法公式

\begin{aligned}h_{\theta}(x)&=\theta_{0} +\theta_{1}x_{1}+ \theta_{2}x_{2} +...+\theta_{n}x_{n} \\&=\theta_{0}1 +\theta_{1}x_{1}+...+\theta_{n}x_{n}\\&=\theta_{0}x_{0} +\theta_{1}x_{1}+...+\theta_{n}x_{n}\\&=\sum_{i=0}^{n}\theta_{i}x_{i}=\theta^Tx\end{aligned}

Step3:写出目标函数,object:样本预测值与实际值的差值最小化

minJ(\theta)=\frac{1}{2}\sum_{i=1}^{m}(\epsilon^{(i)})^2=\frac{1}{2}\sum_{i=1}^{m}(h_{​{\theta}}(x^{(i)})-y^{(i)})^2

Step4:计算待估计参数的值,求出回归方程

三、方法一:极大似然估计解释最小二乘法

3.1 似然函数

前提假设:对于y^{i}=\theta ^{T}x^{i}+\varepsilon^{i},误差 \varepsilon^{i} 是独立同分布的,服从均值为0,方差为某定值\sigma ^{2}的高斯分布

解释:实际问题中,很多随机现象可以看做众多因素的独立影响的综合反应,如房价往往由距离地铁位置,周围是否由学校等因素影响(误差 \varepsilon^{i}同样如此),往往服从正态分布(原因:中心极限定理)

所以,对于第i个样本,误差满足如下公式:

 y^{(i)}=\theta^Tx^{(i)}+\epsilon^{(i)}

P(\epsilon^{(i)})=\frac{1}{\sqrt{2\pi}\sigma}\exp(-\frac{(\epsilon^{(i)})^2}{2\sigma^2})

P(y^{(i)}|x;\theta)=\frac{1}{\sqrt{2\pi}\sigma}\exp(-\frac{(y^{(i)}-\theta^{T}x^{(i)})^2}{2\sigma^2})

根据中心极限定理得到似然函数:

\begin{aligned}L(\theta)&=\prod_{i=1}^{m}P(y^{(i)}|x;\theta)\\&=\prod_{i=1}^{m}\frac{1}{\sqrt{2\pi}\sigma}\exp(-\frac{(y^{(i)}-\theta^{T}x^{(i)})^2}{2\sigma^2})\end{aligned}

取对数,得到对数似然函数:

\begin{aligned}l(\theta)=\ln{L(\theta)}&=\sum_{i=1}^{m}\log\frac{1}{\sqrt{2\pi}\sigma}\exp(-\frac{(y^{(i)}-\theta^{T}x^{(i)})^2}{2\sigma^2})\\&=m\log\frac{1}{\sqrt{2\pi}\sigma}-\frac{1}{\sigma^2}*\frac{1}{2}\sum_{i=1}^{m}(y^{(i)}-\theta^{T}x^{(i)})^2\end{aligned}​​​​​​

化简,得到目标函数:

J(\theta)=\frac{1}{2}\sum_{i=1}^{m}(y^{(i)}-\theta^{T}x^{(i)})^2

 3.2 最小二乘法

对于y=\theta ^{T}x,其中

X=\begin{Bmatrix}x^{(1)T} \\x^{(2)T} \\\vdots\\x^{(m)T} \\\end{Bmatrix}=\begin{Bmatrix}x_{11} & x_{12} & \cdots & x_{1n} \\x_{21} &x_{22} &\cdots &x_{2n} \\\vdots & \vdots & \ddots & \vdots \\x_{m1} &x_{m2} & \cdots & x_{mn} \\\end{Bmatrix}

\begin{aligned}X\theta&=\begin{Bmatrix}x_{11} & x_{12} &\cdots &x_{1n} \\x_{21} & x_{22} &\cdots &x_{2n} \\\vdots & \vdots & \ddots &\vdots \\x_{m1} &x_{m2} &\cdots &x_{mn} \\\end{Bmatrix}\begin{Bmatrix}\theta_1 \\\theta_2 \\\vdots\\\theta_n \\\end{Bmatrix}\\&=\begin{Bmatrix}\hat{y_1} \\\hat{y_2} \\\vdots\\\hat{y_m} \\\end{Bmatrix}\end{aligned}

目标函数:

\begin{aligned}J(\theta)&=\frac{1}{2}\sum_{i=1}^{m}(y^{(i)}-\theta^{T}x^{(i)})^2\\&=\frac{1}{2}(X\theta-y)^{T}(X\theta-y)\end{aligned}

对目标函数进行求导:

\begin{aligned}\bigtriangledown_{\theta}J(\theta)&=\bigtriangledown_{\theta}(\frac{1}{2}(X\theta-y)^{T}(X\theta-y))\\&=\bigtriangledown_{\theta}(\frac{1}{2}(\theta^{T}X^{T}X\theta-\theta^TX^Ty-y^TX\theta+y^Ty)^2)\\&=\frac{1}{2}((X^TX+(X^TX)^T)\theta-X^Ty-(y^TX)^T)\\&=X^TX\theta-X^Ty\end{aligned}\\let \bigtriangledown_{\theta}J(\theta)=0\\ then \theta=(X^TX)^{-1}X^Ty​​​​​​

3.3 最小二乘法的参数最优解

参数解析式:\theta=(X^TX+\lambda{I})^{-1}X^Ty

最小二乘法的使用要求矩阵X^{T}X是可逆的;为了防止不可逆或者过拟合的问题存在,可以增加额外数据影响,导致最终的矩阵是可逆的

证明方法:加入惩罚项
1)X^TX 半正定,对于任意的非零向量μ:\mu^TX^TX\mu=(X\mu)^T\mu\\letV=X\mu,thenV^TV\geqslant0μ
2)对于任意的实数λ>0,X^TX+\lambda{I}正定λ
mu^T(X^TX+\lambda{I})\mu=\mu^TX^TX\mu+\lambda\mu^T\mu< 0恒成立。
3)从而X^TX+\lambda{I}可逆,保证回归公式一定有意义

最小二乘法直接求解的难点:矩阵逆的求解是一个难处

3.4 损失函数,代价函数,目标函数

参考:机器学习之线性回归 损失函数、代价函数、目标函数

3.5 线性回归过拟合

一般来说,模型的训练误差很小,而预测误差很大的情况下,模型存在过拟合的情况

目标函数

J(\theta)=\frac{1}{2}\sum_{i=1}^{m}(y^{(i)}-\theta^{T}x^{(i)})^2

为了防止数据过拟合,也就是的θ值在样本空间中不能过大/过小,可以在目标函数之上增加一个平方和损失:

(\theta)=\frac{1}{2}\sum_{i=1}^{m}(h_{\theta}(x^{(i)})-y^{(i)})^2+\lambda{\sum_{i=1}^{n}\theta_{j}^{2}}

正则项(norm):\lambda{\sum_{i=1}^{n}\theta_{j}^{2}}这里这个正则项叫做L2-norm

3.5.1 Ridge回归(岭回归)

使用L2正则的线性回归模型就称为Ridge回归(岭回归)

J(\theta)=\frac{1}{2}\sum_{i=1}^{m}(h_{\theta}(x^{(i)})-y^{(i)})^2+\lambda{\sum_{i=1}^{n}\theta_{j}^2},\lambda> 0

3.5.2 LASSO回归

使用L1正则的线性回归模型就称为LASSO回归(Least Absolute Shrinkage and Selection Operator)

J(\theta)=\frac{1}{2}\sum_{i=1}^{m}(h_{\theta}(x^{(i)})-y^{(i)})^2+\lambda{\sum_{i=1}^{n}\rvert\theta_{j}}\rvert,\lambda>0

3.5.3 Elasitc Net算法

同时使用L1正则和L2正则的线性回归模型就称为Elasitc Net算法(弹性网络算法)

J(\theta)=\frac{1}{2}\sum_{i=1}^{m}(h_{\theta}(x^{(i)})-y^{(i)})^2+\lambda{(p\sum_{j=1}^{n}|\theta_{j}|+(1-p)\sum_{j=1}^{n}\theta_{j}^{2})},\lambda>0,p\in[0,1]

3.5.4 Ridge(L2-norm)和LASSO(L1-norm)比较

L2-norm中,由于对于各个维度的参数缩放是在一个圆内缩放的,不可能导致有维度参数变为0的情况,那么也就不会产生稀疏解;实际应用中,数据的维度中是存在噪音和冗余的,稀疏的解可以找到有用的维度并且减少冗余,提高回归预测的准确性和鲁棒性(减少了overfitting)(L1-norm可以达到最终解的稀疏性的要求)

Ridge模型具有较高的准确性、鲁棒性以及稳定性;LASSO模型具有较高的求解速度。

如果既要考虑稳定性也考虑求解的速度,就使用Elasitc Net

å¨è¿éæå¥å¾çæè¿°

由上图可知,对于二元线性回归来说,L1正则的限制性区域为蓝色正方形固定区域,L2正则限制性区域为蓝色圆形固定区域,当目标函数前半部分与后半部分(限制性条件)相交时,集等势线与固定区域相交,交点即为最优解,L1正则交点存在参数为0的情况,而L2则不存在,由此可推出L1正则容易产生稀疏解(元素为零)

3.6模型效果评判标

MSE = \frac{1}{m}\sum_{i=1}^{m}(y_{i}-\hat{y_{i}})^2\\RMSE = \sqrt{MSE}=\sqrt{\frac{1}{m}\sum_{i=1}^{m}(y_{i}-\hat{y_{i}})^2}\\R^2=1-\frac{RSS}{TSS}=1-\frac{\sum_{i=1}^{m}(y_{i}-\hat{y_{i}})^2}{\sum_{i=1}^{m}(y_{i}-\overline{y_{i}})^2}, \overline{y_{i}}=\frac{1}{m}\sum_{i=1}^{m}y_{i}

  • MSE:误差平方和,越趋近于0表示模型越拟合训练数据。
  • RMSE:MSE的平方根,作用同MSE
  • R^{2} :取值范围(负无穷,1],值越大表示模型越拟合训练数据;最优解是1;当模型预测为随机值的时候,有可能为负;若预测值恒为样本期望,R^{2} 为0
  • TSS:总平方和TSS(Total Sum of Squares),表示样本之间的差异情况,是伪方差的m倍
  • RSS:残差平方和RSS(Residual Sum of Squares),表示预测值和样本值之间的差异情况,是MSE的m倍

3.7机器学习调参

在实际应用中,对于各种算法模型(线性回归)来讲,我们需要获取θ、λ、p \theta、\lambda、pθ、λ、p的值,由于λ、p \lambda、pλ、p为超参数,无法求解,需要人为设定,从而求解最优的θ \thetaθ值,该过程为调参(超参数)

交叉验证:将训练数据分为多份,其中一份进行数据验证并获取最优的超参数λ \lambdaλ和p pp;比如:十折交叉验证、五折交叉验证(scikit-learn中默认)等。

四、方法二:梯度下降法

参考链接https://blog.csdn.net/fenglepeng/article/details/104507269

五、局部加权回归

局部加权回归-损失函数

普通线性回归损失函数:

J(\theta)=\frac{1}{2}\sum_{i=1}^{m}(y^{(i)}-\theta^{T}x^{(i)})^2

局部加权回归损失函数:

J(\theta)=\sum_{i=1}^{m}w^{(i)}(h_{\theta}(x^{(i)})-y^{(i)})^2

局部加权回归权重值w^{i} 是权重,主要是根据预测点与训练集点的距离作为数据集中的点赋权值。当某点离要预测的点越远,其权重越小,否则越大。常用的公式为:

w^{(i)}=\exp{(-\frac{(x^{(i)}-\hat{x})^2}{2k^2})}

该函数称为指数衰减函数,其中k 为波长参数,它控制了权值随距离下降的速率

注意:使用该方式主要应用到样本之间的相似性考虑

NOTE:局部加权回归是一种非参数学习算法,也就是说参数不固定,在每一次预测的时候,均需要使用训练数据重新训练模型参数。

 

 

 

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/454546.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Console-算法[for]-国王与老人的六十四格

ylbtech-Arithmetic:Console-算法[for]-国王与老人的六十四格1.A&#xff0c;案例-- -- ylb&#xff1a;算法-- Type:算法[for]-- munu:国王与老人的六十四格-- 20:32 2012/3/16-- 案例&#xff1a;印度有个国王&#xff0c;他拥有超人的权力和巨大的财富。但权力和财富最终让他…

在OOW2009上寻宝撞大运续(床上篇)

历时5天的Oracle Open World 2009终于&#xff0c;终于结束了。今天最后的节目是去听一场金融分析师的会议&#xff0c;“只”开了不到6个钟。去的时候是毛毛雨&#xff0c;回来的时候终于看到了一缕阳光。说夕阳无限好不大合适。用Larry Ellison的说法是“太阳落下的地方也是太…

特征图注意力_从数据结构到算法:图网络方法初探

作者 | 朱梓豪来源 | 机器之心原文 | 从数据结构到算法&#xff1a;图网络方法初探如果说 2019 年机器学习领域什么方向最火&#xff0c;那么必然有图神经网络的一席之地。其实早在很多年前&#xff0c;图神经网络就以图嵌入、图表示学习、网络嵌入等别名呈现出来&#xff0c;其…

FFMPEG 源码分析

FFMPEG基本概念&#xff1a; ffmpeg是一个开源的编解码框架&#xff0c;它提供了一个音视频录制&#xff0c;解码和编码库。FFMPEG是在linux下开发的&#xff0c;但也有windows下的编译版本。 ffmpeg项目由以下几部分组成: ffmpeg 视频文件转换命令行工具,也支持经过实时电视…

面试之 Redis汇总

简介 Redis 持久化机制 RDB&#xff08;Redis DataBase&#xff09; AOF&#xff08;Append-only file&#xff09; Redis 4.0 对于持久化机制的优化 补充&#xff1a;AOF 重写 二者的区别 二者优缺点 Memcache与Redis的区别都有哪些&#xff1f; 缓存雪崩、缓存穿透、…

Oracle 10g 问题集锦

监听服务中Oracle数据库之中使用最主要的一个服务&#xff0c;但是这个服务经常会出现错误&#xff0c;包括以后在工作之中此服务也会出现错误&#xff0c;故给出两种常见错误的解决方案&#xff08;故障1、故障2&#xff09; 故障1: 注册表使用了优化软件&#xff08;如&#…

iOS linker command failed with exit code 1 (use -v to see invocation)多种解决方案汇总

有时可能会遇到这种错误&#xff0c;关键是这种错误&#xff0c;有时只有这一句话&#xff0c;也不会给更多错误信息。 网上找了一些&#xff0c;总结了如下&#xff1a;&#xff08;PS&#xff1a;以下是按照解决简易程度排序&#xff0c;不代表出现概率&#xff09; 1、bitco…

面试之 Mysql 汇总

事务相关 什么是事务&#xff1f; 事务&#xff1a;是由一组SQL语句组成的逻辑处理单元&#xff0c;事务具有以下4个属性&#xff0c;通常简称为事务。事务的ACID属性&#xff1a; &#xff08;1&#xff09;原子性&#xff08;Atomicity&#xff09;&#xff1a;   事务是一…

Exchange Server 2003 部署手册

1. 环境需求服务器: 域控制器1台; Exchange Server服务器1台。 IP和机器名配置&#xff1a; 域控制器&#xff1a;机器名&#xff1a;dc IP&#xff1a; 10.10.10.200 掩码&#xff1a;255.255.255.0 网关&#xff1a;10.10.10.254 DNS&#xff1a;127.0.0.1 Exchange&#xff…

html浏览器的区别是什么意思,不同浏览器对css的识别有区别吗?

不同浏览器对css的识别是有区别&#xff0c;因此针对不同的浏览器去写不同的CSS。下面本篇文章给大家介绍一些常用CSS书写技巧(不同浏览器之间的差异)。有一定的参考价值&#xff0c;有需要的朋友可以参考一下&#xff0c;希望对大家有所帮助。不同的浏览器&#xff0c;比如Int…

面试之 Python 进阶

前端相关 1.谈谈你对http协议的认识。 浏览器本质&#xff0c;socket客户端遵循Http协议   HTTP协议本质&#xff1a;通过\r\n分割的规范 请求响应之后断开链接 > 无状态、 短连接 具体&#xff1a;   Http协议是建立在tcp之上的&#xff0c;是一种规范&#xff0c;它…

Lync Server外部访问系列PART5:模拟公网DNS

因为要实现外部用户访问&#xff0c;所以我们必然需要在公网DNS中添加我们所需要的一些A记录&#xff0c;而这样的测试需要我们拥有一个公网的域名以及一个可发布、可访问的IP。如果没有的话就没办法这样测试&#xff0c;所以我们今天在物理局域网中搭建一台DNS服务器&#xff…

oracle对查询结果求和_Oracle 闪回技术详解

概述闪回技术是Oracle强大数据库备份恢复机制的一部分&#xff0c;在数据库发生逻辑错误的时候&#xff0c;闪回技术能提供快速且最小损失的恢复(多数闪回功能都能在数据库联机状态下完成)。需要注意的是&#xff0c;闪回技术旨在快速恢复逻辑错误&#xff0c;对于物理损坏或是…

html里写js ajax吗,js、ajax、jquery的区别是什么?

js、ajax、jquery的区别1、JS是一门前端语言。2、Ajax是一门技术&#xff0c;它提供了异步更新的机制&#xff0c;使用客户端与服务器间交换数据而非整个页面文档&#xff0c;实现页面的局部更新。3、jQuery是一个框架&#xff0c;它对JS进行了封装&#xff0c;使其更方便使用。…

泰安第一中学2021年高考成绩查询,等级考第一天结束 泰安部分考生已完成2021年高考...

6 月 9 日&#xff0c;山东新高考进入第三天&#xff0c;也是学业水平等级考试的第一天&#xff0c;物理、思想政治、化学三门选考科目的考试已全部完成。由于选考科目不同&#xff0c;考生结束高考的进程也不同&#xff0c;9 日下午&#xff0c;选考物理、思想政治、化学的考生…

机器学习原理与算法(六) 支持向量机

版权声明&#xff1a;本系列文章为博主原创文章&#xff0c;转载请注明出处&#xff01;谢谢&#xff01; 本章索引&#xff1a; 从第3章的Logistic回归算法开始&#xff0c;我们一直在讨论分类问题。在各种不同的分类算法中&#xff0c;...&#xff0c;我们一直在讨论如何分类…

读《程序员的SQL金典》[2]--函数

一、数学函数 1.RAND SELECT RAND () ---0.302870228294199取0-1之间的随机小数。 2.小数取整 CEILINT(data)舍掉小数部分并向上取整。FLOOR(data)舍掉小数部分并向下取整。SELECT TOP 3 FWeight, CEILING(FWeight ),FLOOR( FWeight) FROM T_PersonRound(m,d)&#xff1a;四舍…

python人脸识别代码百度ai_python百度AI人脸识别API测试

1、注册账号 2、创建应用 3、得到AK和SK 4、用AK SK获取access_token 可用下面的代码&#xff1a; #!/usr/bin/python3.5 # encoding:utf-8 import requests # client_id 你的AK client_secret 你的SK host https://aip.baidubce.com/oauth/2.0/token?grant_typeclient_crede…

Flask 第三方组件之 SQLAlchemy

一、介绍 SQLAlchemy是一个基于Python实现的ORM框架。该框架建立在 DB API之上&#xff0c;使用关系对象映射进行数据库操作&#xff0c;简言之便是&#xff1a;将类和对象转换成SQL&#xff0c;然后使用数据API执行SQL并获取执行结果。 安装&#xff1a;pip3 install sqlalc…

html 中怎样显示enum,JavaScript如何枚举?

JavaScript中对象的属性分为两种&#xff1a;数据属性和访问器属性。然后根据具体的上下文环境的不同&#xff0c;又可以将属性分为&#xff1a;原型属性和实例属性。原型属性是定义在对象的原型(prototype)中的属性&#xff0c;而实例属性一方面来自构造的函数中&#xff0c;然…