目录
线性回归的目标函数
- 在将训练样本的 x 逐个带入后,得出的预测值 y’ = a + bx 与真实年薪 y 整体的差异最小。
- 一个样本的 y 和 y’ 的差异用 (y′−y)2来表示。整体差距呢叫做 Cost Function
在(a,b) 中,x(i)和 y(i)是常量参数(也就是 m 个样本各自的 x 和 y 值),而 a 和 b 成了自变量,J(a,b) 是因变量。能够让因变量 J(a, b) 取值最小的自变量 a 和 b,就是最优的 a 和 b。
梯度下降求解目标函数
使用梯度下降法求a,b,让a和b不断沿自身斜率和给定步长超参数α运动,当a和b的运动小于某个阀值时(即是此时的目标函数导数接近0,此处即为最值点)退出运算。这时的a和b可以是上式取得最小值
因为 ' = ,且(a+b)' = a' + b',所以
将样本x,y逐个带入上式,即
sumA = 0
sumB = 0
for i = 1 to m:
sumA=sumA+(a+bx(i)−y(i))
sumB=sumB+x(i)(a+bx(i)−y(i))
Der_a = =
Der_b = =
设超参数步长为α,迭代阈值为β
def Gradient_descent():
a = 0
b = 0
while:
if α*Der_a < β or α*Der_b < β : #梯度下降小于阈值
break
else:
a = a-α*Der_a #梯度下降
b = b-α*Der_b
return a,b
此时的a,b即是使目标函数Cost Function最小的值。此时的拟合函数为: