首页 > 其他分享 >线性回归基本原理和公式推导

线性回归基本原理和公式推导

时间:2023-09-11 21:34:53浏览次数:50  
标签:因变量 函数 推导 基本原理 回归 独立 线性 变量

本文所有内容整理自网络。完整内容可以点击这里获取:完整资料下载地址

前言

线性回归是一种监督式机器学习算法,它计算因变量与一个或多个独立特征之间的线性关系。当独立特征的数量为1时,被称为单变量线性回归;在存在多于一个特征的情况下,被称为多变量线性回归。该算法的目标是找到最佳的线性方程,以便基于独立变量预测因变量的值。该方程提供了一条直线,表示因变量和独立变量之间的关系。直线的斜率表明因变量在独立变量发生单位变化时的变化量。

线性回归在许多不同领域中被使用,包括金融、经济学和心理学,用于理解和预测特定变量的行为。例如,在金融领域,线性回归可能被用于理解公司股价与其收益之间的关系,或者根据货币过去的表现预测其未来的价值。

监督学习中最重要的任务之一是回归。在回归中,一组记录具有X和Y值,并且这些值被用于学习一个函数,以便在你想要根据未知的X预测Y时可以使用这个学习到的函数。在回归中,我们需要找到Y的值,因此,在回归的情况下需要一个预测连续Y的函数,而X则作为独立特征。

在这里,Y被称为因变量或目标变量,而X被称为独立变量,也被称为Y的预测变量。有许多种类型的函数或模型可用于回归。线性函数是最简单的函数类型。在这里,X可以是表示问题的单个特征或多个特征。

线性回归基本原理和公式推导_拟合

线性回归执行的任务是基于给定的独立变量(x)来预测一个因变量值(y)。在上面的图中,X(输入)代表工作经验,Y(输出)代表一个人的薪水。回归线是我们模型的最佳拟合线。

线性回归模型的假设

线性回归是一种强大的工具,用于理解和预测变量的行为,然而,为了得到准确可靠的解决方案,它需要满足一些条件。

(1)线性关系:独立变量和因变量之间存在线性关系。这意味着因变量的变化以线性方式跟随独立变量发生变化。

(2)独立性:数据集中的观测相互独立。这意味着一个观测的因变量值不取决于另一个观测的因变量值。

(3)方差齐性:在所有独立变量的取值范围内,误差的方差是恒定的。这表示独立变量的数量对误差的方差没有影响。

(4)正态性:模型中的误差服从正态分布。

(5)无多重共线性:独立变量之间没有高度相关性。这表示独立变量之间几乎没有或没有相关性。

这些条件是确保线性回归模型的准确性和可靠性所必需的。

线性回归的假设函数

正如我们之前假设的,我们的独立特征是工作经验X,相应的薪水Y是因变量。假设X和Y之间存在线性关系,那么可以使用以下方式预测薪水:

线性回归基本原理和公式推导_拟合_02

该模型通过找到最佳的θ1和θ2值来得到最佳的回归拟合线。θ1是截距,θ2是输入x的系数。

一旦我们找到了最佳的θ1和θ2值,我们就得到了最佳拟合线。因此,当我们最终将我们的模型用于预测时,它将根据输入的x值预测y的值。

代价函数

代价函数或损失函数实际上是预测值与真实值之间的误差或差异。它是预测值与真实值之间的均方误差(MSE)。代价函数(J)可以表示为:

线性回归基本原理和公式推导_拟合_03

如何更新 θ1 和 θ2 值以获得最佳拟合线呢?

为了实现最佳拟合的回归线,模型旨在预测目标值,使得预测值与真实值之间的误差最小。因此,更新 θ1 和 θ2 的值以达到最小化预测值与真实值之间误差的最佳值是非常重要的。

线性回归基本原理和公式推导_拟合_04

梯度下降

可以使用梯度下降优化算法来训练线性回归模型,通过迭代地修改模型的参数以减少模型在训练数据集上的均方误差(MSE)。为了更新 θ1 和 θ2 的值以减少代价函数(最小化均方根误差值)并实现最佳拟合线,模型使用梯度下降。其思想是从随机的 θ1 和 θ2 值开始,然后迭代地更新这些值,达到最小的代价。

梯度实际上是一个导数,它定义了在输入略微变化时对函数输出的影响。它描述了函数的斜率或变化率,指示了在给定点上函数值增加最快的方向。在梯度下降中,我们利用梯度的方向来调整参数,以便更接近代价函数的最小值。

让我们对代价函数 J 关于 θ1 进行求导:

线性回归基本原理和公式推导_拟合_05

让我们对代价函数 J 关于 θ2 进行求导:

线性回归基本原理和公式推导_拟合_06

线性回归基本原理和公式推导_代价函数_07

寻找最佳拟合训练数据的线性方程的系数是线性回归的目标。通过沿着均方误差负梯度的方向相对于系数的方向移动,可以改变系数。当学习率为 alpha 时,相应的截距和X的系数为:

线性回归基本原理和公式推导_线性回归_08

标签:因变量,函数,推导,基本原理,回归,独立,线性,变量
From: https://blog.51cto.com/u_16245388/7438510

相关文章

  • 线性基模板
    插入第\(k\)小排名最大异或和structbasis{ vector<ll>s; voidinsert(llval) { for(intx:s)val=min(val,val^x); for(int&x:s)x=min(x,x^val); if(val)s.push_back(val); } llkth(llk) { sort(s.begin(),s.end()); if(s.size()<n)k--; ......
  • 非线性电路
    ......
  • 例2.9 建立一个带头结点的线性链表,用以存放输人的二进制数,链表中每个结点的data域存放
    1.题目例2.9建立一个带头结点的线性链表,用以存放输人的二进制数,链表中每个结点的data域存放一个二进制位。并在此链表上实现对二进制数加1的运算。2.算法分析3.代码/*二进制加1*/voidBinAdd(LinkListl){inttemp;Node*pa=l->next,*pb,*s;while(pa......
  • 线性表——链式存储
    单链表(有头结点)#include<stdlib.h>//定义typedefstructLNode{intdata;//数据域structLNode*next;//指针域指向下一个结点,所以是structLNode类型}LNode,*LinkList;//*LinkList用于表示这是一个指向structLNode类型的指针//初始......
  • ⑧初识python--python的列表推导式
    python的列表推导式1、什么是推导式推导式comprehensions(又称为解析式),是python的一个独有特性。推导式是可以从一个数据序列构建另一个新的数据序列(一个有规划的列表或控制一个有规律列表的结构体。共有三种推导式:列表推导式,集合推导式,字典推导式。2、为什么需要推导式列表推......
  • 线性DP
    DP三要素:状态,阶段,决策(转移)阶段:第i层状态:目前情况写代码三要素:边界、目标、转移DP要求:无后效性Mr.Young'sPicturePermutations要求从左到右和从上到下都递减首先肯定按顺序加入从左到右很明确,加到最右边从上到下怎么维护?其实就是这一行加完之后不超过上一行就行发现......
  • C数据结构-线性表之顺序表
    什么是线性表线性表的插入元素线性表的删除元素线性表顺序存储的缺点线性表的特点1.线性表的实例首先我们创建3个文件,分别如下:liner_data--sqlist.c--sqlist.h--test.csqlist.h//.h文件中定位数据的结构以及函数的方法typedefintdata_t;#defineN128......
  • 机器学习算法原理实现——线性判别分析LDA
    介绍线性判别分析(LinearDiscriminantAnalysis,LDA)是一种有监督式的数据降维方法,是在机器学习和数据挖掘中一种广泛使用的经典算法。LDA的希望将带上标签的数据(点),通过投影的方法,投影到维度更低的空间中,使得投影后的点,按类别区分成一簇一簇的情况,并且相同类别的点,将会在投影后的......
  • R语言分析糖尿病数据:多元线性模型、MANOVA、决策树、典型判别分析、HE图、Box's M检验
    全文链接:https://tecdat.cn/?p=33609原文出处:拓端数据部落公众号背景Reaven和Miller(1979)研究了145名非肥胖成年人的葡萄糖耐量和胰岛素血液化学指标之间的关系。他们使用斯坦福线性加速器中心的PRIM9系统将数据可视化为3D,并发现了一个奇特的图案,看起来像是一个有两个翼的大斑点......
  • 线性筛合集
    线性筛合集1.线性筛素数voidinit(){ispri[1]=true;for(inti=2;i<=n;i++){if(!ispri[i])pri[++cnt]=i;for(intl=1;l<=cnt&&i*pri[l]<=n;l++){ispri[i*pri[l]]=true;if(i%pri[l]==0)break......