Machine Learning 3

Machine Learning 3

  • Machine Learning 3
    • 欠拟合和过拟合
    • Locally Weighted Regression (LOESS)
      • 为什么LR的cost function J(θ)J(θ)J(\theta)是最小二乘的形式
    • 分类算法
      • logistic regression
      • perceptron algorithm

欠拟合和过拟合

看来有一点是我一直理解错了的。。。我一直以为利用线性回归只能够模拟出一条直线,看来这是不对的。

example: 我们只有一个特征:x,一个因变量:y。
假设,实际上 y=x3 y = x 3 ,那么我们可以再利用x制造两个变量: x2,x3 x 2 , x 3 ,把这些都带入线性回归模型中,便可得到相应的表达式。

于是,当我们设定的特征过多,如: x,x2,x3,sinx, x , x 2 , x 3 , sin ⁡ x , … ,那么我们将会得到一个几乎完美拟合输入的假设函数,但这容易导致对不在训练数据中的数据预测不佳;如果设定的特征过少,我们将会得到一个误差过大的假设函数。So,选择合适的特征数目。

Locally Weighted Regression (LOESS)

局部加权线性回归使用的数据是所有的输入数据,它每一次运行都会得到一个假设函数,但是我们可以不去保存这个假设函数,因为对于不同的测试数据,其得到的假设函数也不一样。
LWR:FitΘto minimizemiω(i)(y(i)ΘTx(i))2 L W R : F i t Θ to minimize ∑ i m ω ( i ) ( y ( i ) − Θ T x ( i ) ) 2
ω(i)=exp((x(i)x)22τ) ω ( i ) = e x p ( − ( x ( i ) − x ) 2 2 τ )

ω(i) ω ( i ) 有个特性,当:
x(i)xω(i)1 x ( i ) ≈ x ω ( i ) ≈ 1
x(i)>>xω(i)0 x ( i ) >> x ω ( i ) ≈ 0
于是,我们可以以此得到以输入的测试x为中心,近似拟合出来的一条直线,通过直线来获得测试x所对应的y。
对于每一个输入,我们都可以获得相应的 Θ Θ ,并以此得到对应的解。

τ τ 用来控制 ω ω 的收缩程度。
PS: AD-Trees 高效的拟合出一条直线,往后去了解一下。

为什么LR的cost function J(θ) J ( θ ) 是最小二乘的形式

PS:证明有点多,长话短说:
y(i)=θTx(i)+ξ(i) y ( i ) = θ T x ( i ) + ξ ( i )

假设,我们的假设和真实情况的误差服从高斯分布。那么,这表示我们的数据和假设也是满足高斯分布 ξ(i)=y(i)θTx(i)P(y(i)|x(i);θ) ξ ( i ) = y ( i ) − θ T x ( i ) P ( y ( i ) | x ( i ) ; θ ) ,这里使用分号暗示 θ θ 不是一个随机变量而是一个确定的值,只是我们不知道是什么。

m1P(y(i)|x(i);θ) ∏ 1 m P ( y ( i ) | x ( i ) ; θ ) 就是出现数据集所有数据X, Y的概率,于是,我们的目标就是使得 m1P(y(i)|x(i);θ) ∏ 1 m P ( y ( i ) | x ( i ) ; θ ) 最大,经过化简,发现使 J(θ)=mi=1(y(i)ΘTx(i))2 J ( θ ) = ∑ i = 1 m ( y ( i ) − Θ T x ( i ) ) 2 最小即可。
于是,cost function看起来是最小二乘的形式。

为什么假设误差服从高斯分布?
根据中心极限定理,许多的独立随机变量之和将趋向于服从高斯分布。我们认为产生误差的变量是由很多的独立随机变量构成。。

分类算法

logistic regression

对于二元Logistic Regression:
y{0,1} y ∈ { 0 , 1 }
hθ(x)[0,1] h θ ( x ) ∈ [ 0 , 1 ]
我们选择Sigmoid函数,也叫作logistic function:
hθ(x)=g(ΘTX)=11+eΘTX h θ ( x ) = g ( Θ T X ) = 1 1 + e − Θ T X
PS:g(z)=11+ez P S : g ( z ) = 1 1 + e − z
Machine Learning 3_第1张图片
假设: P(y=1|x;θ)=hθ(x) P ( y = 1 | x ; θ ) = h θ ( x ) ,则:
P(y=0|x;θ)=1hθ(x) P ( y = 0 | x ; θ ) = 1 − h θ ( x )
于是,可以进一步写作:
P(y|x;θ)=hθ(x)y(1hθ(x))1y P ( y | x ; θ ) = h θ ( x ) y ( 1 − h θ ( x ) ) 1 − y
于是,我们的目标就是,找到合适的 Θ Θ ,使得 miP(y(i)|x(i);θ) ∏ i m P ( y ( i ) | x ( i ) ; θ ) 最大
于是,进行简单的推导:

L(θ)l(θ)=log(L(θ))maxl(θ)=i=1mP(y(i)|x(i);θ)=i=1mhθ(x(i))y(i)(1hθ(x(i)))1y(i)=i=1mlog(hθ(x(i))y(i)(1hθ(x(i)))1y(i))=i=1m(y(i)log(hθ(x(i)))+(1y(i))log(1hθ(x(i))) L ( θ ) = ∏ i = 1 m P ( y ( i ) | x ( i ) ; θ ) = ∏ i = 1 m h θ ( x ( i ) ) y ( i ) ( 1 − h θ ( x ( i ) ) ) 1 − y ( i ) l ( θ ) = l o g ( L ( θ ) ) = ∑ i = 1 m l o g ( h θ ( x ( i ) ) y ( i ) ( 1 − h θ ( x ( i ) ) ) 1 − y ( i ) ) = ∑ i = 1 m ( y ( i ) l o g ( h θ ( x ( i ) ) ) + ( 1 − y ( i ) ) l o g ( 1 − h θ ( x ( i ) ) ) 目标是max l ( θ )

我们在上一节学习了梯度下降算法,那么,同样的,我们使用梯度上升算法来确定 Θ Θ 的值。
Θdl(θ)dθjθj:=Θ+αΔθl(θ)=i=1m(y(i)hθ(x(i)))x(i)j:=θj+αi=1m(y(i)hθ(x(i)))x(i)j Θ := Θ + α Δ θ l ( θ ) 易证: d l ( θ ) d θ j = ∑ i = 1 m ( y ( i ) − h θ ( x ( i ) ) ) x j ( i ) ∴ θ j := θ j + α ∑ i = 1 m ( y ( i ) − h θ ( x ( i ) ) ) x j ( i )

perceptron algorithm

感觉这个算法应该是用来给以后的学习做铺垫的。
依旧是一个分类算法,只是,他的假设函数形式不太一样:

g(z)={1,ifz>=00,otherwise g ( z ) = { 1 , i f z >= 0 0 , o t h e r w i s e

则假设函数为:
hθ(x)=g(ΘTx) h θ ( x ) = g ( Θ T x )
以相同的方法,可以计算得到:
θj:=θ+α(y(i)hθ(x(i)))x(i)j θ j := θ + α ( y ( i ) − h θ ( x ( i ) ) ) x j ( i )

参考自【斯坦福】机器学习(Machine Learning)- 吴恩达(Andrew Ng)

你可能感兴趣的:(ML,笔记,ML)