Python 多项式回归代码注释详解
定义多项式的最大阶数
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]) # 将前4个元素设置为[5, 1.2, -3.4, 5.6]
生成一个形状为(n_train+n_test, 1)的正态分布随机数矩阵
features = np.random.normal(size=(n_train + n_test, 1)) # 生成一个形状为(n_train+n_test, 1)的正态分布随机数矩阵
打乱features的顺序
np.random.shuffle(features) # 打乱features的顺序
生成一个形状为(n_train+n_test, max_degree)的多项式特征矩阵
poly_features = np.power(features, np.arange(max_degree).reshape(1, -1)) # 生成一个形状为(n_train+n_test, max_degree)的多项式特征矩阵
对每一列进行归一化处理
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) # 生成标签,维度为(n_train+n_test,)
添加正态分布噪声
labels += np.random.normal(scale=0.1, size=labels.shape) # 添加正态分布噪声
原文地址: https://www.cveoy.top/t/topic/ntHJ 著作权归作者所有。请勿转载和采集!