Skip to content

Latest commit

 

History

History
278 lines (170 loc) · 8.49 KB

simple-linear-regression-tutorial-for-machine-learning.md

File metadata and controls

278 lines (170 loc) · 8.49 KB

机器学习中的简单线性回归教程

原文: https://machinelearningmastery.com/simple-linear-regression-tutorial-for-machine-learning/

线性回归是一种非常简单的方法,但已被证明对大量情况非常有用。

在这篇文章中,您将逐步了解线性回归的工作原理。阅读这篇文章后你会知道:

  • 如何逐步计算简单的线性回归。
  • 如何使用电子表格执行所有计算。
  • 如何使用您的模型对新数据做出预测。
  • 一种快捷方式,可以大大简化计算。

本教程是为开发人员编写的,不承担任何数学或统计学的先前背景。

编写本教程的目的是让您在自己的电子表格中进行操作,这将有助于使概念坚持下去。

让我们开始吧。

更新#1 :修正了 RMSE 计算中的错误。

Simple Linear Regression Tutorial for Machine Learning

机器学习的简单线性回归教程 照 Catface27 ,保留一些权利。

教程数据集

我们正在使用的数据集是完全组成的。

以下是原始数据。

x	y
1	1
2	3
4	3
3	2
5	5

属性 x 是输入变量,y 是我们试图预测的输出变量。如果我们得到更多数据,我们只有 x 值,我们会对预测 y 值感兴趣。

下面是 x 与 y 的简单散点图。

Plot of the Dataset for Simple Linear Regression

简单线性回归数据集的图

我们可以看到 x 和 y 之间的关系看起来很线性。在中,我们可能会在从图的左下角对角线到右上角绘制一条线,以概括地描述数据之间的关系。

这是一个很好的迹象,表明使用线性回归可能适合这个小数据集。

获取免费算法思维导图

Machine Learning Algorithms Mind Map

方便的机器学习算法思维导图的样本。

我已经创建了一个由类型组织的 60 多种算法的方便思维导图。

下载,打印并使用它。

简单线性回归

当我们有一个输入属性(x)并且我们想要使用线性回归时,这称为简单线性回归。

如果我们有多个输入属性(例如 x1,x2,x3 等),这将被称为多元线性回归。线性回归的过程与多元线性回归的过程不同且简单,因此它是一个很好的起点。

在本节中,我们将从训练数据中创建一个简单的线性回归模型,然后对我们的训练数据做出预测,以了解模型在数据中学习关系的程度。

使用简单线性回归,我们想要对数据建模如下:

y = B0 + B1 * x

这是一条线,其中 y 是我们想要预测的输出变量,x 是我们知道的输入变量,B0 和 B1 是我们需要估计的移动线的系数。

从技术上讲,B0 称为截距,因为它确定了线截取 y 轴的位置。在机器学习中,我们可以称之为偏差,因为它被添加以抵消我们所做的所有预测。 B1 项称为斜率,因为它定义了线的斜率或者在我们添加偏差之前 x 如何转换为 y 值。

目标是找到系数的最佳估计值,以最小化从 x 预测 y 的误差。

简单回归是很好的,因为我们不是必须通过反复试验来搜索值,或者使用更高级的线性代数来分析计算它们,我们可以直接从我们的数据中估算它们。

我们可以通过估算 B1 的值来开始:

B1 = sum((xi-mean(x))*(yi-mean(y)))/ sum((xi-mean(x))^ 2)

其中 mean()是数据集中变量的平均值。 xi 和 yi 指的是我们需要在数据集中的所有值上重复这些计算,并且 i 指的是 x 或 y 的第 i 个值。

我们可以使用 B1 和我们的数据集中的一些统计量来计算 B0,如下所示:

B0 =平均值(y) - B1 *平均值(x)

那不错吧?我们可以在电子表格中计算这些内容。

估算坡度(B1)

让我们从等式的顶部开始,即分子。

首先,我们需要计算 x 和 y 的平均值。平均值计算如下:

1 / n *总和(x)

其中 n 是值的数量(在这种情况下为 5)。您可以在电子表格中使用 AVERAGE()函数。让我们计算 x 和 y 变量的平均值:

mean(x)= 3

mean(y)= 2.8

现在我们需要从均值计算每个变量的误差。让我们先用 x 做这个:

x	mean(x)	x - mean(x)
1	3	-2
2	3	-1
4	3	1
3	3	0
5	3	2

现在让我们为 y 变量做这个

y	mean(y)	y - mean(y)
1	2.8	-1.8
3	2.8	0.2
3	2.8	0.2
2	2.8	-0.8
5	2.8	2.2

我们现在有用于计算分子的部分。我们需要做的就是将每个 x 的误差与每个 y 的误差相加,并计算这些乘法的总和。

x - mean(x)	y - mean(y)	Multiplication
-2	-1.8	3.6
-1	0.2	-0.2
1	0.2	0.2
0	-0.8	0
2	2.2	4.4

总结最后一列,我们将分子计算为 8。

现在我们需要计算等式的底部来计算 B1 或分母。这被计算为每个 x 值与平均值的平方差的总和。

我们已经计算了每个 x 值与均值的差值,我们需要做的就是对每个值求平方并计算总和。

x - mean(x)	squared
-2	4
-1	1
1	1
0	0
2	4

计算这些平方值的总和可以得到 10 的分母

现在我们可以计算出斜率的值。

B1 = 8/10

B1 = 0.8

估计拦截(B0)

这更容易,因为我们已经知道所涉及的所有术语的值。

B0 = mean(y) – B1 * mean(x)

要么

B0 = 2.8 - 0.8 * 3

or

B0 = 0.4

简单。

做出预测

我们现在有了简单线性回归方程的系数。

y = B0 + B1 * x

or

y = 0.4 + 0.8 * x

让我们通过对我们的训练数据做出预测来试验模型。

x	y	predicted y
1	1	1.2
2	3	2
4	3	3.6
3	2	2.8
5	5	4.4

我们可以将这些预测作为我们数据的一条线。这让我们可以直观地了解该线对数据进行建模的程度。

Simple Linear Regression Model

简单线性回归模型

估计错误

我们可以为我们的预测计算误差,称为均方根误差或 RMSE。

RMSE = sqrt(sum((pi - yi)^ 2)/ n)

其中 sqrt()是平方根函数,p 是预测值,y 是实际值,i 是特定实例的索引,n 是预测数,因为我们必须计算所有预测值的误差。

首先,我们必须计算每个模型预测与实际 y 值之间的差异。

pred-y	y	error
1.2	1	0.2
2	3	-1
3.6	3	0.6
2.8	2	0.8
4.4	5	-0.6

我们可以很容易地计算出每个误差值的平方(误差*误差或误差^ 2)。

error	squared error
0.2	0.04
-1	1
0.6	0.36
0.8	0.64
-0.6	0.36

这些误差的总和是 2.4 个单位,除以 n 并取平方根给出了:

RMSE = 0.692

或者,每个预测平均错误约 0.692 个单位。

捷径

在我们结束之前,我想向您展示一个计算系数的快捷方式。

简单线性回归是最简单的回归形式,研究最多。您可以使用快捷方式快速估算 B0 和 B1 的值。

真的,它是计算 B1 的捷径。 B1 的计算可以重写为:

B1 = corr(x,y)* stdev(y)/ stdev(x)

其中 corr(x)是 x 和 y 之间的相关性,stdev()是变量的标准偏差的计算。

相关性(也称为 Pearson 相关系数)是相关两个变量在-1 到 1 范围内的度量。值为 1 表示两个变量完全正相关,它们都移动在相同的方向上,值-1 表示它们完全负相关,当一个移动另一个方向的另一个移动时。

标准差衡量数据从平均值中分散的平均值。

您可以在电子表格中使用函数 PEARSON()来计算 x 和 y 的相关性为 0.852(高度相关)和函数 STDEV(),以计算 x 的标准偏差为 1.5811,y 为 1.4832。

在我们中插入这些值有:

B1 = 0.852 * 1.4832 / 1.5811

B1 = 0.799

足够接近上述值 0.8。请注意,如果我们在电子表格中使用更全面的精度来得到相关和标准差方程,我们得到 0.8。

摘要

在这篇文章中,您了解了如何在电子表格中逐步实现线性回归。你了解到:

  • 如何根据训练数据估算简单线性回归模型的系数。
  • 如何使用您学习的模型做出预测。

您对此帖子或线性回归有任何疑问吗?发表评论并提出问题,我会尽力回答。