Coursera吴恩达老师Machine Learning笔记:线性回归

基本概念

线性回归,顾名思义就是用线性函数去拟合观测数据。以 X X X表示样本数据的特征, y y y表示样本数据的目标值, m m m表示观测数据的个数, n n n表示观测数据特征数,则 X X X是一个 m ∗ n m*n mn的矩阵, y y y m m m维列向量。把 y y y表示成 X X X的线性组合,即是线性回归。

模型

我们想用 X X X的线性组合来表示 y y y,那么问题来了,无论参数选的多好, y y y通常不可能严格等于 X X X的线性组合,怎么办呢?自然是让他们越接近越好。
线性回归模型 h θ = X ∗ θ h_\theta=X*\theta hθ=Xθ
参数 θ \theta θ是一个列向量。问题归结为,如何选参数 θ \theta θ使 h θ h_\theta hθ y y y最接近。一个最直观的评价“远近”的方式就是欧式距离,自然想到用 J θ = 1 2 m ( h θ − y ) T ∗ ( h θ − y ) J_\theta=\frac{1}{2m}(h_\theta-y)^T*(h_\theta-y) Jθ=2m1(hθy)T(hθy)来评价回归结果 h θ h_\theta hθ与目标值 y y y之间的差异。 J θ J_\theta Jθ身份很高,意义重大,所有它有好多名字,代价函数(Cost function)、损失函数(Loss function)等等,whatever,它就是回归结果与目标值之间的一种距离度量,距离越近,模型大概率(还有过拟合情况)越好。

求解

问题最终归结为找使 J θ J_\theta Jθ达到全局最小值的 θ \theta θ,这个问题解法很多,数值计算领域,基于梯度的解法最为常见,如梯度下降法。其思路就是以某个位置 θ 0 \theta_0 θ0为出发点,沿着其梯度的反方向 − ∂ J θ ∂ θ ( θ 0 ) -\frac{\partial J_\theta}{\partial\theta}(\theta_0) θJθ(θ0)是函数值下降最快的方向,具体计算公式为 θ = θ − α X T ∗ ( h θ − y ) \theta=\theta-\alpha X^T*(h_\theta-y) θ=θαXT(hθy)其中, α \alpha α是一个步长控制系数,使迭代步长不至于太长以错过最优解,也不至于太短以至迟迟达不到终点,实际操作中 α \alpha α可以试几个之后选定一个比较合适的值。另外还有比梯度下降更好的算法,如共轭梯度,本人尚未做深入研究,不再深入,但需知道这些算法可以更快收敛,且不需要操心如何选择 α \alpha α

收敛技巧

实际问题中,数据特征往往不止一个,且特征之间存在数量级差异,这种情况会降低算法收敛速度,可以先将数据进行标准化处理,再用梯度下降算法进行求解。 μ i = s u m ( X ( : , i ) ) m , s i = m a x ( X ( : , i ) ) − m i n ( X ( : , i ) ) \mu_i=\frac{sum(X(:,i))}{m},s_i=max(X(:,i))-min(X(:,i)) μi=msum(X(:,i))si=max(X(:,i))min(X(:,i))分别表示第 i i i个特征的均值和“规模”,将该特征标准化为 X ( : , i ) = X ( : , i ) − μ i s i X(:,i)=\frac{X(:,i)-\mu_i}{s_i} X(:,i)=siX(:,i)μi每个特征都进行标准化之后,能帮助梯度下降更快收敛。

关于线性

线性回归的“线性”很容易误导,让人以为这种方法只能解决线性问题,其实不然。这里的线性,应该理解为 θ \theta θ的线性,而不应该理解成特征 X X X的线性。因为总可以增加特征的高阶项,甚至 s i n sin sin项、 l o g log log项、指数项等,来拟合非线性问题。比如 X = ( x 1 ) X=(x_1) X=(x1)只有一个特征,而通过观察发现 X X X y y y不是线性关系,有点像抛物线关系,那就可以扩充 X = ( x 1 , x 1 ⋅ x 1 ) X=(x_1,x_1\cdot x_1) X=(x1,x1x1),把问题看成有两个特征,从而更好地拟合数据。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值