对以下代码进行注释: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
定义多项式的最大阶数
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
原文地址: https://www.cveoy.top/t/topic/ckUv 著作权归作者所有。请勿转载和采集!