梦里有时终须有,梦里无时莫强求
今天误差限第二章,errobar显示的只是离散点的误差,虽然在我们看来图像是连续但是实际只是点,所以为了更好拟合误差趋势,就有今天连续误差,代码如下
import numpyas np
from sklearn.gaussian_processimport GaussianProcess
import matplotlibas mtp
import matplotlib.pyplotas plt
fig=plt.figure()
#x=np.linspace(0,10,50)
model =lambda x:x*np.sin(x)
print(type(model))
y=1
model1=lambda x,y: x*np.sin(x)+y
print(type(model1))
print(model1)
xdata=np.array([1,3,5,6,8])
ydata1=np.array([2,3,9,20,30])
ydata=model(xdata)
y=model1(xdata,ydata1)
gp=GaussianProcess(corr='cubic',theta0=1e-2,thetaL=1e-4,thetaU=1E-1,random_start=100)
gp.fit(xdata[:,np.newaxis],ydata)
xfit=np.linspace(0,10,1000)
yfit,MSE=gp.predict(xfit[:,np.newaxis],eval_MSE=True)
dyfit=2*np.sqrt(MSE)
重点在这里,上面只是就算求误差
plt.figure()
plt.plot(xdata,ydata,'r')
plt.plot(xfit,yfit,color='yellow')
plt.fill_between(xfit,yfit-dyfit,yfit+dyfit)
print(ydata)
print(type(dyfit))
plt.show()
效果图如下
效果如图,用的是between函数,实际也就是填充中间区域,代码有疑问回复,欢迎大家讨论