4先进的机器学习技术

图片由森林的阿内特Unsplash

什么是典型的方法来提高机器学习模型?添加更多的功能。执行选择删除冗余功能。优化hyper-parameters。一起合奏几个模型。是的,所有这些可能的工作,但是还有许多其他的方法来提高分数。也许有些是有点不太清楚,和一些不适用在所有情况下,但当应用在正确的时间他们可以带来显著的改善。让我们通过一些。

Pseudo-labeling

数据科学的任务通常有一个训练数据集与已知的标签。一般来说,训练数据越多,我们就越可能模型学习一些有用的东西。但在大多数情况下,标签的训练数据的数量是有限的。在某些情况下,这是由于标签的过程过于昂贵(如涉及手动标记每个案例)。

一个解决方案是使用pseudo-labeling创建额外的训练数据的技术。

我们需要额外的数据没有标签。如果有测试数据可用(例如,比赛)我们可以使用它。否则,需要收集数据,但不需要标签,应该容易得多比收集真实的训练数据。

一旦数据被收集,我们使用我们的模型进行预测。没有标签,它是未知的,预测的多好。但在大多数情况下,更有信心的预测意味着更大的概率是对的。因此,我们选择一些最有信心的百分比模型预测和使用这些额外的训练数据标签。然后培训模式在两个-原始训练数据+我们的新pseudo-labeled额外的训练数据。新模型可以产生比原来更好的分数。

为什么会这样呢?

另外收集的数据可能有点不同于最初的训练数据。从另一个来源,收集在不同的时间间隔,等等。因此,该数据可能包含不同的关系和信号。模型可以从原始数据不学习这些关系,或者至少不存在时略有不同。但这些可以从新的pseudo-labeled数据如果标签分配给他们大多是正确的。

有一个重要的需求但是pseudo-labeling工作——原始模型的准确性必须足够高。否则,许多行将标签不正确,会有太多pseudo-labeled引入的噪声数据。出于这个原因,这是一个很好的练习使用pseudo-labeling模型发展的最新阶段,当它已经提高了工程特性,参数优化,和其他基本技术。

离群值去除模型的预测

从训练数据删除离群值是一个标准的步骤在大多数机器学习管道。但这里我并不是在谈论这个简单的标准方法,通常包括观察每个特性和删除一些百分比从两端摆脱层层肥肉和/或擦肩而过的价值观。

图片由将迈尔斯Unsplash

存在一个更先进的方法来处理离群值。这种技术不仅可以消除异常值太大/小值的一个特性,但处理离群值特性相互作用。

这项技术是非常基本的核心理念:

  • 首先,模型训练和优化标准方法,包括特征选择,hyper-parameters调优,等等。
  • 然后现钞的预测(Out-Of-Folds)时尚的训练数据行。
  • 错误(或任何其他相关指标的具体问题)为每一行的预测计算。
  • 行最大的错误被定义为异常值。行删除的比例各不相同。
  • 训练数据的模型是培训与识别离群值行删除。

为什么会这样呢?

如果对于一些数据行模型有很大误差相比,平均误差对于这个给定的任务,这意味着对于这个给定的数据行,特征模型告诉一件事,但标签是非常不同的。在现实情况下,这可能由于各种原因:

  • 有一个离群值在一个或多个重要功能;
  • 标签是不正确的(由于一个错误在标签中,人类的错误,或其他原因);
  • 这是一些特定的罕见情况下,模型无法从给定的数据。

现在,如果它是一个异常值或错误的值在某些特性,我们想删除这一行。如果它有错误的标签,我们也肯定想删除它。唯一的情况下,我们可能更愿意离开这个特定行在训练数据情况下,描述了一些罕见的情况下。在大多数情况下它不会有可能单独的这些情况对于一个给定的行,那么我们需要决定在全球范围内,我们想保持这样的行或没有?

从我的经验,这种方法在许多任务,给了轻微改善。改善明显的大小取决于许多局外人,糟糕的特性,不正确的目标价值的特定数据集。在某些情况下,然而,它可能发生,大多数行检测到的异常值实际上是有效的。这种情况通常是由于太弱模型——因为这个原因,我建议应用这种方法只有在模型调优时,现有模型的最新阶段已经改善了尽可能高的标准技术。

数据增加

在某种程度上,这一技术类似于pseudo-labeling。在某种意义上,它有助于获得更多的训练数据。和更多的训练数据通常会导致一个更好的模型。关于确切的方式的主要区别是我们得到更多的训练数据。

如果在pseudo-labeling我们使用额外的真实数据和自定标签。但在某些情况下,我们根本没有任何额外的数据。在增加的情况下,我们使用真正的标签,但数据本身被修改,将以不同的方式来创建新的数据与原始数据集具有类似特征。

有各种技术数据增加各种各样的数据——数值数据,时间序列、图像和文本数据。例如,图像可以旋转、裁剪或以不同的方式扭曲。从逻辑的角度来看,图像上的图片(因此,原标签)是没有改变。但对于模型。这个新形象看起来不同,有助于使模型更加健壮。

可以翻译文本数据的一种方法。我们可以将原句翻译成其他语言,然后翻译。通过翻译过程,原句会略有不同,但意义仍应是相同的,因此保留了原始的标签。

数字和时间序列数据的确切方法高度依赖于数据代表什么。可能需要一些领域知识来正确地创建新的数据行与原来的标签。

我见过最改进这项技术在计算机视觉任务处理图像。但是对于其他类型的数据有可能。

解释模型的预测

机器学习模型有时被认为是一个黑盒子。但事实上,它不是。有很多信息我们可以收集关于究竟是怎样从模型决策在一个或另一个例子。具体的信息我们可以取决于模型的类型。一些模型,如基于树模型或线性回归,很容易解释。但是,例如,神经网络模型提供了更少的可翻译的信息里面发生了什么。

图片由JESHOOTS.COMUnsplash

在任何情况下,它可以帮助很多尽力理解,如何使用特性的模型。看功能重要性图是这样做的一种方式。如果我们发现一些奇怪的特性的特征图的重要性,值得试图找出如果确实是有信号的特性或如果这只是噪音。在最简单的情况下,尝试删除功能和比较验证分数有或没有特定的特性。

但功能重要性图不是唯一的信息来源的使用功能。里面有更多的可能性去挖更深层次模型内部。其中一些石灰和世鹏科技电子(我把技术细节关于他们自己的调查,如果感兴趣)。这些方法的好处是不仅要检查哪些特性所使用的模型也检查的方向特性的影响。它给我们一个特定功能的理解,降低值导致的低或高价值目标。这一知识使我们能够使用领域知识来判断这种特性的解释是有意义的。

深入调查的特性及其对模型的影响并非易事,并不快,所以在大多数情况下这不会是有益的对于每一个功能。但至少,值得检查重要特征和理解模式是如何使用它们,这是否有意义。根据结果我们可能想要决定删除功能,或在某些情况下甚至完全审查我们的验证的方法——如果我们看到,使用明显错误的特性会导致更好的验证分数。

一些最后的话

在机器学习中,模型是永远不会真正结束。总有一种可能性所以挤出一些额外的小改进。这里的关键时刻是停止在正确的时间改善,所以模型是“足够好”,但也在合理的时间开发的。

幸运的是,这篇文章将会给你一些想法来改善挤压一些额外的尝试您的模型没有太多额外的时间投资。

感谢你的阅读!

得到了媒介的应用betway娱乐官网

一个按钮“App Store下载”说,如果点击它会使你的iOS应用程序商店
说一个按钮上,谷歌玩,如果点击它会使你的谷歌商店
阿格尼Liukis

软件架构师、数据科学家,Kaggle大师(https://www.kaggle.com/alijs1)。有时我写关于Python,数据科学和机器学习…

Baidu