什么是回归

回归百度百科的定义是:研究一组随机变量Y=(y1,y2,,,,yn)Y = (y_1, y_2, ,,, y_n)与另一组随机变量X=(x1,x2,,,,xn)X = (x_1, x_2, ,,, x_n)之间关系的统计变量方法。回归主要的种类有:线性回归、曲线回归、二元logistic回归、多元logistic回归。

回归从一组数据出发,确定某些变量之间的定量关系式;即建立数学模型并估计未知参数。通常用最小二乘法。

线性回归

当因变量和自变量为线性关系时,它是一种特殊的线性模型,也就是线性回归,你可以把线性回归理解为求一条直线来拟合你的数据点。
线性回归及实现

推导

以预测房价为例,给定一组数据点(Y1,Y2,,,,Yn)(Y_1, Y_2, ,,, Y_n)(X1,X2,,,,Xn)(X_1, X_2, ,,, X_n),其中的YiY_i表示对应的样本输入为XiX_i时的房价,是一个标量,而XiX_i是一个d维向量,每一维表示衡量房价的一个标准,比如第一维表示面积、第二维表示房间地理位置、第三维表示楼层等。

我们知道2维空间中直线的方程是:y=kx+by = k x + b
3维空间中直线方程是:z=k1x+k2y+bz = k_1x + k_2y + b
那么类比d维空间中的直线方程应该是:
y=θ1x1+θ2x2+...+θdxd+θ0(1)\tag{1} y = \theta_1x_1 + \theta_2x_2 +... + \theta_dx_d + \theta_0
线性回归就是要求出这条直线,也就是已知数据点,求出直线的参数θi,i=[0,1,2,...d]\theta_i, i= [0,1,2,... d],其中,小写的xjx_j表示XiX_i的d个特征中的第j个特征的数值。

我们发现XiX_i相当于一个d维的向量,而参数θ\theta也有d+1个,所以想到用θ=[θ0,θ1,,,θd]\theta = [\theta_0, \theta_1,,, \theta_d]来表示,将XiX_i扩展1维也变成d+1维,即Xi=[1,x1,x2,...xd]X_i= [1, x_1, x_2, ... x_d],所以(1)式可以变成向量相乘的形式:
Y^=Xθ(2)\tag{2} \hat Y = X\theta
其中,X,θd+1X, \theta都是d+1维的向量, X是行向量,θ\theta是列向量

(2)式是我们建立好的模型,将来我们要用它来预测房价,那么怎么衡量预测值与真实值之间的差异呢?就是用平方损失函数来衡量。

平方损失函数

J(θ)=i=1n(YiY^i)2(3)\tag{3}J(\theta) = \displaystyle\sum_{i=1}^n (Y_i - \hat Y_i)^2
(3)式也可以向量化,如下图所示:
线性回归及实现
所以损失函数可向量化为:
J(θ)=(yXdθ)T(yXdθ)(4)\tag{4}J(\theta) = (y - X_d\theta)^T(y - X_d\theta)
其中y是真实标签,XdθX_d\theta是预测标签,这样就可以衡量损失了。
要计算θ\theta,则可以先把(4)式展开,然后对θ\theta求导:
线性回归及实现
求导之后就变成下面的式子:
线性回归及实现
变形得到:
线性回归及实现
之后就可以用得到的线性方程来预测房价了。

实现

实现可以看我的github地址:实现

参考:通俗理解线性回归(二)

相关文章: