我与西瓜书2外传----More about LinearRegression

之前讲过了一种求解LR(LinearRegression)的方法——范数方程(Normal Equation)。这个是西瓜书上讲的方法,其中在andrew Ng的公开课中还讲了很多其实还有另外一种求解参数方法:梯度下降(Gradient Descent),其中内容包括批梯度下降(Batch gradient descent)和随机梯度下降(Stochastic gradient descent)。

另外,公开课中还讲解了cost function的概率解释,局部加权回归(LMR)。这一篇博客,我就详细讲讲这三个内容

注:这里使用的是公开课中的符号θ对应的应该是西瓜书的w 。

1、梯度下降

  接着上次内容,我们假设我们已经得到了cost function ,他是一个凸的二次的函数(conrex quadratic function)。

    J(θ)=1/2 ∑(hθ(x(i)) - y (i)2  (把J(θ)由函数形式写成向量形式就可以进行范数方程求解)

1.1、梯度下降(Gradient Descent)

  为了使得cost function最小,需要一个搜索算法:gradient descent algorithm:

    θj- α * [J(θ)] ‘  其中α 是 学习速率(learning rate)

  将J(θ)代入得:

     θj- α *(hθ(x(i)) - y (i))xj(i)

    注:1、x(i):表示输入的第i个样本,(x(i),y(i)):表示训练集的一个样本;  θ:表示第j个参数(或权重weights);xj(i) :表示第i个样本的第j个变量

       2、上述为LMS(least mean square 最小均方误差)更新规则。其更新大小与误差 hθ(x(i)) - y (i) 成比例。

1.2、批梯度下降(batch gradient descent)

    什么是批梯度下降?

    上面的梯度下降只是对第 i 这一个样本进行梯度下降,我们当然应该求得整个训练集样本的权重的加权平均值。即:

      Repeat until convergence{

      θj- (α/m) *∑(hθ(x(i)) - y (i))xj(i)    (for every j )

      }

      很显然。我们要对整个训练集(所有的样本)进行一次一次的递归,递归中还有一个for循环求θj。显然当样本数m很大时,这种方法十分不合适。(下次补具体时间复杂度计算)

1.3、随机梯度下降(Stochastic gradient descent)

    为了应对计算量过大,另一种方法是随机梯度下降:从样本中随机抽出一组,训练后按梯度更新一次,然后再抽取一组,再更新一次,在样本量及其大的情况下,可能不用训练完所有的样本就可以获得一个损失值在可接受范围之内的模型了。

      Repeat until convergence{

      θj- α *(hθ(x(i)) - y (i))xj(i)    (for every j )

      }    

1.4、局部加权回归(Locally weighted regression)

    只要是拟合fit,如果效果不好,不是欠拟合就是过拟合。为了使得拟合效果不错,我们可以使用局部加权回归(LWR)。

    基本目标依然是最小化:

      J(θ)=1/2 ∑(hθ(x(i)) - y (i)

    假设继续使用上述的Normal Equation,Batch gradient descent ,Stochastic gradient descent的方法得到的结果拟合效果不好,我们则需要添加一个加权因子

      加权因子w(i) = exp( (-1/2) * (x(i) - x))  

      重新构造J(θ)=1/2 ∑w(i)(hθ(x(i)) - y (i)

    Exp是以e为底的指数,这个时候可以知道如果x距离样本很远的时候w(i)=0,否则为1,当我们预测一个值的时候就需要我们重新来计算当前的参数θ的值,然后构造回归方程,计算当前的预测值。

2、cost function J(θ)的概率解释

  为什么LR尤其是为什么最小二乘的cost function J 成为了我们的选择,理由到底是什么?概率解释将会解答这个。

  首先假设对于训练集某个样本(x(i),y(i))有

     y(i) = θTx(i)(i)  

    误差项ε(i)既包括了模型未涉及到(考虑)的相关因素 或 随机噪声。

  我们再假设是 误差项ε(i)一个独立同分布(i.i.d.)且服从正态分布的随机变量:

    ε(i)~N(0,δ2)

    (y(i) | x(i) ;θ)  ~ N( θTx(i)):在给定输入变量x(i)和参数θ的情况下输出变量y(i)服从正态分布

    注:为什么这里y(i)和ε(i)分布都使用高斯分布?  因为易数学处理, 因为符合中心极限定律的似然性

    我们由极大使然估计来求得参数θ的值:

    L(θ)=P(y(i) | x(i) ;θ)  -------> l(θ)= log (L(θ))= - mlog [(2πδ)1/2] - 1/(δ2 ) * 1/2 ∑(hθ(x(i)) - y (i)2

    因为训练集确定,则训练样本总量m,训练集的极限均值和方差均确定,进而l(θ)的第一项( - mlog [(2πδ)1/2])也确定,则为了使得l(θ)最大,应该使得第二项最小,即:

      J(θ)=1/2 ∑(hθ(x(i)) - y (i)2  求最小值可求得参数θ

    注:1、中心极限定理:随机变量若为独立同分布,则极限的随机变量之和分布服从正态分布

      2、极大释然估计:利用已知的样本结果,反推最有可能(最大概率)导致这样结果的参数值。

原文地址:https://www.cnblogs.com/SsoZhNO-1/p/9737803.html

时间: 2024-11-06 07:10:00

我与西瓜书2外传----More about LinearRegression的相关文章

《机器学习》 --周志华版(西瓜书)--课后参考答案

<机器学习> --周志华版(西瓜书)--课后参考答案 对机器学习一直很感兴趣,也曾阅读过李航老师的<统计学习导论>和Springer的<统计学习导论-基于R应用>等相关书籍,但总感觉自己缺乏深入的理解和系统的实践.最近从实验室角落觅得南京大学周志华老师<机器学习>一书,随意翻看之间便被本书内容文笔深深吸引,如获至宝.遂决定要认真学习本书并将学习过程记录下来.感觉若以读书笔记的形式做记录未免枯燥(且网上已有大量相关内容).那就暂且将课后练习的个人思路和答案写成

《机器学习》西瓜书 第一章 绪论

机器学习绪论 基本术语 基础 模型:泛指从数据中学得的结果 数据集 data set:一组记录的集合 示例 instance/样本 sample:关于一个事件或对象的描述 属性 attribute/特征 feature:反映事件或对象在某方面的表现或性质的事项 属性值 attribute value:属性上的取值 属性空间 attribute space/样本空间 sample space:属性张成的空间即 \(n\) 个特征描述出的 \(n\) 维空间 特征向量 feature vector:

西瓜书与蓝皮书 思维导图(转)

周志华著<西瓜书>思维导图 第一章:https://blog.csdn.net/liuyan20062010/article/details/68489427 第二章:https://blog.csdn.net/liuyan20062010/article/details/70054668 第三章:https://blog.csdn.net/liuyan20062010/article/details/70054758 第四章:https://blog.csdn.net/liuyan20062

【转】《西瓜书机器学习详细公式推导版》发布

转自:https://github.com/datawhalechina/pumpkin-book https://mp.weixin.qq.com/s/FcwgjS4FXfGJPZEQEz3cVw 南瓜书PumpkinBook 周志华老师的<机器学习>(西瓜书)是机器学习领域的经典入门教材之一,周老师为了使尽可能多的读者通过西瓜书对机器学习有所了解, 所以在书中对部分公式的推导细节没有详述,但是这对那些想深究公式推导细节的读者来说可能“不太友好”,本书旨在对西瓜书里比较难理解的公式加以解析,

《机器学习》 西瓜书习题 第 2 章

习题 \(2.1\) 数据集包含 \(1000\) 个样本, 其中 \(500\) 个正例.\(500\) 个反例, 将其划分为包含 \(70\%\) 样本的训练集和 \(30\%\) 样本的测试集用于留出法评估, 试估算共有多少种划分方式. 如果划分要保证正例和反例一样多的话, 那么划分方式数量 \(n\) 有 \[\begin{aligned} n &= C^{500\times35\%}_{500}\times C_{500}^{500\times 35\%}\&=(C^{175}_

西瓜书第二章--模型评估与选择

2.1 经验误差与过拟合 错误率:错分样本的占比 精度:分对样本的占比,与错误率是互补的. 误差:样本真实输出与预测输出之间的差异.学习器在训练集上的误差称为训练误差或经验误差,在新样本上的误差称为泛化误差. 由于事先并不知道新样本的特征,我们只能努力使经验误差最小化: 很多时候虽然能在训练集上做到分类错误率为零,但多数情况下这样的学习器并不好 过拟合:学习器把训练样本学习的“太好”,将训练样本本身的特点 当做所有样本的一般性质,导致泛化性能下降: 解决措施:1.优化目标加正则项 :2.earl

《机器学习》西瓜书习题 第 3 章

习题 3.1 试析在什么情况下式 \((3.2)\) 中不必考虑偏置项 \(b\) . 书中有提到, 可以把 \(x\) 和 \(b\) 吸收入向量形式 \(\hat{w} = (w;b)\) .此时就不用单独考虑 \(b\) 了. 3.2 试证明, 对于参数 \(w\), 对率回归的目标函数 \((3.18)\) 是非凸的, 但其对数似然函数 \((3.27)\) 是凸的. \[y = \frac{1}{1 + e^{-(\boldsymbol w^\mathrm T\boldsymbol x

《机器学习》西瓜书习题 第 4 章

习题 4.1 试证明对于不含冲突数据 (即特征向量完全相同但标记不同) 的训练集, 必存在与训练集一致 (即训练误差为 0)的决策树. 既然每个标记不同的数据特征向量都不同, 只要树的每一条 (从根解点到一个叶节点算一条) 枝干代表一种向量, 这个决策树就与训练集一致. 4.2 试析使用 "最小训练误差" 作为决策树划分选择准则的缺陷. \(4.1\) 说明了如果数据不冲突, 可以完全拟合数据集, 这正是使用 "最小训练误差" 作为决策树划分选择准则的结果. 而这是

西瓜书课后习题练习——Ch3.3编程实现对率回归

很久没来写博客了,感觉自己也懈怠了很多,最近毕业,工作,身份变化很大,烦心事也很多,对自己的第一份工作不是特别满意,所以决定自学一下机器学习,给自己留一条后路.希望多日以后的自己再看到这篇文章的时候还能记起当时痛苦的心情. 题目是:编程实现对率回归,并给出西瓜数据集3.0α上的结果. 西瓜数据集如下: 在这里我们主要使用了sklean,matplotlib,numpy和pandas几个库,由于sklearn中自带了有关线性回归的算法,所以可以直接调用,另外使用了matplotlib对其进行可视化