【跟着小Mi一起机器学习吧!】多变量线性回归(二)
几天不见,甚是想念!小Mi系列的活动正在如火如荼地进行中,小Mi看到大伙儿的热情,动力更加十足,这不又迫不及待地更新来了! 在上期的多变量线性回归介绍中,我们学习了多维特征、多变量的梯度下降法以及在实现梯度下降过程中的特征缩放和如何选择学习率这两个技巧,今天小Mi在其基础上,继续带领大家学习多项式回归、正规方程法以及介绍正规方程的不可逆性。好啦,废话不多说啦,我们继续开始吧! 5 特征和多项式回归依旧是以预测房价为例,假设我们有两个特征,分别是房子临街的宽度和垂直宽度。这就是我们想要卖出的房子的图片,临街宽度其实就是你拥有的土地的宽度,而这所房子的纵向深度就是你的房子正面的宽度(定义为长度这样可能更好理解一点),因此我们便有两个特征,临界宽度和纵深,这样我们就可以建立一个线性回归模型,其中临界宽度是第一个特征 这边小Mi需要提醒大家注意的是,有时候不一定需要直接使用临界宽度和纵深,这两个我们一开始使用的特征,有时通过定义新的特征,你可能会得到一个更好的模型。 就拿上图来说,有这样一个住房价格的数据集,可能会有多个不同的模型用于拟合,选择之一是可能是二次模型,因为直线似乎并不能很好地拟合这些数据。用二次模型去拟合,但是最后发现可能二次函数似乎也有点不合理。因为,一个二次函数最终会降下来,随着土地面积的增加,房子的价格必然不会下降下来。那么小Mi又选择使用三次方的函数,进行数据拟合发现,上图中绿色的线对这个数据集拟合得更好,因为它不会在最后下降。 观察曲线图我们可以知道,通常情况下线性回归并不会适用于所有数据,有时我们需要曲线方程来适应我们的数据。那么,我们又应该如何将模型与数据进行拟合呢?使用多元线性回归的方法,我们可以对算法做一个简单的修改来实现它,按照我们之前假设的形式,我们知道如何拟合,就像这样: 如果我们想拟合这个三次模型,因为是预测一栋房子的价格,那么对应起来,特征 6 正规方程到目前为止,在涉及线性回归算法时我们通常会选用梯度下降法来最小化代价函数 那么现在小Mi带大家先对这个算法有一个直观的理解,上例子! 假设有一个非常简单的代价函数 当然在实际情况中, 再上一个例子!假如有4个训练样本: 为了实现正规方程法,在数据集中,假设这四个训练样本是所有数据,在数据集中需要加上一列对应额外特征变量的 即: 运用正规方程方法求解参数: 通常情况来看,我们可以知道X是一个m*(n+1)维矩阵,y会是一个m维向量,其中m是训练样本数量,n是特征变量数,由于我们多加了一列额外特征变量,所以其实是n+1维。最后,用矩阵X和向量y来计算,从而得到 X转置乘以X的逆乘以X转置乘以向量y,这样就能够得到使得代价函数最小化的 而就是更加通用的形式为:假设我们有m个样本, 举个例子: 假如我只有一个特征变量 那么,如果具体求出这个结果呢? 最后,何时应该使用梯度下降法,而何时应该使用正规方程法,给大家进行一个总结,假如有m个训练样本,n个特征变量,梯度下降法的缺点之一就是需要选择学习速率 因此,只要特征变量的数目并不大,正规方程是一个很好的计算参数的替代方法,但是随着我们需要学习的学习算法越来越复杂,例如当涉及分类算法的时候,logistic回归算法时,正规方程是不太适用的,仍然需要使用梯度下降法。因此,梯度下降法是一个非常有用的算法,在有大量特征的线性回归问题中,在更加复杂的学习算法中,但是对于线性回归的这个特定的模型,正规方程在小样本的特征变量下,是一个比梯度下降实现更快的替代算法。所以,根据具体的算法,具体的问题,以及特征变量的数目,这两个算法都是值得学习和深入研究的。 梯度下降与正规方程的比较: 正规方程的python实现:
好啦,至此,小Mi已经把线性回归的所有问题带着大家一起学习啦,下期我们将开始着手学习新的学习算法。我们下期见哦~ |