看来有一点是我一直理解错了的。。。我一直以为利用线性回归只能够模拟出一条直线,看来这是不对的。
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,选择合适的特征数目。
局部加权线性回归使用的数据是所有的输入数据,它每一次运行都会得到一个假设函数,但是我们可以不去保存这个假设函数,因为对于不同的测试数据,其得到的假设函数也不一样。
LWR:FitΘto minimize∑miω(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 高效的拟合出一条直线,往后去了解一下。
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:
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+e−z P S : g ( z ) = 1 1 + e − z
假设: P(y=1|x;θ)=hθ(x) P ( y = 1 | x ; θ ) = h θ ( x ) ,则:
P(y=0|x;θ)=1−hθ(x) P ( y = 0 | x ; θ ) = 1 − h θ ( x )
于是,可以进一步写作:
P(y|x;θ)=hθ(x)y(1−hθ(x))1−y P ( y | x ; θ ) = h θ ( x ) y ( 1 − h θ ( x ) ) 1 − y
于是,我们的目标就是,找到合适的 Θ Θ ,使得 ∏miP(y(i)|x(i);θ) ∏ i m P ( y ( i ) | x ( i ) ; θ ) 最大
于是,进行简单的推导:
感觉这个算法应该是用来给以后的学习做铺垫的。
依旧是一个分类算法,只是,他的假设函数形式不太一样:
参考自【斯坦福】机器学习(Machine Learning)- 吴恩达(Andrew Ng)