提升机器学习模型预测能力的技巧

在面对海量数据时,目标是从中提取有价值的洞察。为了应对这一挑战,可能已经召集了最优秀的团队成员,或者亲自上阵领导。首先构建了一个预测模型,然后检查输出统计数据,却发现模型的预测能力非常低。现在,迫切希望找到一种方法来增强模型的预测能力。会怎么做?

机器学习引擎简介

存在一些机器学习引擎,这些引擎使用特定的算法帮助用户达到输出阶段。其中一些最受欢迎的引擎包括决策树和回归分析。本文将介绍一些最佳实践,用于通过额外的增强技术提升这些引擎的预测能力,以达到更高的可预测性。这些增强技术是一种集成学习技术。如果想要全面了解这些技术和其他集成学习技术,可以报名参加这个免费课程:集成学习与集成学习技术。

增强算法的应用场景

增强算法在拥有大量数据进行预测并且寻求极高的预测能力时被使用。它用于减少监督学习中的偏差和方差,通过结合多个弱预测器构建一个强大的预测器。如果想要参加Kaggle竞赛,建议收藏这篇文章。Kaggle竞赛的参与者广泛使用这些增强算法。

AdaBoost算法简介

AdaBoost是一种分类增强算法。分类问题是给每个观察值分配给定类别集的问题。最简单的分类问题是二分类问题,可以使用AdaBoost解决。来看一个简单的例子来理解AdaBoost的基本概念。假设有两个类别:0和1。每个数字都是一个观察值,只有两个特征:x轴和y轴。例如,(1,1)是一个0,而(4,4)是一个1。现在,使用这两个特征,需要对每个观察值进行分类。最终目标与任何分类问题相同:找到分类边界。以下是应用AdaBoost的步骤。

首先,需要理解数据并发现是否存在线性分类边界。如下所示,不存在可以将0和1分开的边界。

已经在之前的文章中了解了决策树。决策桩是一个单位深度的树,它决定在特征上进行一个最重要的切割。这里它选择从顶部的第三行开始绘制边界。现在,黄色部分预期全部是0,未着色部分全部是1。然而,在构建这个决策桩后发现了大量的误报。有九个1被错误地归类为0。同样,有十八个0被归类为1。

一旦知道了误分类的观察值,就给这些观察值增加额外的权重。因此,看到之前被误分类的0和1现在被加粗显示。在下一级,将确保这些高权重的观察值被正确分类。

多次重复这个过程,并更多地关注之前误分类的观察值。最后,取所有发现的边界的加权平均值,看起来如下所示。

AdaBoost在实际生活中的应用

一个经典的AdaBoost算法应用案例是面部检测问题。可以将这看作是一个更复杂的边界检测,就像在上一个例子中找到的那样。一旦有了那个边界,现在就可以创建特征并分类图像是否有面部。

类似于分类增强算法,也有回归增强算法。在这些问题中,有一个连续变量需要预测。这通常使用梯度增强算法完成。以下是梯度增强如何工作的非数学描述:

有一组变量向量x1、x2和x3。需要预测y,这是一个连续变量。

  1. 假设均值是所有变量的预测。
  2. 计算每个观察值与均值(最新预测)的误差。
  3. 找到可以完美分割误差的变量,并找到分割值。这被认为是最新的预测。
  4. 计算每个观察值与分割两侧均值(最新预测)的误差。
  5. 重复步骤3和4,直到目标函数最大化/最小化。
  6. 取所有分类器的加权平均值,得出最终模型。
沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485