机器学习——线性回归

机器学习中的监督学习分为回归和分类,而线性回归Linear Regreesion)是回归问题中最基础的模型。所谓线性回归,简单的说就是在假设特征满足线性关系的前提下,通过样本数据的来拟合出一条直线,然后用该直线来预测输入的结果。这里拟合所得的曲线我们叫做模型,而拟合的整个过程叫做训练

下面用一个简单的例子来阐述线性回归的过程。

假设通过调研我们得到了一组住房面积以及对应房价的数据,在坐标轴上的分布情况如下图所示:

而我只想买一套100平的房子,但是收集的数据中恰好没有100平直接对应的房价,这就很尴尬。但是仔细观察这些数据的分布,似乎满足一条的直线的关系,像这样:

这时,100㎡的房价就可以通过该条直线的对应关系得到,在图中的位置大概是280万。

那么如何计算得到该条直线呢?在数学中,常常通过最小二乘法的方法来确定直线的方程。我们把采集的样本数据记作(x^{(i)},y^{(i)}), i=1,2,...,m,其中m为样本数据的总个数。假设直线方程为h_{\Theta }(x)= \Theta_{1}x+\Theta _{0},我们的目标是确定系数\Theta _{0}\Theta _{1}。为了使所得的直线最接近样本数据的分布情况,可以用|h_{\Theta }(x^{(i)}))-y^{(i)}|衡量每一个样本点同拟合直线的偏离大小,即预测值与实际值得差值,对这些差值进行求和,再求平均,可以得到:\frac{1}{m}\sum_{i=1}^{m} |h_{\Theta }(x^{(i)})-y^{(i)}|, 其中m为样本数据的总个数。考虑到后续计算的方便,我们可以用平方代替绝对值的计算,这样就有:\frac{1}{m}\sum_{i=1}^{m} (h_{\Theta }(x^{(i)})-y^{(i)})^{2},再在最前面乘以\frac{1}{2} (方便后面求导计算),最后可以得到:J(\Theta_{0} ,\Theta_{1} )=\frac{1}{2m}\sum_{i=1}^{m} (h_{\Theta }(x^{(i)})-y^{(i)})^{2}

我们把这个函数称作代价函数(cost function),现在推出的只是一维特征向量下的形式。有了这个函数之后,我们的问题就又转化成求代价函数取得最小值时\Theta _{0}\Theta _{1}的值。

仔细观察上式,该式似乎是一个关于\Theta _{0}\Theta _{1}的二元函数。在微积分中,求二元函数的极值点通常是通过求偏导数为零的点而获得的。而类似的,在机器学习中,要求解这个问题,引入了一种叫做梯度下降(Gradient Descent)的方法。在讲述原理前,先把梯度下降的公式列出如下:

\Theta _{j}:=\Theta _{j}-\alpha \frac{\partial }{\partial \Theta _{j}}J(\Theta _{0},\Theta _{1}),j=1或2。式中\alpha被称作学习速率,\frac{\partial }{\partial \Theta _{j}}J(\Theta _{0},\Theta _{1})即为梯度。下面以下图为例,讲述公式的大致原理。

想象一下,我们现在站在A点的山坡上,我们想要往最低点(图中为B点)走去,每次往下走的步长是固定的,而每走一步我们都要确定好行走的方向,以便能快速走向B点而少走弯路。这里的步长就是公式中的学习速率\alpha,而每次行走的方向就是梯度,:=的意思是每次计算完之后,把\Theta _{j}值进行更新,并循环计算。当梯度为零时,我们就会发现\Theta _{j}值不会变化,此时的\Theta _{j}即为我们所求的最优值。

上图中显示的函数似乎很复杂,存在许多的局部最优解,通过梯度下降法可能会求出多个\Theta _{j},实际上,真正的代价函数,通常是如下图所示:

此函数其是一个凸函数,只有一个全局最优解,所以不用担心像上图一样会找到局部的最优解。

好了,求得h_{\Theta }(x)= \Theta_{1}x+\Theta _{0}的过程大致如此。然而这仅仅是一维特征向量的情况,很多时候,我们采集的样本数据含有多个特征,此时特征向量是多维的,这样我们的直线可能是这样子的:h_{\Theta }(x)= \Theta _{0}+\Theta_{1}x_{1}+\Theta_{2}x_{2}+...+\Theta_{n}x_{n},以X表示特征向量的话,上式就变成了:h_{\Theta }(X)= \Theta^{T}X,代价函数就变成了:J(\Theta)=\frac{1}{2m}\sum_{i=1}^{m} (h_{\Theta }(X^{(i)})-Y^{(i)})^{2},利用梯度下降法求解\Theta _{j}的过程还是一样的。

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值