吴恩达机器学习第四章课堂笔记

多变量线性回归

4.1 多变量

之前我们讨论过房屋的面积和价钱,其中自变量只有房屋的面积,如果我们考虑多个特征,譬如房屋的年龄,该房屋有多少个卧室,房屋在几楼等等多个特征变量的情况下,房屋价钱的计算方式将会不一样。

4.2 多元梯度下降

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

4.3 正规方程

区别于之前的梯度下降,正规方程可以通过分析直接获得最优值,而不是依靠迭代。 

前面我们说过,以贩卖房屋为例,房屋的特征值可以有多个,使用矩阵的方式表示 X和 y 可以表示如下:

通过正规方程后,得出θ=(X 转置 X)逆 X 转置 y

上面这个例子可以写成这样的方式:

 小 x(i)表示一个数据有 n 个特征。大 X 表示 m 个 x 数据都有 n 个特征。

然后我们将上面这个大 X 带入代价函数里面

 结合上面的换算,因此

将每个部分拆开来算

然后再合并

 最后得到:

 

import numpy as np
    
 def normalEqn(X, y):
    
   theta = np.linalg.inv(X.T@X)@X.T@y #X.T@X等价于X.T.dot(X)
    
   return theta

只要特征变量的数目并不大,标准方程是一个很好的计算参数θ的替代方法。具体地说,只要特征变量数量小于一万,我通常使用标准方程法,而不使用梯度下降法。

随着我们要讲的学习算法越来越复杂,例如,当我们讲到分类算法,像逻辑回归算法,我们会看到,实际上对于那些算法,并不能使用标准方程法。对于那些更复杂的学习算法,我们将不得不仍然使用梯度下降法。因此,梯度下降法是一个非常有用的算法,可以用在有大量特征变量的线性回归问题。或者我们以后在课程中,会讲到的一些其他的算法,因为标准方程法不适合或者不能用在它们上。但对于这个特定的线性回归模型,标准方程法是一个比梯度下降法更快的替代算法。所以,根据具体的问题,以及你的特征变量的数量,这两种算法都是值得学习的。

 4.4 正规方程以及不可逆性

如果一些矩阵不可逆,我们称为奇异矩阵或者退化矩阵。

通常,矩阵不可逆的情况下,代码仍然可以计算它,这时候是一种伪逆的情况,意思是,本来XTX 是不可逆的,但我们应用电脑计算时,算法仍然可以实现计算。其次,矩阵不可逆的情况分为,我们在特征输入上是有误的,譬如重复的特征,会导致不可逆。举例,如果在房屋的特征值上,既用英尺表达,又用平方表达了,同时拥有两个特征但其实是一样的,那这种情况会出现不可逆的问题,那其实清理特征值就可以解决。另外,如果数据集太少,譬如10个数据,但是却有 100 个特征值,容易出现不可逆的问题,可以尝试删掉部分特征后再计算。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值