定义多项式的最大阶数

max_degree = 20

定义训练集和测试集的大小

n_train, n_test = 100, 100

创建一个用于存储真实权重的数组,并分配大量空间

true_w = np.zeros(max_degree)

将前4个元素设置为[5, 1.2, -3.4, 5.6]

true_w[0:4] = np.array([5, 1.2, -3.4, 5.6])

生成一个形状为(n_train+n_test, 1)的正态分布随机数矩阵

features = np.random.normal(size=(n_train + n_test, 1))

打乱features的顺序

np.random.shuffle(features)

生成一个形状为(n_train+n_test, max_degree)的多项式特征矩阵

poly_features = np.power(features, np.arange(max_degree).reshape(1, -1))

对每一列进行归一化处理

for i in range(max_degree): poly_features[:, i] /= math.gamma(i + 1) # gamma(n)=(n-1)!

生成标签,维度为(n_train+n_test,)

labels = np.dot(poly_features, true_w)

添加正态分布噪声

labels += np.random.normal(scale=0.1, size=labels.shape

对以下代码进行注释:max_degree = 20 # 多项式的最⼤阶数n_train n_test = 100 100 # 训练和测试数据集⼤⼩true_w = npzerosmax_degree # 分配⼤量的空间true_w04 = nparray5 12 -34 56features = nprandomnormalsize=n_train + n_test 1nprandomshuffl

原文地址: https://www.cveoy.top/t/topic/ckUv 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录