关于线性回归
线性回归($linear\ regression$),目标就是用一个(n-1)维的东西,来拟合一些在(n)维图形上的点,并且使得点集与拟合函数间的误差最小。
如果自变量的个数只有一个,就称为一元线性回归;如果自变量的个数多于一个,就称为多元线性回归。
比如,我们想得到房屋的价格与房间个数、大小、状况等多种因素之间的关系时,将这些因素作为自变量,将房屋价格作为因变量,这就是多元线性回归。
其实,我们平常说的数据挖掘,就是拟合出来一个线性回归模型。
举个栗子
给定一个大小为$n$ 的数据集
$$\{ y_{i},x_{i1},…,x_{ia}\}_{i=1}^{n}$$
$\text{其中}\ x_{i1},…x_{id}$是第$i$个样本的$d$个属性值,$y_{i}$ 是 是该样本待预测的目标。线性回归模型假设目标$y_{i}$ 可以被属性间的线性组合描述,即
$$y_{i}=\sum_{j=1}^{d}w_{j}x_{ij}+b,i=1,…,n$$
例如,我们现在要买一套房子,然后呢,我们统计了一下每个房源的大小,方向,作用点 ,位置,环境等信息,对于每个信息每个档次,打出一个分,最后根据各个因素的影响的大小决定每个因素所占有的权重,之后我们的估价就是这些权重*分值的和了。这样的话,我们就可以根据我们的估算去买房子了。
线性回归模型有形式简单和易于建模分析的优点,它在实际问题中得到了大量的应用。
线性回归模型
线性回归的一般模型为:
$$\widehat{y}=w_{0}+\sum_{i=1}^{n}w_{i}x_{i}$$
其中$\widehat{Y}$ 表示模型的预测结果,用来和真实值$Y$ 区分。模型要学习的参数(不严谨的说,就是每个因素所占有的权重)为 $w_{0},…,w_{n}$ 即:$W$。
如果我们构造:
$$\widehat{Y}=\widehat{y}$$
$$X=[1,x_{1},…,,x_{n}]^{T}$$
$$W=[w_{0},w_{1},…,w_{n}]^{T}$$
那么该模型可以写为矩阵形式:
$$\widehat{Y}=W^{T}X$$
模型的评价标准
假设集合数据为 $D=(X_{1},Y_{1}),…,(X_{n},Y_{n})$ ,将集合的 $X$ 代入到模型中即可求得模型的预测值 $\widehat{Y}$。
我们需要给模型一个优化目标,使得学到的参数能够让预测值 $\widehat{Y}$ 。 尽可能地接近真实值$Y$。
这里我们引入损失函数Loss Function这个概念。
输入任意一个数据样本的目标值 $Y_{i}$ 和模型给出的预测值 $\widehat{Y_{i}}$,损失函数输出一个非负的实值。这个实值通常用来反映模型误差的大小。
对于线性回归模型来讲,最常见的损失函数就是均方误差Mean Squared Error,MSE),它的形式是:
$$J(W)=MSE=\frac{1}{n}\sum_{i=1}^{n}(\widehat{Y_{i}}-Y_{i})^{2}$$
即对于一个大小为 $n$ 的集合,$MSE$是$n$ 个数据预测结果误差平方的均值。
模型的求解方法
对于小数量级样本以及矩阵满秩的特殊情况,线性回归模型是有解析解的。
将集合中的变量写成矩阵形式:令
$$X=[X_{1},…,X_{n}]^{T},Y=[Y_{1},…,Y_{n}]^{T}$$
根据线性回归模型,可以得到预测值 $\widehat{Y}=XW$
那么损失函数可以表示为:
$$J(W)=MSE=\frac{1}{n}\sum_{i=1}^{n}(\widehat{Y_{i}}-Y_{i})^{2}\frac{1}{n}(XW-Y)^{T}(XW-Y)$$
将损失函数$J$对变量$W$ 求导,并令其等于$0$可得:
$$\frac{∂J(W)}{∂W}=\frac{1}{n}(XW-Y)^{T}X=0$$
$$X^{T}XW=X^{T}Y$$
在$X^{T}X$的逆存在时可得
$$W=(X^{T}X)^{-1}X^{T}Y$$