解题思路
本题是一个典型的多变量线性回归问题,要求使用批量梯度下降(BGD)训练模型参数,并结合特征归一化与参数还原。
模型形式为:
y=w0+w1x1+w2x2+w3x3
题目内容
路由器的某资源利用率与多个运行特征强相关:协议连接数(单位:个)、转发数据包速率(单位:Mpps)、内存占用率(单位:%)。为了精准预测不同负载下的路由器资源利用率,保障网络稳定运行,请实现批量梯度下降法(BGD)来训练资源预测线性回归模型的参数。
- 资源预测模型:y=w0+w1⋅x1+w2⋅x2+w3⋅x3 (w0 为偏置项,w1,w2,w3 为特征权重)
- 损失函数:均方误差(MSE),L=2m1∑i=1m(ypred,i−ytrue,i)2 (m 为样本数)
- 梯度更新规则:wj=wj−α⋅m1∑i=1m(ypred,i−ytrue,i)⋅xi,j (偏置项 w0 对应 xi,0=1,α 为学习率)
- 迭代规则:初始权重(含偏置)全为0,迭代固定 N 次后停止,无需判断收敛
- 为了提高收敛速度,采用特征归一化进行训练,并在训练完成后进行权重还原:
- 特征归一化:对每个特征维度 xj(j=1,2,3),xjnorm=max(xj)−min(xj)xj−min(xj),其中 min(xj) 为该特征在所有样本中的最小值,max(xj) 为该特征在所有样本中的最大值,若 max(xj)=min(xj)(特征无波动),则归一化后的值为0
- 特征权重还原:wj=wjnorm⋅(max(xj)−min(xj))(j=1,2,3),wjnorm 为迭代后的权重,若 max(xj)−min(xj) 为0,wj 取0
- 偏置项权重还原:w0=w0norm−∑j=13wj⋅min(xj),w0norm 为迭代后偏置项的权重
输入描述
第一行:整数 m (样本数量, [1, 10000] )
第二行:整数 N (迭代次数, [1, 1000] )
第三行:浮点数 α (学习率, [0, 1] ,保留2位小数)
后续 m 行:每行4个整数,依次为 x1 (协议连接数,范围 [0, 1000] )、 x2 (转发数据包速率: [0, 10000] )、 x3 (内存占用率:范围 [0, 100] )、 y (资源用量:范围 [0, 10000] )
输出描述
一行,4个浮点数,依次为还原后的 w0,w1,w2,w3,结果保留2位小数,银行家舍入,以一个空格分隔,前后无冗余空格。
样例1
输入
3
100
0.10
100 200 150 6000
200 800 600 7500
300 70 60 6500
输出
4394.59 6.82 1.20 1.55
说明
样本数:3
迭代次数:100
学习率:α = 0.10
样本1:100 200 150 6000 依次为 x1、x2、x3、y
样本2:200 800 600 7500
样本3:300 70 60 6500
样例2
输入
2
50
0.05
0 0 0 0
1000 10000 100 100000
输出
11419.33 28.26 2.83 282.62
说明
样本数:2
迭代次数:50
学习率:α = 0.05
样本1:0 0 0 0 依次为 x1、x2、x3、y
样本2:1000 10000 100 100000