线性回归算法(机器学习笔记)

1单变量线性回归

1定义

假 设 : h θ ( x ) = θ 0 + θ 1 x {假设:h_\theta }\left( x \right) = {\theta _0} + {\theta _1}x hθ(x)=θ0+θ1x

代 价 函 数 : J ( θ 0 , θ 1 ) = 1 2 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 代价函数:J\left( {{\theta _0},{\theta _1}} \right) = {1 \over {2m}}{\sum\limits_{i = 1}^m {\left( {{h_\theta }\left( {{x^{(i)}}} \right) - {y^{(i)}}} \right)} ^2} J(θ0,θ1)=2m1i=1m(hθ(x(i))y(i))2
目标:调整两个参数使代价函数值最小(即在下图三维曲面中找到最低点)。
线性回归算法(机器学习笔记)_第1张图片

2直观理解

假 设 θ 0 = 0 , 只 讨 论 θ 1 一 个 参 数 , 可 得 下 图 {假设\theta _0} = 0,只讨论{{\theta _1}}一个参数,可得下图 θ0=0θ1
线性回归算法(机器学习笔记)_第2张图片
三维曲面找曲面最低点问题转换为,二维曲线找最小值问题。

3梯度下降

为 了 找 到 三 维 曲 面 最 低 点 的 参 数 θ 0 , θ 1 {{为了找到三维曲面最低点的参数\theta _0},{\theta _1}} θ0,θ1,需要有逼近最优参数的策略,因此引入梯度下降法。
梯度下降背后的思想是:开始时我们随机选择一个参数的组合计算代价函数,然后我们寻找下一个能让代价函数值下降最多的参数组合。我们持续这么做直到到到一个局部最小值(local minimum),因为我们并没有尝试完所有的参数组合,所以不能确定我们得到的局部最小值是否便是全局最小值,选择不同的初始参数组合,可能会找到不同的局部最小值。
迭 代 策 略 : θ j : = θ j − α ∂ ∂ θ j J ( θ 0 , θ 1 ) {迭代策略:\theta _j}: = {\theta _j} - \alpha {\partial \over {\partial {\theta _j}}}J\left( {{\theta _0},{\theta _1}} \right) θj:=θjαθjJ(θ0,θ1)
多个参数同时更新:
t e m p 0 : = θ 0 − α ∂ ∂ θ 0 J ( θ 0 , θ 1 ) temp0: = {\theta _0} - \alpha {\partial \over {\partial {\theta _0}}}J\left( {{\theta _0},{\theta _1}} \right) temp0:=θ0αθ0J(θ0,θ1)
t e m p 1 : = θ 1 − α ∂ ∂ θ 1 J ( θ 0 , θ 1 ) temp1: = {\theta _1} - \alpha {\partial \over {\partial {\theta _1}}}J\left( {{\theta _0},{\theta _1}} \right) temp1:=θ1αθ1J(θ0,θ1)
θ 0 : = t e m p 0 {\theta _0}: = temp0 θ0:=temp0
θ 1 : = t e m p 1 {\theta _1}: = temp1 θ1:=temp1
线性回归算法(机器学习笔记)_第3张图片
如 上 图 所 示 , 如 果 α 太 小 , 需 迭 代 很 多 次 才 能 到 最 低 点 如 果 α 太 大 , 可 能 会 越 过 最 低 点 , 不 会 收 敛 。 从 上 图 可 以 看 出 , 随 着 红 点 向 下 移 动 , 斜 率 变 小 , 说 明 每 一 次 更 新 的 位 移 也 变 小 如上图所示,如果\alpha太小,需迭代很多次才能到最低点如果\alpha太大,可能会越过最低点,不会收敛。从上图可以看出,随着红点向下移动,斜率变小,说明每一次更新的位移也变小 αα

梯度下降的线性回归

θ 0 : = θ 0 − α 1 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) {\theta _0}: = {\theta _0} - \alpha {1 \over m}\sum\limits_{i = 1}^m {\left( {{h_\theta }\left( {{x^{(i)}}} \right) - {y^{(i)}}} \right)} θ0:=θ0αm1i=1m(hθ(x(i))y(i)) θ 1 : = θ 1 − α 1 m ∑ i = 1 m ( ( h θ ( x ( i ) ) − y ( i ) ) x ( i ) ) {\theta _1}: = {\theta _1} - \alpha {1 \over m}\sum\limits_{i = 1}^m {(\left( {{h_\theta }\left( {{x^{(i)}}} \right) - {y^{(i)}}} \right)} {x^{(i)}}) θ1:=θ1αm1i=1m((hθ(x(i))y(i))x(i))
在梯度下降的每一步中,我们都用到了所有的训练样本,如上图的m个样本,所以称为批量梯度下降。

2多变量线性回归

假 设 : h θ ( x ) = θ 0 x 0 + θ 1 x 1 + θ 2 x 2 + ⋯ + θ n x n 假设:{h_\theta }\left( x \right) = {\theta _0}{x_0} + {\theta _1}{x_1} + {\theta _2}{x_2} + \cdots + {\theta _n}{x_n} hθ(x)=θ0x0+θ1x1+θ2x2++θnxn
代 价 函 数 : J ( θ 0 , θ 1 , ⋯   , θ n ) = 1 2 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 代价函数:J\left( {{\theta _0},{\theta _1}, \cdots ,{\theta _n}} \right) = {1 \over {2m}}{\sum\limits_{i = 1}^m {\left( {{h_\theta }\left( {{x^{(i)}}} \right) - {y^{(i)}}} \right)} ^2} J(θ0,θ1,,θn)=2m1i=1m(hθ(x(i))y(i))2
迭 代 策 略 : θ j : = θ j − α 1 m ( ( h θ ( x ( i ) ) − y ( i ) ) ⋅ x ( i ) ) 迭代策略: {\theta _j}: = {\theta _j} - \alpha {1 \over m}\left( {\left( {{h_\theta }\left( {{x^{(i)}}} \right) - {y^{(i)}}} \right) \cdot {x^{(i)}}} \right) θj:=θjαm1((hθ(x(i))y(i))x(i))

你可能感兴趣的:(线性回归算法(机器学习笔记))