码迷,mamicode.com
首页 > 系统相关 > 详细

[Machine Learning] 多变量线性回归(Linear Regression with Multiple Variable)-特征缩放-正规方程

时间:2019-11-26 22:43:03      阅读:154      评论:0      收藏:0      [点我收藏+]

标签:次方   三次   code   线性回归   reg   不可   转化   ble   代码   

  我们从上一篇博客中知道了关于单变量线性回归的相关问题,例如:什么是回归,什么是代价函数,什么是梯度下降法。

  本节我们讲一下多变量线性回归。依然拿房价来举例,现在我们对房价模型增加更多的特征,例如房间数楼层等,构成一个含有多个变量的模型,模型中的特征为(x0 ,x1 ,...,xn )。

技术图片

 

  增添更多特征后,我们引入一系列新的注释:

技术图片

  假设函数 h 表示为:

 

  这个公式中有 n+1个参数和 n 个变量,为了使得公式能够简化一些,引入x0 = 1,则公

 

式转化为:技术图片

  此时模型中的参数是一个 n+1维 的向量,任何一个训练实例也都是 n+1维的向量,特
征矩阵X的维度是m*(n+1)。因此公式可以简化为:技术图片

 

 

   和单变量线性回归类似,在多变量线性回归中,构建一个代价函数,也是所有建模误差的平方和,即:技术图片。其中技术图片

  使用梯度下降算法为:

技术图片

  代码示例:

def computeCost(X, y, theta):
    inner = np.power(((X * theta.T) - y), 2)
    return np.sum(inner) / (2 * len(X))

 

  在多变量中有个问题,就是每个变量的取值范围不是一样的,比如 一套房子的房间数量大概是 0-5, 而尺寸大约为 0-200平方米,如果以上述的两个取值范围代入代价函数进行计算的话,整个计算权重就会偏移,所以我们把所有变量的取值范围归一到 [-1,1]之间,那么 把变量的取值范围归一的步骤就叫 特征缩放。对于有些数据可能需要平方或者是三次方的操作,我们也可以归一化,把三次方去掉,从而转化为线性回归。

 

  对于学习率,梯度下降算法的每次迭代受到学习率的影响,如果学习率??过小,则达到收敛所需的迭代次数会非常高;如如果学习率??过大,每次迭代可能不会减小代价函数,可能会越过局部最小值导致无法收敛。

  通常可以考虑尝试这些学习率:

  a= 0.01 , 0.03 , 0.1 , 0.3 , 1 , 3 , 10

 

   对于某些线性回归问题,可以使用正规方程来解算。

  技术图片

 

  正规方程解出向量 :技术图片

 

  注:对于那些不可逆的矩阵(通常是因为特征之间不独立,如同时包含英尺为单位的尺寸和米为单位的尺寸两个特征,也有可能是特征数量大于训练集的数量),正规方程方法是不能用的。

 技术图片

 

 

正规方程技术图片的推算过程:

 技术图片

 

 技术图片

 

[Machine Learning] 多变量线性回归(Linear Regression with Multiple Variable)-特征缩放-正规方程

标签:次方   三次   code   线性回归   reg   不可   转化   ble   代码   

原文地址:https://www.cnblogs.com/ynxf/p/11938684.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!