多特征线性回归模型
多元线性回归(Multiple Linear Regression):与单变量线性回归相比,多元线性回归模型考虑多个特征。
多特征
比如:我们考虑了房屋尺寸、卧室数量、楼层数和房屋年龄四个特征。通过这些特征,我们能更好地预测房价。
考虑多个特征,所以我们将模型定义为 f = w1x1 + w2x2 + w3x3 + w4x4 + b。这里,w1、w2、w3 和 w4 是权重,b 是偏置项。
向量化
向量化允许我们更紧凑地表示模型,并利用矩阵计算的优势提高计算效率。
如上图,将权重(w1、w2、w3 和 w4)和特征(x1、x2、x3 和 x4)表示为向量 W 和 X。这使我们能够用简洁的方式表示模型:f(X) = W • X + b。这里的点乘(•) 表示两个向量的对应元素相乘后求和。
在使用向量化的同时,可以充分利用并行计算的特点,来加快代码的运行速度并减少实现的复杂性。
用于多元线性回归的梯度下降算法
多元线性回归:多元线性回归是在具有多个特征的情况下进行线性回归的推广。这使得我们可以使用更多的输入特征来预测目标值。
向量表示法:为了简化表示,我们使用向量表示法将参数 w_1 到 w_n 收集到一个向量 w 中,使得 w 是一个长度为 n 的向量。代价函数 J 可以定义为 J(w, b),其中 w 是一个参数向量,b 是一个数值。
梯度下降法:在多元线性回归中,我们使用梯度下降法来找到最佳参数 w 和 b,以最小化代价函数 J。梯度下降法通过迭代地更新每个参数 w_j 和 b 以减小 J 的值来实现。
向量化:在实现梯度下降法时,我们可以使用向量化来提高计算效率。向量化是一种利用数组运算代替循环的技术,使得我们可以在硬件级别并行计算大量操作,从而大大加快算法的运行速度。
正规方程法(Normal equation):正规方程法是求解线性回归中 w 和 b 的另一种方法。与梯度下降法不同,正规方程法不需要迭代,而是直接通过一次计算来求解 w 和 b。正规方程法的局限性在于,它只适用于线性回归问题,而且在特征数量较大时计算速度较慢。
特征缩放
不同特征值范围:当我们使用不同特征进行预测时,它们的取值范围可能差异很大,例如房屋面积和卧室数量。
参数大小关系:当特征值的范围较大时,我们需要选择相对较小的参数值;而特征值范围较小时,参数值可能会相对较大。
梯度下降的表现:当特征值范围相差很大时,损失函数的等高线可能呈椭圆形,导致梯度下降算法在寻找全局最小值时需要较长时间。
特征缩放:为了解决这个问题,可以对特征进行缩放,使得它们的取值范围相对相似。这样做可以使损失函数的等高线更接近圆形,从而加速梯度下降算法。
如何实际应用特征缩放
一、缩放特征:可以通过除以最大值的方法来缩放特征。
二、均值归一化(Mean Normalization):将特征重新缩放,使它们的均值为0。为了实现这一点,需要减去每个特征的均值,然后除以最大值和最小值之间的差值。
三、Z-score归一化(Z-score Normalization):这种方法需要计算每个特征的标准差。然后,对于每个特征值,减去其均值并除以其标准差。
特征缩放目标:通常情况下,我们希望特征值范围在大约 -1 到 1 之间。这些值可以有一定的灵活性,例如 -3 到 3 或者 -0.3 到 0.3 也是可以接受的。
何时使用特征缩放:当特征的范围相差较大时,使用特征缩放可以帮助加速梯度下降算法。在大多数情况下,实施特征缩放是无害的,因此在有疑虑的情况下,建议实施特征缩放。
判断梯度下降是否收敛
绘制学习曲线:在每次梯度下降迭代后,绘制成本函数 J 的值。水平轴表示梯度下降的迭代次数,垂直轴表示成本函数 J 的值。
观察学习曲线:当梯度下降运行正确时,成本函数 J 应该在每次迭代后都减少。如果 J 在某次迭代后增加,这意味着学习率 Alpha 可能选择不当(通常过大),或者代码中可能存在错误。
判断梯度下降收敛:观察学习曲线,当曲线趋于平缓且不再降低时,可以认为梯度下降已经收敛。
自动收敛测试:设定一个小的阈值(如 0.001 或 10^-3),如果成本函数 J 在一次迭代中减少的量小于这个阈值,可以认为已经收敛。但是,选择合适的阈值可能比较困难,因此通常更倾向于观察学习曲线,而不是依赖自动收敛测试。
如何设置学习率
当成本函数 J 在梯度下降的迭代过程中时而增加时而减少,这意味着梯度下降没有正常工作。这可能是代码中的错误,或者学习率太大。
学习率过大可能导致在参数空间中“跳过”最小值,从而无法收敛。为了解决这个问题,可以尝试使用较小的学习率。
如果成本函数 J 在每次迭代后持续增加,这也可能是由于学习率过大。降低学习率可以解决这个问题。但是,这种情况也可能是代码错误的迹象。
一个调试梯度下降的技巧是使用足够小的学习率,这样成本函数 J 应该在每次迭代后都减少。如果即使将学习率设定为很小的值,成本函数 J 仍然没有在每次迭代后减少,那么可能代码中存在错误。
选择合适的学习率通常需要尝试一系列值。可以从较小的值开始(例如 0.001),然后逐渐增大(例如 0.003, 0.01, 0.03 等),观察哪个学习率能够使成本函数 J 快速且稳定地下降。
特征工程
对于许多实际应用来说,选择或构建合适的特征是使算法表现良好的关键步骤。
1、特征选择:选择适当的特征对学习算法的性能有很大影响。在许多实际应用中,选择或构建合适的特征是关键。
2、特征工程:特征工程是使用你对问题的知识或直觉来设计新特征的过程,通常通过转换或组合原始特征使学习算法能更容易地做出准确预测。
3、示例:预测房价。假设你有两个特征:x_1(房子所在土地的宽度或前沿宽度)和 x_2(房子所在土地的深度)。你可以构建一个模型:f(x) = w_1x_1 + w_2x_2 + b。但是,你也可以通过组合这些特征来创建一个更有效的模型。
4、新特征:你可以计算土地的面积(x_1 * x_2),并将其定义为新特征 x_3。然后,你可以构建一个包含这个新特征的模型:f(x) = w_1x_1 + w_2x_2 + w_3x_3 + b。这样,模型可以根据数据选择参数 w_1、w_2 和 w_3,以判断土地的宽度、深度或面积对预测房价的重要性。
通过特征工程,你可以获得更好的模型。这通常取决于对应用领域的洞察力。特征工程的一个变种是能够拟合非线性函数,而不仅仅是直线。
多项式回归
多项式回归:多项式回归允许你拟合非线性函数,而不仅仅是直线。这可以通过使用原始特征的幂来实现,例如 x 的平方和立方等。
名词解释:非线性关系—-是什么意思?
描述因变量和自变量之间的非线性关系,是指通过建立一个模型来表示因变量(响应变量)随着一个或多个自变量(预测变量)变化时呈现的非线性关系。在非线性关系中,因变量并不是自变量的简单线性组合。换句话说,当自变量发生变化时,因变量的变化不是均匀的或按固定比例进行的。
拟合曲线:对于一些数据集,如房价预测,使用非线性函数(如二次、三次函数)可能比使用线性函数更好。这取决于数据的实际分布。
**特征缩放:当使用原始特征的平方和立方等幂作为特征时,特征缩放变得非常重要。**特征缩放可以将特征值缩放到相似的范围,有助于梯度下降的性能。
特征选择:在多项式回归中,可以选择不同的特征。例如,除了使用 x 的平方和立方,还可以考虑使用 x 的平方根。选择合适的特征可以帮助你建立更好的模型。