多元线性回归 文章目录前言1. 多元线性回归算法1.1 定义和特征向量化1.2 多元线性回归的梯度下降1.3 梯度下降的替代方案正规方程法2. 学习曲线3. 特征缩放4. 特征工程前言本章主要围绕多元线性回归介绍了向量化学习率、特征缩放、特征工程等基础知识。1. 多元线性回归算法1.1 定义和特征向量化多元线性回归具有多个输入特征即x 1 , x 2 , x 3 . . . . . . x_1, x_2, x_3......x1​,x2​,x3​......的线性回归。如预测房价的项目中有多个特征可以影响房价其中多元线性回归模型用f w , b ( x ) w 1 x 1 w 2 x 2 . . . . . . . w n x n b f_{w,b}(x) w_1x_1w_2x_2.......w_nx_nbfw,b​(x)w1​x1​w2​x2​.......wn​xn​b表示。涉及参数和因变量向量化可简化表达。向量化有两个主要作用1.简化表达2.运算效率更高。如果没有向量化相当于每一次都是执行f w i x i fw_ix_ifwi​xi​我们用numpy库来实现向量化np.dot(w, x)b。在这个过程中相当于两组数据同时出m个然后同时每一对w ww和x xx互相相乘再相加。速率大大提升。1.2 多元线性回归的梯度下降多元线性回归的梯度下降也可用向量简化左侧是原始表达右侧是向量表达式下图则是单元特征和多元特征的梯度下降对比图1.3 梯度下降的替代方案正规方程法针对线性回归而言python存在专门的库可以直接采用数学计算来求解合适的w , b w,bw,b不需要迭代即梯度下降。但是正规方程法不适用于其他的模型而且当特征很多的时候运行时间会非常慢。2. 学习曲线在运行梯度下降的时候如何判断它是否在收敛也就是说它是否可以接近损失函数的全局最小值我们采取**学习曲线Learning curve**来衡量。如下图所示横轴为迭代次数纵轴为损失函数值当随着迭代次数增加损失函数逐渐变小说明梯度下降工作正常。如果在下一次迭代中损失函数下降幅度小于0.001我们就认为收敛。学习率α \alphaα如果过大可能迭代次数增加损失函数会上涨。反之如果足够小在每次迭代中损失函数会下降。所以我们在进行运算的时候可以多试几组α \alphaα。3. 特征缩放特征缩放Featur Scaling指的是让不同特征处于相近的数值范围从而使得梯度下降更快、更稳定。因为不同特征的自变量量纲可能不一样比如x 1 x_1x1​取值300-1000x 2 x_2x2​取值0-5那么对应w i w_iwi​的大小取值也会很不一样。如图所示梯度下降希望每个特征的参数买的步子差不多大梯度会更快收敛为了使得不同特征量纲相同我们采用特征缩放归一化特征缩放有各种不同的方法但本质都是把不同特征的取值放到同一量纲中。4. 特征工程特征工程Feature engineering是使用你的直觉通过转换或者构造原始特征创造出可以预测目标变量的新特征。比如预测房价有两个原始特征1.房子长度2.房子宽度。可以根据1x2构造面积这一新的特征来预测房价。