机器学习之——多变量线性回归

简介: 在之前的博客中,描述过单变量线性回归(Linear Regression with One Variables)的模型,这次来分享一下多变量线性回归模型(Linear Regression with Multiple Variables)。 我们还是使用之前的问题,对房价的预测。这一次增加更多的特征,例如房子的楼层数、卧室数量等,这样就构成了一个含有多个变量的模型,模型中的特征我们标

在之前的博客中,描述过单变量线性回归(Linear Regression with One Variables)的模型,这次来分享一下多变量线性回归模型(Linear Regression with Multiple Variables)

我们还是使用之前的问题,对房价的预测。这一次增加更多的特征,例如房子的楼层数、卧室数量等,这样就构成了一个含有多个变量的模型,模型中的特征我们标记为(X1,X2,X3,...,Xn)。



增添了更多的特征之后,我们还要引入一些新的标注:


支持多变量的假设函数 h 的表达式为:


我们看到,这个表达式中有n+1个参数和n个变量(ø0没有变量),我们为了使公式能够简化一些,添加一个X0使其的值为1,即:X0=1,这样公式便转化为:


此时,这个模型中的参数是一个n+1维的向量,实际上在多变量回归模型中,任何一个训练集也都是n+1维的向量,特征矩阵X的维度此时是m*n+1。

所以,我们的假设函数 h 的表达式可以简化成:


参数向量ø的转置乘上特征向量X。

到目前,我们得到了模型的假设函数 h ,下一步我们来构建代价函数(Cost Function)

多变量线性回归的代价函数与单变量线性回归的代价函数相似,是所有建模误差的平方和(MSE),即:


我们得到了代价函数,我们的目标也就和单变量线性回归问题中的一样,找出使得代价函数最小的一系列参数。我们也是用批量梯度下降(Batch Gradient Descent)的方法:


将代价函数带入,即:


求导之后,得到:


在初始状态,我们随机选择一系列参数值,计算所有的预测结果之后,再给所有的参数一个新的值,如此循环直到收敛(convergence)

到此,我们已经实现了多变量的线性回归。但是在计算的过程当中,我们发现,有很多时候,参数的取值差距非常大,导致很多时候要进行大量的大数值的计算。在处理多维特征(多变量)的问题时,我们要保证这些特征都具有相近的范围,这样将更好的帮助梯度下降算法更快的收敛。这时,我们可以使用特征缩放(Features Scaling)方法。

我们还是以放假预测问题为例,假设我们使用两个特征,房屋的尺寸和房间的数量。房屋的尺寸范围在 0 ~ 2000 平方英尺, 房间数量在 0 ~ 5 , 以这两个参数为横纵坐标,绘制代价函数的等高线图能看出图像会显得很扁,梯度下降算法要执行很多次迭代才能收敛。


特征缩放解决这个问题,是尝试将所有特征的取值范围尽量都缩放到 -1 ~ 1 之间。最简单的方法是令 :


其中,Xn代表第n个特征,µn代表平均值(AVE),Sn代表标准差(SD)

梯度下降算法的表达式中,有一个alpha学习速率(Learning Rate)。算法所需要的迭代次数根据模型的不同而不同,我们这方面不能够提前预知,我们可以绘制迭代次数和代价函数的图表来观测算法在何时趋于收敛。


也有一些自动测试是否收敛的方法,例如:将代价函数的变化值与一个常数阈值(0.001)进行比较。但是我个人感觉还是上面的图表更直观一些。

梯度下降算法每次迭代,都会受到学习速率的影响,如果学习速率较小,则达到收敛所需要迭代的次数就会非常高;反之,如果alpha过大,则每次迭代可能都不会减小代价函数的结果,甚至会超过局部最小值导致无法收敛。

通常,在我做一些模型时,我会设置学习速率的值在 0.01,0.03,0.1,0.3,1,3,10 这些参考值。

综上,就是多变量线性回归模型的主要内容。下一次将给大家分享 多项式回归于正规方程(Polynomial Regression and Normal Equation)


相关文章
|
4月前
|
机器学习/深度学习 人工智能 自然语言处理
机器学习之线性回归与逻辑回归【完整房价预测和鸢尾花分类代码解释】
机器学习之线性回归与逻辑回归【完整房价预测和鸢尾花分类代码解释】
|
4月前
|
机器学习/深度学习 算法 TensorFlow
机器学习算法简介:从线性回归到深度学习
【5月更文挑战第30天】本文概述了6种基本机器学习算法:线性回归、逻辑回归、决策树、支持向量机、随机森林和深度学习。通过Python示例代码展示了如何使用Scikit-learn、statsmodels、TensorFlow库进行实现。这些算法在不同场景下各有优势,如线性回归处理连续值,逻辑回归用于二分类,决策树适用于规则提取,支持向量机最大化类别间隔,随机森林集成多个决策树提升性能,而深度学习利用神经网络解决复杂模式识别问题。理解并选择合适算法对提升模型效果至关重要。
225 4
|
4月前
|
机器学习/深度学习 数据采集 人工智能
【机器学习】解释什么是线性回归?
【5月更文挑战第15天】【机器学习】解释什么是线性回归?
|
23天前
|
机器学习/深度学习 人工智能 自然语言处理
探索机器学习:从线性回归到深度学习
【9月更文挑战第4天】在这篇文章中,我们将深入探讨机器学习的世界,从基础的线性回归模型开始,逐步深入到复杂的深度学习网络。我们将通过实际的代码示例,揭示这些模型背后的数学原理,以及如何在现实世界的问题中应用它们。无论你是初学者还是有经验的数据科学家,这篇文章都将为你提供新的视角和深入的理解。
|
1月前
|
机器学习/深度学习 人工智能 自然语言处理
探索机器学习的奥秘:从线性回归到深度学习
【8月更文挑战第26天】本文将带领读者走进机器学习的世界,从基础的线性回归模型开始,逐步深入到复杂的深度学习网络。我们将探讨各种算法的原理、应用场景以及实现方法,并通过代码示例加深理解。无论你是初学者还是有一定经验的开发者,这篇文章都将为你提供有价值的知识和技能。让我们一起揭开机器学习的神秘面纱,探索这个充满无限可能的领域吧!
|
1月前
|
机器学习/深度学习 人工智能 算法
探索机器学习:Python中的线性回归模型实现
【8月更文挑战第24天】在机器学习的世界中,线性回归是最基础也是应用最广泛的算法之一。本文将通过Python编程语言,使用scikit-learn库来实现一个简单的线性回归模型。我们将从理论出发,逐步深入到代码实现,最后通过一个实际数据集来验证模型的效果。无论你是机器学习的初学者,还是想要复习线性回归的基础知识,这篇文章都将为你提供有价值的信息。让我们一起踏上这段探索之旅吧!
|
3月前
|
机器学习/深度学习 数据采集 算法
【机器学习】线性回归:以房价预测为例
【机器学习】线性回归:以房价预测为例
192 1
|
3月前
|
机器学习/深度学习 数据可视化 算法
【阿旭机器学习实战】【29】产品广告投放实战案例---线性回归
【阿旭机器学习实战】【29】产品广告投放实战案例---线性回归
|
2月前
|
机器学习/深度学习 人工智能 供应链
|
4月前
|
机器学习/深度学习 Python
利用Python实现一个简单的机器学习模型:线性回归详解
利用Python实现一个简单的机器学习模型:线性回归详解
136 2