线性回归公式:hθ(x) = θ0+θ1x1+...+θnxn ; 设x0=1
=θTx
所有的求解方法都是在求θ,目标是让J(θ)最小化;J(θ)=1/2∑(hθ(x(i))-y(i))2 i=1...m(训练集的数量)
如何求θ
方法1:梯度下降法:θj:=θj-α∂J(θ)/∂θj,其中α是学习速率,代表着你一步走多长,一般由人工指定,判断收敛的条件为多次叠代后θ的值稳定了
因为∂J(θ)/∂θj=∂(1/2(hθ(x)-y)2)/∂θj
=2*1/2(hθ(x)-y)∂(hθ(x)-y)/∂θj
=(hθ(x)-y)∂(∑θixi-y)/∂θj i=1...n(特征的个数)
=(hθ(x)-y)xj
所以θj:=θj-α(hθ(x)-y)xj=θj+α(y-hθ(x))xj
对于数量为M的训练来说其梯度下降的公式为:θj:=θj+α∑(y(i)-hθ(x(i)))x(i)j i=1...m
方法2:最小二乘法:设X=训练集里x组成的矩阵,Y=训练集里y组成的矩阵,那么则有:
Xθ-Y=hθ(x(i))-y(i)组成的矩阵,则1/2(Xθ-Y)T(Xθ-Y)=J(θ)
则对J(θ)进行对θ的求导并设最后结果为零能得出XTXθ-XTY=0,即θ=(XTX)-1XTY
J(θ)的由来:
假设回归的误差是满足平均值为零的高斯分布
那么L(θ)=∏p(y(i)|x(i);θ)=∏exp(-(y(i)-θTx(i))2/2σ2)/2πσ,在2π上有个根号
设l(θ) = logL(θ),把公式展开后最后你就看见-J(θ)和一堆常数,因为l(θ)越大说明误差越小,所以优化的目标就成了让J(θ)越小
加权的线性回归:
假设离我距离近的x点对回归的影响大,与我距离远的x对我回归的影响小,那么可以把优化的公式假设成:∑ω(i)(hθ(x(i))-y(i))2,ω(i)=exp(-(x(i)-x)2/2τ2)
这是本人的个人笔记,如有错误,欢迎拍砖。
PS:谁推荐个好用的公式编辑器啊,发现编辑公式好麻烦啊