一、多项式回归
房价预测中:
有两个特征,frontage和depth,即临街长度和房子的宽度。假如我们计算一个x = frontage * depth (房子面积),则假设函数变成了hθ(x) = θo + θ1x 。
线性回归并不适用于所有数据,有时我们需要曲线来适应我们的数据,比如一个二次方模型或者三次方模型。
通常我们需要先观察数据然后再决定准备尝试怎样的模型。 另外,我们可以令:
X2 = X2^3 , X3 = X3^3,从而将模型转化为线性回归模型。
根据函数图形特性,我们还可以使:
如果我们采用多项式回归模型,在运行梯度下降算法前,特征缩放非常有必要。
二、正规方程
对于某些线性回归问题,正规方程方法是更好的解决方案。如:
假设我们的θ是一个实数,而不是一个向量,代价函数是一个关于θ的二次函数
那么正规方程是通过求解下面的方程来找出使得代价函数最小的参数的,即求导:
但是实际上θ往往是一个向量,代价函数(下图J函数括号中的m应为n)是关于这一系列θ的函数
假设我们的训练集特征矩阵为X(包含了Xo=1)并且我们的训练集结果为向量y,则利用正规方程解出向量
上标T代表矩阵转置,上标-1 代表矩阵的逆。设矩阵
以下表示数据为例:
即:
运用正规方程方法求解参数:
在 Octave 中,正规方程写作:
pinv(X'*X)*X'*y
梯度下降与正规方程的比较:
只要特征变量的数目并不大,正规方程是一个很好的计算参数的替代方法。具体地说,只要特征变量数量小于一万,通常使用正规方程法,而不使用梯度下降法。
三、正规方程以及不可逆性
正规方程中会存在不可逆的情况。
其一、当存在特征是线性相关的时候,比如在预测住房价格时,如果X1是以英尺为尺寸规格计算的房子,X2是以平方米为尺寸规格计算的房子,而1英尺=3.28米,那么两个特征值将始终满足:X1=X2*(3.28)^2,这时矩阵
是不可逆的。
其二、特征数量大于训练集的数量时,矩阵不可逆,比如十个数据集但是有100个特征。
当存在上述情况时,首先看看是否存在多余的特征,有则删除。另外可以对线性模型进行正则化,这样即使一个相对较小的训练集,也可使用很多的特征来找到很多合适的参数。
最后在Octave里,有两个函数可以求解矩阵的逆,一个被称为pinv(),另一个是inv(),前者是所谓的伪逆,另一个被称为逆。前者这种使用不同的线性代数库的方法被称为伪逆。即使矩阵不可逆,但算法执行的流程是正确的,正规方程仍然可以计算。
正规方程的推导过程:
微信公众号:BioLearner
定期更新,欢迎关注
网友评论