导航:首页 > 源码编译 > 线性回归算法的实现

线性回归算法的实现

发布时间:2023-12-29 23:09:10

‘壹’ 如何用js实现线性回归算法

可以用函数 regress( )来解决。
[b,bint,r,rint,stats] = regress(y,X)
b——拟合线性函数的系数
bint——系数b的置信区间
r——残值向量
rint——残值的置信区间
stats——检验统计量,第一值是回归方程的置信度,第二值是F统计量,第三值是与F统计量相应的p值,当p值很小,说明回归模型成立
X——自变量向量,X=[ones(3,1) x1 x2 x3]
y——应变量向量

‘贰’ 机器学习故事汇-线性回归算法

机器学习故事汇-线性回归算法
今天咱们要来唠的是机器学习中最基本也是最重要的算法之一线性回归,正当此时迪哥正在前往银行的路上,准备办理贷款(低保),到了之后银行问了我两件事,年龄和工资都多少呀?(特征)当得到了结果后告诉我我们只能贷给你100块,别问为什么!机器算的!(机器你拿毛线算的100快?)

这个图就是机器如何进行预测的(回归)它会根据一票子兄弟贷款的历史数据(年龄和工资分别对应于X1与X2)找出来最好的拟合线(面)来进行预测,这样你的数据来了之后直接带入进去就可以得出来该给你多少钱了。

我们用两个参数来分别对应于工资和年龄,控制它们对结果的影响大小,这里做了一个整合是把偏置项和权重参数项放到了一起(加了个X0让其都等于1)
要想让银行能开的下去,那就得少遇到点麻烦,迪哥这么大碗就给我100块(真实的指标应该为200块)肯定是要砸场子的,所以我们的目标是要让得到的预测值跟真实值越接近越好。

既然说到误差了,咱们就来好好唠一下,首先银行的目标得让误差越小越好,这样才能够使得我们的结果是越准确的。那么这个误差有什么规律可循吗?

咱们先来说说这个误差为啥会服从高斯分布呢,这个事就得从我们是怎么认为一个事发生的概率来说了,正常情况下你去银行贷款差不多都是一个符合你的数字吧,极小的情况下能出现类似迪哥的情况(100块都不给我),还是极小的情况下能像对待马云似的给你几个亿吧,所以银行给你贷款的误差项理论上都是在较小范围内浮动的,要么多了一点,要么少了一点。所以我们认为该误差是可以服从高斯分布的(正太分布)。
那为啥会独立呢?独立的意思就是说迪哥来贷款了,恰好马云也来了,但是我俩不认识啊(其实他认识我,我不认识他),所以我俩在贷款的时候不会因为马云而对我产生什么影响,也不会因为我对马云产生什么影响,这就是独立!
同分布又是啥呢?我和马云来的是一家银行吧,这家银行的系统只有一个,所以它在预测的时候是按照同样的方式来的,这就是我们的数据是在同一个分布下去建模的。

既然误差服从了高斯分布我们就把它进行展开,上式的意思就是我去贷款,在它这两组参数的控制下得到的贷款金额恰好是等于真实情况下就该给我这么多钱的概率。(预测值和真实值对应的可能性大小)那么我们当然希望这个概率越大越好呀,越大代表越准确呀。

(怎么又来了一堆数学。。。没人数学就不是机器学习啦)咱们继续来看,咋又突然出来了个似然函数呀,咱们先来说一说它是个什么东西。比如说你今天去赌场了,然后你不知道能不能赢钱,你就在门口蹲着,出来一个人你就问一下,哥们赢钱了吗(然后挨了一顿揍),连续出来5个人都告诉你赢钱了,那么你就会认为我去赌钱也肯定会赢钱。这个的意思就是要利用样本数据去估计你的参数应该是什么,使得估计出来的参数尽可能的满足(拟合)你的样本。
对数似然它的意思和目标很简单,就是为了简单求解,所以把比较复杂的乘法运算转换成了比较简单的加法运算。

一顿化简,其实就是把原式给展开了,然后我们的目标是要求最大值吧(什么样的参数能够使得跟我数据组合完之后是真实值的概率越大越好),对于化简后的结果左边是一个常数不用去管,右边是一个恒正的(因为有平方项)但是前面还有一个负号呀,让这样的数什么时候能取最大值呀?只有负号后面的取最小值才可以呀!
到这里我们终于推导出来了,银行只需要做一件事就可以了,那就是最小化这个函数(目标函数),其实说白了就是要让我们的预测值和真实值之间的差异越小越好,这就是最小二乘法!

接下来就是如何求解呢?通常我们去求偏导就可以了,因为极值点通常都是在偏导处取得,对我们的目标函数求偏导,并且让其等于0,这样我们就能找到最终参数的解应该是什么了!到这里小伙伴们可能感觉到竟然真能求出这个解,那这个解不就是我们想要的参数嘛,得到了它银行就有救啦!
至此我们通过了一系列的推导得出了线性回归的最终解法,但是这个解可以说是数学上的一个巧合,并不是所有问题都可以直接求解的,下回咱们再谈谈如何间接的求最优解~

‘叁’ 机器学习的方法之回归算法

我们都知道,机器学习是一个十分实用的技术,而这一实用的技术中涉及到了很多的算法。所以说,我们要了解机器学习的话就要对这些算法掌握通透。在这篇文章中我们就给大家详细介绍一下机器学习中的回归算法,希望这篇文章能够帮助到大家。
一般来说,回归算法是机器学习中第一个要学习的算法。具体的原因,第一就是回归算法比较简单,可以让人直接从统计学过渡到机器学习中。第二就是回归算法是后面若干强大算法的基石,如果不理解回归算法,无法学习其他的算法。而回归算法有两个重要的子类:即线性回归和逻辑回归。
那么什么是线性回归呢?其实线性回归就是我们常见的直线函数。如何拟合出一条直线最佳匹配我所有的数据?这就需要最小二乘法来求解。那么最小二乘法的思想是什么呢?假设我们拟合出的直线代表数据的真实值,而观测到的数据代表拥有误差的值。为了尽可能减小误差的影响,需要求解一条直线使所有误差的平方和最小。最小二乘法将最优问题转化为求函数极值问题。
那么什么是逻辑回归呢?逻辑回归是一种与线性回归非常类似的算法,但是,从本质上讲,线型回归处理的问题类型与逻辑回归不一致。线性回归处理的是数值问题,也就是最后预测出的结果是数字。而逻辑回归属于分类算法,也就是说,逻辑回归预测结果是离散的分类。而逻辑回归算法划出的分类线基本都是线性的(也有划出非线性分类线的逻辑回归,不过那样的模型在处理数据量较大的时候效率会很低),这意味着当两类之间的界线不是线性时,逻辑回归的表达能力就不足。下面的两个算法是机器学习界最强大且重要的算法,都可以拟合出非线性的分类线。这就是有关逻辑回归的相关事项。
在这篇文章中我们简单给大家介绍了机器学习中的回归算法的相关知识,通过这篇文章我们不难发现回归算法是一个比较简答的算法,回归算法是线性回归和逻辑回归组成的算法,而线性回归和逻辑回归都有自己实现功能的用处。这一点是需要大家理解的并掌握的,最后祝愿大家能够早日学会回归算法。

‘肆’ 线性回归算法原理(越详细越好)

线性回归是利用数理统计中的回归分析,来确定两种或两种以上变数间相互依赖的定量关系的一种统计分析方法之一,运用十分广泛。

分析按照自变量和因变量之间的关系类型,可分为线性回归分析和非线性回归分析。

如果在回归分析中,只包括一个自变量和一个因变量,且二者的关系可用一条直线近似表示,这种回归分析称为一元线性回归分析。如果回归分析中包括两个或两个以上的自变量,且因变量和自变量之间是线性关系,则称为多元线性回归分析。

我们以一简单数据组来说明什么是线性回归。假设有一组数据型态为y=y(x),其中

x={0,1,2,3,4,5},y={0,20,60,68,77,110}

如果我们要以一个最简单的方程式来近似这组数据,则非一阶的线性方程式莫属。先将这组数据绘图如下

图中的斜线是我们随意假设一阶线性方程式y=20x,用以代表这些数据的一个方程式。以下将上述绘图的MATLAB指令列出,并计算这个线性方程式的y值与原数据y值间误差平方的总合。

>>x=[012345];

>>y=[020606877110];

>>y1=20*x;%一阶线性方程式的y1值

>>sum_sq=sum(y-y1).^2);%误差平方总合为573

>>axis([-1,6,-20,120])

>>plot(x,y1,x,y,'o'),title('Linearestimate'),grid

如此任意的假设一个线性方程式并无根据,如果换成其它人来设定就可能采用不同的线性方程式;所以我们须要有比较精确方式决定理想的线性方程式。我们可以要求误差平方的总合为最小,做为决定理想的线性方程式的准则,这样的方法就称为最小平方误差(leastsquareserror)或是线性回归。MATLAB的polyfit函数提供了从一阶到高阶多项式的回归法,其语法为polyfit(x,y,n),其中x,y为输入数据组n为多项式的阶数,n=1就是一阶的线性回归法。polyfit函数所建立的多项式可以写成

从polyfit函数得到的输出值就是上述的各项系数,以一阶线性回归为例n=1,所以只有二个输出值。如果指令为coef=polyfit(x,y,n),则coef(1)=,coef(2)=,...,coef(n+1)=。注意上式对n阶的多项式会有n+1项的系数。我们来看以下的线性回归的示范:

>>x=[012345];

>>y=[020606877110];

>>coef=polyfit(x,y,1);%coef代表线性回归的二个输出值

>>a0=coef(1);a1=coef(2);

>>ybest=a0*x+a1;%由线性回归产生的一阶方程式

>>sum_sq=sum(y-ybest).^2);%误差平方总合为356.82

>>axis([-1,6,-20,120])

>>plot(x,ybest,x,y,'o'),title('Linearregressionestimate'),grid

[编辑本段]线性回归拟合方程

一般来说,线性回归都可以通过最小二乘法求出其方程,可以计算出对于y=bx+a的直线,其经验拟合方程如下:

阅读全文

与线性回归算法的实现相关的资料

热点内容
猎人宝宝攻击命令 浏览:159
操作系统是编译原理吗 浏览:646
云服务器迁移后 浏览:260
excel格式转换pdf 浏览:987
登录器一般存在哪个文件夹 浏览:535
中兴光猫机器码算法 浏览:330
android响应时间测试 浏览:940
java编程思想第四版答案 浏览:888
如何对nbt编程 浏览:885
mscpdf 浏览:948
文件夹d盘突然0字节可用 浏览:272
吃火腿肠的解压场面 浏览:339
卫星锅加密教程 浏览:792
php7的特性是什么 浏览:469
编译类高级语言源代码运行过程 浏览:177
科普中国app怎么分享 浏览:87
51单片机与32单片机比较 浏览:422
SQL加密存储解密 浏览:507
电气工程师把程序加密 浏览:797
解压切东西动画版 浏览:965