给定⼀个训练集。这个训练集由x的N次观测组成,写作x≡ (x1,…,xN)T,伴随这对应的t的观测值,记作t≡ (t1,…,tN)T。图1展⽰了由N = 10个数据点组成的图像。图中的输⼊数据集合x通过选择xn(n= 1,...,N)的值来⽣成。这些xn均匀分布在区间[0,1],⽬标数据集t的获得⽅式是:⾸先计算函数sin(2πx)的对应的值,然后给每个点增加⼀个⼩的符合⾼斯分布的随机噪声,从⽽得到对应的tn的值。通过使⽤这种⽅式产⽣数据。
需要导入的模块如下
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
#分别在prml的features,linear文件夹下,需要自行下载,我会在文末给出github地址
#特征生成
fromprml.featuresimport PolynomialFeatures
fromprml.linearimport (
LinearRegressor,
RidgeRegressor,
BayesianRegressor
)
np.random.seed(1234)
PolynomialCurve Fitting
def func, sample_size, std):
= np(1= func(x) nprandomnormalscalestd, size.)return
def (x
npsin(