5.gitchat训练营-线性回归——从模型函数到目标函数

2019-03-07  本文已影响0人  风吹柳_柳随风

1.从数据反推公式

        假设获得下面一张表格,列举了美国纽约若干程序员职位的年薪。


美国程序猿年薪

        根据表格中的特征,我们把Experience与Salary抽取出来,用x和y来分别指代它们。


经验与薪水
        我们可以先在二维坐标系里通过画图来看一下x与y的关系:
x与y的关系图

        把这6个点连起来,基本上就成了一条直线。那么假设存在y = a + bx,是合理的。
        既然认为xy满足线性相关关系,那么线性函数:y = a + bx,就是我们的模型函数。其中y也可以用f(x)来表示。
        我们要做的是综合利用所有的训练数据求出y = a + bx中常数a和常数b的值。

2.线性回归的目标函数

        综合利用的原则就是我们要求的这个ab,在将训练样本的x逐个带入后,得出的预测年薪y' = a + bx与真实年薪y整体的差异最小。
        具体的一个样本的yy'的差异用(y' - y)^2来表示。
        怎么衡量这个整体差距呢?我们用下面这个公式,我们把它叫做为Cost Function,形式如下(其中m为样本的个数,在本例中m为6):
J(a,b) = \frac{1}{2m}\sum^m_{i=1}(y'^{(i)}-y^{i})^2=\frac{1}{2m}\sum^m_{i=1}(a+bx^{(i)}-y^{(i)})^2
        在y=a+bx这个模型函数中,ab是常量参数,x是自变量,而y是因变量。
        但到了J(a,b)中,x^{(i)}y^{(i)}是常量参数(也就是m个样本各自的xy值),而ab成了自变量,J(a,b)是因变量。能够让因变量J(a,b)取值最小的自变量ab,就是最好的ab
        我们要做的就是找到最好的ab

3.线性的定义

        线性回归模型是:利用线性函数对一个活多个自变量(x(x_1, x_2,...x_k))和因变量(y)之间的关系进行拟合的模型。
        也就是说,线性回归模型构建成功后,这个模型表现为线性函数的形式。
        线性函数的定义是:一阶(或更低阶)多项式,或零多项式。
        当线性函数只有一个自变量时,y=f(x)

f(x)的函数形式是:

f(x)=a+bx(a、b为常数,且b\neq0)——一阶多项式

或者f(x)=c(c为常数,且c\neq0)——零阶多项式

或者f(x)=0——零多项式

        但如果有多个独立自变量,y=f(x_1,x_2,...,x_k)的函数形式则是:

f(x_1,x_2,...,x_k)=a+b_1x_1+b_2x_2+...+b_kx_k

        换言之,直角坐标系中,除了平行于y轴的那些直线之外,所有的直线都可以对应一个一维特征(自变量)的线性回归模型(一元多项式函数)。
        但如果样本特征本身是多维的,则最终的线性模型函数是一个多维空间内的[一阶|零阶|零]多项式。
        总结:特征是一维的,线性模型在二维空间构成一条直线;特征是二维的,线性模型在三维空间中构成一个平面;若特征是三维的,则最终模型在四维空间中构成一个体,以此类推。

线性模型在二维三维空间中的表现

4.用线性回归模型拟合非线性关系

        在输入特征只有一个的情况下,是不是只能在二维空间拟合直线呢?其实也不一定。
        线性模型并非完全不可能拟合自变量和因变量之间的非线性关系。
        比如有一个样本,只有一个特征,我们把特征和结果作图以后发现,是下图这样的:


样本和关系走势图

        上图样本和结果的关系走势根本不是直线,更像是二阶曲线。
        这个时候,我们完全可以把特征从一个“变成”两个:

X=(x_1,x_2)(其中x_1=x^2;x_2=x),有:
        f(x_1,x_2)=a+b_1x^2+b_2x=a+b_1x_1+b_2x_2

        这就相当于拟合了一条二阶多项式对应的曲线。

再设B=(b_1,b_2),则:
        f(X)=a+BX

        这样一来,我们只需要在二维向量空间里训练f(X)=a+BX,就可以了。
        当然,这种操作也不限于在一维到二维之间的转换,一维也可以转为三维、四维、n维;或者原本的k维也可以每一维都求平方后作为新特征引入,转为2k维,如此种种......依需要而取就好。

上一篇 下一篇

猜你喜欢

热点阅读