“回归”是由英国著名生物学家兼统计学家高尔顿(Francis Galton,1822~1911.生物学家达尔文的表弟)在研究人类遗传问题时提出来的。为了研究父代与子代身高的关系,高尔顿搜集了1078对父亲及其儿子的身高数据。他发现这些数据的散点图大致呈直线状态,也就是说,总的趋势是父亲的身高增加时,儿子的身高也倾向于增加。但是,高尔顿对试验数据进行了深入的分析,发现了一个很有趣的现象—回归效应。因为当父亲高于平均身高时,他们的儿子身高比他更高的概率要小于比他更矮的概率;父亲矮于平均身高时,他们的儿子身高比他更矮的概率要小于比他更高的概率。它反映了一个规律,即这两种身高父亲的儿子的身高,有向他们父辈的平均身高回归的趋势。对于这个一般结论的解释是:大自然具有一种约束力,使人类身高的分布相对稳定而不产生两极分化,这就是所谓的回归效应。
样本 S(i)(x(i),y(i)) ,如房价的样本, x 表示局势数,y表示价格。
如果样本中, y 是连续的,我们叫做回归;如果y是离散的,我们叫做分类。
在机器学习中,只要说到回归,就是指样本中 y 是连续的。
如图1所示的x轴为房屋面积,y轴为房屋价格。
模型为:y=ax+b
通过样本,我们可以得出参数a,b。
如上图2所示,现在考虑两个因素对价格的影响,居室面积和居室数量。
模型为:
根据公式,我们求出的估计值ŷ (i)。而估计值 ŷ (i) 和真实值 y(i) 之间会有一个 ε(i) 。
根据中心极值定理, ε(i) 服从正态分布,也就是高斯分布。服从均值为0,方差为 σ2 。
记做: ε ~ N(0,σ2)
由此得出似然函数:
在实际问题中,很多随机现象可以看作众多因素的独立影响的综合反应,往往近似服从正态分布。
如:城市耗电量,大量用户的耗电量总和。
测量误差,许多观察不到的,微小误差的总和。
注:应用前提是多个随机变量的和,有些问题是乘性误差,则需要鉴别或取对数后再使用
根据似然函数, y(i)=θTx(i)+ε(i) ,又根据 ε ~ N(0,σ2) 。根据正态分布的概率密度,可以推导出:
因为此时 L(θ) 为连乘。为了得到相加的结果,将 L(θ) 取对数。推导过程如下图:
此时的目标函数就成了 J(θ) ,此时 hθ(x(i)) 为估计值, y(i) 为真实值。
最终求其最小值。
将M个N维样本组成矩阵 X :
X的每一行对应一个样本,M个样本; X 的每一列对应样本的一个维度,共N维;还有一个维度常数项,全为1。
标量对向量的导数:
1、目标函数
1、目标函数:
L2-norm,Ridge:
1、如果给定一个指标,如 R2 损失,精确度λ等,选用Ridge,效果好。Ridge要比LASSO性能指标上要好。
2、LASSO具有稀疏性,可以做特征选择。
3、举例,通过下图,可以看出LASSO将后面的数值很小,起到了特征选择的作用。
4、稀疏性是指找到重要的信息。如果参数超过一个定值就不再使用。
5、形式化表示
第一个是LASSO,第二个是Ridge。
将 J(θ)=(Xθ−y)T(Xθ−y) ,看作两维 w1 和 w2 。从图中可以看出是一个等高线,是因为二元高斯分布,二者不同处,高斯分布中央点是最大的,我们这个图是最小的。
LASSO的方程是 ∣∣w1∣∣+∣∣w2∣∣=c ,Ridge的方程是 (w1)2+(w2)2=c 。
LASSO会在坐标轴上取到最值(0, w2A ),而Ridge的最值会在相切处,就无法选择特征值。
通过这幅图可以很明显的看出岭回归和lasso之间的差异。图中是两个变量回归的情况,等高线图表示的是残差平方和的等高线。残差在最小二乘估计处最小。阴影部分分别是岭回归和lasso的限制区域。显然圆形为岭回归,菱形为lasso的。这两种带有惩罚项的方法都是要找到第一个落到限制区域上的等高线的那个位置的坐标(即岭估计和lasso估计)。因为菱形带尖角,所以更有可能使得某个变量的系数为0(即所找到的第一个点是菱形四个顶点之一)。当回归变量增多时,lasso的尖角也会变得更多,从而增大更多系数变0的可能性。而光滑的高维球面的显然不可能有这样的概率。这也就是说lasso可以用于变量选择。 这是lasso相较于Ridge有优势的一点。
1、根据训练数据 (x,y) ,可得出 θ 。
2、测试数据,用来测试模型,如SVM、决策树等。模型哪个好,是由测试数据决定的。
3、如果有 λ ,验证数据决定了 λ 。
通过同一个数据进行训练,
λ=0.01=>Q0.01,f(Q0.01,0.01)=>0.10
λ=0.05=>Q0.05,f(Q0.05,0.05)=>0.08
λ=1=>Q0.01,f(Q1,1)=>0.04 —最小最好
λ=5=>Q0.01,f(Q5,5)=>0.6
如果训练数据和验证数据是2:1,就是一个三折交叉验证,也就是将训练数据分为三份,其中一份作为验证数据。如1 2|1 3|2 3。
再利用是一个例子, λ 分别取0.01,0.05,1,5,这四个值。这样的话,3*4,就是做了12个线性回归,来确定一个模型。
1、目标函数:
Repeat until convergence{
θj:=θj+α∑mi=1(y(i)−hθ(x(i)))x(i)j
}
这里的 ∑mi=1(y(i)−hθ(x(i)))x(i)j 就是所有样本的梯度的加和。再给定一个 α ,不断的迭代就可以得到 θj 。
因为目标函数 J(θ) 是一个凸函数。因此线性回归一定能找到一个全局最优解。
批量下降梯度图示如下:
Loop{
for i=1 to m,{
θj:=θj+α(y(i)−hθ(x(i)))x(i)j
}
}
这里的 (y(i)−hθ(x(i)))x(i)j 是第i个样本的梯度。不需要拿到所有样本,再处理。只要拿到一个样本,就开始做更新,这样的算法就是随机梯度下降算法。
1、BGD一定可以找一个局部极值,而SGD不保证结果。因为
2、BGD的损失函数是直接下降的,而SGD的损失函数是震荡下降的。
3、一般选用SGD。
4、SGD经常能够跳过目标函数中局部极值,达到一个更好的值。
5、SGD更适合在线学习,不一定非要离线的。
在实际中用得最多的是mini-batch,但是一般表述就是SGD。
如果不是没拿到一个样本及更改梯度,而是若干个样本的平均梯度作为更新方向,就是mini-batch。
注:我们在实际工作中,步长 α 往往是选一个0.01,如果小了,再变大点。
如上面左边的图,根据所给定的样本,我们通过线性回归能够得到一条直线。但是如果是一条曲线,效果会更好,如上右边的图。
根据所给样本 S(i)(x(i),y(i)) ,将其变形,添加两列,常数项 (11⋯1) 和 x 的平方(x21x22⋯x2m)。这样样本变形为:
上面说到我们可以将特征选择成为多种,如 (1,x) , (1,x,x2) , (1,x,x2,x3) 。
(1,x)
(1,x,x2)
(1,x,x2,x3)
注:特征选择并不是参数越多越好,而是需要根据MSE或者 R2 的指标,如果不再有显著下降,就不再需要增加参数。
对于m个样本 (x1→,y1),(x2→,y2),....,(xm→,ym)
某模型的估计值为 (x1→,y1^),(x2→,y2^),....,(xm→,ym^)
1、样本的总平方和TSS(Total Sum of Squares):
上图中黑色的点是样本点;红色的线是线性回归曲线;绿色的线就是局部加权回归曲线。
模型:
1、 ω 的一种可能的选择方式(高斯核函数)
1、特征选择很重要,除了人工选择,还可以用机器学习的方法,如随机森林、PCA、LDA等。
2、梯度下降算法是参数优化的重要手段,尤其是SGD。
1、邹博小象机器学习课程。
2、机器学习入门:线性回归及梯度下降
3、从理论到应用——浅谈lasso模型
4、LaTeX 各种命令,符号