最小二乘法案例(线性回归简化)

 2025-08-08 23:57:01  阅读 216  评论 0

摘要:什么是线性回归?线性回归是一种发现独立变量和因变量之间关系的统计方法。让我们用一个简单的数据来解释线性回归模型。表1:薪酬数据示例表2:散点图图为什么我们将变量称为独立变量和因变量?“经验年数”列是独立变量,“1000美元薪金”列值是因变量。原因是,我们无法在数

什么是线性回归?

线性回归是一种发现独立变量和因变量之间关系的统计方法。让我们用一个简单的数据来解释线性回归模型。

表1:薪酬数据示例

表2:散点图图

为什么我们将变量称为独立变量和因变量?

“经验年数”列是独立变量,“1000美元薪金”列值是因变量。原因是,我们无法在数学上确定经验值的年份(独立变量)。但是,我们可以根据多年的经验确定/预测工资栏值(相关变量)。如果您查看数据,根据经验年数的多少,相关列值(薪水)正在增加/减少。

误差平方和(SSE)

为了拟合上述分散图中各点之间的最佳截距线,我们使用了一个称为“误差平方和”的度量,并通过比较这些线来找出最佳拟合,以减少误差。误差是实际值与预测值的差值。

为了找出每个因变量的错误,我们需要使用下面的公式。

SSE输出的误差平方总和为5226.19。为了做到最佳直线截距,我们需要应用线性回归模型尽可能降低SSE值。为了识别斜率截距,我们使用方程

y = m x + b,

'm'是斜率

'x'→独立变量

'b'是截距

我们将使用普通最小二乘法来找到最佳直线截距 (y) 斜率(m)

普通最小二乘法(OLS)方法

要使用OLS方法,我们应用下面的公式来找到方程

我们需要计算斜率'm'和直线截距'y'。以下是计算这些值的简单表格。

m = 1037.8 / 216.19

m = 4.80

b = 45.44-4.80 * 7.56 = 9.15

因此,y = m x + b→4.80x + 9.15

y = 4.80x + 9.15

让我们将我们的OLS方法结果与MS-Excel进行比较。是。我们可以在Microsoft Excel中测试我们的线性回归最佳线条。

使用MS-Excel的线性回归

我们的OLS方法非常接近于MS-Excel输出的' y '。

我们的OLS方法→输出y = x 4.80 + 9.15

ms excel输出y = 4.79x + 9.18。

让我们用我们的输出方程再次计算SSE

现在,平方和误差从5226.19显着减少到245.38。

普通最小二乘法看起来很简单,计算起来更容易。但是,这种OLS方法只适用于单变量和单变量的单变量数据集。多变量数据集是单个独立变量和多个因变量,我们更喜欢使用称为“梯度下降算法”的最佳机器学习算法之一。

梯度下降算法

梯度下降算法的主要目标是最小化成本函数。它是最小化误差(实际值和预测值的差异)的最佳优化算法之一。

我们来表示假设h,它是函数或学习算法。

目标与上述操作类似,我们在斜坡'm'中找到最佳拟合的截距线'y'。通过使用梯度下降算法,我们将通过应用θ0和θ1的各种参数并查看斜率截距直到收敛,找出最小cost function。

在现实世界的例子中,找出走下坡路的最佳方向是相似的。

我们朝着下降的方向迈出了一步。从每一步开始,你都会再次看到方向,快速下坡。在这个算法中使用类似的方法来最小化成本函数。

我们可以通过使用成本函数来衡量我们的假设函数的准确性,公式为

线性回归的梯度下降

为什么我们在方程中使用偏导数?由于偏导数代表了函数变化的速度,因此变量变化。在我们的情况下,我们更改theta 0和theta 1的值并确定变化率。为了应用θ0和θ1的变化率,以下是将θ0和θ1应用于每次迭代的方程式。

要找到最佳最小值,请重复步骤以应用θ0和θ1的各种值。换句话说,重复步骤直至收敛。

alpha (a)是一个学习率/下坡有多大步幅

梯度下降算法的类型

批量梯度下降

随机梯度下降

小批量梯度下降

批量梯度下降

在批量梯度下降中,为了计算成本函数的梯度,我们需要对每个步骤的所有培训示例进行求和

如果我们有3百万个样本(m个训练样本),那么梯度下降算法应该为每个epoch求和3百万个样本。为了移动一个单步,我们需要计算每个步骤300万次!

批量梯度下降不适合于大型数据集。

下面是批量梯度下降算法的python代码实现。

def gradientDescent(X, y, theta, alpha, num_iters):

"""

Performs gradient descent to learn theta

"""

m = y.size # number of training examples

for i in range(num_iters):

y_hat = np.dot(X, theta)

theta = theta - alpha * (1.0/m) * np.dot(X.T, y_hat-y)

return theta

随机梯度下降(SGD)

在随机渐变下降中,我们在每次迭代时使用一个示例或一个训练样本,而不是使用整个数据集来对每个步骤进行总和

SGD广泛用于大型数据集培训,计算速度更快,可以并行训练

在计算之前需要随机shuffle 训练实例

以下为SGD的Python代码实现

def SGD(f, theta0, alpha, num_iters):

"""

Arguments:

f -- the function to optimize, it takes a single argument

and yield two outputs, a cost and the gradient

with respect to the arguments

theta0 -- the initial point to start SGD from

num_iters -- total iterations to run SGD for

Return:

theta -- the parameter value after SGD finishes

"""

start_iter = 0

theta= theta0

for iter in xrange(start_iter + 1, num_iters + 1):

_, grad = f(theta)

theta = theta - (alpha * grad) # there is NO dot product!

return theta

批量梯度下降

它与SGD类似,它在每次迭代中使用n个 样本而不是1个

版权声明:我们致力于保护作者版权,注重分享,被刊用文章【最小二乘法案例(线性回归简化)】因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理!;

原文链接:https://www.yxiso.com/zhishi/2030547.html

发表评论:

关于我们
院校搜的目标不仅是为用户提供数据和信息,更是成为每一位学子梦想实现的桥梁。我们相信,通过准确的信息与专业的指导,每一位学子都能找到属于自己的教育之路,迈向成功的未来。助力每一个梦想,实现更美好的未来!
联系方式
电话:
地址:广东省中山市
Email:beimuxi@protonmail.com

Copyright © 2022 院校搜 Inc. 保留所有权利。 Powered by BEIMUCMS 3.0.3

页面耗时0.0342秒, 内存占用1.93 MB, 访问数据库24次

陕ICP备14005772号-15