多变量线性回归 || 特征缩放 || 特征选择和多项式回归 || 标准方程

对于多个特征/变量的回归模型,模型中的特征为(\(x_1 \quad x_2 \quad ...\quad x_n\)

此处n表示特征的数量

\(x^{(i)}代表第i个训练实力,是特征矩阵中的第i行,是一个向量\)

同单变量的假设\(h=\theta_0\:+\theta_1x\)类似,多变量的回归模型假设为\(h=\theta_0\:+\theta_1x_1\:+\theta_2x_2+...+\theta_nx_n\quad \\即h=\theta^T\overline{x}\)

同理,多变量回归模型的损失函数也算所有建模误差的平方和,即:

\(J(\theta_0,\theta_1,\theta_2...) = \frac{1}{2m}*\sum_{i=1}^m(h_\theta(x^{(i)})-y^{(i)})^2\)

所以对于多个参数\(\theta\)的值梯度下降公式为

\(\theta_j = \theta_j\:-\alpha*\frac{1}{m}\sum_{i=1}^m(h_\theta(x^{(i)})-y^{(i)})x_j \qquad \left[1 \right]\)

以上公式的\(\alpha\)为每次梯度下降的学习率,如0.01,0.1,0.3,过大会导致梯度下降过快无法收敛,过小会导致收敛过慢

注意,同 \(单变量模型\) 相同,多变量的回归模型也需要同时改变所有的\(\theta\)的值,即利用梯度下降公式 [1] 计算出从\(\theta_0-\theta_n\)的新值之后,再同时改变\(\theta\)的值。重复多次梯度下降直到收敛

特征缩放

对于多变量的回归模型,其不同变量的取值范围差距过大,可能会导致梯度下降的速度十分缓慢,这个时候就需要对不同变量进行特征缩放,将不同范围的变量缩放到大致相同的范围内,加快梯度下降的速度

学习率α

​ 在一定的学习率下,我们可以通过绘制迭代次数和代价函数对应的直角坐标系来观察梯度下降是否收敛,或者通过将代价函数变化值与某个阈值进行比较(例如0.001)查看是否收敛,以此可以比较不同学习率下训练效率

​ 同时,如果损失函数随着迭代次数增加而上涨,则说明学习率定的过大,导致无法收敛,需要调小学习率,也就是说一个合适的学习率对训练至关重要

特征和多项式回归

对于多变量的回归模型,有时可以选择将两个或多个特征经过处理后,形成新的特征,更加适合拟合多项式,拟合选择的多项式,也不一定是线性回归,可以选择合适的多项式,达到损失函数更低的最优状态

标准方程

对于损失函数最小值的求解,实际上就是每个\(\theta\)求导之后等于0的情况(拉格朗日数乘法 ),可以得到最小的损失函数,但是可能导致方程非常难解的情况

公式如下

\(\theta = (X^TX)^{-1}X^Ty\)

其中X为变量矩阵,一组多变量为一行向量,y为因变量列向量

\(A = X^TX \quad (X^TX)^{-1}\:=A^{-1}\)

ps.使用标准方程的情况下不需要特征缩放的步骤

posted @ 2022-01-17 22:10  crazy18  阅读(278)  评论(0)    收藏  举报