回归分析(regression analysis)是确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法。
回归分析按照涉及的变量的多少,分为一元回归和多元回归分析;按照因变量的多少,可分为简单回归分析和多重回归分析;按照自变量和因变量之间的关系类型,可分为线性回归分析和非线性回归分析。如果在回归分析中,只包括一个自变量和一个因变量,且二者的关系可用一条直线近似表示,这种回归分析称为一元线性回归分析。如果回归分析中包括两个或两个以上的自变量,且自变量之间存在线性相关,则称为多重线性回归分析。
给定一些数据点,它们分别属于两个不同的类,现在要找到一个线性分类器把这些数据分成两类。如果用x表示数据点,用y表示类别(y可以取1或者0,分别代表两个不同的类),一个线性分类器的学习目标便是要在n维的数据空间中找到一个超平面(hyper plane),这个超平面的方程可以表示为( w T w^T wT中的T代表转置):
ω T \omega^T ωT x x x + b = 0 b=0 b=0
所以,线性模型向量形式为:
y ^ = ω T \hat{y} = \omega^T y^=ωT x x x + b b b
ω \omega ω, b b b为需要学习的参数
ω \omega ω直观表达了各属性在预测中的重要性,因此线性模型有很好的解释性。
线性回归(linear regression) & 对数几率回归(logistic regression)
回归问题:连续输出,如预测房价
分类问题:离散输出,如二分类问题输出0或1
假设一个样本我们用 x x x来表示,数据集中第k个样本则为 x k x_k xk。一个样本中存在d个特征值,用一个列向量来表示一个样本 x k = ( x k 1 ; x k 2 ; x k 3 ; . . . ; x k d ) x_k = (x_k^1;x_k^2;x_k^3;...;x_k^d) xk=(xk1;xk2;xk3;...;xkd)具有 d d d个特征。 w w w是待学习的权重,因为每个样本中有 d d d个特征,因此 w w w是一个 d d d维的列向量,记为 w = ( w 1 ; w 2 ; w 3 , . . . , w d ) w=(w_1;w_2;w_3,...,w_d) w=(w1;w2;w3,...,wd)。在 w w w和 b b b确定的的情况下,模型就能确定为 y ^ = w T x + b \hat{y} = w^Tx + b y^=wTx+b。
确定 w w w和 b b b的方式在于衡量 y ^ \hat{y} y^和 y y y之间的差别。
线性模型用一个直线(平面)拟合数据点,找出一个最好的直线(平面)即要求每个真实点距离平面的距离最近。
一种方法是使得残差平方和(Residual Sum of Squares, RSS)最小:
R S S ( y , y ^ ) RSS(y,\hat{y}) RSS(y,y^)= ∑ i = 1 m ( y i − y ^ i ) 2 \sum_{i=1}^m(y_i - \hat{y}_i)^2 ∑i=1m(yi−y^i)2
另一种情况下,为消除样本量的差异,也会用最小化均方误差(MSE)拟合:
M S E ( y , y ^ ) MSE(y,\hat{y}) MSE(y,y^)= 1 m 1\over m m1 ∑ i = 1 m ( y i − y ^ i ) 2 \sum_{i=1}^m(y_i - \hat{y}_i)^2 ∑i=1m(yi−y^i)2
我们用均方误差来衡量模型的性能(西瓜书P54省略1/m),试图让误差最小化,此时的 w w w和 b b b即为所需。则:
( w ∗ w^* w∗, b ∗ b^* b∗)= a r g m i n argmin argmin ∑ i = 1 m ( y i − y ^ i ) 2 = \sum_{i=1}^m(y_i - \hat{y}_i)^2 = ∑i=1m(yi−y^i)2=arg m i n min min ∑ i = 1 m ( y i − w T x i − b ) 2 \sum_{i=1}^m(y_i - w^Tx_i - b)^2 ∑i=1m(yi−wTxi−b)2
基于均方误差最小化来进行模型求解的方法称为“最小二乘法”。
线性回归中就是试图找到一条直线,使所有样本到直线上的欧式距离之和最小。(西瓜书P54,均方误差对应于欧氏距离)
求解 w w w和 b b b使均方误差最小的过程,称为线性回归模型的最小二乘“参数估计”。
参考此处
设 d d d=1,则对损失函数L分别对w和b求偏导得:
∂ L ( w , b ) ∂ w = − 2 ∑ i = 1 m ( x i y i − w x i 2 − b x i ) \frac{\partial L(w,b)}{\partial w} = -2 \sum_{i=1}^m(x_iy_i - wx_i^2 - bx_i) ∂w∂L(w,b)=−2∑i=1m(xiyi−wxi2−bxi)
∂ L ( w , b ) ∂ b = − 2 ∑ i = 1 m ( y i − w x i − b ) \frac{\partial L(w,b)}{\partial b} = -2 \sum_{i=1}^m(y_i - wx_i - b) ∂b∂L(w,b)=−2∑i=1m(yi−wxi−b)
令 ∂ L ( w , b ) ∂ b = 0 \frac{\partial L(w,b)}{\partial b} = 0 ∂b∂L(w,b)=0得 b ∗ = 1 m ∑ i = 1 m ( y i − w x i ) b^* = {1\over m}\sum_{i=1}^m(y_i - wx_i) b∗=m1∑i=1m(yi−wxi)
令 ∂ L ( w , b ) ∂ w = 0 \frac{\partial L(w,b)}{\partial w} = 0 ∂w∂L(w,b)=0得 w ∗ = ∑ i = 1 m y i ( x i − x ‾ ) ∑ i = 1 m x i 2 − 1 m ( ∑ i = 1 m x i ) 2 w^*={\sum_{i=1}^my_i(x_i-\overline x) \over \sum_{i=1}^mx_i^2 - {1\over m}( \sum_{i=1}^mx_i)^2} w∗=∑i=1mxi2−m1(∑i=1mxi)2∑i=1myi(xi−x)
其中 x ‾ \overline x x= 1 m ∑ i = 1 m x i {1\over m}\sum_{i=1}^mx_i m1∑i=1mxi为 x x x的均值。
上面的公式推导是基于 x x x的维度d=1的情况,在更一般的情况下d并不等于1,也就是我们一开始讨论的 y = w T x + b y^=w^Tx+b y=wTx+b,此时线性模型叫做多元线性回归。
为了方便讨论,记 w ^ = ( w ; b ) , X = ( x 1 T , 1 ; x 2 T , 1 ; . . . ; x m T , 1 ) \hat{w} = (w;b), X=(x_1^T,1; x_2^T, 1; ...; x_m^T, 1) w^=(w;b),X=(x1T,1;x2T,1;...;xmT,1),
那么 y ^ = X w ^ \hat{y} = X\hat{w} y^=Xw^,
损失函数为 L ( w , b ) = L ( w ^ ) = ( y − X w ^ ) T ( y − X w ^ ) L(w,b)=L(\hat{w})=(y-X\hat{w})^T(y-X\hat{w}) L(w,b)=L(w^)=(y−Xw^)T(y−Xw^)
L ( w ^ ) L(\hat{w}) L(w^)对 w ^ \hat{w} w^求偏导: ∂ L ( w ^ ) w ^ = 2 X T ( X w ^ − y ) \frac{\partial L(\hat{w})}{\hat{w}} = 2X^T(X\hat{w} - y) w^∂L(w^)=2XT(Xw^−y)
令偏导等于0,得 w ^ ∗ = ( X T X ) − 1 X T y \hat{w}^* = (X^TX)^{-1}X^Ty w^∗=(XTX)−1XTy由此确定模型。
在现实任务中,大量变量时,可求解出多个 w ^ \hat{w} w^都能使均方误差最小化,选择哪一个解作为输出可由学习算法的归纳偏好决定,可引入正则化项。
即让模型预测值逼近 y y y的衍生物
l n y lny lny= w T x + b w^Tx+b wTx+b, 让 e w T x + b e^{w^Tx+b} ewTx+b逼近 y y y,
该式仍为线性回归,但已求输入空间到输出空间的非线性函数映射
一般的,单调可微g( .),
y = g − 1 ( w T x + b ) y=g^{-1}(w^Tx+b) y=g−1(wTx+b)
称为“广义线性模型”,g(.)为联系函数。对数线性回归是其一种特例。
----------9/5 23:48 敲公式敲到脑壳疼^^
梯度下降参考此处
最小二乘法和梯度下降关系
R 2 = 1 − R S S T S S R^2=1-{RSS\over TSS} R2=1−TSSRSS
线性回归算法代码应用