数学之路(3)-机器学习(3)-机器学习算法-最小二乘法与回归[4]
发布日期:2021-08-18 20:58:49 浏览次数:2 分类:技术文章

本文共 1979 字,大约阅读时间需要 6 分钟。

多元线性回归

一元线性回归是一个主要影响因素作为自变量来解释因变量的变化,在现实问题研究中,因变量的变化往往受几个重要因素的影响,此时就需要用两个或两个以上的影响因素作为自变量来解释因变量的变化,这就是多元回归亦称多重回归。当多个自变量与因变量之间是线性关系时,所进行的回归分析就是多元性回归。

 

设y为因变量,x_1,x_2,\cdots x_k为自变量,并且自变量与因变量之间为线性关系时,则多元线性回归模型为:

y=b_0+b_1x_1+b_2x_2+\cdots+b_kx_k+e

python实现后效果如下:

参数项矩阵为[[ 3.]

 [ 2.]
 [ 1.]]
http://blog.csdn.net/u010255642
3.000000*x1+2.000000*x2+1.000000*x3+-0.000000
>>> 

 

本博客所有内容是原创,未经书面许可,严禁任何形式的转载

 

 

python代码如下:

 

#!/usr/bin/env python# -*- coding: utf-8 -*-#最小二乘法,多变量线性回归#麦好:myhaspl@qq.com#http://blog.csdn.net/u010255642 import numpy as npx =np.matrix([[7,2,3],[3,7,17],[11,3,5]],dtype=np.float64)y =np.matrix([28,40,44],dtype=np.float64).Tb=(x.T*x).I*x.T*yprint u"参数项矩阵为{0}".format(b)i=0cb=[]while  i<3:    cb.append(b[i,0])    i+=1temp_e=y-x*bmye=temp_e.sum()/temp_e.sizee=np.matrix([mye,mye,mye]).Tprint "http://blog.csdn.net/u010255642"print "%f*x1+%f*x2+%f*x3+%f"%(cb[0],cb[1],cb[2],mye)

 

多元非线性回归

 

如果自变数X_1,X_2,\cdots,X_m与依变数Y皆具非线性关系,或者有的为非线性有的为线性,则选用多元非线性回归方程是恰当的。

1)一元三次回归方程

部分python代码如下:

#!/usr/bin/env python# -*- coding: utf-8 -*-#最小二乘法,非线性回归,单变量多项式回归#麦好:myhaspl@qq.com#http://blog.csdn.net/u010255642#y=b1*x+b2*(x^2)+b3*(x^3)..................z=np.matrix([3,1.4,1.9]).Tmyx =np.matrix([[4],[3],[5]],dtype=np.float64)x = np.matrix([[myx[0,0],myx[0,0]**2,myx[0,0]**3],\               [myx[1,0],myx[1,0]**2,myx[0,0]**3],\               [myx[2,0],myx[2,0]**2,myx[0,0]**3]],\               dtype=np.float64)...........
mye=temp_e.sum()/temp_e.sizee=np.matrix([mye,mye,mye]).Tprint "http://blog.csdn.net/u010255642"print "%f*x+%f*x^2+%f*x^3+%f"%(cb[0],cb[1],cb[2],mye)
pltx=np.linspace(0,10,1000)plty=cb[0]*pltx+cb[1]*(pltx**2)+cb[2]*(pltx**3)+myeplt.plot(myx,y,"*")plt.plot(pltx,plty)plt.show()
 

 

 

效果:

>>> 

参数项矩阵为[[ 3. ]

 [ 1.4]

 [ 1.9]]

http://blog.csdn.net/u010255642

3.000000*x+1.400000*x^2+1.900000*x^3+0.000000

>>> 

 

(2)二元二次多项式回归方程为:

\widehat{y}=a+b_{11}x_1+b_{21}x_2+b_{12}x_1^2+b_{22}x_2^2+b_{11\times22}x_1x_2

b_1=b_{11},b_2=b_{21},b_3=b_{12},b_4=b_{22},b_5=b_{11\times22},及x_3=x_1^2,x_4=x_2^2,x_5=x_1\cdot x_2,于是上式化为五元一次线性回归方程:

\widehat{y}=a+b_1x_1+b_2x_2+b_3x_3+b_4x_4+b_5x_5

建立二元二次多项式回归方程。

 

 

python代码同(1)差不多

执行效果

 

参数项矩阵为[[ 3. ]

 [ 1.4]
 [ 1.9]]
http://blog.csdn.net/u010255642
3.000000*x1+1.400000*x2^2+1.900000*x1*x2+0.000000

 

 

转载于:https://www.cnblogs.com/snake-hand/p/3190011.html

转载地址:https://blog.csdn.net/weixin_30906185/article/details/94949386 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:反射API
下一篇:JAVA基础第二章-java三大特性:封装、继承、多态

发表评论

最新留言

表示我来过!
[***.240.166.169]2024年04月23日 15时07分22秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章