线性回归--公式推导

article/2025/8/25 0:39:16

线性回归 -- LIner regression

线性回归(Linear regression)是利用称为线性回归方程的最小二乘函数对一个或多个自变量和因变量之间关系进行建模的一种回归分析 —维基百科

 

线性回归--理论推导

<1> 数据: 本次推导使用的数据为--银行贷款数据。

                             

                              

<2> 假设: 假设工资参数为θ1, 年龄参数为θ2。

          拟合平面: 

                                               

          整合:  

                                                

注: 此时的整合中的x = (x0 x1 x2 ... xn), x0是新加入的值,为了保证θ0起作用,则x0 = 1。为什么要进行加入x0这步操作呢?其实就是为了化简表达式, 使的可以使用矩阵来进行表示。

<3> 误差分析(重点):

真实值与预测值之间一定存在误差(用ε来表示误差)

对于每一个样本   ( y(i)为真实值, θT为参数矩阵, x(i)为第i挑数据的属性内容矩阵, ε(i)为第i条数据所产生的误差)

              (红色的点表示真实值, 垂线与平面交点为预测值,高度差代表误差

                        

              高斯分布也就是正态分布

独立: 假如张三和李四都到银行进行贷款,银行不会因为张三和李四认识而改变银行贷款的标准,即张三和李四为样本, 银行则为算法, 所以每个样本之间是独立的。

相同分布: 假如张三去的是建设银行,  而李四去的是农业银行, 两个不同的数据混合在一块去建立一个用来预测的模型, 这不符合逻辑。 我们要建立一个模型,要么是建设银行的模型, 要么是农业银行的模型, 即概括为数据要在相同的分布下,建立的模型才有实际意义。 

均值为0: 如银行贷款时, 有时会给你多贷一些, 有时会给你少贷一些, 但不可能一直给你多贷或者少贷, 所以多贷 与少贷的均值趋近于0

高斯分布:  在高斯分布中, 越靠近0的位置, 产生的偏差越小, 出现的概率就越大; 越远离0的位置, 产生的偏差越  大, 出现的概率就越小。(最大似然估计就是从此处的概率得出, 此处越接近0, 概率p越大)

 高斯分布:    (主要分布在(-1,1)之间)

                 

        在机器学习中, 会进行很多假设, 并以这种假设进行推导, 最终得到的结果是可以利用的, 只要最终得到的模型可用, 即可以说假设成立的, 因为没有完全独立和完全相同的分布, 假设是机器学习解决问题的办法。

 

线性回归--公式推导

<1> 公式代换:

            

<2> 似然函数与对数似然

            

似然函数: 似然函数是根据样本去估计参数的值的一个函数, 即是由数据去计算参数的大小为多大时, 参数和我们的数据组合后更接近真实值。(总而言之, 似然函数就是为了求解参数的函数)

对数似然: 对数似然相对于似然函数的有点在于运算方便。似然函数求取的方法是迭乘, 数字较大时会很不方便;对数似然求取的方法是迭加。(相比于似然函数而言, 对数似然较为实用)

<3> 目标函数:

             在进行对数运算进行展开化简

            

极大似然估计: 极大似然估计即L(θ)或ln(L(θ))越大越好, 然而化简后 > 0, 且为一个定值。所以要使的 越小越好, 这样得到的参数的准确率就越高。又因为为定值, 所以使的后半部分

越小即可。这样可以根据表达式构成一个目标函数。

 

           

<4> 公式推导:
          

       已知数据个数为:m, 数据属性为:d, 因为X矩阵增加了一列x0 = 1, 所以X矩阵为一个m*(d + 1)的矩阵, θ矩阵为(d + 1)*1的矩阵(列向量矩阵), y矩阵为m*1的矩阵。

       X = [[x10  x11  ...  x1d]

               [x20  x21  ...  x2d]

                 ...     ...     ...   ...  

               [xm0  xm1  ...  xmd]]

       θ = [θ0

               θ1

               ...

               θd]

       y = [y0

               y1

               ...

               ym]

        到此处已经把相应属性的参数以及偏置项都解出, 可以根据此回归参数来预测未知数据, 将位置数据的内容矩阵加上一列值为1, 即x0 = 1, 就可以求的预测值。

       注: 此处的hθ是先前介绍的拟合平面, 一些矩阵的运算下一步解释

<5> 矩阵的平方、求导:

        矩阵的平方: 假设矩阵A,A2(A矩阵的平方) = AT(A矩阵的转置矩阵) * A 

        矩阵的求导法则:

                       

 

线性回归代码实现(点击进入)

                                   


http://chatgpt.dhexx.cn/article/iunZDuBP.shtml

相关文章

线性回归原理及算法

今天给大家的介绍一下线性模型&#xff0c;线性回归模型虽说模型简单&#xff0c;但距今为止依旧在机器学习算法中占据一定的地位&#xff0c;不仅如此&#xff0c;而且在实际的业务应用中也是屡试不爽的机器学习算法。 线性回归模型公式&#xff1a;YXwb &#xff08;一个X变量…

机器学习之线性回归

线性回归是最简单的一个函数拟合过程&#xff0c;一元线性回归公式为yaxb。 我们做拟合&#xff0c;首先需要定义一个损失函数。一般常用的损失函数有&#xff1a;0-1损失函数和绝对值损失函数 0-1损失是指&#xff0c;预测值和目标值不相等为1&#xff0c;否则为0&#xff1a;…

在线Cron表达式生成器,定时任务表达式生成器

近期项目需要在后台管理系统的页面上生成定时任务表达式存入定时任务系统的数据库中&#xff0c;就是那种根据后台管理员指定的时分秒年月日生成一个定时任务表达式。 一时间有点不好下手。我可以根据后台管理员指定的时分秒年月日手动写一个定时任务表达式&#xff0c;也可以…

在线QuartzCron定时任务表达式在线生成

在线QuartzCron定时任务表达式在线生成 在线QuartzCron定时任务表达式在线生成 Quartz是一个完全由java编写的开源作业调度框架,Quartz最主要的功能就是调度器(完成定时任务)。本工具可以在线生成QuartzCron表达式 Quartz是一个完全由java编写的开源作业调度框架,Quartz最主要…

Android Studio修改应用名称及应用图标

一、修改应用名称 找到src/main/AndroidManifest.xml文件&#xff1a; android:label后面配置的就是应用名称配置路径或应用名称。 方式1&#xff1a;android:label"xxx应用"&#xff08;应用名称显示xxx应用&#xff09; 方式2&#xff1a;android:label"st…

Android修改应用程序图标和名字

Android修改应用程序图标和名字 对于一个APP应用程序来说&#xff0c;最鲜明的就是APP的图标和名字了。 修改应用图标 在res/drawable中保存一个jpg或者png的图片文件。(png支持透明度) 例&#xff1a;在drawable中保存icon.jpg文件修改AndroidManifest.xml中application的a…

flutter 修改app名字和图标(安卓)

安卓 修改名字: 找到flutter项目下面的android>app>src>main>AndroidManifest.xml 修改里面的android:label"改成你要的名字" 修改图标: 找到android>app>src>main>res里面的mipmap-xx文件夹修改里面的图标 一件生成多种格式的图标: http…

android studio修改app图标

一、修改图标文件 1.找到项目下的多个mipmap-目录&#xff08;如下图&#xff09;&#xff0c;将要修改的图片在每个目录中都放入一份 2.再找到mipmap-anydpi-v26目录&#xff08;如下图&#xff09;&#xff0c;修改目录中两个文件的内容&#xff0c;使其指向我们上一步放入的…

如何修改安卓应用图标和程序名称

安卓修改大师可以在没有源代码的情况下&#xff0c;直接反编译已经打包的APK安装包&#xff0c;通过修改SMALI代码实现添加和去除部分功能&#xff0c;也可以通过修改应用图标和应用程序名称实现个性化应用&#xff0c;甚至可以通过修改应用程序配置参数&#xff08;内置统计参…

修改app图标

修改app图标 1.准备三个尺寸的.png图片 &#xff08;注&#xff1a;一定要是.png后缀的图片&#xff09;,分别命名为xx.png, xx2x.png, xx3x.png; 2.在项目中找到项目->Resource->AppLogo,把三个尺寸的图片拉入项目中&#xff0c;选择Copy items if needed、Create gr…

如何修改软件名称及图标,非常详细

所需工具 MT管理器&#xff1a;下载 理论&#xff1a; 补充android:versionName"2.4"是版本号 实战&#xff1a; 修改图标 wzry.png就是刚刚复制进来的图片名称 图标修改完成 下面开始修改名称&#xff1a;

iOS开发技巧:设置App icon图标及修改应用程序名

前言 这是iOS开发技巧系列博客的第二篇&#xff0c;本篇主要简单介绍一下如何设置应用程序的icon图标以及修改应用程序名。 设置 icon 首先我们来看看如何设置App icon图标&#xff0c;设置应用程序的icon图标主要有两种方法&#xff1a; 第一种&#xff1a;通过项目的Imag…

更换app图标和名称

更换app图标和名称 参考地址&#xff1a; https://blog.csdn.net/pla12147111/article/details/97684488 预装&#xff1a;预装雷电模拟器3.59 和 AndroidKiller.exe 打开后等待反编译成功 更换文字&#xff0c;首先在模拟器中安装app查看app图标和名称 打开工具&#xf…

Android Studio中修改APP图标和APP名称

Android Studio生成的APP默认图标是经典的机器人图标。可以通过Android Studio实现APP图标和名称的修改。 1 修改APP图标 在程序对应的AndroidMenifest.xml中指定了该APP的图标。 <application>......android:icon"mipmap/ic_launcher"</application>…

如何修改Android APP的图标和名字

看看下图中红框包围的一款APP的图标和名称&#xff0c;如何在Android中进行修改呢&#xff1f; 修改主要在manifest.xml&#xff08;项目清单&#xff09;中&#xff1a; FR&#xff1a;海涛高软&#xff08;QQ技术交流群&#xff1a;386476712&#xff09;

Android Studio修改app图标以及名字

1. 修改名字&#xff1a; Android–>AndroidManifest.xml–>android:label属性 点击属性值&#xff0c;实现跳转&#xff0c;改变名字 2. 修改图标 准备5种尺寸的相同图标&#xff1a;&#xff08;48 * 48&#xff0c;72 * 72&#xff0c;96 * 96&#xff0c;144 * …

如何修改安卓app图标和名称

1、安卓app图标定义处 图标定义位置在AndroidManifest.xml文件manifest->application->android:icon"drawable/tubiao",修改成自己喜欢的图片就行&#xff0c;如下图&#xff1a; 安卓图标定义处 修改后效果图&#xff1a; 安卓图标修改后效果 2、安卓app项目…

Android Studio 修改app名字和图标

修改图标 将准备好的图标放入res目录下的drawable里 在AndroidManifest.xml文件中&#xff0c;找到android:icon以及android:roundIcon这两个属性,设置为你放入的图标文件。 如图&#xff0c;music3就是准备替换的文件。注意保存时&#xff0c;保存名称不能有大写字母与空格&…

AS-修改APP图标和名字

修改名称&#xff1a; 1&#xff0c;可以通过修改图标地址&#xff0c;百度查的这个方法 没试过 2&#xff0c;直接找到图标文件夹 用新的图标 图标替代原来的图片

android studio 如何修改app名字、修改app图标

1.如何修改app名字 直接在文件AndroidManifest.xml中的android:label”string/app_name”去修改即可&#xff0c;直接去修改app_name中的名字&#xff0c;中、英文都是可以的&#xff1b; 修改后&#xff0c;手机安装完就如图 注意&#xff1a;项目的versionName、versionCode…