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

Posted ynxf

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[Machine Learning] 多变量线性回归(Linear Regression with Multiple Variable)-特征缩放-正规方程相关的知识,希望对你有一定的参考价值。

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

  本节我们讲一下多变量线性回归。依然拿房价来举例,现在我们对房价模型增加更多的特征,例如房间数楼层等,构成一个含有多个变量的模型,模型中的特征为(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)-特征缩放-正规方程的主要内容,如果未能解决你的问题,请参考以下文章

[Machine Learning] 单变量线性回归(Linear Regression with One Variable)

Coursera《machine learning》--单变量线性回归(Linear Regression with One Variable)

机器学习---线性回归(Machine Learning Linear Regression)

Machine Learning3.多元线性回归

Machine Learning学习目录

machine learning 之 导论 一元线性回归