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

简介: 在之前的博客中,描述过单变量线性回归(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)


相关文章
|
1月前
|
机器学习/深度学习 人工智能 自然语言处理
机器学习之线性回归与逻辑回归【完整房价预测和鸢尾花分类代码解释】
机器学习之线性回归与逻辑回归【完整房价预测和鸢尾花分类代码解释】
|
6天前
|
机器学习/深度学习 算法 数据挖掘
【Python 机器学习专栏】Python 中的线性回归模型详解
【4月更文挑战第30天】本文介绍了Python中的线性回归模型,包括基本原理、实现步骤和应用。线性回归假设因变量与自变量间存在线性关系,通过建立数学模型进行预测。实现过程涉及数据准备、模型构建、参数估计、评估和预测。常用的Python库有Scikit-learn和Statsmodels。线性回归简单易懂,广泛应用,但对异常值敏感且假设线性关系。其扩展形式如多元线性、多项式回归和正则化方法能适应不同场景。理解并运用线性回归有助于数据分析和预测。
|
20天前
|
机器学习/深度学习 人工智能 分布式计算
R和Python机器学习:广义线性回归glm,样条glm,梯度增强,随机森林和深度学习模型分析
R和Python机器学习:广义线性回归glm,样条glm,梯度增强,随机森林和深度学习模型分析
|
24天前
|
机器学习/深度学习 人工智能 自然语言处理
|
3月前
|
机器学习/深度学习 人工智能 算法
利用Python实现简单的机器学习算法——线性回归
本文介绍了如何使用Python语言和相关库,通过实现线性回归算法来进行简单的机器学习模型训练和预测。通过详细的代码示例和解释,帮助读者了解机器学习中的基础概念和实践操作。
|
4月前
|
机器学习/深度学习 人工智能
【人工智能】<吴恩达-机器学习>多变量线性回归&学习率&特征值
【1月更文挑战第26天】【人工智能】<吴恩达-机器学习>多变量线性回归&学习率&特征值
|
4月前
|
机器学习/深度学习 人工智能
【人工智能】<吴恩达-机器学习>单变量的线性回归&认识梯度下降
【1月更文挑战第26天】【人工智能】<吴恩达-机器学习>单变量的线性回归&认识梯度下降
|
2月前
|
机器学习/深度学习 存储 搜索推荐
利用机器学习算法改善电商推荐系统的效率
电商行业日益竞争激烈,提升用户体验成为关键。本文将探讨如何利用机器学习算法优化电商推荐系统,通过分析用户行为数据和商品信息,实现个性化推荐,从而提高推荐效率和准确性。
|
1月前
|
机器学习/深度学习 算法 搜索推荐
Machine Learning机器学习之决策树算法 Decision Tree(附Python代码)
Machine Learning机器学习之决策树算法 Decision Tree(附Python代码)
|
2月前
|
机器学习/深度学习 算法 数据可视化
实现机器学习算法时,特征选择是非常重要的一步,你有哪些推荐的方法?
实现机器学习算法时,特征选择是非常重要的一步,你有哪些推荐的方法?
30 1

热门文章

最新文章