Machine Learning 3
欠拟合和过拟合
看来有一点是我一直理解错了的。。。我一直以为利用线性回归只能够模拟出一条直线,看来这是不对的。
example: 我们只有一个特征:x,一个因变量:y。
假设,实际上y=x3,那么我们可以再利用x制造两个变量:x2,x3,把这些都带入线性回归模型中,便可得到相应的表达式。
于是,当我们设定的特征过多,如:x,x2,x3,sinx,…,那么我们将会得到一个几乎完美拟合输入的假设函数,但这容易导致对不在训练数据中的数据预测不佳;如果设定的特征过少,我们将会得到一个误差过大的假设函数。So,选择合适的特征数目。
Locally Weighted Regression (LOESS)
局部加权线性回归使用的数据是所有的输入数据,它每一次运行都会得到一个假设函数,但是我们可以不去保存这个假设函数,因为对于不同的测试数据,其得到的假设函数也不一样。
LWR:FitΘto minimize∑miω(i)(y(i)−ΘTx(i))2
ω(i)=exp(−(x(i)−x)22τ)
ω(i)有个特性,当:
x(i)≈xω(i)≈1
x(i)>>xω(i)≈0
于是,我们可以以此得到以输入的测试x为中心,近似拟合出来的一条直线,通过直线来获得测试x所对应的y。
对于每一个输入,我们都可以获得相应的Θ,并以此得到对应的解。
τ用来控制ω的收缩程度。
PS: AD-Trees 高效的拟合出一条直线,往后去了解一下。
为什么LR的cost function J(θ)是最小二乘的形式
PS:证明有点多,长话短说:
y(i)=θTx(i)+ξ(i)
假设,我们的假设和真实情况的误差服从高斯分布。那么,这表示我们的数据和假设也是满足高斯分布ξ(i)=y(i)−θTx(i)P(y(i)|x(i);θ),这里使用分号暗示θ不是一个随机变量而是一个确定的值,只是我们不知道是什么。
∏m1P(y(i)|x(i);θ) 就是出现数据集所有数据X, Y的概率,于是,我们的目标就是使得∏m1P(y(i)|x(i);θ)最大,经过化简,发现使J(θ)=∑mi=1(y(i)−ΘTx(i))2最小即可。
于是,cost function看起来是最小二乘的形式。
为什么假设误差服从高斯分布?
根据中心极限定理,许多的独立随机变量之和将趋向于服从高斯分布。我们认为产生误差的变量是由很多的独立随机变量构成。。
分类算法
logistic regression
对于二元Logistic Regression:
y∈{0,1}
hθ(x)∈[0,1]
我们选择Sigmoid函数,也叫作logistic function:
hθ(x)=g(ΘTX)=11+e−ΘTX
PS:g(z)=11+e−z

假设:P(y=1|x;θ)=hθ(x),则:
P(y=0|x;θ)=1−hθ(x)
于是,可以进一步写作:
P(y|x;θ)=hθ(x)y(1−hθ(x))1−y
于是,我们的目标就是,找到合适的Θ,使得∏miP(y(i)|x(i);θ)最大
于是,进行简单的推导:
L(θ)l(θ)=log(L(θ))目标是maxl(θ)=∏i=1mP(y(i)|x(i);θ)=∏i=1mhθ(x(i))y(i)(1−hθ(x(i)))1−y(i)=∑i=1mlog(hθ(x(i))y(i)(1−hθ(x(i)))1−y(i))=∑i=1m(y(i)log(hθ(x(i)))+(1−y(i))log(1−hθ(x(i)))
我们在上一节学习了梯度下降算法,那么,同样的,我们使用梯度上升算法来确定Θ的值。
Θ易证: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
perceptron algorithm
感觉这个算法应该是用来给以后的学习做铺垫的。
依旧是一个分类算法,只是,他的假设函数形式不太一样:
g(z)={1,ifz>=00,otherwise
则假设函数为:
hθ(x)=g(ΘTx)
以相同的方法,可以计算得到:
θj:=θ+α(y(i)−hθ(x(i)))x(i)j
参考自【斯坦福】机器学习(Machine Learning)- 吴恩达(Andrew Ng)