Coursea-吴恩达-machine learning学习笔记(四)【week 2之Linear Regression with Multiple Variables】

多变量线性回归中的符号表示:
m m : 表示训练样本的数量
n n : 表示特征量的数量
x(i) x ( i ) : 表示第 i i 个训练样本的输入特征向量
xj(i)表示第 i i 个训练样本的第j个特征量

多变量线性回归的假设函数:

hθ(x)=θ0+θ1x1+θ2x2++θnxn h θ ( x ) = θ 0 + θ 1 x 1 + θ 2 x 2 + ⋯ + θ n x n
为了简化,令 x0=1 x 0 = 1 ,则假设函数转换为:
hθ(x)=θ0x0+θ1x1+θ2x2++θnxn h θ ( x ) = θ 0 x 0 + θ 1 x 1 + θ 2 x 2 + ⋯ + θ n x n
令:
x=x0x1x2xnθ=θ0θ1θ2θn x = [ x 0 x 1 x 2 ⋮ x n ] θ = [ θ 0 θ 1 θ 2 ⋮ θ n ]
则得到多元线性回归模型:
hθ(x)=θTx h θ ( x ) = θ T x
模型参数为: θ0,θ1,,θn θ 0 , θ 1 , ⋯ , θ n (可以想象为一个 n+1 n + 1 维向量)
代价函数为:
J(θ0,θ1,,θn)=12mi=1m(hθ(x(i))y(i))2 J ( θ 0 , θ 1 , ⋯ , θ n ) = 1 2 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2
梯度下降法:Repeat {
θj:=θjαθjJ(θ0,θ1,,θn)(θj,for j=0,,n) θ j := θ j − α ∂ ∂ θ j J ( θ 0 , θ 1 , ⋯ , θ n ) ( 同 时 更 新 θ j , f o r   j = 0 , ⋯ , n )
}
n1 n ≥ 1 时,形式为:
Repeat {
θj:=θjα1mi=1m(hθ(x(i))y(i))x(i)j(θj,for j=0,,n) θ j := θ j − α 1 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) x j ( i ) ( 同 时 更 新 θ j , f o r   j = 0 , ⋯ , n )
}
上式即为多元线性回归的梯度下降法。

特征缩放( feature scaling f e a t u r e   s c a l i n g ):确保各特征取值在一个相近的范围,梯度下降法可以更快收敛。
目的:将每个特征的取值约束在 [1,1] [ − 1 , 1 ] 的范围,即 1xi1 − 1 ≤ x i ≤ 1 ,当然,并非如此严格

举例: x1:size(02000),x2:number(15) x 1 : s i z e ( 0 − 2000 ) , x 2 : n u m b e r ( 1 − 5 )

方法1:将特征除以其最大值
具体: x1=size2000x2=number5 x 1 = s i z e 2000 x 2 = n u m b e r 5
则: 0x1115x21 0 ≤ x 1 ≤ 1 1 5 ≤ x 2 ≤ 1

方法2:均值归一化,相对方法1来说,用 xiμi x i − μ i 代替 xi x i 来确保特征值具有0的平均值
具体: x1=size10002000x2=number25 x 1 = s i z e − 1000 2000 x 2 = n u m b e r − 2 5
则: 0.5x10.50.5x10.5 − 0.5 ≤ x 1 ≤ 0.5 − 0.5 ≤ x 1 ≤ 0.5 (约)

综合上述两种方法,得到进阶标准法
xixiμisi x i → x i − μ i s i ,其中: μi μ i xi x i 取值的平均值, si s i xi x i 取值的最大值 最小值或xi取值的均方差。

确保梯度下降法是否运行正确的方法: J(θ) J ( θ ) (代价函数)在每次迭代后都应减小。

自动收敛检测:当 J(θ) J ( θ ) 在一次迭代后减少得少于一个很小的值,比如 103 10 − 3 ,可以认为已收敛。

对于足够小的 α α 来说, J(θ) J ( θ ) 应该在每次迭代后都减小,但如果 α α 太小,梯度下降法收敛得很慢,如果 α α 太大, J(θ) J ( θ ) 不一定会在每次迭代后都减小,不一定会收敛。

当线性假设函数不能适用于所有的样本时,可以通过对特征值进行平方、立方或开方来进行调整。

正规方程(Normal Equation):为某些线性回归问题,提供了一种求 θ θ 的解析解法。
θ θ 为一个 n+1 n + 1 维的参数向量,即多元线性回归问题时:
代价函数为:

J(θ0,θ1,,θn)=12mi=1m(hθ(x(i))y(i))2 J ( θ 0 , θ 1 , ⋯ , θ n ) = 1 2 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2
求解 θ θ 的方法:
θjJ(θ)==0(for every j) ∂ ∂ θ j J ( θ ) = ⋯ = 0 ( f o r   e v e r y   j )
solve for θ0,θ1,,θn s o l v e   f o r   θ 0 , θ 1 , ⋯ , θ n

当有 m m 个样本(x(1),y(1)),,(x(m),y(m)) n n 个特征量,则:
x(i)=[x0(i)x1(i)x2(i)xn(i)]X=[(x(1))T(x(2))T(x(m))T]
X X 是一个m(n+1)维矩阵
使得线性回归的代价函数 J(θ) J ( θ ) 最小化的 θ θ 值:
θ=(XTX)1XTy θ = ( X T X ) − 1 X T y
Octave O c t a v e 中的表示方法: pinv(XX)Xy p i n v ( X ′ ∗ X ) ∗ X ′ ∗ y

使用正规方程法时,不需要归一化特征变量,但使用梯度下降法时,归一化特征变量就很重要。

当有 m m 个训练样本,n个特征向量时,比较梯度下降法和正规方程法:
1. 梯度下降法:
- 需要选择学习速率 α α
- 需要进行多次迭代;
- 当 n n 很大时也能运行得很好,算法复杂度为O(kn2)
2. 正规方程法:
- 不需要选择学习速率 α α
- 不需要进行迭代;
- 需要计算 (XTX)1 ( X T X ) − 1 ,当 n n 很大时计算得很慢,算法复杂度为O(n3)

注:当 n10000 n ≥ 10000 左右时,可以考虑替换用梯度下降法求 θ θ

在正规方程法中,若 XTX X T X 是不可逆的,一般有两种原因:
1. 冗余的特征量,存在两个特征量相关联的情况;
2. 特征量太多(如 mn m ≤ n ),可尝试删除多余特征量或正则化。

本课提交作业的流程(例):

  1. 打开 WarmUpExercise.m W a r m U p E x e r c i s e . m 文件,在其中 YOURCODEHERE Y O U R C O D E H E R E 处写入代码,保存;
  2. Octave O c t a v e 命令行中切换到 WarmUpExercise.m W a r m U p E x e r c i s e . m 存放的目录,例如: cdXXX c d ′ X X X ′
  3. 在命令行输入: WarmUpExercise() W a r m U p E x e r c i s e ( )
  4. 在命令行输入: Submit() S u b m i t ( ) ,选择要提交的部分;
  5. 输入邮箱地址及提交密码进行提交。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值