回归在数学上来说是给定一个点集,能够用一条曲线去拟合之。如果这个曲线是一条直线,那就被称为线性回归,如果曲线是一条二次曲线,就被称为二次回归。回归还有很多的变种,如locally weighted回归,logistic回归等等。
假设y是关于x的线性函数:
θ在这儿称为参数,在这儿的意思是调整每个特征的权重。如果我们令X0=1,就可以用向量的方式来表示了:
怎样选择参数θ,选择策略:使得h函数最接近y。接近程度判断,定义损失函数
如何调整θ,使得J(θ)取值最小。使用梯度下降法,梯度下降法是按下面的流程进行:
1)首先对θ赋值,这个值可以是随机的,也可以让θ是一个全零的向量
2)改变θ的值,使得J(θ)按梯度下降的方向进行减少
为了更清楚,给出下面的图:
在上面提到梯度下降法的第一步是给θ给一个初值,假设随机给的初值是在图上的十字点。
然后我们将θ按照下降最快的方向,即梯度的方向进行调整,就会使得J(θ)往更低的方向进行变化,如图所示,算法的结束将是在θ下降到无法继续下降为止。
当然,可能梯度下降的最终点并非是全局最小点,可能是一个局部最小点,可能是下面的情况:
上面这张图就是描述的一个局部最小点,这是我们重新选择了一个初始点得到的,看来我们这个算法将会在很大的程度上被初始点的选择影响而陷入局部最小点
梯度下降算法:
对于函数J(θ)求偏导
下面是更新的过程,也就是θi会向着梯度最小的方向进行减少。等式后面的θi表示更新之前的值,后面的部分表示按梯度方向减少的量,α表示步长,也就是每次按照梯度减少的方向变化多少。
一个很重要的地方值得注意的是,梯度是有方向的,对于一个向量θ,每一维分量θi都可以求出一个梯度的方向,我们就可以找到一个整体的方向,在变化的时候,我们就朝着下降最多的方向进行变化就可以达到一个最小点,不管它是局部的还是全局的。
假设根据特征的预测结果与实际结果有误差ε(i),那么预测结果θ(i)x(i)和真实结果y(i)满足下式:
一般来讲,误差满足平均值为0的高斯分布,也就是正态分布。那么x和y的条件概率也就是
这样就估计了一条样本的结果概率,然而我们期待的是模型能够在全部样本上预测最准,也就是概率积最大,这个概率积称为最大似然估计。我们希望在最大似然估计得到最大值时确定θ。那么需要对最大似然估计公式求导,求导结果即是
这就解释了为何误差函数要使用平方和。
上面提到的线性回归的误差函数没有权重,带权重的线性回归加入了权重信息。基本假设是:
其中假设w(i)符合公式
其中x是要预测的特征,这样假设的道理是离x越近的样本权重越大,越远的影响越小。这个公式与高斯分布类似,但不一样,因为w(i)不是随机变量。
此方法称为非参数学习算法,因为误差函数随着预测值的不同而不同,这样θ无法事先确定,预测一次需要临时计算。
一般来说,回归不用再分类问题上,因为回归是连续模型,而且受噪声影响比较大。如果非要应用,可以使用对数回归。