最小二乘法简明推导过程

最小二乘法简明推导过程最小二乘法推导最小二乘法公式J(θ)=1m∑i=1m(y(i)−hθ(x(i)))2J(\theta)=\frac1m\sum_{i=1}^m(y^{(i)}-h_{\theta}(x^{(i)}))^2J(θ)=m1​i=1∑m​(y(i)−hθ​(x(i)))2证明1.假设设数据中未被考虑进来的特征和人为无法控制的噪声为ε\varepsilonε。即y(i)=θTx(i)…

大家好,又见面了,我是你们的朋友全栈君。

最小二乘法推导

最小二乘法公式

J ( θ ) = 1 m ∑ i = 1 m ( y ( i ) − h θ ( x ( i ) ) ) 2 J(\theta) = \frac1m\sum_{i=1}^m(y^{(i)} – h_{\theta}(x^{(i)}))^2 J(θ)=m1i=1m(y(i)hθ(x(i)))2

证明

1.假设

设数据中未被考虑进来的特征和人为无法控制的噪声为 ε \varepsilon ε

y ( i ) = θ T x ( i ) + ε ( i ) y^{(i)} = \theta^{T}x^{(i)} + \varepsilon^{(i)} y(i)=θTx(i)+ε(i)

ε ∼ N ( 0 , σ 2 ) \varepsilon \sim \mathcal{N}(0,\sigma^2) εN(0,σ2)

ε ( i ) i s I I D \varepsilon^{(i)} is IID ε(i)isIID (独立同分布)。

简单的说就是 ε ( i ) \varepsilon^{(i)} ε(i) 之间互不影响,前一个的变化,不影响后一个的变化。

可得 P ( y ( i ) ∣ x ( i ) ; θ ) ∼ N ( θ T x ( i ) , σ 2 ) P(y^{(i)} | x^{(i)};\theta) \sim \mathcal{N}(\theta^{T}x^{(i)},\sigma^2) P(y(i)x(i);θ)N(θTx(i),σ2)因为视这里的 θ T x ( i ) \theta^{T}x^{(i)} θTx(i) 为定值。

注意:此处的分号表示 θ \theta θ为参数而不是随机变量。

2.证明:

于是乎展开:

P ( y ( i ) ∣ x ( i ) ; θ ) = 1 2 π σ e x p ( − ( y ( i ) − θ T x ( i ) ) 2 2 σ 2 ) P(y^{(i)} | x^{(i)};\theta) = \frac{1}{\sqrt{2\pi}\sigma}exp(-\frac{(y^{(i)} – \theta^Tx^{(i)})^2}{2\sigma^2}) P(y(i)x(i);θ)=2π
σ
1
exp(2σ2(y(i)θTx(i))2)
留着备用。

定义似然率:

L ( θ ) = P ( y ⃗ ∣ x ; θ ) \mathcal{L}(\theta) = P(\vec{y}|x;\theta) L(θ)=P(y
x;θ)

= ∏ i = 1 m P ( y ( i ) ∣ x ( i ) ; θ ) =\prod^{m}_{i=1}P(y^{(i)}|x^{(i)};\theta) =i=1mP(y(i)x(i);θ)

= ∏ i = 1 m 1 2 π σ e x p ( − ( y ( i ) − θ T x ( i ) ) 2 2 σ 2 ) = \prod^{m}_{i=1}\frac{1}{\sqrt{2\pi}\sigma}exp(-\frac{(y^{(i)} – \theta^Tx^{(i)})^2}{2\sigma^2}) =i=1m2π
σ
1
exp(2σ2(y(i)θTx(i))2)

这个式子推出来有何意义呢?我们先看一下高斯分布的图像:

最小二乘法简明推导过程

如果这个图像中的0点即是 y ( i ) y^{(i)} y(i)是每个x对应的正确答案,如果这幅图就是$P(y^{(i)} | x^{(i)};\theta) $ 的话,那么横坐标轴上的点表示的就是 y ( i ) − ε ( i ) y^{(i)} – \varepsilon^{(i)} y(i)ε(i)也就是 θ T x ( i ) \theta^{T}x^{(i)} θTx(i)(参见假设一)

我们希望 ε ( i ) \varepsilon^{(i)} ε(i)尽可能的小,也就是 θ T x ( i ) \theta^{T}x^{(i)} θTx(i)更加靠近正确答案 y ( i ) y^{(i)} y(i),怎么做?只要令$P(y^{(i)} | x^{(i)};\theta) $尽可能大即可

从此我们得到了最大似然算法。

3.最大似然算法

我们对 L ( θ ) \mathcal{L}(\theta) L(θ)取对数(以e为底)

l ( θ ) = log ⁡ L ( θ ) \mathcal{l}(\theta) = \log{\mathcal{L}(\theta)} l(θ)=logL(θ)

= l o g ∏ i = 1 m 1 2 π σ e x p ( − ( y ( i ) − θ T x ( i ) ) 2 2 σ 2 ) = log{\prod^{m}_{i=1}\frac{1}{\sqrt{2\pi}\sigma}exp(-\frac{(y^{(i)} – \theta^Tx^{(i)})^2}{2\sigma^2})} =logi=1m2π
σ
1
exp(2σ2(y(i)θTx(i))2)
对数化乘为加

= ∑ i = 1 m log ⁡ 1 2 π σ e x p ( − ( y ( i ) − θ T x ( i ) ) 2 2 σ 2 ) =\sum^m_{i=1}\log{\frac{1}{\sqrt{2\pi}\sigma}exp(-\frac{(y^{(i)} – \theta^Tx^{(i)})^2}{2\sigma^2})} =i=1mlog2π
σ
1
exp(2σ2(y(i)θTx(i))2)

= log ⁡ m 2 π σ ∑ i = 1 m log ⁡ e x p ( − ( y ( i ) − θ T x ( i ) ) 2 2 σ 2 ) =\log{\frac{m}{\sqrt{2\pi}\sigma}}\sum^m_{i=1}\log{exp(-\frac{(y^{(i)} – \theta^Tx^{(i)})^2}{2\sigma^2})} =log2π
σ
m
i=1mlogexp(2σ2(y(i)θTx(i))2)

= log ⁡ m 2 π σ ∑ i = 1 m − ( y ( i ) − θ T x ( i ) ) 2 2 σ 2 =\log{\frac{m}{\sqrt{2\pi}\sigma}}\sum^m_{i=1}-\frac{(y^{(i)} – \theta^Tx^{(i)})^2}{2\sigma^2} =log2π
σ
m
i=1m2σ2(y(i)θTx(i))2

将它最大化只需 ∑ i = 1 m ( y ( i ) − θ T x ( i ) ) 2 2 \sum^m_{i=1}\frac{(y^{(i)} – \theta^Tx^{(i)})^2}{2} i=1m2(y(i)θTx(i))2最小

证明完毕-

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/145446.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • laravel 5.6日志理解及日志格式定义「建议收藏」

    laravel 5.6日志理解及日志格式定义

    2022年2月14日
    46
  • Ext.apply的用法[通俗易懂]

    Ext.apply的用法[通俗易懂]Ext核心API–Ext.apply与Ext.applyIf<scripttype="text/javascript"></script><scripttype="text/javascript"></script>Ext中apply及applyIf方法的应用        apply及applyI…

    2022年7月28日
    2
  • pandas中使用fillna函数填充NaN值「建议收藏」

    pandas中使用fillna函数填充NaN值「建议收藏」1.参数解析1.1inplace参数取值:True、FalseTrue:直接修改原对象False:创建一个副本,修改副本,原对象不变(缺省默认)1.2method参数取值:{‘pad’,‘ffill’,‘backfill’,‘bfill’,None},defaultNonepad/ffill:用前一个非缺失值去填充该缺失值backfill/bfill:用下一个非缺失值填充该缺失值None:指定一个值去替换缺失值(缺省默认这种方式)1.3limit参数:限制

    2022年8月12日
    5
  • JavaSwing_1.2: GridLayout(网格布局)

    JavaSwing_1.2: GridLayout(网格布局)GridLayout,网格布局管理器。它以矩形网格形式对容器的组件进行布置,把容器按行列分成大小相等的矩形网格,一个网格中放置一个组件,组件宽高自动撑满网格。以行数和总数优先:通过构造方法或setRows和setColumns方法将行数和列数都设置为非零值时,指定的列数将被忽略。列数通过指定的行数和布局中的组件总数来确定。因此,例如,如果指定了三行和两列,在布局中添加了九个组件,则它们将显示为三行三列。

    2022年6月12日
    30
  • java实现编译器_实现一个简单的编译器

    java实现编译器_实现一个简单的编译器简单的说编译器就是语言翻译器,它一般将高级语言翻译成更低级的语言,如GCC可将C/C++语言翻译成可执行机器语言,Java编译器可以将Java源代码翻译成Java虚拟机可以执行的字节码。编译器如此神奇,那么它到底是如何工作的呢?本文将简单介绍编译器的原理,并实现一个简单的编译器,使它能编译我们自定义语法格式的源代码。(文中使用的源码都已上传至GitHub以方便查看)。自定…

    2022年7月7日
    45
  • SAXreader「建议收藏」

    SAXreader「建议收藏」packagecom.joyveb.addon.hp;importjava.io.StringReader;importorg.dom4j.Document;importorg.dom4j.DocumentException;importorg.dom4j.Element;importorg.dom4j.io.SAXReader;publicclassSni…

    2022年6月29日
    25

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号