线性回归的基本原理算法实现

作者简介:前审计|现风控模型工程师|数据挖掘

如上图所示,以一元线性回归为例。我们的目的就是寻找一条直线来最大程度地拟合与之间的关系。

如何度量我们拟合程度的好坏呢?首先我们从单个样本点A来看。假设我们找到了一条直线,那么对于点A,其预测值为

,其真值为,则真值与预测值之间的差距可以有以下几种方式表示:

(1);这种衡量方式,可能会因为正负相互抵消的问题,使得在更多的样本点加入时,总体的差距被相互中和。

(2);这种衡量方式,由于绝对值并不是处处可导,不便于求解最优解。

(3);(√)

考虑所有样本后,拟合直线和真实样本之间的差距可以表示为:

由于,因此上式可以变形为:

因此我们的目标就是找到和,使得尽可能小。令:

我们称为损失函数(在有的地方也用表示损失函数)。我们的目的就是最优化损失函数(或效用函数),近乎所有参数学习算法都是

这样的套路,包括:线性回归、逻辑回归、SVM、神经网络等。

最优化,即求解:

(1)对求导:

令,得:

(2)对求导:

(3)综上得,当:

损失函数最优

因此:

可以转换成向量点乘运算:

公式有一个问题是会改变量纲。因为公式平方了,比如说值的单位是万元,计算出来的是万元的平方,对于这个值难以解释它的含义。所以为了消除量纲的影响,我们可以对这个开方,从而得出:

综上:①就是统一量纲后的;②相较于,放大了差异中较大的部分(因为是先平方再开方),因此我们尽量使较小为佳。

、、都难以在解决不同问题的模型中有一个统一的评判尺度。例如:对于预测房价的模型,上述指标可能为10000,但是对于预测成绩的模型,上述指标可能就只有10,对于这样的情况,上述指标就无能为力。因此我们引入,计算方法如下:

上述式子中分子①表示使用我们训练的模型预测与真实值之间的误差,分母②表示使用预测与真实值之间的误差。因此就可以理解为:我们训练的模型相对于的相对误差大小,就表示我们的模型拟合的程度,因此又被称为拟合优度。

因此我们的目标仍然是最优化损失函数,找到一组参数使得最小。

我们分别对求导,并令其等于0,得:

因此,我们只需求解方程组,即可得出参数

将方程组转换成矩阵,如下:

式左侧可以写成:

矩阵化:

式右侧可以写成:

因此,方程组写成矩阵形式为,如下:

令:

则,正规方程组可以表示为:

经矩阵运算,得:

因此,正规方程组的解为:

array([-1.06715912e-01,3.53133180e-02,-4.38830943e-02,4.52209315e-01,-1.23981083e+01,3.75945346e+00,-2.36790549e-02,-1.21096549e+00,2.51301879e-01,-1.37774382e-02,-8.38180086e-01,7.85316354e-03,-3.50107918e-01])

array([4,7,10,12,0,2,6,9,11,1,8,3,5],dtype=int64)

如上,根据训练出来的参数可以看出,参数值最大的特征是RM(averagenumberofroomsperdwelling),即房屋中房间的数量越多,房价越高(符合常理);参数值最小的特征是NOX(nitricoxidesconcentration(partsper10million)),即房屋周围一氧化碳的浓度越高,房价越低(符合常理)。线性回归给予了很强的解释性。

THE END
1.机器学习线性回归代码题线性回归方程的代码2、sklearn算法实现: 然后我们这次就通过代码来实现线性回归: 一、简单线性回归: 一元一次方程,在机器学习中一元表示一个特征,b表示截距,y表示目标值。 1、正规方程实现: import numpy as np import matplotlib.pyplot as plt # 转化成矩阵,reshape https://blog.51cto.com/u_16213583/7615083
2.机器学习线性回归算法(Python代码版)线性回归资源机器学习领域线性回归模型数理推导及python代码实现 浏览:3473 提供了机器学习中线性回归模型的数理推导,同时基于Numpy模块的自编代码实现线性回归模型功能和基于sklearn模块实现的两个算法。该pdf中编程语言使用的是python,参考资料为鲁伟的《机器学习公式推导与代码实现》 https://download.csdn.net/download/xiaxianba/86953840
3.机器学习(一):线性回归原理推导及代码实现线性回归算法是机器学习的基础,蕴含着机器学习中的一些重要的基本思想,很多机器学习的算法都是从这些基础算法演变而来,如果函数曲线是一条直线,那被称为线性回归,如果曲线是一条二次曲线,就被称为二次回归。线性回归可分为单变量线性回归和多变量线性回归,这里我们分开讲一下: https://www.jianshu.com/p/6c4a9c0738e3
4.python实现线性回归的示例代码python线性回归就是通过多次取点,找出符合函数的曲线,那么就可以完成一维线性回归,本文通过实例代码给大家介绍python实现线性回归的相关知识,感兴趣的朋友一起看看吧+ 目录 1线性回归 1.1简单线性回归 在简单线性回归中,通过调整a和b的参数值,来拟合从x到y的线性关系。下图为进行拟合所需要优化的目标,也即是MES(Mean https://www.jb51.net/article/238800.htm
5.通俗易懂线性回归算法讲解(算法+案例)腾讯云开发者社区通俗易懂--线性回归算法讲解(算法+案例) 1.线性回归(Linear Regression) GitHub地址(代码加数据) 1.1什么是线性回归 我们首先用弄清楚什么是线性,什么是非线性。 线性:两个变量之间的关系是一次函数关系的——图象是直线,叫做线性。注意:题目的线性是指广义的线性,也就是数据与数据之间的关系。https://cloud.tencent.com/developer/article/1476195
6.从头开始简单理解线性回归(附Python实现)从头开始简单理解线性回归(附Python 实现) 线性回归中的梯度下降法(Python实现) 理解局部加权线性回归 简单理解朴素贝叶斯分类器实现 本文讨论了线性回归的基础知识及其在 Python 编程语言中的实现。 线性回归是一种统计方法,用于对因变量与一组给定的自变量之间的关系进行建模。 注意:在本文中,为简单起见,我们将因变量https://zhuanlan.zhihu.com/p/590875721
7.谷歌大脑提出AutoML这个脚本在10个线性任务上运行进化搜索。每次实验后,它都会评估在100个新的线性任务中发现的最佳算法。一旦算法的适应度大于0.9999,就选择该算法作为最终结果,将代码打印在屏幕上。 在普通电脑上使用CPU在5分钟内就能发现类似于梯度下降进行线性回归的程序: https://m.thepaper.cn/wap/resource/v3/jsp/newsDetail_forward_6453837
8.Microsoft线性回归算法技术参考MicrosoftLearn控制决策树模型的功能选择的算法参数为 MAXIMUM_INPUT_ATTRIBUTES 和 MAXIMUM_OUTPUT。 自定义线性回归算法 Microsoft 线性回归算法支持影响结果挖掘模型的行为、性能和准确性的参数。 您还可以对挖掘模型列或挖掘结构列设置建模标志来控制数据的处理方式。 设置算法参数 https://msdn.microsoft.com/zh-cn/library/cc645871.aspx
9.神经网络改进2022年北京冬奥会数值天气预报后处理过程的算法研究结果表明, 该模型预报的 5 个常规气象要素的预报误差普遍优于一元线性回归、多元线性回归以及数值天气预报模式的原始输出值, 尤其对 3 天以内的天气预报具有明显优势。基于该模型发展的全自动实时后处理系统已于 2020 年 11 月 1 日开始每日自动化地输出预报结果, 并服务于2022 年北京冬奥会的气象保障工作。https://xbna.pku.edu.cn/fileup/0479-8023/HTML/2022-2-210.html
10.宣州区:GDP十年透视领航经济新航程——基于多重线性回归下的GDP按照选定数据和算法,导入SPSS软件进行运算处理,依次得到如下结果,并对结果进行说明分析。 输出结果1:线性回归分析结果表 1.输出结果1分析。 上表格展示了本次模型的分析结果,包括模型的标准化系数、t值、VIF值、R2、调整R2等,用于模型的检验,并分析模型的公式。 1.线性回归模型要求总体回归系数不为0,即变https://www.xuanzhou.gov.cn/Jczwgk/show/2997981.html