线性回归分析(生活中线性相关的例子)

线性回归原理一般来说,房价会在多种因素的影响下波动。如果我们假设房价只与房产面积内的房间数有关,我们可以看到房价、面积、房间呈现出以下数据:房产数据房地产数据我

线性回归原理

一般来说,房价会在多种因素的影响下波动。如果我们假设房价只与房产面积内的房间数有关,我们可以看到房价、面积、房间呈现出以下数据:

线性回归分析(生活中线性相关的例子)插图

房产数据房地产数据

我们可以将价格Y与面积x1、房间数x2的关系表示为f(x)=θ0+θ1x1+θ2x2。显然,我们的目的是尽可能使f(x)等于Y,这是一种直观的线性回归风格。

线性回归的一般形式

假设有数据集{(x1,y1),(x2,y2),...,(xn,yn)},其中Xi =(xi1;xi2xi3...;Xi) ∈ n代表变量的个数,d代表每个变量的维数。然后,我们可以用下面的函数来描述y和x之间的关系:

线性回归分析(生活中线性相关的例子)插图(1)

y和x之间的关系y和x之间的关系

如何确定θ的值使f(x)尽可能接近y?回归问题中常用的性能指标是均方误差,可以用以下公式表示:

线性回归分析(生活中线性相关的例子)插图(2)

均方误差均方误差

我们可以选择一个合适的θ,使均方误差最小。

极大似然估计

让我们用最大似然估计来解释为什么用均方差作为线性回归的性能度量。我们可以将目标值和变量写成以下等式:

线性回归分析(生活中线性相关的例子)插图(3)

等式转换等式变换

一个我们没有观测到的变量的印象,也就是随机噪声。我们假设它是独立同分布的,服从高斯分布。根据中心极限定理,得到以下结果:

线性回归分析(生活中线性相关的例子)插图(4)

中心极限定理转换中心极限定理变换

我们建立最大似然函数,即描述数据遵循当前样本分布的概率分布函数。由于样本的数据集是独立且同分布的,它们可以写成以下形式:

线性回归分析(生活中线性相关的例子)插图(5)

极大似然函数最大似然函数

我们选择能最大化似然函数的θ,这就是最大似然估计的思想。为了计算方便,我们通常求对数似然函数的最大值,即取两边的对数。推导结果如下:

线性回归分析(生活中线性相关的例子)插图(6)

推导过程推导过程

从上面的推导可以看出,最大化似然函数等价于最小化红框部分(前半部分是为了方便后续计算)。很明显,这个结果就是均方误差,所以我们证明用这个公式作为代价函数来优化线性回归模型在统计上是合理的。

线性回归的损失函数、代价函数与目标函数

首先,定义了损失函数、成本函数和目标函数的概念。损失函数衡量单样本预测的误差程度。损失函数值越小,模型越好。成本函数测量所有样本集的平均误差。目标函数是代价函数和正则化函数,也是最终要优化的函数。

从上面的概念可以发现,代价函数已经可以度量样本集的平均误差,那么为什么还要设置目标函数呢?这是因为当模型的复杂度增加时,有可能很好地模拟训练集,但对测试集的效果并不好,这就是我们所说的过拟合,也叫结构风险。结构化风险最小化是一种防止过度拟合的策略。如果模型的复杂度被定义为J(F ),则目标函数可以表示如下:

线性回归分析(生活中线性相关的例子)插图(7)

目标函数目标函数

其中λJ(F)称为正则化,其目的是防止过拟合。当训练集本身存在噪声时,对于未知的影响因素,拟合曲线往往不是最好的。一般随着模型复杂度的增加,训练误差会减小;但测试误差会先增大后减小。我们的最终目标是最小化测试误差,所以我们需要选择一个合适的目标函数。

线性回归的优化方法

常见的优化方法有梯度下降法、最小二乘矩阵法、牛顿法和拟牛顿法。对于线性回归模型,我们一般选择批量随机梯度下降法(不同于随机梯度下降法,但我们现在所说的随机梯度下降,往往是批量随机梯度下降)来优化模型。推导过程如下:

线性回归分析(生活中线性相关的例子)插图(8)

线性回归随机梯度下降法推导线性回归随机梯度下降法的推导

其中下标j表示第j个参数,上标I表示第I个数据点。梯度下降法的优点是当数据点较多时,运算效率较高;缺点是不能通过一次只更新一批样本的参数来找到达到最优值的最快路径,甚至有时参数会在最小值附近徘徊,无法收敛。如果函数是非凸的,就有可能找到局部最优而不是全局最优。

线性回归的评价指标

线性回归是典型的回归问题。对于回归问题,常用的评价指标有均方误差(MSE)、均方根误差(RMSE)和平均绝对误差(MAE)。但这些评价指标并不能消除尺寸不一致导致的误差值极大的问题。所以对于线性回归,R 2是最常用的指标,可以避免量纲不一致。

线性回归分析(生活中线性相关的例子)插图(9)

R^2评价指标R 2评价指数

其中,VAR是实际结果与预测结果之间的方差。从公式中可以看出,R 2可以使回归模型成功地解释数据方差在数据固有方差中所占的比例。R 2越接近1,解释力越大,模型拟合的效果越好。

使用sklearn实现一个简单的线性回归案例

Sklearn(scikit-learn)是一款基于Python的机器学习工具,是一款简单高效的数据挖掘和数据分析工具。它集成了所有常用的机器学习模型,线性回归模型包含在sklearn的linear_model库中。因此,在使用时,我们需要导入线性回归模型。

从下面的sklearn.linear _ model导入线性回归,通过一个简单的例子来体验线性回归模型的全过程。首先,我们使用NumPy生成数据:

将numpy作为NP从sklearn.linear _ model导入线性回归#生成随机数种子使每次生成的随机数都相同NP . random . seed(49)x = NP . random . rand(500,3) print (x) #建立映射关系,待预测的真实数据#映射关系设置为y = 2.1+2.8*x1+5.4*x2y = x.dot (NP .数组([2.1,2.8,5.4])。这里生成一组映射关系为Y = 2.1+2.8 * x1+5.4 * x2的数据,然后

#生成模型lr =线性回归(fit _ intercept = true) #训练模型lr.fit(x,y)print(& # 34;训练参数值的结果是:% s & # 34%(lr . coef _)#评估模型打印(& # 39;R 2是:% s & # 39% (lr.score (x,y)) #预测目标值x _ test = np.array ([2,4,5])。reshape (1,-1)y _ test = lr . predict(x _ test)print(& # 34;预测值是:% s & # 34% (y_test))运行结果如下:

线性回归分析(生活中线性相关的例子)插图(10)

运行结果运行结果

因为我们设置的线性回归模型简单,只有三个参数,其准确率达到100%。

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。

作者:美站资讯,如若转载,请注明出处:https://www.meizw.com/n/64478.html

发表回复

登录后才能评论