根据您的特定数据集确定的最佳回归技术的哪种分类?_数据

       欢迎来到 雲闪世界。当你在某个领域工作足够长的时间后,你会永远记住一些课程、概念、课程和老师。

例如,我妈妈是一名教师,她记得那位让她第一次爱上哲学的代课老师。
我的跆拳道师傅永远记得他小时候上的第一堂跆拳道课,以及他内心的兴奋。

我是一名机器学习工程师。从专业上来说,机器学习是我最喜欢的东西,也可能是我最了解的学科。

我永远记得的一堂课是,我读本科期间的第一位机器学习教授描述了分类回归之间的区别。分类任务的一个例子是根据电子邮件的文本识别它是否是垃圾邮件。回归任务的一个例子是根据房屋的特征(例如大小、位置等)预测房屋的价格。

我们将一组特征定义为具有 k 列和 n 行的矩阵(表)X 。在分类和回归任务中,输出都是具有 n 个条目(与X的行数相同)的向量y 。不同之处在于,在分类任务中, y 的条目是整数。参考前面的示例,y_1=0表示第一封电子邮件不是垃圾邮件,y_1=1表示第一封电子邮件是垃圾邮件。在回归任务中, y的条目是实数。参考房价示例,y_1 = 123780表示我们要预测的 1 号房子的价格为 123780。

现在,回归任务可以用多种方式来解决。实际上,有很多种方式……也许有太多方式无法处理。如果我们有这么多方法来解决一个问题,那么选择正确的方法可能非常困难。随着人工智能和点击诱饵标题的爆炸式增长,选择最佳方法变得越来越困难,因为许多文章和论文声称对每个回归问题都有最终解决方案购买我的课程即可获得待售代码!!!)。

事实是,每个数据集都应该用特定的算法来解决,这取决于数据的特定属性和我们想要实现的特定要求。

这篇博文旨在为用户提供一份友好的指南,指导您如何使用最佳的回归任务:

  • 数据集的线性/多项式线性
  • 数据集的复杂性
  • 数据集的维数(列数)
  • 需要概率 输出

为了本研究,我们将只考虑传统的机器学习方法(没有神经网络),因为我们主要关注小型合成数据集。

你准备好摇滚了吗?🎸
我们开始吧。

1. 回归分类法

这是我们可以在回归任务中使用的“经验法则”分类法:

根据您的特定数据集确定的最佳回归技术的哪种分类?_数据集_02

或者,用文字表达:

X 和 y 之间的关系是线性的还是多项式的?

是的

k 是否很小?(其中 k 表示预测变量的数量)

:使用线性/多项式回归

:使用主成分回归量

需要概率输出吗?

:使用高斯过程回归(GPR)

:使用支持向量机(SVM)。

在本文中,我将首先用文字描述每一种方法,然后使用 Python。

2.线性/多项式回归

让我们从线性/多项式回归开始。

图片由作者制作

2.1 解释

这可以说是我们所拥有的最简单的回归情况,并且当我们的输入矩阵X与我们想要的目标(输出)Y线性相关时就会发生这种情况。

换句话说,如果我们有X矩阵 并且想要找到Y,我们的估计将是:

其中W是权重矩阵,w_0 是所谓的截距。

关于是否将此方法视为机器学习方法或仅仅是统计解决方案,存在很多争论。这是因为最佳权重矩阵W(和截距 w_0)是通过称为最优最小二乘法 (OLS)的方法找到的。该方法为我们提供了一个非常简单的W最佳值方程,即:

因此,最佳权重集不是通过迭代或数值方法求解的(就像在标准机器学习方法中一样)。
因此,这种方法可以被视为一种纯统计的、非常简单的方法。尽管它很简单,但当输入和输出通过线性或多项式依赖关系相关时,该方法对于线性和多项式情况都非常有效。

对于多项式依赖关系,我们可以应用上面看到的相同方程,但我们需要将X转换为多项式特征矩阵。这意味着在X中创建额外的列,表示原始特征(例如 X²、X³ 等)的幂,直到达到所需的多项式次数。

2.2 代码

有很多笔记本详细解释了线性回归,从头开始实现线性回归是一项非常好的练习。

话虽如此,线性和多项式回归的代码都非常简单。

对于线性回归

  1. 模拟X阵列(从1到20,100个点)
  2. 模拟相应的Y数组
  3. sklearn调用LinearRegression对象
  4. 进行绘图打印可视化



对于多项式回归,唯一的不同之处在于 1 和 2 之间有一个额外的步骤,其中矩阵X被转换为矩阵X_poly,其中X_poly = [X,X², X³ ..., X^k]。

正如我们已经说过的,我们本质上是在多项式数据上训练线性模型。这是 3 次多项式的示例:


以下是剧情:


3. 主成分回归器

图片由作者制作

3.1 解释

现在,在某些情况下,您的数据集具有大量列(维度),我们称之为“ k ”。

在这种情况下(或 k-ase?哈哈),也许您的目标Y与数据集的主成分分析* (PCA)成分相关。

*主成分分析 (PCA) 是一种广泛使用的降维技术,它可以识别数据变化最大的方向(主成分)。它将原始变量转换为一组不相关的新正交变量(主成分),有效地降低维数,同时保留数据中的大部分方差。我在 本文中根据实践经验讨论了 PCA 。

例如,让我们以 k=2 的情况为例。我知道这有点奇怪,因为这种方法通常用于较大的 k,但我这样做只是因为可视化 2D 图比可视化 1000D 图更容易 :)

3.2 代码

因此,在这种二维情况下,假设第一维与第二维线性相关,如下所示:


现在我们要做的就是在这个 2D 数据集上拟合 PCA。我们可以用几行代码来完成:

  1. 从 sklearn 调用 PCA
  2. 在数据集X上进行拟合
  3. 转换数据集并将结果存储在另一个变量X_PCA中


这就是情节,我们现在可以看到这两个变量并不相关(如果 PCA 做得好的话就应该是这样的):


现在在这个玩具例子中,让我们考虑目标Y与 PCA 分量 2 相关的情况。在这种情况下,如果我们只是尝试进行线性回归,我们就会失败(正如年轻人所说),因为它看起来像这样:


不可能从这个坏家伙那里得到任何线性回归。
尽管如此,如果我们绘制 PCA 分量与Y 的关系图,我们会立即看到一些我们非常喜欢的东西:


组件 PCA 2 与我们的目标 Y 之间存在明显的关系。
这意味着我们可以轻松地对单个变量(k'=1)而不是 k=2 个变量进行线性回归。

我们是这样做的:


这就是剧情。比以往更顺畅 :)


4.高斯过程回归器

图片由作者制作

4.1 解释

我妻子总是说“小心谨慎总比事后后悔好”:有时你不仅想要给定X时目标Y的预测,还想要预测的不确定性。换句话说,我们希望有一些边界,我们知道我们可以自信地找到我们的预测。

一种方法是高斯过程回归 (GPR)。 “高斯过程”是随机变量的集合。这些随机变量遵循联合高斯分布

我们如何使用这些联合高斯分布?通过对训练集中观察到的目标进行调节,可以从 n 个训练案例和测试案例的输出的 n + 1 维联合高斯分布中获得新变量x_test的预测分布。

 我在这篇博文中讨论了高斯过程回归。

4.2 代码

一切都可以用几行代码完成:


现在,正如您所看到的,输入不是线性和/或多项式,但可以使用高斯过程回归进行建模,因此该方法也可以用于非线性预测。

GPR 尤其以选择最佳核的复杂性而闻名,从统计学角度来说,最佳核就是我们用来计算预测的矩阵的协方差。有关如何选择最佳核的指南可 在此处找到。

5.支持向量回归器(SVR)

图片由作者制作

5.1 解释

支持向量回归(SVR)大量用于输入和输出关系非线性且复杂的情况。

SVR 和支持向量机 (SVM) 的一般特性是,它们使用边际概念作为我们所做的预测的置信度。让我进一步解释一下。

让我们考虑一种分类算法,其中您使用一条线来区分 A 类元素和 B 类元素。假设我给您这条线,该线右侧的所有内容都归类为“A”,而该线左侧的所有内容都归类为“B”。现在,如果某个点非常靠近该线(左侧或右侧),则对其进行分类将非常危险,因为左侧或右侧的微小变化都会完全改变对象的预测类别。简而言之,您不希望您的决策幅度很小。

SVR 的理念是增加该裕度,以便您尽可能地确信所预测的值。SVR 可以高效处理高维数据,并且可以使用不同的函数(例如线性、多项式径向基函数核)进行定制,以捕获数据中复杂的非线性关系。

5.2 代码

对于XY之间非常复杂的关系,SVR 的代码如下:

图片由作者制作

我们可以看到,SVR 在正确猜测这种行为方面做得相当不错:


6. 其他方法

我想坦白地说:这个分类法很简洁。因为简洁,所以它不可能很长,也不可能全面涵盖所有方法(要做到这一点需要一篇 15 页以上的论文)。

我想给你另外三种执行回归任务的方法,这样你就知道还有更多的方法:

  1. XGBoost 回归器。这是一个非常流行的回归器,它使用增强框架,其中模型按顺序进行训练。每个新模型都会尝试纠正先前模型所犯的错误。
  2. 决策树和随机森林。决策树根据特征值将数据分成子集,形成用于预测的树结构。随机森林通过组合来自多个随机树的预测来提高准确性。众所周知,随机森林可以防止过度拟合。
  3. 神经网络。这是众所周知的,每天都会出现在新闻中 :) 神经网络由相互连接的节点层组成,可以学习复杂的模式,使其能够灵活地用于在回归任务中建模非线性关系。

7. 结论

在这篇博文中,我们讨论了回归方法。具体来说,我们做了以下事情:

  1. 我们描述了回归分类之间的区别。
  2. 我们确定了确定最佳回归算法需要考虑的事项。
  3. 我们根据问题的复杂性、输入的列数(特征)以及概率输出的需求建立了分类法。
  4. 我们通过示例和编码练习描述了线性/多项式回归方法、高斯过程回归支持向量机主成分回归器。
  5. 我们简要描述了其他针对上下文的回归方法。


  1. 感谢关注
  2.  订阅频道(https://t.me/awsgoogvps_Host) TG交流群(t.me/awsgoogvpsHost)