多元回归&最小二乘


最小二乘和回归分析的区别:
最小二乘法是在模型确定的情况下对未知参数由观测数据来进行估计,而回归分析则是研究变量间相关关系的统计分析方法。

一、最小二乘

需要补基础的看这!
定义:最小二乘法(最小平方法)是一种数学优化技术,它通过最小化误差的平方和寻找数据的最佳函数匹配。
E = ∑ i = 1 n e i 2 = ∑ i = 1 n ( y i − f ( x i ) ) 2 E=\sum_{i=1}^{n}e_i^2=\sum_{i=1}^{n}({y_i-f(x_i))}^2 E=i=1nei2=i=1n(yif(xi))2求使E最小时的 f ( x ) f(x) f(x)。以一元线性拟合为例,令 f ( x ) = a x + b f(x)=ax+b f(x)=ax+b,求使 ∑ i = 1 n ( y i − a x i − b ) 2 \sum_{i=1}^{n}({y_i-ax_i-b)}^2 i=1n(yiaxib)2最小时a,b的值。
要进行最小二乘拟合的话,python有现成的库函数可以调用。但是作为一个学习者,当调包侠是没有任何意义的。因此,这里自己实现,加深理解。这里以一元线性拟合为例,通过对上式求偏导,并令偏导等于0.得到
a = m ∑ i = 1 n ( x i ) 2 − ( ∑ i = 1 n ( x i ) 2 ) a=m\sum_{i=1}^n(x_i)^2-(\sum_{i=1}^n(x_i)^2) a=mi=1n(xi)2(i=1n(xi)2)

1.手动实现

待补充

2.scipy库函数实现

scipy官方手册
调用方法:

  1. 确定需要拟合的函数
#如:一元线性拟合函数
def func(p,x):
	p1,p0=p
	y=p1*x+p0
	return y
  1. 定义误差函数(损失函数,拟合函数会重复调用直至误差值足够小,是一个迭代最优的过程)
def residuals(p,x, y):
    res= y - fun(p,x)
    return res
  1. 调用函数
#调用leastsq函数
#输入:损失函数名,初始参数(和X的维度相同;具体数值不重要,可以全1),数据
#输出:最小二乘意义下的参数
from scipy.optimize import leastaq 
impport numpy as np
pars=np.ones(X)#和X的维度相同
r = leastsq(residuals, pars, args=(X, Y)) #三个参数:误差函数、函数参数列表、数据点  
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值