高斯过程回归python_Scikit学习:避免在高斯过程回归中过拟合

from__future__importdivisionimportnumpyasnpfrommatplotlibimportpyplotaspltfromsklearn.gaussian_processimportGaussianProcessRegressorfromsklearn.gaussian_process.kernelsimport(RBF,Matern,RationalQuadratic,ExpSineSquared,DotProduct,ConstantKernel)# ----------------------------------------------------------------------number_of_training_samples=1500number_of_testing_samples=500# read coordinates STANDARDIZEDcoords_training_stand=np.loadtxt('coordinates_training_standardized.txt')coords_testing_stand=np.loadtxt('coordinates_testing_standardized.txt')# read time series TRAIN/TESTtimeseries_training=np.loadtxt('timeseries_training.txt')timeseries_testing=np.loadtxt('timeseries_testing.txt')number_of_time_components=np.shape(timeseries_training)[1]# 20# Instantiate a Gaussian Process modelkernel=1.0*Matern(nu=1.5,length_scale=np.ones(coords_training_stand.shape[1]))gp=GaussianProcessRegressor(kernel=kernel)# placeholder for predictionspred_timeseries_training=np.zeros((np.shape(timeseries_training)))pred_timeseries_testing=np.zeros((np.shape(timeseries_testing)))foriinrange(number_of_time_components):print("time component",i)gp.fit(coords_training_stand,timeseries_training[:,i])y_pred,sigma=gp.predict(coords_training_stand,return_std=True)y_pred_test,sigma_test=gp.predict(coords_testing_stand,return_std=True)pred_timeseries_training[:,i]=y_pred

pred_timeseries_testing[:,i]=y_pred_test# plot trainingfig,ax=plt.subplots(5,figsize=(10,20))foriinrange(5):ax[i].plot(timeseries_training[100*i,:20],color='blue',label='Original train')ax[i].plot(pred_timeseries_training[100*i],color='black',label='GP pred train')ax[i].set_xlabel('Time components',fontsize='x-large')ax[i].set_ylabel('Amplitude',fontsize='x-large')ax[i].set_title('Time series n. {:}'.format(100*i+1),fontsize='x-large')ax[i].legend(fontsize='x-large')plt.subplots_adjust(hspace=1)plt.show()plt.close()# plot testingfig,ax=plt.subplots(5,figsize=(10,20))foriinrange(5):ax[i].plot(timeseries_testing[100*i,:20],color='blue',label='Original test')ax[i].plot(pred_timeseries_testing[100*i],color='black',label='GP pred test')ax[i].set_xlabel('Time components',fontsize='x-large')ax[i].set_ylabel('Amplitude',fontsize='x-large')ax[i].set_title('Time series n. {:}'.format(1500+100*i+1),fontsize='x-large')ax[i].legend(fontsize='x-large')plt.subplots_adjust(hspace=1)plt.show()plt.close()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值