机器学习中的线性回归

线性回归可能是统计学和机器学习中最知名且最易理解的算法之一。

在这篇文章中,你将了解线性回归算法、它的工作原理以及如何在机器学习项目中最好地使用它。在这篇文章中你将学到:

  • 为什么线性回归同时属于统计学和机器学习。
  • 线性回归的诸多名称。
  • 用于创建线性回归模型的表示和学习算法。
  • 在使用线性回归进行建模时,如何最好地准备数据。

你不需要任何统计学或线性代数知识即可理解线性回归。这是一个对该技术的高层次简要介绍,旨在为你提供足够的背景知识,以便你能够有效地解决自己的问题。

2023年12月更新:

  • 部分章节为清晰和解释而编辑。
  • 新增从头开始构建线性回归模型部分。

通过我的新书《掌握机器学习算法启动你的项目,包括分步教程和所有示例的Excel电子表格文件。

让我们开始吧。

Linear Regression for Machine Learning

机器学习中的线性回归
图片来源:Nicolas Raymond,保留部分权利。

线性回归不是统计学中的吗?

在我们深入了解线性回归的细节之前,你可能会问自己为什么我们要研究这个算法。

它不是统计学中的一种技术吗?

机器学习,更具体地说是预测建模领域,主要关注于最小化模型误差或尽可能做出最准确的预测,而牺牲可解释性。在应用机器学习中,我们将借鉴、重用和“窃取”来自许多不同领域的算法,包括统计学,并将其用于这些目的。

因此,线性回归是在统计学领域开发的,并作为理解输入和输出数值变量之间关系的模​​型进行研究,但已被机器学习借鉴。它既是一种统计算法,也是一种机器学习算法。

接下来,我们回顾一些常用来指代线性回归模型的名称。

获取您的免费算法思维导图

Machine Learning Algorithms Mind Map

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

我创建了一份方便的思维导图,其中包含60多种按类型组织的算法。

下载、打印并使用它。


还可以独家访问机器学习算法电子邮件迷你课程。

 

 

线性回归的众多名称

当你开始研究线性回归时,事情可能会变得非常混乱。

原因是线性回归已经存在了很长时间(200多年)。它已经从各个可能的角度进行了研究,而且通常每个角度都有一个新的、不同的名称。

线性回归是一个线性模型,即假设输入变量 (x) 和单个输出变量 (y) 之间存在线性关系的模型。更具体地说,y 可以通过输入变量 (x) 的线性组合来计算。

当只有一个输入变量 (x) 时,该方法被称为简单线性回归。当有多个输入变量时,统计学文献通常将该方法称为多元线性回归。

可以使用不同的技术从数据中准备或训练线性回归方程,其中最常见的一种称为普通最小二乘法。因此,通常将通过这种方式准备的模型称为普通最小二乘线性回归或仅称为最小二乘回归。

现在我们知道了描述线性回归的一些名称,让我们仔细看看所使用的表示。

线性回归模型表示

线性回归是一个吸引人的模型,因为它的表示非常简单。

表示是一个线性方程,它结合了一组特定的输入值 (x),其解是该组输入值 (y) 的预测输出。因此,输入值 (x) 和输出值都是数值。

线性方程为每个输入值或列分配一个比例因子,称为系数,用大写希腊字母 Beta (B) 表示。此外,还添加了一个额外的系数,使直线具有额外的自由度(例如,在二维图中上下移动),通常称为截距或偏置系数。

例如,在简单的回归问题中(单个 x 和单个 y),模型的形式将是

y = B0 + B1*x

在更高维度中,当我们有多个输入 (x) 时,这条线被称为平面或超平面。因此,表示是方程的形式和用于系数的特定值(例如,上面示例中的 B0 和 B1)。

通常会谈论像线性回归这样的回归模型的复杂性。这指的是模型中使用的系数数量。

当一个系数变为零时,它有效地消除了输入变量对模型的影响,从而消除了模型所做的预测(0 * x = 0)。如果你查看正则化方法,这变得相关,这些方法通过对系数的绝对大小施加压力,将一些系数驱动到零来改变学习算法以降低回归模型的复杂性。

现在我们了解了线性回归模型使用的表示,接下来回顾一些从数据中学习这种表示的方法。

What is Linear Regression?

什么是线性回归?
图片来源:Estitxu Carton,保留部分权利。

线性回归模型学习

学习线性回归模型意味着使用我们可用的数据来估计表示中使用的系数的值。

在本节中,我们将简要介绍四种准备线性回归模型的技术。这不足以从头开始实现它们,但足以了解所涉及的计算和权衡。

由于该模型研究得如此透彻,因此有更多技术。请注意普通最小二乘法,因为它是普遍使用的最常见方法。还要注意梯度下降法,因为它是机器学习课程中最常教授的技术。

1. 简单线性回归

对于只有一个输入的简单线性回归,我们可以使用统计学来估计系数。

这需要你从数据中计算统计属性,例如均值、标准差、相关性和协方差。所有数据都必须可用于遍历和计算统计数据。

这在 Excel 中作为练习很有趣,但在实践中作用不大。

2. 普通最小二乘法

当我们有多个输入时,我们可以使用普通最小二乘法来估计系数的值。

普通最小二乘法旨在最小化残差平方和。这意味着,给定通过数据的回归线,我们计算每个数据点到回归线的距离,将其平方,并将所有平方误差相加。这就是普通最小二乘法试图最小化的量。

这种方法将数据视为矩阵,并使用线性代数运算来估计系数的最优值。这意味着所有数据都必须可用,并且你必须有足够的内存来容纳数据并执行矩阵运算。

除非作为线性代数练习,否则自己实现普通最小二乘法很不寻常。你更有可能调用线性代数库中的过程。这个过程计算速度非常快。

3. 梯度下降法

当有一个或多个输入时,你可以通过迭代地最小化模型在训练数据上的误差来优化系数的值。

此操作称为梯度下降法,其工作原理是为每个系数设置随机初始值。然后计算每对输入和输出值的平方误差和。使用学习率作为比例因子,并沿最小化误差的方向更新系数。重复此过程,直到达到最小平方误差和或无法进一步改进。

使用此方法时,你必须选择一个学习率 (alpha) 参数,该参数确定每次迭代过程中要采取的改进步长。

梯度下降法常以线性回归模型为例进行讲解,因为它相对容易理解。在实践中,当你的数据集非常大(行数或列数很多)可能无法完全载入内存时,它非常有用。

4. 正则化

线性模型的训练有一些扩展,称为正则化方法。这些方法旨在最小化模型在训练数据上的平方误差和(使用普通最小二乘法),同时还降低模型的复杂性(例如模型中所有系数的数量或绝对大小之和)。

线性回归的两种流行正则化程序示例是:

  • Lasso 回归:普通最小二乘法经过修改,还最小化系数的绝对和(称为 L1 正则化)。
  • 岭回归:普通最小二乘法经过修改,还最小化系数的平方绝对和(称为 L2 正则化)。

当输入值存在共线性且普通最小二乘法会使训练数据过拟合时,这些方法非常有效。

现在你了解了学习线性回归模型中系数的一些技术,接下来我们看看如何使用模型对新数据进行预测。

使用线性回归进行预测

鉴于表示是一个线性方程,进行预测就像解决特定输入集的方程一样简单。

让我们通过一个例子具体说明。假设我们根据身高 (x) 预测体重 (y)。此问题的线性回归模型表示将是

y = B0 + B1 * x1

或者

体重 = B0 + B1 * 身高

其中 B0 是偏置系数,B1 是身高列的系数。我们使用一种学习技术来找到一组好的系数。一旦找到,我们可以插入不同的身高值来预测体重。

例如,我们使用 B0 = 0.1 和 B1 = 0.5。让我们将它们代入并计算身高为 182 厘米的人的体重(以千克为单位)。

体重 = 0.1 + 0.5 * 182

体重 = 91.1

你可以看到上面的方程可以绘制成二维平面上的一条直线。无论身高如何,B0 都是我们的起点。我们可以输入从 100 到 250 厘米的一系列身高,将它们代入方程,得到体重值,从而绘制出我们的直线。

Sample Height vs Weight Linear Regression

身高与体重线性回归示例

现在我们知道了如何根据学习到的线性回归模型进行预测,接下来我们来看看一些准备数据以充分利用这种模型的经验法则。

为线性回归准备数据

线性回归已被深入研究,有大量文献阐述了数据必须如何构造才能最好地利用该模型。

因此,当谈论这些要求和期望时,有很多复杂的说法,可能会令人望而生畏。实际上,在使用普通最小二乘回归(线性回归最常见的实现方式)时,你可以将这些规则更多地作为经验法则。

尝试使用这些启发式方法对数据进行不同的准备,看看哪种方法最适合你的问题。

  • 线性假设。线性回归假设你的输入和输出之间存在线性关系。它不支持任何其他关系。这可能很明显,但在属性很多时记住这一点很有用。你可能需要转换数据以使关系线性化(例如,对指数关系进行对数转换)。
  • 去除噪声。线性回归假设你的输入和输出变量没有噪声。考虑使用数据清洗操作,让你更好地暴露和澄清数据中的信号。这对于输出变量最为重要,如果可能,你希望去除输出变量 (y) 中的异常值。
  • 去除共线性。当你的输入变量高度相关时,线性回归将使数据过拟合。考虑计算输入数据的成对相关性并去除相关性最高的变量。
  • 高斯分布。如果你的输入和输出变量具有高斯分布,线性回归将做出更可靠的预测。你可能会通过对变量进行转换(例如,对数或 BoxCox 转换)来使其分布更像高斯分布而获得一些好处。
  • 重新缩放输入:如果你使用标准化或归一化重新缩放输入变量,线性回归通常会做出更可靠的预测。

请参阅维基百科上关于线性回归的文章,其中列出了模型所做的假设。在普通最小二乘法维基百科文章中也有一个很好的假设列表。

从头开始构建线性回归模型

简单线性回归(带一个自变量)的公式为

Formula

其中

  • y 是因变量(目标),
  • x 是自变量(特征),
  • m 是直线的斜率(也称为权重或系数),
  • b 是 y 轴截距。

为了找到最小化误差的 m 和 b 值,我们可以使用普通最小二乘法。m 和 b 的公式(根据数据点)为

Formula

Formula

这是上述公式的 Python 实现。我们将使用 Numpy 库来创建训练算法、预测函数、RMSE 函数和样本数据。 

  1. 我们将使用 Numpy 函数将方程转换为 Python,并计算 mb。  
  2. 我们还将创建一个预测和 RMSE 函数,用于分析模型性能。 

一旦理解了 Numpy 的基础知识,将数学方程转换为 Python 代码就变得容易了。

输出

我们的预测值与 Y 非常吻合,RMSE 也较低。

为了更好地理解我们的结果,我们将使用 Matplotlib 进行可视化。我们将创建数据点的散点图和预测的线图。

Scatter plot and regression line

正如我们所见,我们的回归线完美拟合,损失最小。

进一步阅读

关于线性回归,还有很多值得阅读的资料。在进一步阅读之前,先开始使用它吧,当你想要深入研究时,下面是一些你可以使用的参考资料。

提及线性回归的机器学习书籍

这些是一些你可能拥有或可以访问的机器学习书籍,它们在机器学习的背景下描述了线性回归。

关于线性回归的帖子

以下是我遇到的一些关于线性回归的有趣文章和博客文章。

还有没有更多关于线性回归,且侧重于机器学习和预测建模的好资料?请留言告诉我。

总结

在这篇文章中你了解了用于机器学习的线性回归算法。

你涵盖了许多内容,包括

  • 描述线性回归模型时常用的名称。
  • 模型使用的表示。
  • 用于估计模型中系数的学习算法。
  • 在使用线性回归准备数据时需要考虑的经验法则。

尝试线性回归并熟悉它。

你对线性回归或这篇文章有什么疑问吗?

请留言提问,我将尽力回答。

了解机器学习算法的工作原理!

Mater Machine Learning Algorithms

几分钟内了解算法如何工作

...只需算术和简单示例

在我的新电子书中探索如何实现
精通机器学习算法

它涵盖了**10种顶级算法**的**解释**和**示例**,例如:
_线性回归_、_k-近邻_、_支持向量机_等等...

最后,揭开
机器学习算法的神秘面纱

跳过学术理论。只看结果。

查看内容

机器学习中的线性回归的121条回复

  1. Amit P Jagtap 2016年10月22日 凌晨12:19 #


    感谢这篇好文章。
    我对线性回归假设有一个疑问。
    我觉得在单变量线性回归方程 Y=W0+W1*X+E 中,误差项 E 总是小于 W1*X 项。如果 E > W1*X,则意味着其他变量对因变量 Y 的影响更大。
    请指正我的错误。

    • Jason Brownlee 2016年10月22日 早上7:00 #

      嗨 Amit,我不确定你的意思。

      简单线性回归方程是

      • Prof Narain Sinha 2019年1月8日 晚上8:03 #

        如果 E>w1*x,那并不意味着什么。实际上,E 被假定可以取 - 无穷大到 + 无穷大之间的任何值

      • sagar dnyane 2019年7月5日 晚上10:22 #

        y=mx+c
        线性回归方程。

        • Aamir 2021年8月20日 凌晨12:12 #

          这是一条直线的方程。m 是斜率,c 是常数。

          • Adrian Tam
            Adrian Tam 2021年8月20日 凌晨1:39 #

            是的,没错。谢谢。

  2. Nuwan C 2017年5月3日 早上11:53 #

    嗨 Amith, Jason,
    我想 Amith 是想说,关于 n 线性回归的误差是线性方程的一部分吗?如果我错了,请纠正我。

  3. Terry John 2017年9月4日 下午4:41 #

    嗨 Jason
    这篇文章很好
    这帮助我完成了机器学习中的线性回归项目
    但我对线性代数的概念仍然感到有点困惑

  4. Sureshbabu 2017年9月7日 晚上8:54 #

    对线性回归的解释很棒。

  5. Tom 2017年9月12日 下午1:40 #

    有人能解释一下这个算法的时间复杂度吗?

    • Joe 2019年11月26日 早上5:29 #

      简单线性回归的训练时间复杂度为 O(p^2n+p^3),预测时间复杂度为 O(p)。

  6. luky 2017年10月31日 早上10:11 #

    嗨 Jason,如果每个 X 都有多个 Y 值怎么办?那么为每个 X 找到一个神奇的通用 Y 值是不是胡说八道?例如,每个 X 有 10 个不同的 Y 值,Y 轴上的范围很大。这可能只有在每个 X 只有一个 Y 值,或者多个值彼此接近时才有意义。因为有多个 Y 值,在大多数情况下你永远不会得到正确的 Y。那么简单平均值是不是比尝试用线性回归做一些魔术更好?

    • Jason Brownlee 2017年10月31日 下午2:50 #

      如果你的问题是预测一个类别标签,那么你可以使用多标签分类来预测给定 X 的多个 y 值。

      • luky 2017年11月14日 早上10:02 #

        嗨 Jason,谢谢你的回复。我刚刚更多地研究了线性回归,现在对我来说更清楚了。我必须提高我不足的数学和统计(当然还有机器学习)技能。所以进展相当缓慢 : )。最近我在研究线性方程时,注意到它和线性回归(斜截式)有相同的公式 : )。相当令人惊讶,但这样线性回归的公式就更熟悉了。谢谢你,祝好,稍后我也会研究类别标签问题。Luky

  7. sonth 2017年12月11日 下午3:26 #

    非常感谢你,Jason。我一直在寻找 Weka 中应用于数据集的线性回归,以获得清晰的理解。你能告诉我哪里可以找到它们,就像你解释波士顿房价数据集那样吗?

  8. Riccardo 2017年12月16日 早上6:22 #

    谢谢这篇好文章!请问,我在大学做项目需要更多帮助:我需要将(不太难,我不是专家)机器学习算法应用于金融数据集,使用 R 语言。我选择了线性回归,其中资产的每日价格是 y,每日开盘价/最高价/最低价是 x。我只是使用了 lm 命令进行拟合,分析了结果并让模型预测了值。变量显然是相关的,如果我将原始价格绘制在 x 轴上,预测值绘制在 y 轴上,这些点会像一条直线一样延伸。我能得出结论,价格和开盘价/最高价/最低价之间存在线性相关性吗?也许这很明显,但我问是因为我不确定我所做的所有这些是否都正确。
    再次感谢,来自意大利的问候 🙂

  9. Sam 2018年1月11日 早上9:01 #

    你好,

    我真的很喜欢你的文章,内容全面但又简单易懂。我正在努力理解机器学习,并且正在观看关于回归的教程。所以我的问题是,对于给定的数据集,在构建模型之前,我是否应该进行特征提取——使用前向选择、后向消除或双向消除?在我获得特征之后,才构建模型,并使用普通最小二乘法来构建模型。我的理解正确吗?我正在寻找一个关于首先做什么的顺序。

    谢谢,
    山姆

    • Jason Brownlee 2018年1月12日 早上5:48 #

      是的,你可以。尝试使用和不使用特征选择,以确保它能提高技能。

  10. Dorukhan Sergin 2018年3月9日 凌晨3:51 #

    嗨,Jason!

    感谢这篇精彩的文章总结了主要概念。我只想表达我对一件事的疑问。你确定线性回归假设输入是高斯分布吗?输入应该只提供关于输出分布均值的信息(这是唯一假设的高斯分布)。用数学术语表达就是
    Y = beta0 + beta1*X + eps
    因为
    eps ~ N(0,sigma)
    Y|X ~ N(beta0 + beta1*X , sigma)

    如你所见,对 X 没有假设。重要的是我们的 X 如何代表我们从中抽取 X 的真实总体,这样我们才能声称 X 和 Y 之间的线性关系在广泛的输入范围内成立。

    你觉得呢?

    感谢你的评论!

  11. 程序员 2018年3月31日 凌晨4:16 #

    你好,

    在回归问题中

    如果我在数据中拟合了一条线,这意味着值 Y 和其他特征之间存在线性关系。

    现在,我们还能得出什么结论?高权重特征与值 Y 有相似之处的可能性是否存在?

  12. Trolliyama 2018年4月25日 凌晨4:25 #

    假设我有三个特征 A、B 和 C,而权重用 W 表示。我提出了以下假设,
    假设 = 偏差 + A*W1 + B*W2 + C*W3 + A^2*W4
    上面的假设正确吗?还是我需要将每个特征都设为二次方?像这样,
    假设 = 偏差 + A*W1 + B*W2 + C*W3 + A^2*W4 + B^2*W5 + C^2*W6
    请说明为什么其中一个或两个都正确?

    • Jason Brownlee 2018年4月25日 早上6:38 #

      不,你可以混合使用正常输入和平方输入。

      我建议仔细实验,看看哪种方法最适合你的特定数据。

  13. Miguel 2018年4月25日 晚上11:27 #

    如果我错了请纠正我…但是所有训练/创建/制作/拟合模型到数据集的方法都与最小化平方误差函数有关吗?

    方法 1 我相信也最小化了 SSE,但使用了统计学。
    方法 2 最小化 SSE
    方法 3 最小化多变量函数的 SSE
    方法 4 在附加约束下最小化 SSE

    我错了吗?

  14. alv 2018年5月2日 晚上8:54 #

    线性回归问题的以下数据
    X. Y
    2104. 460
    1416. 232
    1534. 314
    852. 178

    以下哪组值将使训练样本的误差最小?
    1. m=4, c=300
    2. m=5, c=30

  15. vishal 2018年7月1日 晚上6:58 #

    哪本书适合深入学习线性回归?

  16. Asma Rahman 2018年8月19日 凌晨12:48 #

    我如何或从哪里获得 B0 和 B1 的值?我是初学者。

    • Jason Brownlee 2018年8月19日 早上6:25 #

      算法将估计它们,从示例中学习它们。

      例如,在 scikit-learn 等库中实现的算法。

  17. JG 2018年10月2日 凌晨1:56 #

    你好 jason,
    谢谢。

    “线性”回归这个词术语经常被误用(由于语言问题)。例如,我可以使用(当然)线性回归来处理多项式自变量 (x) 的因变量 (Y)。如何做到?通过添加更多层和输出层的“relu”激活函数,我计算了三次、二次和一些其他多项式(Y=x^3,或 Y = x^2,等等)。
    但如果你想更“正统”或规范,你只需在输入中添加更多特征,例如 X^2(作为当前 x 特征的新输入特征),等等……所以显然线性表达式只意味着所有特征都相加(beta0 * x + beta1*X^2 +…),这就是线性的全部含义……所以它能实现非线性依赖 Y= f(x) 依赖关系。你的看法如何?
    致敬
    非常感谢你的所有教程!

    • Jason Brownlee 2018年10月2日 早上6:28 #

      向线性模型添加输入变量的非线性变换仍然意味着模型是线性的。它仍然是输入值的加权和。

      你可以选择在变换中还是在模型中管理复杂性。

      • JG 2018年10月2日 早上8:25 #

        好的。谢谢

  18. kotrappa SIRBI 2018年10月16日 晚上11:57 #

    好文章,非常感谢,我对机器学习应用更感兴趣。请提供参考资料,如书籍或网页链接,谢谢

    • Jason Brownlee 2018年10月17日 早上6:53 #

      我有很多应用示例。你具体在寻找什么?

  19. F.R. 2018年11月28日 凌晨1:13 #

    在“使用线性回归进行预测”部分有一个错误。

    “weight = 0.1 + 0.05 * 182”中应该是 0.5 而不是 0.05

  20. Ada 2019年1月25日 下午4:52 #

    嘿,你能指导我如何处理 # 带有 x 和 y 的训练数据,即一维数据 x 和标签 y 吗?
    应该使用哪种方法??

    • Jason Brownlee 2019年1月26日 早上6:08 #

      抱歉,我不明白,你能详细说明一下吗?

  21. Prateek Anand 2019年6月16日 晚上7:19 #

    嘿 ,
    我想问一下哪种数据集对线性回归最好,哪种最差?另外,你能推荐一些关于其他算法(如逻辑回归和 SVM)类似理论信息的书籍或文章吗?
    谢谢

    • Jason Brownlee 2019年6月17日 早上8:20 #

      输入和输出之间存在线性关系的数据集非常适合线性回归。

      具有非线性关系的数据集可能不适合。

  22. Prashanth 2019年9月6日 凌晨1:24 #

    我读了上面的文章,写得很好。先生,要从头开始实现线性回归算法,需要多少知识?

  23. Sai Krishna 2020年1月6日 晚上8:13 #

    https://scholarworks.umass.edu/cgi/viewcontent.cgi?article=1308&context=pare

    您写道,线性回归将“变量的正态性”视为一个假设。但上述研究工作表明这是一个误解,真正需要的是残差误差的正态性。请您核实一下。

  24. Suryansh 2020年1月15日 晚上11:43 #

    你好,我有一条满足数据的线性线,但问题是我在同一个图中画了两条不同的线,如何解决这个问题
    我无法在这里上传那个图,你能提供我其他方式来分享我得到的图吗

  25. Skylar 2020年5月13日 早上7:49 #

    嗨,Jason,

    我有一个关于线性模型的问题:假设我们有多个变量,并想把它们输入到线性模型中。我看到有些人将所有变量作为输入并同时放入模型中;我还看到有些人每次只测试并将一个变量放入线性模型中,然后对每个变量逐个运行模型。我对这两种选项之间的区别感到困惑,尽管这两种选项都可以得出 p 值(第二种需要进行多次校正)和系数,但我认为这两种方法的结果是不同的。你能给我解释一下吗?提前谢谢你!

    • Jason Brownlee 2020年5月13日 下午1:20 #

      通常,所有相关变量都作为输入提供给模型并用于进行预测。

      • Skylar 2020年5月13日 下午1:55 #

        明白了,谢谢你 Jason!

  26. Iheb 2020年6月4日 早上8:14 #

    嗨,Jason,

    我有一个关于多元线性回归的问题。

    这是我的部分代码

    from sklearn.model_selection import train_test_split

    train_X,test_X,train_y,test_y = train_test_split(X,y,test_size = 0.33 ,random_state=42)
    reg = LinearRegression()
    model = reg.fit(train_X,train_y)
    predictions = model.predict(test_X)

    print(“r2_score : %.2f” % r2_score(test_y,predictions))
    print(“Mean_squared_error : %.2f ” % mean_squared_error(test_y,predictions))

    for i in range(0,3)
    print(“model parameters : %.2f” % model.coef_[i])

    print(“model intercept : %.2f” % model.intercept_)

    plt.scatter(test_X.TV,test_y)
    plt.plot(test_X.TV,predictions)
    plt.show()

    plt.scatter(test_X.radio,test_y)
    plt.plot(test_X.radio,predictions)
    plt.show()

    plt.scatter(test_X.newspaper,test_y)
    plt.plot(test_X.newspaper,predictions)
    plt.show()

    问题是我想要这样做

    plt.scatter(test_X.TV,test_y)
    plt.plot(test_X.TV,predictions)
    plt.show()

    但是,我得到了一个错误“x 和 y 的大小必须相同”,肯定是因为 X 是三维的而 y 是一维的,即使我将 X 展平,也会得到一个错误。我该怎么做才能绘制出类似上面的图表?

    谢谢你的帮助

  27. Alexandre 2020年7月12日 早上9:38 #

    在机器学习中,我们是需要检查训练数据还是完整数据集的假设?谢谢!

    • Jason Brownlee 2020年7月12日 早上11:30 #

      理想情况下,是的,但有时如果我们忽略算法的要求,也能达到良好/最佳性能。

      所以,是也不是。

  28. Kelly Ryan 2020年7月18日 早上8:41 #

    我特别不想写这个,但是,作为一名博士,你应该能够写出语法和机械结构都正确的英语。不幸的是,你非常需要改进写作的机械结构(尤其是逗号结构)。我确实很感谢你试图提供有用的信息,但从学术角度来看,这里的基本标点符号简直糟糕透顶。你不在乎这个吗?抱歉语气严厉,但懒得用连贯的形式表达你的想法,这表明你对读者、我们的语言和你自己的思想缺乏尊重。如果你不表现出这种尊重,那么那些更懂行的人也很不可能回报你任何尊重。

    看看这一段,告诉我你看不出两个句子中的主要标点错误。(如果你真的不知道,用逗号对分隔非必要子句是逗号用法的基本规则,而你完全忽略了它。)整篇文章都是这样。

    “机器学习,更具体地说是预测建模领域[需要逗号]主要关注于最小化模型误差或尽可能做出最准确的预测,而牺牲可解释性。在应用机器学习中,我们将借鉴、重用和“窃取”来自许多不同领域的算法,包括统计学[需要逗号]并将其用于这些目的。”

    显然每个人都会犯错,但反复犯这种基本错误,要么是缺乏理解,要么是完全无视。我真诚地希望一位博士能努力不沦落到如今网上常见的像高中生胡言乱语的水平。如果你选择成为一名学者,如果你能努力保持一定的学术严谨性,而不是助长我们书面语言的退化,那么同行学者们一定会感激不尽。如果你难以识别基本的标点错误,你可以阅读一本关于它的书。任何能完成博士课程的人肯定都能做到这一点。

    • Jason Brownlee 2020年7月18日 下午1:12 #

      感谢你坦诚的反馈。研究科学家也是人。

      我聘请了一个编辑团队来审阅所有新的教程。希望他们的标准更高。

  29. timenow 2020年8月4日 凌晨3:07 #

    我数学很差,背景是市场营销……我需要多长时间才能学习线性回归中的复杂概念?

  30. Arundhati 2020年9月3日 下午5:37 #

    嗨,Jason,

    假设我有一个数据集,其中3个特征高度相关,相关系数约为0.8。这些特征也与目标高度相关。

    如果我删除其中一个特征,我将解决多重共线性问题。然而,这难道不会导致遗漏变量偏差,从而导致内生性吗?

    如何在没有内生性和避免多重共线性之间取得平衡?

    • Jason Brownlee 2020年9月4日 早上6:25 #

      也许可以尝试依次删除每个变量,并评估其对模型的影响。使用能够产生最佳预测性能的组合。

  31. P S Nayak 2021年1月14日 凌晨3:54 #

    好文章。

    我们应该在回归方程中写 y-hat 而不是 y,对吗?因为它是一个预测值。

  32. Chengbi Liu 2021年1月22日 下午2:53 #

    嗨,Jason,

    非常感谢这篇好文章。我能问一个关于回归系数的问题吗?我正在尝试构建一个多元回归模型,我想用一组已知值来实际建模系数或参数。这可行吗?例如 y(u,v,t)=f0+f1(u, v, t)*x1+f2(u, v, t)*x2+…+fn(u,v,t)*xn+误差项,其中 u, v, 和 t 是已知值,我的目标是找到模型 f1, f2… fn 来最小化损失函数。

    如果我没有表达清楚,请原谅。非常感谢你的帮助!

    祝好,
    程璧

    • Jason Brownlee 2021年1月23日 早上6:58 #

      不客气。

      是的,如果你有固定值和未知值,那么你可以使用优化算法来找到最小化误差的未知值。梯度下降可能是一个好的开始。

  33. Himanshi Dudeja 2021年1月26日 下午5:36 #

    谁能帮我回答这个问题?
    线性回归分类器在 sklearn 中所在的类的名称是什么?

  34. Srinivas 2021年4月15日凌晨3:13 #

    一篇非常好的文章,真的很有用

  35. Tarnikanti Srikanth 2021年4月18日晚上7:50 #

    好文章,信息量大

  36. Elazab Rageb 2021年5月20日早上5:06 #

    嘿,好文章
    我是一名电气工程师,在我的论文中,我想用粘土制作低密度聚乙烯作为电绝缘材料。
    我制作了7个粘土含量在0%到15%之间的样品。
    我已经对它进行了测试(电气和机械)。
    我想使用机器学习来确定我制作的样品中最佳粘土含量,甚至是我没有制作的含量。
    有什么建议我应该从哪里开始?
    提前感谢

  37. Lou Dingyuan 2021年5月26日晚上6:02 #

    好文章,信息量大

  38. Mary 2021年6月7日中午12:47 #

    认知偏差类型还有很多很多,但我会将我的文章限制在这四种最重要的类型。

  39. Poonam Rawat 2021年6月29日晚上11:25 #

    好的信息和知识

  40. Vijender 2021年7月8日凌晨3:12 #

    这真是棒极了的培训。

  41. Asier 2021年8月9日凌晨12:31 #

    嗨,Jason,

    感谢这篇文章。

    我只有一个问题:这些数据假设是统计线性回归的要求,在机器学习线性回归中可以忽略吗?我想说,在机器学习中,使用这个模型的唯一要求是输入和输出之间存在线性关系。我 HTH统计要求被忽略是由于更注重预测性而不是可解释性。

    • Jason Brownlee 2021年8月9日早上5:57 #

      预测性优先,如果你可以通过打破规则/假设获得更好的结果,那么就这样做吧。

  42. jack andru 2021年8月10日下午4:04 #

    解释得很好,各位也可以看看这篇关于线性回归的博客 https://mindmajix.com/linear-regression

    • Adrian Tam
      Adrian Tam 2021年8月11日早上6:39 #

      感谢分享。

  43. Amit Ranjan Srivastava 2021年8月12日晚上11:59 #

    非常棒且信息丰富的培训。

    • Adrian Tam
      Adrian Tam 2021年8月13日凌晨2:09 #

      谢谢你。很高兴你喜欢。

  44. bharat kumar 2021年8月18日早上7:40 #

    感谢分享

    • Adrian Tam
      Adrian Tam 2021年8月18日中午11:52 #

      谢谢。希望你喜欢。

    • Manikanth k 2022年2月15日晚上7:04 #

      这是一篇信息量很大的文章,非常感谢,对我很有帮助

  45. Prabhu Subramanian 2021年10月20日晚上5:13 #

    谢谢分享,乔

  46. Anu 2021年10月21日凌晨3:39 #

    大家好,

    感谢这篇文章。我有一个问题。如果我只有两个或更少的特征,使用什么样的非线性算法比较好?我说的非线性并不是指多项式。我确实希望我的模型能够学习数据中的特定模式。而且这种模式看起来像随机信号。

    • Adrian Tam
      Adrian Tam 2021年10月22日凌晨3:42 #

      您是想用参数模型还是非参数模型?我们可能需要一个参数模型,否则就难以处理。这意味着,我们假设数据的一些特性(例如,多项式),然后估计参数(例如,多项式的系数)。如果不做任何假设,就很难做到。

  47. Madhu Chennu 2021年12月9日下午4:12 #

    我仔细阅读了您的文章。这真是一篇信息量很大的文章。请继续发布像这样信息量大的文章。谢谢。

    • Adrian Tam
      Adrian Tam 2021年12月10日凌晨4:18 #

      谢谢。很高兴你喜欢。

  48. Alok Ghosh 2021年12月16日晚上7:34 #

    精彩而详细。非常好。

  49. The Flash 2022年2月4日凌晨4:32 #

    你好,我是机器学习新手。我正在学习线性回归算法。我有一个疑问,就是在成本函数中,我们将SSE除以1/2m。我明白1/2在梯度下降的参数计算中会抵消,但是为什么1/m会出现在成本函数中呢?
    另外,如果我不包含它,可以吗?

    • James Carmichael 2022年2月5日上午11:06 #

      你好...这个因子有助于建立一个平均值。

      • TheFlash 2022年2月19日凌晨12:40 #

        好吧,平均值有什么帮助呢?

        • TheFlash 2022年2月19日凌晨12:47 #

          请详细解释一下。另外,如果我们不包含1/m,会出现什么问题。

  50. TheFlash 2022年2月4日晚上6:35 #

    你好,我是机器学习新手。在学习线性回归的成本函数时,我了解到 J(theta) = 1/2m 求和(h(theta(i)) - y(i))^2
    其中 m 是训练样本的总数

    取 1/2 是为了简化计算吗?

    我的问题是,我们正在对 SSE 进行求和,然后除以训练样本的数量 (m)。
    那么,我们为什么要除以 m 来求平均值呢?
    我们不能直接计算误差项的总和(而不除以 m),这样我们就得到了需要通过寻找最优 theta 值来最小化的总误差,然后我们的工作就完成了吗?

    请详细解释一下,因为我试图在很多地方找到答案,但没有找到满意的答案,而且在讲座中,教授也没有澄清这个疑问。有些人回答了,但无法证明。我问他们无论如何会造成什么不同?

    另外,请附上一些我可以进一步阅读的资源。谢谢。

  51. Ivy Datta 2022年3月25日晚上7:06 #

    我仔细阅读了您的文章。这真是一篇信息量大且有用的文章。请继续发布此类信息丰富的文章。谢谢。

    • James Carmichael 2022年3月28日早上7:57 #

      很棒的反馈,Ivy!继续努力!

  52. arpita sen 2022年4月1日早上6:42 #

    内容非常有帮助,易于理解

    • James Carmichael 2022年4月1日早上9:02 #

      谢谢您的反馈,Arpita!

  53. James Adam 2022年7月29日晚上11:00 #

    你好,

    完成 Salesforce 在线培训后,我正在学习机器学习。我发现这篇文章对我很有帮助。我的问题是,我可以在 Salesforce 中使用机器学习吗?

    任何建议都将不胜感激。

    • James Carmichael 2022年7月30日早上10:05 #

      你好,James...请详细说明您使用机器学习模型的目标,以便我们更好地帮助您。

  54. Anny Jones 2023年1月27日晚上10:48 #

    好建议。

    • James Carmichael 2023年1月28日早上8:43 #

      感谢您的反馈和支持,Anny!我们非常感激!

  55. Donald Fager 2023年4月27日凌晨1:10 #

    感谢您分享这篇关于机器学习线性回归的信息丰富的文章。对于机器学习新手,想要了解更多线性回归的人来说,这是一个极好的资源。

    文章对线性回归进行了清晰简洁的介绍,用简单的术语解释了概念,并提供了示例帮助读者更好地理解这个主题。作者还介绍了不同类型的线性回归模型,包括简单线性回归、多元线性回归和多项式回归,这对于希望将这项技术应用于实际问题的读者来说很有帮助。

    • James Carmichael 2023年4月27日早上9:42 #

      谢谢 Donald 的精彩反馈!我们非常感谢。

发表评论

Machine Learning Mastery 是 Guiding Tech Media 的一部分,Guiding Tech Media 是一家领先的数字媒体出版商,专注于帮助人们了解技术。访问我们的公司网站以了解更多关于我们的使命和团队的信息。