经典线性模型自变量的线性预测就是因变量的估计值。
广义线性模型:自变量的线性预测的函数是因变量的估计值。
常见的广义线性模型有:probit模型、poisson模型、对数线性模型等。对数线性模型里有:logistic regression、Maxinum entropy。
其中,为偏置参数,M为特征数目,
为基函数(径向基函数(rbf)、sigmoid基函数等),
特别地,当 =
,即为简单的多元线性回归。当然,根据需要我们也可以在后面正则项。
使用一般的平方和误差作为Loss function,主要有以下两种方法学习参数
(1)根据梯度下降不断迭代,此处会涉及到learing rate(学习速率)
(2)直接利用公式计算,得到一维精确解
平方和误差定义 :
令这个梯度等于零,
最终我们可以得到 (加黑表示为向量)
当然,我们也可以根据实际的情况定义其他的Loss function。
我们可以利用平方和误差对进行求导,
最终解得
其中, ,
因此,偏置补偿了目标值的平均值(在训练集)与基函数的值的加权求和之间的差。
1)指数家族
当固定T时,这个分布属于指数家族中的哪种分布就由a和b两个函数决定。下面这种是伯努利分布,对应于逻辑回归问题
注:从上面可知 ,从而
,在后面用GLM导logistic regression的时候会用到这个sigmoid函数。
下面这种是高斯分布,对应于经典线性回归问题
2)GLM(广义线性模型)
指数家族的问题可以通过广义线性模型来解决。如何构建GLM呢?
在给定x和参数后,y的条件概率p(y|x,θ) 需要满足下面三个假设:
assum1) y | x; θ ∼ ExponentialFamily(η).
assum2) h(x) = E[y|x]. 即给定x,目标是预测T(y)的期望,通常问题中T(y)=y
assum3) η = θTx,即η和x之间是线性的
3)经典线性回归
经典线性回归:预测值y是连续的,假设给定x和参数,y的概率分布服从高斯分布(对应构建GLM的第一条假设)。由上面高斯分布和指数家族分布的对应关系可知,η=µ,根据构建GLM的第2、3条假设可将model表示成:
可以将训练集中的数据处理到某个特征的范围内(当然这样对最终的结果有一定的影响,这个需要根据集体的目标、数据分布等来分析),从而加快模型收敛,此法不仅限于线性回归。主要有以下几种方法
(1)
(2)[X-mean(X)]/std(X);
(3)sigmod
(4)tan
(5)log
(1)训练速度快
(2)对趋势比较明显的数据预测效果比较好
(1)容易欠拟合
(2)针对线性不可分的情况效果往往不佳
(1)特征之间应相互独立(防止多元共线性,对于多元共线性问题,我们也可以通过逐步回归、岭回归的方法解决,从某种意义上来说类似于添加正则项)
(2)特征不宜过多
(3)做下One-hot处理效果还不错
(4)特征与预测变量之间应有一定相关性(可以使用皮尔逊方法检测)
(5)残差e 服从正态分布N(0,σ2) 。其方差σ2 = var (ei) 反映了回归模型的精度, σ 越小,用所得到回归模型预测y的精确度愈高
(6) e 的大小不随所有变量取值水平的改变而改变,即方差齐性
线性回归包括一元线性回归和多元线性回归,一元的是只有一个x和一个y。多元的是指有多个x和一个y。
下面我只讲下一元的,多元只是将 变成了
一元线性回归其实就是去找到一条直线,这条直线能以最小的误差(Loss)来拟合数据。
如上图所示,横坐标表示x,纵坐标表示y。我们要找的就是图中的这条直线。我们要去找到这条直线,大家可以想象,我们肯定希望找到的那条线,距离每个点都很近,最好所有的点上都在这条线上,但是一条直线去拟合所有的点都在这条直线上肯定不现实,所以我们希望这些点尽量离这条直线近一点。即去找每个点和直线的距离 最小的那条线,为了简单起见,将绝对值转化为平方,那么误差可以表示为
,这里i表示第i个数据,N表示总的样本个数。一般我们还会把Loss求和平均,来当作最终的损失,
即。
我们要怎么去找到最能拟合数据的直线?即最小化误差呢?
一般有两个方法:
上面我们讲了我们定义的损失,其中的x,y,i,N都是已知的,那么我们就可以把这个方程看作是m和b的方程。作为一个m和b的二次方程。那么求Loss最小值的问题就转变成了求极值问题,这个高数学过的都应该知道点。
令每个变量的偏导数为零,求方程组的解呗,这个是很基础的高数问题了。
我们可以得到下面的方程组
然后就是巴拉巴拉巴拉把m和b求出来,这样就得到我们要的线性方程了。
没有梯度下降就没有现在的深度学习,这是一个神奇的算法。
最小二乘法可以一步到位,直接算出m和b,但他是有前提的,具体我有点记不清了,好像是需要满秩什么的。梯度下降法和最小二乘不一样,它通过一步一步的迭代,慢慢的去靠近到那条最优直线。
最小二乘法里面我们提到了两个偏导数,分别为
我们要去找Loss这个方程的最小值,最小值怎么求?按数学的求法就是最小二乘法呗,但是大家可以直观的想一下,很多地方都会用一个碗来形容,那我也找个碗来解释吧。
大家把这个Loss函数想象成这个碗,而我们要求的最小值就是碗底。假设我们现在不能用最小二乘法求极小值,但是我们的计算机的计算能量很强,我们可以用计算量换结果,不管我们位于这个碗的什么位置,只要我们想去碗底,就要往下走。
往下走????????
这个下不就是往梯度方向走吗,那我们沿着梯度一点一点滑下去呗,反正计算机不嫌累。梯度不就是上面那两个公式呗。现在梯度有了,那每次滑多远呢,一滑划过头了不久白算半天了吗,所以还得定义步长,用来表示每次滑多长。这样我们就能每次向下走一点点,再定义一个迭代值用来表示滑多少次,这样我们就能慢慢的一点点的靠近最小值了,不出意外还是能距离最优值很近的。
SSE(和方差、误差平方和):The sum of squares dueto error
MSE(均方差、方差):Meansquared error
RMSE(均方根、标准差):Root mean squared error
R-square(确定系数):Coefficientof determination
Adjusted R-square:Degree-of-freedomadjusted coefficient of determination
下面我对以上几个名词进行详细的解释下,相信能给大家带来一定的帮助!!
一、SSE(和方差)
该统计参数计算的是拟合数据和原始数据对应点的误差的平方和,计算公式如下
SSE越接近于0,说明模型选择和拟合更好,数据预测也越成功。接下来的MSE和RMSE因为和SSE是同出一宗,所以效果一样
二、MSE(均方差)
该统计参数是预测数据和原始数据对应点误差的平方和的均值,也就是SSE/n,和SSE没有太大的区别,计算公式如下
三、RMSE(均方根)
该统计参数,也叫回归系统的拟合标准差,是MSE的平方根,就算公式如下
在这之前,我们所有的误差参数都是基于预测值(y_hat)和原始值(y)之间的误差(即点对点)。从下面开始是所有的误差都是相对原始数据平均值(y_ba)而展开的(即点对全)!!!
四、R-square(确定系数)
在讲确定系数之前,我们需要介绍另外两个参数SSR和SST,因为确定系数就是由它们两个决定的
(1)SSR:Sumof squares of the regression,即预测数据与原始数据均值之差的平方和,公式如下
(2)SST:Totalsum of squares,即原始数据和均值之差的平方和,公式如下
细心的网友会发现,SST=SSE+SSR,呵呵只是一个有趣的问题。而我们的“确定系数”是定义为SSR和SST的比值,故
其实“确定系数”是通过数据的变化来表征一个拟合的好坏。由上面的表达式可以知道“确定系数”的正常取值范围为[0 1],越接近1,表明方程的变量对y的解释能力越强,这个模型对数据拟合的也较好,R^2 越大,说明预测出来的数据可以通过模型的解释性就越强。
每次向下滑要慢慢滑,就是要个步长,我们定义为learning_rate,往往很小的一个值。
向下滑动的次数,就是迭代的次数,我定义为num_iter,相对learning_rate往往很大。
定义好这两个,就可以一边求梯度,一边向下滑了。就是去更新m和b。
这里用了加号,很多人会误以为梯度下降就要减,但是其实梯度本身是有方向的,所以这里直接加就可以。
1. 自回归模型的定义
自回归模型(Autoregressive Model)是用自身做回归变量的过程,即利用前期若干时刻的随机变量的线性组合来描述以后某时刻随机变量的线性回归模型[1],它是时间序列中的一种常见形式[2]。
2. AR模型的状态空间形式(AR-Process in State Space Form)
AR模型可以写成状态空间模型的形式[4] [5] [6],令:
3. AR模型的求解
AR模型可以采用Yule-Walker方程的形式进行求解[3]。考虑p阶AR模型有相应的AR特征多项式和相应的AR特征方程:
4. AR模型示例