【吴恩达机器学习笔记】正规方程

 

  1. 前言

之前我们都在讨论梯度下降算法,但对于一些线性问题来说,正规方程是更好的解决方法。


一、正规方程

正规方程是通过求解下面的方程(就是对代价函数求导)来找出使得代价函数最小的参数的:

\frac{\partial J(_{\theta _{j} })}{\partial \theta _{j}}= 0

假设我们的训练集特征矩阵为 𝑋(包含了 𝑥0 = 1)并且我们的训练集结果为向量 𝑦,则利用正规方程解出

向量 𝜃 =(X^{T}X)^{-1}X^{T}y

推导过程分析:

前提我们要了解以下几个方程:

多变量线性回归问题的代价函数为:

其中对于单个样本的h(x):

设有m个训练实例,每个实例有n个特征,则训练实例集为:

其中这里写图片描述表示第i个实例第j个特征。

特征参数为(是一个列向量):

这里写图片描述

输出变量为:

这里写图片描述

因为这里写图片描述(这里知道z是列向量就可以理解了)

所以可以把代价函数转化为如下方程(实现了去除累加计算,乘法计算完拆开后就是这个式子):

这里写图片描述

接下来对这个式子进行对θ求导(难点):

https://www.bilibili.com/video/BV1xk4y1B7RQ?p=7这个视频比较详细地解释了矩阵求导的原理、计算,最后一节还推导了上述公式,有需要的自行观看,这里直接使用结论。

矩阵求导可用公式(推导过程见视频):

第一项:这里写图片描述(因为Y与θ无关)

第二项:带入公式1,将看做一个整体,得出=

第三项:就是第二项的转置,带入公式1,得出结果依然等于

第四项:是一个标量(计算一下最后维度即可知道),代入公式2,将看作整体,得出结果等于

综上,求导结果为:这里写图片描述

令这个函数等于0,求出极值 向量 𝜃 =(X^{T}X)^{-1}X^{T}y

Python实现:

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

二、梯度下降算法与正规方程的优缺点

梯度下降算法:

优点:

  1. 特征数量n的值很大(一般以万及以上为单位)时,仍能有较好的计算效果。
  2. 适用于多种模型。

缺点:

  1. 需要选择学习率α的值(吴恩达老师一般是从0.001起,3倍增长)
  2. 需要多次迭代

正规方程:

优点:

  1. 一次运算即可得出结果

缺点:

  1. 如果特征数量𝑛较大则运算代价大,因为矩阵逆的计算时间复杂度为𝑂(𝑛3),吴恩达老师认为当𝑛小于 10000 时还是可以接受的。
  2. 只适用于线性回归模型,不适用于逻辑回归模型等其他模型。


 


总结

提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值