改善机器学习结果

注意:本文假定您熟悉对机器学习算法的基本了解。

假设您想购买一款新手机,您是否会直接前往第一家商店并根据店主的建议购买手机?没有权利?

您可以访问一些在线移动卖家网站,您可以看到各种手机,规格,特征和价格。您还可以考虑在网站上发布的人员的评论。但是,您可能也可能会向您的朋友和同事提出意见。

简而言之,你会’T直接作出决定,而是考虑其他人的意见。机器学习中的合奏技术在类似的想法上。

您可以在这篇文章中讨论的许多方式可以实现合奏。

AI时间期刊资源
你学习数据科学吗?

Check out what 图书 帮助20多个成功的数据科学家在他们的职业生涯中成长。

目录:
      1. 介绍
      2. 直觉
      3. 袋装
      4. 一种基于袋装的算法:
        一种。随机森林算法
        湾随机森林中的封闭率
        C。随机森林的优点和缺点
      5. 提升
      6. 一种基于Boosting的算法:
        一种。 Adaboost(自适应提升)
        湾渐变升压(GBM)
        C。 XGBoost(极端梯度提升)
      7. 堆叠

1.介绍

集合学习是一种机器学习技术,其中多个型号组合以构建更强大的模型。该集合主要用于提高模型的性能。这就是为什么合奏方法用于各种机器学习竞赛,如KDD,Kaggle等以及在现实世界问题中使用。

2.直觉:

让’在一个例子的帮助下了解集合学习后面的直觉。

假设您拥有自己的音乐俱乐部,您作为音乐制作人在团队的帮助下创建了一个非常有趣的歌曲。出版后,您想在歌曲中接受评级,以便您下次照顾这些事情。
接受反馈的可能方法是什么?

答:一种方法可以要求你的家人评价一首歌。

非常可能是您从家人中选择的成员,非常爱你。他/她没有’我想通过为可怕的歌曲提供负面评级来打破你的心。

B.另一种方法可以问另一个音乐制作人。

这可能会更好地了解这首歌。因为那个人可能是音乐专家,并将提供适当的评级。另一方面,如果一个人是竞争对手,那么就不会得到适当的评级。所以绝对不是最好的法官。

C.如果你要求100人评价这首歌,怎么办?

这100个人也可以是您的家人,同事,音乐生产商等人。

您将获得的评级将更广泛,因为您已包含各种具有不同思维的人民。这是一个更好的方法,以获得诚实的评级,而不是前2例。

好吧,合奏学习与此没有什么不同: 合奏是一种组合各种模型来获得更强大,准确和稳定的模型的方法。

到目前为止,你有一个高级的思想是什么是学习的。现在让步’看看各种集合技术。

3.装袋技术:

袋装是一种与各种模型的结果组合以获得最终预测的技术(分类的最大投票和回归中的平均值)。

在这里,我们正在在同一输入数据上创建所有模型。这是否会给我们一个更好的结果?模型会产生相同的结果很高。

其中一个解决方案是 自举 .

引导是一种估计来自原始数据量的数据量的统计方法。我们创建'K'随机样本 用替代品  从训练数据集尺寸d尺寸d,其中d<n和n是一些培训点。

在形成子集的样本之后,将分开的独立模型与这些子集接受训练。通过组合来自所有模型的预测来构建元分类器或回归线来进行最终预测。

对于给定的测试点XQ

4.一种基于袋装的算法:

4.1随机林算法:

随机森林是装袋技术的实施。您可以从名称中看到,从随机采样数据创建一个决策树的森林,并结合它们。所以随机森林的基础学习者是决策树。你不’必须组合决策树,而是可以使用随机林分类器或回归。

随机森林算法

如果你不’知道决策树如何工作,这里’s a 决策树学习指南.

所以随机的森林是一系列决策树训练在不同的子集上。

随机森林通过功能袋来保证对模型的随机性。功能袋装意味着我们选择并非所有特征都是基础学习者,但我们随机采样一些功能来培训基本学习者。现在而不是在每个节点拆分时搜索最重要的功能,而是在随机采样的特征子集中搜索最佳功能。因此,M1,M2,………,MK将在更好的元分类器或回归线中彼此更加多样化。

因此,对于随机林中的每个基本学习者,我们做到以下了。

随机森林=行采样+列放大

4.2随机森林中的超参数:

在这里,我将在Sklearn随机森林中讨论重要的封锁。

  1. N_ESTIMATORS:在组合所有人之前,它是随机林中的一些树木。
  2. MAX_FEATURES:它用于特色袋装。每个子集要考虑的功能数量。
  3. OOB_SCORE:是否使用袋子样本I.E.CV来估计泛化准确性。默认为false。
4.3随机森林的优缺点:
  1. 随机森林的默认参数通常会产生良好的效果。
  2. 过度装备的主要问题将在随机森林中不再发生。
  3. 当有大量树木增加建模时间时,随机森林的缺点是。
  4. 更准确的预测需要更多的树木,这导致模型较慢。

5.提升:

在袋装中,我们假设基础型号将始终提供良好的结果。但如果某些数据点被错误分类是什么?组合这样的预测将提供更好的结果?

这种情况是通过提升来照顾的。

提升是一种迭代和连续的方法。它自适应地改变了每次迭代后训练数据的分布。最初,所有数据点都被认为是随机抽样的同样可能。型号M1在随机采样的子集上培训,并计算错误。在对错误分类点的下一次迭代中,随机选择采样的概率将从正确的分类点变为。将获得更概率的错误分类点。因此,M2模型将尝试纠正模型M1所产生的错误。

因此,后续模型取决于先前的模型结果。

在提升所有基础学习者的弱势和高偏见模型中。它结合了一些弱的学习者来形成​​一个强大的学习者。因此,每个弱学习者都会提高集合的性能。

6.基于升压的算法:

6.1 Adaboost(自适应提升):

Adaboost是一种基于升压的流行合奏技术。与升压adaboost分配给每个训练示例的权重,其确定训练集中出现的每个示例的概率。在培训模型之后,Adaboost会增加错误分类点的权重,从而提供更多概率在下一个分类器中出现它们,希望下一个模型对此进行良好。

在训练每个分类器之后,基于其准确性将权重分配给每个分类器。

所以最终分类器的等式是: 

因此,最终分类器只是弱学习者的线性组合。

在训练第一基础模型之后,我们计算该模型的权重(α),如:

在该培训集上的错误=错误分类数

从图形中,我们可以看到模型的权重随着误差接近零而指数增长。如果精度为50%,则重量变为零,这不比任何随机猜测更好。

在计算第1型模型的α之后,我们通过以下公式更新训练示例权重。


6.2渐变升压(GBM):

梯度提升是促进任意任何可分辨率损失功能的概括。

GBM用于两种分类以及回归。在每个阶段,渐变升级尝试最小化损耗功能。

使用渐变升压,我们可以插入任何丢失功能,这是它最大的优势。

6.3 XGBoost(极端梯度提升):

XGBoost是梯度升压算法的高级实现。 XGBoost是一种高度强大的算法,用于可以在May机器学习比赛和Hackathons中使用。它比渐变提升更快。

但为什么XGBoost非常受欢迎?

  1. 并行处理:核心XGBoost算法并行化,它可以使用多核计算机的功率。因此,在大型数据集中也可以培训模型是可行的。
  2. 速度:XGBoost最初用C ++编写,它比其他集合技术相对较快。
  3. 调谐参数各种调整参数:XGBoost内部具有缺失值,树修剪,正规化,缺失值,交叉验证等的参数。
  4. 灵活性:XGBoost允许用户定义自定义优化目标。

7.堆叠:

在堆叠时,基本模型完全验过不同的算法。

前2个集合技术的主要区别是基本学习者在完整的培训集上培训。

贡献者

Pillai工程学院|机器学习爱好者

贡献者表达的意见是他们自己的意见。

关于Akshay Chavan.

Pillai工程学院|机器学习爱好者

查看Akshay Chavan的所有帖子→