醋醋百科网

Good Luck To You!

数据分析中的线性回归问题(excel 数据分析线性回归参数含义)

(一)线性回归的概念

在预测领域,我们经常听到回归的概念,接下来的文章中我们会一点一点的揭开回归问题的面纱。今天,咱俩先来介绍一下线性回归。线性回归是机器学习中有监督机器学习下的一种算法。 回归问题主要关注的是因变量(需要预测的值,可以是一个也可以是多个)和一个或多个数值型的自变量(预测变量)之间的关系。

需要预测的值:即目标变量,target,y。

影响目标变量的因素:X_1...X_n。

因变量和自变量之间的关系:即、模型,是我们要求解的。

简单线性回归属于算法,它所对应的公式为:

其中,y是目标变量,也就是我们需要预测的值,x是影响y的因素,w,b是参数,上学期间,我们就知道,其中w表示斜率,b表示截距。换一句话说,就是在该模型中,影响y值的未知数只有一个,也就是x,所以,这也叫简单的线性回归。

(二)最优解

真实值:用y表示

预测值:通过^y = wx + b模型,将x代入公式和猜出来的w,b计算得到的结果,用^y表示

误差:真实值和预测值之间的差距,用ξ表示

最优解:尽可能的找出一个模型,即求出最优的w,b,使得整体的误差最小,整体的误差一般叫做loss

loss:整体的误差,一般通过损失函数计算得到。

如下图:样本特征只有一个,即影响因变量y的因素只有一个x,这就是简单的线性回归


(三)多元线性回归

然而,在实际生活中,影响结果的因素往往是多样的,就拿著名的加州房价预测数据集来说,影响房价的因素就有MedInc (每个街区的收入中位数)、HouseAge (每个街区的房屋年龄中位数)。AveRooms (每户人家的平均房间数量)。AveBedrms (每户人家的平均卧室数量)。Population (街区人口)。AveOccup (平均每户人家的居住成员数量)。Latitude (街区纬度)。Longitude (街区经度)。MedHouseVal (房屋中位价值(以千元为单位))。这时候简单的线性回归用来做预测就会有很大的局限性,所以这种情况我们需要考虑用多元线性回归来解决问题。

多元线性回归的公式如下:

其中b表示方程的截距,也可以表示,即:

用我们学习的矩阵表示为:

其中X表示所有的变量,W表示所有的系数(包含w_0),之所以W需要用转置矩阵,是因为在矩阵的运算中,有如下规律:


(四)求解参数

在一元线性回归和多元线性回归方程中,对于已有的数据集,我们都能确定X和y,所以,我们的目标就是求出W,即求出所有x的系数(包括常数项:b)。

这里我们需要用到最小二乘法,它可以将误差方程转化为有确定解的代数方程组(其方程式数目正好等于未知数的个数),从而可求解出这些未知参数。这个有确定解的代数方程组称为最小二乘法估计的正规方程。公式如下:

其中的 θ 即使方程的解!

这个推导过程如下:

这是最小二乘法的表达式,由当年高斯推导出来的,这里不做详细说明,因为我也不知道当年高斯是怎么推导出来的,将该表达式化简如下:

用矩阵的方式表达为:

接下来是网络上的推导过程:

(五)实际代码实现和应用

学习的意义在于知行合一,我们不能停留在知道的层面,最主要的还是要应用,这个模块主要是代码实现:

一元线性回归:

模拟一元回归数据如下:

重新构建一元回归如下:

使用正规方程计算结果如下:

得到的结果和实际的结果偏差较小。


多元线性回归:这里就用加州房价预测为例吧,如下图,影响房价的因素有八个,具体因变量是什么,前文已做了详细说明。

查看数据样本,如下图所示,有26640条样本数据。

我们需要按照8:2切分成训练集和测试集,训练集用来拟合数据,求出每个自变量的权重,也就是每个自变量的系数,得出模型以后,用20%的测试集验证数据是否有问题。

测试集验证结果如下:


扩展1:在计算每个自变量权重的时候,需要用到正规方程,代码表示为 θ= np.linalg.inv(X.T.dot(X)).dot(X.T).dot(y),然而,因为这是一个程序化的步骤,所以,实际上python已经将该方法进行封装了,只需要导入线性回归的包就可以直接使用,如下图所示:

直接打印斜率和截距:

直接使用predict函数进行预测:

扩展2:在实际工作中,求回归方程的θ,不仅仅是用以上导入线性回归的包和正规方程求解,还有其他方式,比如梯度下降,下一篇文章重点讲。

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言