(数学建模)最小二乘法(第二章) 加权最小二乘法多项式拟合(python实现)

本文介绍了如何使用Python实现加权最小二乘法进行多项式拟合。首先通过随机数据展示一般最小二乘法的拟合效果,然后讨论在数据不平等性情况下加权最小二乘法的重要性,并给出具体实现代码,通过实例说明加权最小二乘法如何提高拟合精度。
摘要由CSDN通过智能技术生成

前言

接着之前写的第一章写,这次用python来实现加权最小二乘。

一、用随机数据进行最小二乘法拟合

我们先随机取一些数据,这里用python的随机数函数实现。

import numpy as np
import pandas as pd
import statsmodels.api as sm
import matplotlib.pyplot as plt
import seaborn as sns

np.random.seed(1)                  #随机数的标记,这里编号为1,规定这个之后,随机数就只生成一次,之后就会固定,除非seed的参数改变。
x=np.random.uniform(-5,5,35)       #生成从-5到5的随机数记为x,共35个
e=2*np.random.randn(35)            #randn返回满足标准正态分布的随机值,我们将这个随机值的二倍看做随机产生的误差,存在e中
y=2*x
plt.plot(x,y,'ro')                 #画出没有误差的散点图
y=2*x+e
plt.plot(x,y,'bo')                 #画出有误差的散点图

输出如图所示:
在这里插入图片描述
其中红点是准确值(横轴坐标值的二倍),而蓝点是带有误差的值(这些误差是我们刚才生成的)

再去掉红点,直接变为y=2*x的红线,用一般最小二乘拟合一下。

import numpy as np
import pandas as pd
import statsmodels.api as sm
import matplotlib.pyplot as plt
import seaborn as sns

np.random.seed(1)
x=np.random.uniform(-5,5,35)
e=2*np.random.randn(35)

y=2*x
#plt.plot(x,y,'ro')
plt.plot(x,2*x,'r--')
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值